/
Author: Кун С.
Tags: математическая кибернетика математика микроэлектроника интегральные микросхемы вычислительная техника цифровые устройства
ISBN: 5-03-001857-3
Year: 1991
Text
VLSI ARRAY PROCESSORS
S.Y.Kung
Department of Electrical Engineering
Princeton University
Prentice Hall
Englewood Cliffs, New Jersey
С. Кун
МАТРИЧНЫЕ
ПРОЦЕССОРЫ
на СБИС
Перевод с английского
д-ра техн. наук Ю. Г. Дадаева,
канд. техн. наук Г. Я. Зевина и
канд. физ.-мат. наук А. Г. Филина
под редакцией
д-ра техн. наук Ю. Г. Дадаева
МОСКВА "МИР" 1991
ББК 22.18
К91
УДК 519.7
Кун С.
К91 Матричные процессоры на СБИС: Пер. с англ. -М.:Мир, 1991.-
672 с, ил.
ISBN 5-03-001857-3
Книга американского специалиста посвящена проектированию
специализированных процессоров на СБИС и их применению для
научных расчетов, обработки сигналов и изображений. Изложена
методология проектирования матричных процессоров,
рассмотрены проблемы анализа и синтеза алгоритмов обработки
информации, основы построения систолических и волновых матричных
процессоров.
Для специалистов в области электроники и вычислительной
техники, а также студентов старших курсов соответствующих
вузов.
* 2400440а°0-'91205 « " "
Редакция литературы по информатике и робототехнике
Научное издание
Сунь Юань Кун
МАТРИЧНЫЕ ПРОЦЕССОРЫ НА СБИС
Заведующий редакцией д-р техн. наук А.Л. Щерс
Зам. зав. редакцией Э.Н. Бадиков
Ст. научный редактор И.М. Андреева
Художник М.Н. Кузьмина
Художественные редакторы Н.М. Иванов, О.Н. Адаскина
Корректор Е.В. Морозова
Технический редактор И.М.Кренделева
ИБ № 7449
Оригинал-макет подготовлен на персональном компьютере и
распечатан на лазерном принтере в издательстве «Мир»
Подписано к печати 15.05.91. Формат 6Q X 90 1/16. Бумага
офсетная № 1. Печать офсетная. Гарнитура тайме. Объем 21,00
бум.л. Усл.печ.л. 42,00. Усл.кр.-отт. 42,00. Уч.-изд.л. 37,97.
Изд. № 6/7083. Тираж 5000 экз. Зак. 1028 . Цена Ир. 60 к.
Издательство «Мир» 129820, ГСП, Москва, 1-й Рижский пер., 2
Ордена Трудового Красного Знамени Московская
типография № 7 «Искра революции» Министерства печати и
массовой информации РСФСР. 103001, Москва,
Трехпрудный пер., 9.
(D 1988 by Prentice Hall
НЕЙ η"?«"ί?1857"3 (русск) Θ пеРев0* на РУсск"й язык,
ISBN 0-13-942749-Х (англ.) Дадаев Ю.Г., Зевин Г.Я.
Филин А.Г., 1991
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА
Организация параллельной работы в вычислительных машинах
развивалась в двух направлениях. Первое направление
совершенствования вычислительных структур при росте скоростных характеристик
было связано с устранением дисбаланса между центральным
процессором и скоростью работы оперативной памяти. Его можно
определить как самостимулирующее, поскольку после очередного успеха в
согласовании скоростей работы этих устройств возникало
естественное желание увеличить мощность процессора, что вновь
приводило к первоначальной проблеме. Но это как раз и отвечало целям
совершенствования вычислительных структур, так как мощность
процессора в конечном итоге начала зависеть от специализированных
функциональных устройств, сопряженных с блоками сверхбыстрой
памяти, т.е. появилась возможность реализации параллельных
вычислений. Оперативная память, тоже став параллельной, была
призвана обеспечивать требуемый темп интенсивного обмена с
центральным процессором. Таким образом, на первый план вышли проблемы
разработки систем программирования и, более того, разработки
параллельных алгоритмов, с тем чтобы можно было наилучшим
образом распорядиться существующими ресурсами.
Второе направление развития машинных структур для
параллельных вычислений состояло в репликации однотипных устройств с
регулярной топологией связи. Однако на этом пути долгое время
создавались "бумажные" компьютеры (однородные структуры, клеточные,
ячеистые, машины Унгера и Соломона и многое другое), вызывающие
интерес теоретиков и, нескрываемую иронию конструкторов машин с
традиционной архитектурой. И только с появлением больших и
сверхбольших интегральных схем, организация которых счастливым
образом соответствовала регулярным машинным структурам, начался
новый отсчет времени. Достаточно быстро был пройден этап
освоения матричных систем, эффективное применение которых связано с
обращением к конкретной структуре данных - массивам: узлы
матричной системы выполняют одну и ту же операцию над всеми
элементами массива. Правда, трудно представить себе реальную целостную
задачу, для решения которой требовались бы только такие
операции. Поэтому невозможно переоценить те новые идеи организации
вычислений на подобных структурах, которые основаны на
специальном, конвейерном представлении алгоритмов решения задач. Речь,
конечно, идет о систолических вычислениях. При этом машинную
структуру, реализующую такие вычисления, можно представить как
6 Предисловие редактора перевода
конвейер из однотипных станций, причем необязательно одномерный.
Именно систолическим процессорам и посвящена данная книга
(хотя в названии книги и в тексте по традиции сохранен термин
"матричный"). В последние годы было опубликовано много работ,
описывающих систолические представления алгоритмов решения
большого числа прикладных задач. Однако каждый систолический
процессор решает одну конкретную задачу или класс задач и поэтому
относится к разряду специализированных. Эта ограниченность
окупается многими достоинствами, среди которых прежде всего предельно
высокий уровень быстродействия, а также экономичность и
относительная простота изготовления. В этой книге подробно рассмотрены
чрезвычайно важные задачи обработки сигналов и обработки
изображений, решения которых часто требуются в реальном времени.
Автору книги удалось представить интегрированное описание
проблемы создания систолических процессоров, в котором одинаково
существенными являются и алгоритмический, и архитектурный, и
физический, и прикладной уровни. Стержнем книги служит
методология проектирования систолических вычислителей, основанная на
преобразованиях графа алгоритма. Автор сумел представить
материал в доступной форме, не переходя на поверхностный рассказ.
Правда, следует отметить одну авторскую особенность изложения
- "реверсивную" манеру введения очередного нового понятия. Когда
я первый раз столкнулся с ее проявлением, то подумал о случай
ности, но достаточно скоро понял, что это стиль, а может быть,
характер. Так что читатель в подобной ситуации должен сохранять
спокойствие и не чувствовать себя обескураженным - через 2-3
страницы ему все объяснят.
Книга полезна для широкого круга читателей с разными уровнями
интересов.
Перевод книги выполнен Ю. Г. Дадаевым (предисловие, гл. 1, 3,
4), Г. Я Зевиным (гл. 5, 6, 7) и А. Г. Филиным (гл. 2, разд.
6.4 и гл. 8).
Ю. Дадаев
Моей жене Севей и сыновьям Ли и Чарлзу
за их любовь, поддержку и вдохновение
Моим родителям д-ру и госпоже Кушень
Куну за радость первых шагов на пути к
истине и знаниям
ПРЕДИСЛОВИЕ
Эту книгу можно было бы назвать "Матричные процессоры на СБИС
для обработки сигналов/изображений и научных вычислений",
поскольку она посвящена проектированию указанных устройств,
учитывающему весь комплекс требований к обработке в реальном времени.
Она уникальна с точки зрения связности и междисциплинарного
подхода при изучении прикладных, алгоритмических, архитектурных и
технологических аспектов матричных процессоров на СБИС. Большое
внимание уделено методологии вертикального интегрального
проектирования СБИС-систем, охватывающей технологические ограничения,
анализ алгоритмов, выделение параллелизма, разработку
архитектуры, построение системы и согласование с прикладными задачами.
В СБИС-реализациях память и процессорные элементы
сравнительно дешевы, и поэтому при проектировании стараются уменьшить
сложность взаимодействия и сохранить архитектуру всей системы в
предельно регулярном, параллельном и конвейерном виде.
Архитектуры, ориентированные на алгоритмы, представляются
перспективными для будущих технологий вычислений. Важная роль отводится
анализу параллельных алгоритмов и их отображению в матричные
структуры. Следует отметить, что многие алгоритмы обработки
сигналов хорошо структурированы и обладают общими свойствами
регулярности, рекурсивности и локальной связи. Эти свойства могут
быть эффективно использованы в новейших матричных процессорах
систолического и волнового типа. В таких процессорах реализуются
возможности СБИС для организации интенсивных и конвейерных
вычислений. Более того, эти процессоры допускают организацию
массивных параллельных вычислений, что чрезвычайно важно для
обработки сигналов/изображений в реальном времени.
Эта книга начинается с анализа алгоритмов, за которым следует
разработка архитектуры, а завершается прикладными системами -
конечной целью СБИС-разработок. Для лучшего усвоения материала,
предлагается маршрутная карта, отображающая связь между восемью
главами и основными разделами в них (рис. 1).
8
Предисловие
Пользование книгой
В книге вводится понятие «матричные процессоры на СБИС»,
объединяющее аспекты проектирования СБИС с разработкой
вычислительных средств и обработкой сигналов/изображений. Однако сама
книга ни в коей мере не представляет собой фундаментальный труд
в любой из этих специальных областей, каждой из которых
посвящено множество прекрасных книг. Цель данной книги - совокупное
изучение перечисленных дисциплин и их взаимосвязей, и в этом
смысле она дополняет существующую литературу. Книга может быть
использована и в качестве учебника, и в качестве справочника для
инженеров в области электроники и специалистов по вычислительной
технике. Для односеместроваго курса (40-50 лекций) по
архитектуре ЭВМ предлагаются разделы 1.2, 1.3, 3.2-3.4, 4.3, 4.4, 5.3,
5.4, 6.2-6.4, 8.4 (дополнительно разделы 2.2, 2.3, 2.4). Для
односеместрового курса по обработке сигналов на СБИС-процессорах
предлагаются разделы 1.2, 1.3, 3.2, 3.3, 4.3, 5.3, 6 2, 7.2,
7.3, 8.2, 8.4 (дополнительно разделы 2.2-2.4). Для общего 2-се-
местрового курса предлагаются разделы: 1-й семестр - 1.2, 1.3,
2.2 - 2.4, 3.2 - 3.4, 4.3 - 4.5, 8.2, 8.3; 2-й семестр - 5.3,
5.4, 6.2 - 6.4, 7.2 - 7.5, 8.4, 8.5.
Структура курса зависит от подготовленности студентов и их
специальных интересов. Маршрутная карта, призванная помочь
преподавателю в выборе интересующих тем, выявляет взаимосвязь
различных разделов книги. Важной частью книги являются 140 задач
для домашней работы. Формулировки задач служат проверке
понимания читателем материала книги, иллюстрацией практических
приложений и развитию ощущения потенциальной полезности теорем и
других результатов, представленных в книге.
Наконец, многие рассмотренные здесь темы продолжают активно
изучаться, и можно надеяться, что ознакомление с этой книгой,
снабженной большой библиографией, вдохновит на новые
исследования в области матричных процессоров на СБИС и специализированных
суперкомпьютеров.
Благодарности
Опыт работы над книгой был для меня более чем плодотворным и
оправданным. И не только потому, что тема книги вызвала большой
интерес и воодушевление, но и потому, что она доставила мне
огромное удовольствие от сотрудничества с группой одержимых моло-
I с
(
I с
Ι ι
L
v
f
V
i
г
' 1
о 1
j 1
к
^.„,,
к
ν
\
ω
CO
00
CO
с
\ \
1
f
"|
I '
V
/
со
οό
I
1 n
1 n
a.
(0
CO
(0
c;
u
/
f^^f
\
f 1
CO I
со L
ω Γ
со I
с; 1
U 1
-*■
a
L—^_
h"^
A
"~^Ί
i
οό r
1
a.
fcl
9
1 * II
Ι ω Μ
со I
a.
1 Ю
1 со
1 со
1 c;
1 U
4_
^J 1
1 *
1 со
J ω
1 CO
1 ^
к
>—
CO 1
CO I
со
l_
ι ^
CN
со
00
(0
с;
ι_
1 г
г
■4 1
см
Ί *°
1 <"> 1
1 <° 1
1 °~
J
CO
If)
i
W
CO
a.
i
CO
1 f
со 1
0.
CN
CO
ί
en
со
1_
CN
cn
1
3
a.
|
L_y
ψ
1
30
5 L
*
со 1
a. 1
1
(
1
m
Ql
5
5
a! 1
CN 1
1
« 1
со 1
a.
CO ς
1
1
в «~
14
1 °" 1 f г
1-
со1"
гт^
τ
If)
If)
s
«
со
§
m
со
a.
1 f
со I
CO |_
5
CO
a.
♦ 4 i
JI \
J 5
1 <°
a.
*"?
5
8
a.
CO
' 1
1 I
_J I
"~J ί
о
L
In
If)
сч 1
со I
0.
Π l
10 1
Q.
If)
1 *
a.
A
1 *
1
CO
со
α. ι
_ I
CO
CN
i ι
CO
со
oi
5 1
»l
w
CO
03
К
CO
X
>4
ex
3
a.
03
s
10 Предисловие
дых ученых. В частности, приношу благодарность моим аспирантам в
Университете Южной Калифорнии C.W.Chang, Ε. Chow, W. С. Fang,
J.N.Hwang, S.N.Jean, P.S.Lewis, S.C.Lo, J. С Lien, E.Manolakos,
S.L.Peng, R.W.Stewart, S.W.Sun, J.Vlontzos и многим другим. Их
большой исследовательский вклад обеспечил основу для многих
разделов книги и в этом смысле они по праву являются соавторами
большей ее части. Я также чрезвычайно признателен многим моим
друзьям и коллегам, чья постоянная поддержка и конструктивная
критика были столь вдохновляющими и неоценимыми в этом
бесконечном процессе работы над книгой. В частности, хочу поблагодарить
профессоров K.S.Arun из Иллинойсского университета, P.Capello из
Калифорнийского ^университета в Санта-Барбара, P. Dewilde из
Дельфтского университета, Y.H.Hu из Южного Методистского
университета, K.Hwang из Университета Южной Калифорнии, С W.Jen из
Национального Сяотаньского университета, T.Kailath из Стэнфорд-
ского университета, D.V.B.Rao из Калифорнийского университета в
Лос-Анджелесе, а также докторов Y.C.Jeng из фирмы Tektronix,
J.T.Johl из корпорации Hughes Aircraft, J.McWhirter из RSRE,
R.Raghavan из Lockheed Missiles & Space, C.Rao из AT&T Bell
Laboratories. Я также признателен Институту обработки сигналов и
изображений (SIPI) Университета Южной Калифорнии за возможности
для подготовки рукописи и миссис Linda Varilla из SIPI за ее
организационную помощь.
Исследования, представленные в книге, поддерживались частично
Национальным научным фондом по проекту ECS-82-13358, Отделом
морских исследований по программе поддержки приоритетных
исследований N00014-81-K-0181, инновационным научно-техническим
отделом Организации СОИ и проводились через Отдел морских
исследований по контракту № N00014-85-K-0469 и N00014-85-K-0599 и
корпорацию Semiconductor Research по программе SRC-USC 86-01-075.
С. ία. Кун
Глава 1. ВВЕДЕНИЕ
1.1. ОБЩИЕ ПОЛОЖЕНИЯ
Возрастающие требования к скорости и производительности
решения современных задач обработки сигналов и изображений
предопределяют переход к вычислительной супертехнологии. Доступность
дешевых высокоплотных высокоскоростных СБИС-приборов и появление
САПР предвещают значительный прорыв в области создания и
применения параллельных процессоров. В частности, микроэлектронная
технология СБИС должна стимулировать разработку множества
новейших проектов архитектур матричных процессоров. Эта тенденция
привлекает пристальное внимание правительства, научного и
технического сообщества. В последнее десятилетие во всем мире
наблюдается колоссальный рост научно-технических работ, посвященных
отображению различных задач обработки сигналов и изображений в
такие СБИС-архитектуры.
В данной книге мы подтверждаем необходимость в средствах
высокопроизводительных вычислений для научных задач, обработки
сигналов и изображений. Современные методы обработки сигналов и
изображений в большой степени зависят от развития элементного и
архитектурного облика вычислительных средств. Последовательные
системы оказываются неадекватными перспективным обрабатывающим
системам реального времени и необходимо привлечение
дополнительных вычислительных мощностей в виде параллельных матричных
процессоров на СБИС. В большинстве случаев для задач цифровой
обработки сигналов (ЦОС) в реальном времени универсальные
параллельные компьютеры не могут обеспечить должного уровня
производительности главным образом из-за ощутимых системных накладных
расходов. В этой ситуации специализированные матричные
процессоры становятся единственной привлекательной альтернативой.
Вертикальная организация проектирования матричных процессоров
на СБИС. В этой книге рассматривается вопрос проектирования ал-
горитмо-ориентированных матричных процессоров. Междисциплинарный
подход к проектированию включает три основные области: задачи
ЦОС, алгоритмы и проектирование СБИС-систем [Oppen75, Hwan84a,
Mead80]. В соответствии с этим возможны представления трех
различных типов: функциональное, структурное и геометрическое
(рис. 1.1). Рис 1.1 помогает также проиллюстрировать
дополнительные роли матричного и кремниевого компиляторов. Матричный
компилятор отображает алгоритм в граф зависимости и в представ-
12
Глава I
Структурное представление
(область архитектур ЭВМ)
Конфигурация
соединений
Матричный компилятор
(отображение алгоритма
в матричную структуру)
Функциональное представление
(область цифровой
обработки сигналов (ЦОС))
Кремниевый компилятор
(отображение структуры в топологию)
| Кремниевая
пластина
Геометрическое представление
(область проектирования СБИС)
Рис. 1.1. Схематическое представление задач разработки
матричного процессора.
ление матричной структуры. Кремниевый компилятор отображает
структурное описание в логические схемы, временные диаграммы,
топологию и т.п.
Более точно проблема ставится так: определить систематические
методы получения специализированного матричного процессора для
данного алгоритма. Фундаментальный вопрос отображения алгоритмов
на матричные процессоры заключается в том, каким образом
представить параллельные алгоритмы, чтобы они были доступны для
понимания разработчиком и для компиляции в эффективные матричные
процессоры на СБИС. Разработка должна начинаться с записи
мощного алгоритма, выражающего рекурсивный и параллельный характер
Введение
13
пространственно-временных действий. Затем это описание
преобразуется в описание аппаратуры на СБИС или в исполнимый машинный
код матричного процессора.
1.2. МАТРИЧНЫЕ ПРОЦЕССОРЫ ДЛЯ ОБРАБОТКИ СИГНАЛОВ
И ИЗОБРАЖЕНИЙ
Вплоть до середины 60-х годов большая часть задач обработки
сигналов выполнялась специализированными аналоговыми (в
частности, оптическими) процессорами, поскольку цифровые системы были
сложны, потребляли больше энергии и имели невысокую скорость
обработки. Однако цифровые системы могут обеспечить лучшую
(иногда необходимую) точность, требуемый динамический диапазон,
долговременную память и другие преимущества, в том числе
программируемое^ и расширяемость, позволяющие адаптироваться к
изменению требований. В конечном итоге разработчик системы должен
выбирать наилучшую из доступных элементную базу, конвейерные
методы и параллельную обработку, обеспечивающие в совокупности
достижение требуемой производительности. Реализуемость матричных
процессоров на СБИС дает возможность повысить скорость обработки
на несколько порядков величины.
При проектировании матричных процессоров на СБИС основное
внимание должно быть уделено четырем аспектам: применениям,
алгоритмам, архитектурам и технологии.
1.2.1. Применения
Область применения матричных процессоров на СБИС охватывает
обработку изображений, машинное зрение, ядерную физику,
структурный анализ, обработку речевых, гидролокационных,
радиолокационных, сейсмических, метеорологических, астрономических,
медицинских и других данных. Для успешной разработки матричного
процессора требуется понимание процессов формирования сигналов и
изображений, класса рассматриваемых алгоритмов и описаний
предполагаемых прикладных систем. Например, рассмотрим некоторые
технические требования к системе обработки изображений в
реальном времени. Задача состоит в распознавании объекта и проверке
его геометрических и физических свойств по некоторым заданным
спецификациям для определения, является ли объект целевым или
нет. Это задача обработки в реальном времени со скоростью 1 кадр
из 512 χ 512 пикселов в 1 мс. Следовательно, требуемую скорость
в миллионах операций в секунду (MOPS) можно вычислить по формуле
14
Глава I
10 on./пиксел χ (512 χ 512 пиксел/кадр) χ 1000 кадров/с «
* 2500 MOPS.
Даже для коммерческих применений, таких, как цифровая обработка
видеосигналов, требуемая скорость обработки будет примерно равна
10 оп./пиксел χ (512 χ 512 пиксел/кадр) χ 24 кадров/с « 60 MOPS
Очевидно, что в этих случаях необходимы специализированные
архитектуры параллельной обработки.
1.2.2. Алгоритмы
Цифровая обработка сигналов и изображений охватывает широкий
диапазон математических и алгоритмических методов. Однако в
большинстве задач обработки сигналов и изображений преобладают
методы преобразований, фильтрации на основе свертки и
корреляции, а также базовые методы линейной алгебры. Среди обработки
изображений можно выделить следующие [Pratt78].
Обработка точек изображения. Преобразование полутонового
изображения, выравнивание гистограммы, переквантование, отображение
яркости и т.д.
Фильтрация. Сравнение с эталоном (операторы Прюита, Кирша или
Хеккеля), оконные методы (Бартлета, Хэмминга),
свертка/корреляция, линейная фазовая фильтрация (нижних частот, верхних частот,
полосовая, режекторная), медианная фильтрация, обратная
фильтрация, винеровская фильтрация, калмановская фильтрация, адаптивная
фильтрация и т.д.
Матричная алгебра. Сингулярное разложение (SVD),
геометрическое вращение/воспроизведение, оценка максимальной энтропии,
оценка максимального правдоподобия, вычисление псевдообращения и
восстановление изображения, стохастическое оценивание
параметров и т.д..
Преобразования. Преобразование Фурье, теоретико-числовое
преобразование, преобразование Хаара, косинус-преобразование,
корреляция геометрических искажений, преобразование Хафа,
преобразование Адамара, преобразование Карунена - Лоэва и т.д.
Сортировки. Сортировка слиянием, битонная сортировка и т.д.
Основными требованиями в обработке сигналов и изображений
являются высокая производительность и память, определяемая
колоссальными объемами данных. Для применений в реальном времени
Введение
15
часто необходимы скорости вычислений, превышающие 10 операций в
1с. К счастью, большинство из перечисленных алгоритмов обладают
такими общими свойствами, как регулярность, рекурсивность и
локальность, которые крайне полезны при разработке матричных
процессоров. Некоторые примеры типовых алгоритмов, применяемых в
обработке изображений, с требованиями к их производительности
представлены в табл. 1.1.
Таблица 1.1. Требования к производительности алгоритмов ЦОС
Операции обработки Необходимая
производительность
Линейные операции, O(N)
- пространственная фильтрация
- свертка
- обнаружение контуров
Операции второго порядка, 0(N )
- сортировки
- медианная фильтрация
- классификация ближайшего соседа
Операции более высоких порядков
- матричные операции
- спектральные вычисления
- адаптивные операции 104- 108 MOPS
Здесь предполагается, что качество изображения эквивалентно
телевизионному с простанственным разрешением 512 χ 512 пикселов
и скоростью 30 кадр/с, что соответствует скорости 10 отсчетов в
1с. Отсюда следует, что на этапе выделения признаков для подокна
о
размером 3x3 требуется скорость обращения к памяти 10
отсчетов в 1с. Для больших окон, например, 64 χ 64 пикселов, скорость
обращения возрастает до 10 . Поэтому даже для линейных
операций, таких, как пространственная фильтрация, свертка и
обнаружение контуров, величина производительности должна составлять
102-105 MOPS (табл. 1.1).
102- 105 MOPS
103- 107 MOPS
16
Глава 1
1.2.3. Архитектуры
Современные параллельные ЭВМ могут быть разделены на три
структурных класса: векторные процессоры, многопроцессорные
системы и матричные процессоры [Hwan84a]. Первые два класса
принадлежат области универсальных машин. Развитие таких систем
требует разработки усложненных устройств управления и
оптимизированных схем для размещения машинных ресурсов. Однако третий
класс относится к области специализированных ЭВМ, и разработка
таких систем требует глубокого знания взаимосвязей между
параллельными вычислительными алгоритмами и оптимальными структурами
аппаратного и программного обеспечения.
На этом последнем классе мы сфокусируем все внимание,
поскольку именно он предполагает возможность реализации требований
обработки в реальном времени. В частности, локально связные
вычислительные сети, такие, как систолические и волновые массивы,
наиболее пригодны для эффективной реализации основного класса
алгоритмов обработки сигналов, что определяется массовым
параллелизмом и регулярным потоком данных [HTKun82, Kung82a]. Такие
архитектуры перспективны для создания систем реального времени,
выполняющих большое число актуальных вычислительных задач.
Конвейеризация, матричная обработка и многопроцессорные
вычисления являются стандартными методами организации ЭВМ, которые
обычно используются в высокоскоростных вычислениях для
уменьшения сложности проектов крупномасштабных многопроцессорных
массивов. Известно множество решений, которые в определенной степени
зависят от ограничений специализированных применений. Например,
использование только локальной связи приводит к существенному
упрощению разработки архитектуры взаимодействия, но за счет
ограничения области применения. ЭВМ с архитектурой SIMD (один
поток команд - множество потоков данных), многопроцессорные
системы и матричные процессоры на СБИС представляют примеры попыток
решения задач организации параллельной обработки. Типичными
представителями SIMD-архитектуры являются ЭВМ ILLIAC IV,
многопроцессорной системы - потоковые машины и матричных процессоров
на СБИС - систолические/волновые процессоры.
SIMD-архитектура
ЭВМ с архитектурой SIMD (рис. 1.2) реализуется в виде массива
арифметических процессоров, обладающих локальной памятью и ло-
Введение
17
кально связанных между собой [Flynn66]. Команды поступают из
основной машины, и каждая команда одновременно выполняется
всеми процессорами. Процессоры SIMD-массива допускают явное
выражение параллелизма в программах пользователя. Компилятор,
размещаемый на основной машине, при обнаружении параллельных операций
генерирует объектный код, который загружается в процессорные
элементы (ПЭ) и устройство управления для выполнения. Идеи
SIMD-систем были изучены Унгером (1958) и позднее фон Нейманом
(1966), но первая SIMD-машина, доступная для практической
работы, была создана в 70-е годы; это была ILLIAC IV.
Система ILLIAC IV - типичный пример матричного компьютера
типа SIMD. Примерами других больших матричных SIMD-систем
являются реализованные по БИС-технологии массивно-параллельный про-
мп1
Устройство управления (УУ)
~~Ζ I Процессор (П)
Ml 12 Модуль памяти (МП)
I Общая память (ΟΠ)
Поток команд (ПК)
• Поток данных (ПД)
• on
МПт
J
Рис. 1.2. Процессор с SIMD-архитектурой (из работы [Hwan84a]).
цессор (МРР) НАСА и распределенный матричный процессор (DAP)
фирмы ICL. Команды и данные в этих системах хранятся в
глобальной оперативной памяти. Центральное устройство управления
направляет операции всем ПЭ, связывая их глобальной сетью
распространения и синхронизируя их работу.
MIMD-архитектура
Компьютеры с архитектурой типа MIMD (множество потоков команд
- множество потоков данных) состоят из определенного числа
процессорных элементов, каждый из которых имеет свое устройство
управления, свою программу и свои данные (рис. 1.3) [Flynn66].
2—1028
УУ
ПК
П1/
П1
п2
•
•
•
%
ПД,
пд2
ПД„
18
Глава I
УУ1
УУо
УУ„
ПК!
пк9
пк„
пд.
пд2
ПАл
мп«
МПо
• оп
мпл
Рис. 1.3. Процессор с MIMD-архитектурой (из работы [Hwan84a]).
Основное достоинство MIMD-машин состоит в том, что исходная
задача обработки может быть распределена по процессорным элементам
с целью увеличения параллелизма обработки. Понятно, что
отображение алгоритмов на MIMD-массив обычно выполняется на уровне
задач или процессоров. В общих случаях в MIMD-машинах могут
возникнуть проблемы связи, когда множество ПЭ обращаются к общим
системным ресурсам одновременно. Эта ситуация обычно приводит к
снижению производительности. Возможны также проблемы
синхронизации задач, реализуемых на распределенных процессорных элементах.
Тем не менее гибкость MIMD-архитектур часто оказывается
определяющей при реализации алгоритмов с нерегулярной структурой,
характерных для задач интеллектуальной обработки изображений и
машинного зрения.
Матричные процессоры на СБИС
Практичность любого алгоритма ЦОС в конечном счете
определяется его вычислительной осуществимостью. Обработка сигналов и
изображений в реальном времени в сильной степени зависит от
возможностей современных параллельных ЭВМ, (их быстродействия и
емкости памяти). Универсальные суперЭВМ из-за больших системных
накладных расходов часто оказываются непригодными для обработки
сигналов и изображений в реальном времени. В этих ситуациях
возрастает роль нового подхода, основанного на использовании
Введение
19
матричных процессоров на СБИС Отметим, что ключевые атрибуты,
обрабатываемые этими алгоритмами, могут быть реализованы
специальной архитектурой матричных процессоров на СБИС. Такие
процессоры максимизируют возможности СБИС в виде интенсивных
конвейерных вычислений и позволяют устранить основное ограничение, каса-
Ί
\
ПЭ
'? Г
"Н
_L
пэ
'з г
Η
_L
пэ
Ί
'2
ПЭ1
?
пэ2
Сегмент 1
Сегмент 2
И ПЭ„
Сегмент т
Рис. 1.4. Параллельная (а) и конвейерная обработка (б).
ющееся связи. Появляется теоретическая основа разработки
локально связных СБИС-массивов, таких, как систолические массивы
[HTKun78] и волновые массивы [Kung82]. Массовый параллелизм в
систолических/волновых массивах возникает в результате
конвейерной обработки, параллельной обработки или совместного
использования обоих видов обработки, показанных на рис. 1.4.
Параллельная обработка означает, что все процессы, определенные с помощью
данных D и команд /, могут выполняться на m процессорах
параллельно, сохраняя все процессоры занятыми. Конвейерная обработка
означает, что процесс разбивается на множество подпроцессов,
которые, будучи упорядочены в последовательность, проходят через
конвейер из пг процессоров, и каждый подпроцесс обрабатывается
друг за другом. Для каждого подпроцесса, покидающего процессор,
имеется свободный процессор, готовый получить этот процесс и
сразу же продолжить его обработку. Поэтому все пг процессоров
могут оставаться занятыми в течение выполнения процесса
благодаря использованию принципа конвейера.
2*
20
Глава 1
1.2.4. Технология
В настоящее время наиболее распространенными являются две
технологии изготовления полупроводниковых приборов - на
биполярных транзисторах и МОП-структурах. Хотя в новых технологиях
объединяются достоинства обоих подходов, между биполярными и МОП-
структурами существуют важные различия. Биполярная технология
обладает более высокими скоростными возможностями, МОП-
технология характеризуется большой степенью интеграции и меньшим
потреблением энергии. В середине 80-х годов была успешно
завершена первая фаза программы МО США по созданию сверхскоростных
БИС (СС БИС), и некоторые кристаллы, изготовленные по этой
технологии, стали коммерчески доступными (табл. 1.2). В настоящее
время реализуется вторая фаза программы, ее цели также
перечислены в табл. 1.2.
Технология СБИС-приборов создает новые ограничения при
использовании. Более подробно архитектурные принципы систем на
СБИС рассмотрены в разд. 1.2. Основные критерии разработки СБИС-
архитектур можно сформулировать следующим образом [Rande82]:
• Критическая сложность проекта и необходимость САПР.
• Модульность и эффективное использование стандартных
элементов.
• Простые и регулярные шины данных и управления,
t Локализованные и упрощенные межсоединения.
• Баланс между вводом-выводом и вычислениями.
• Широкое распараллеливание (т.е. конвейерная и/или
параллельная обработка).
Таблица 1.2. Основные характеристики приборов,
разрабатываемых по программе СС БИС МО США
Требования СС БИС, фаза 1 СС БИС, фаза 2
Литографический
характерный размер, мкм 1,25 0,5
Функциональная
производительность,
вентиль-Гц/см2 5-Ю11 1Ί0
Тактовая частота для
кристалла, МГи 25 100
Введение
21
• Выбор между синхронной и асинхронной реализациями.
• Программируемость для решения задач ЦОС.
• Возможность реконфигурации и отказоустойчивость.
• Сбалансированное разбиение массива и кристалла.
Поскольку связь для СБИС остается ограничивающим фактором,
большое значение приобретают локально связные массивы. При этом
увеличение эффективности можно ожидать, если алгоритм
поддерживает сбалансированное распределение рабочей нагрузки, при
соблюдении требования локальности, т.е. при использовании коротких
связей. Эти свойства распределения нагрузки и информационного
потока служат руководством для разработчика СБИС-алгоритмов и в
конечном итоге приводят к разработкам новых архитектур на СБИС.
После того как проект матричной архитектуры готов к
реализации, возникают дополнительные вопросы, касающиеся технологии,
стоимости, скорости, гибкости, переноса и программируемости (на
языках высокого уровня). Представленная система должна пройти
окончательную верификацию с помощью тестирования на
предполагаемых для решения задачах с оценкой ожидаемой производительности.
Для получения удовлетворительных результатов на этом этапе может
потребоваться дополнительная модификация.
1.3. ПРИНЦИПЫ РАЗРАБОТКИ СБИС-АРХИТЕКТУР
СБИС-архитектуры должны в полной мере использовать
возможности СБИС-технологии, а также принимать во внимание стоимость
площади кристалла кремния и входных/выходных выводов. Основное
ограничение при компоновке - стоимость межсоединений, зависящая
от площади и времени. Значительная стоимость связи обусловлена
тем, что провода занимают большую часть пространства схемы и в
конечном счете связь снижает тактовую частоту. Когда время
задержки в схеме начинает зависить главным образом от задержки
межсоединений (а не от времени срабатывания логического
вентиля), минимальные и локальные связи становятся существенным
фактором эффективной реализации на СБИС. Другое ограничение
СБИС-технологии - сложность схемы, которая может привести к
удорожанию проекта. Эти проблемы можно решить, используя
регулярные, повторяющиеся архитектурные структуры. Таким образом, в
принципах разработки архитектуры на СБИС должны быть заложены
модульность, регулярность, локальность связей, массовый
параллелизм и минимизированный ввод-вывод. Плодотворной идеей при
проектировании является использование стандартных элементов и
22
Глава 1
эффектов масштабирования. Кроме того, сложность проекта требует
разработанных средств автоматизации проектирования,
моделирования и верификации.
1.3.1. Технология СБИС
В последнее время тенденции развития МОП-технологии
сдвигаются от «-канальных МОП-приборов к комплементарным МОП-структурам
(КМОП). Связано это с тем, что КМОП-структуры облегчают переход
к меньшим характерным размерам и обеспечивают более высокий
уровень производительности при меньшем потреблении энергии. По
существу КМОП-схемы конструируются из л-канального и р-канального
транзисторов, /ι-канальный транзистор формируется на подложке
р-типа, а р-канальный транзистор - на подложке я-типа. В
/г-канальном транзисторе области стока и истока создаются
диффузией л-типа. Вентиль образуется проводником (поликремнием) на
тонком слое окисла, покрывающем область между стоком, истоком и
подложкой; электроны притягиваются к поверхности подложки. Выше
определенного порога число электронов становится настолько
большим, что они образуют проводящий канал между истоком и стоком. В
принципе КМОП-инвертор в устойчивом состоянии не требует
питания, поскольку обычно только один из транзисторов оказывается
включенным. Примитивные КМОП-ячейки - инвертор и вентиль
передачи. Их схемы и физическая компоновка показаны на рис. 1.5.
Инвертор и его комбинационная логика ( например, НЕ-И, НЕ-ИЛИ или
ПЛМ) составляют обычную КМОП-логику. Однако вентиль передачи
находит широкое распространение при разработке современных
КМОП-схем.
Эффекты масштабирования
Экспоненциальный рост сложности и возможностей ИС, начавшийся
с созданием СБИС-технологии, обусловлен одновременным
уменьшением минимального характерного размера и увеличением максимального
размера кристалла с ограничением приемлемого выхода. Основное
достоинство СБИС-архитектуры - технологичная повторяемость
[Mead80]. Это означает, что усилия при архитектурном перепроек-
«4 тировании окажутся незначительными при переходе технологии
изготовления приборов на субмикронный уровень.
Хотя процесс масштабирования имеет много достоинств, проблемы
Введение
23
B^t' н>~
V88
Инвертор
СВ(С)
Вентиль передач
Рис. 1.5. Базовый КМОП-инвертор и вентиль (а) и схемы их
размещения (б).
межсоединений при увеличении размера кристалла становятся
чрезвычайно сложными. В конечном счете стоимость кристалла,
производительность и скорость определяются в основном задержками в
межсоединениях и площадью кристалла. Поэтому СБИС-технология
является не только многообещающей, но и сопровождается
некоторыми новыми ограничениями при проектировании. Для того чтобы
устранить эти ограничения, часто при проектировании систем на
СБИС используют стандартные блоки и отказываются от глобальной
связи.
24
Глава 1
При изменении геометрических размеров предполагается, что
вместе с размерами на множитель α уменьшаются значения токов и
напряжений (значение а, большее 1, означает, что размеры или
уровни уменьшаются). При уменьшении линейных размеров
транзистора в α раз число транзисторов, которое может быть размещено на
кристалле того же размера, увеличивается в α раз. На рис. 1.6
показан эффект уменьшения проводника и полевого МОП-транзистора
на множитель а.
Задержка переключения транзистора уменьшается, по крайней
мере в α раз из-за того, что длина канала уменьшается на
множитель а. Поскольку пересекаемая площадь проводника уменьшается на
множитель а2, удельное сопротивление увеличивается на тот же
множитель. Если длина проводника увеличивается в α раз,
сопротивление цепи увеличивается пропорционально. В то же время
изменение размеров приводит к изменению емкостей межсоединений. Если
проводниц рассматривать как одну из параллельных пластин
конденсатора, уменьшение обоих линейных размеров пластины на множитель
α означает уменьшение емкости на множитель α . Однако уменьшение
размеров означает также уменьшение на множитель α толщины
изолирующего слоя окисла, разделяющего пластины конденсатора. Поэтому
емкость фиксированного межсоединения уменьшится в α раз. Легко
видеть, что требования увеличения сопротивления и уменьшения
емкости являются взаимоисключающими, и постоянная времени
RC-цепи и задержка межсоединений цепи остаются неизменными.
1.3.2. Ограничения, связанные с межсоединениями и вводом-выводом
Поскольку при сокращении задержки размеры вентилей
уменьшаются, а задержки межсоединений при этом остаются неизменными,
скорость срабатывания схемы, возможно, будет определяться именно
задержками межсоединений, а не задержками активных приборов.
Однако реальная ситуация оказывается хуже благодаря фактору,
который можно назвать заполнением. Заполнение означает, что
длины межсоединений не уменьшаются, как предполагалось при
сокращении размеров, обратно пропорционально значению а. На практике по
мере роста сложности схемы расстояния, покрываемые
межсоединениями на кристалле фиксированной площади, должны оставаться почти
неизменными. Из статистических соображений [Keyes79] хорошая
аппроксимация максимальной длины L требуемого межсоединения
удовлетворяет выражению
Введение
25
Проводник
Изолятор
А/а2'
I
Легирование α Λ/χ
Легирование N
Рис. 1.6. Изменение размеров проводника (а) иполевого
МОП-транзистора (б) (а - масштабный коэффициент).
L = А'/2
max 2 '
где А - площадь кристалла. Поэтому с учетом эффекта заполнения
средняя задержка межсоединения на самом деле может возрасти.
Отметим, что если при изменении размеров увеличивается размер
кристалла, то проблема межсоединений становится еще более
острой. Когда время задержки схемы зависит главным образом от
задержки межсоединений (а не от задержки вентилей), минимальные и
локальные межсоединения становятся существенным фактором для
эффективной реализации схем на СБИС.
26
Глава I
Архитектуры, в которых сбалансированы задачи связи и
вычислений и ценой минимальных аппаратных затрат решены проблемы
обмена, будут играть основную роль при создании систем на СБИС.
Определяющим фактором здесь является ограниченное число
входных/выходных выводов. Очень часто требуется параллельная
передача сигналов во многих направлениях. (Например, для каждого узла
в архитектуре типа гиперкуб с N ПЭ требуется log^N шин
передачи.) В хорошем проекте должны учитываться ограничения на
число входных/выходных выводов и окончательная стоимость,
определяемая площадью и временем.
В соответствии с иерархическим принципом проектирования
сложный кристалл СБИС можно рассматривать как множество
подустройств, называемых "блоками". При изменении размеров
сложность блоков может возрастать, при этом растет и число
блоков, которое можно реализовать в системе. По мере роста числа
элементов в блоке растет также число межсоединений, связывающих
блоки. Это эмпирическое отношение хорошо известно как правило
Рента, которое определяет, что число межсоединений М, требуемое
для блока, содержащего N приборов, увеличивается примерно по
л/о
экспоненте Λί = N.
Например, блок, состоящий из 100000 вентилей, требует около
2000 межсоединений. Для кристалла 10 мм χ 10 мм это означает
появление контактной площадки через каждые 20 мкм. Следует
отметить, что правило Рента применимо только к схемам, состоящим из
случайных логических элементов. Матричные процессоры на СБИС
также удовлетворяют этому правилу, если только принцип
локальности соблюдается на каждом уровне проектирования с
использованием СБИС [Seitz84]. Если говорить о матричной архитектуре, то
типичными локальностями являются локальный обмен данными и
распределенное управление. Конечно, большинство рекурсивных
алгоритмов обработки сигналов поддерживают оба типа локальности,
которые в полной мере могут быть реализованы в матричных
архитектурах систолических и волновых процессоров. Этот важный факт
оказывает большое влияние на развитие интеграции в масштабе
пластины и субмикронной технологии .
По мере увеличения числа приборов, реализуемых на одном
кристалле, правило Рента может не выполняться и связанная с ним
экспонента может опуститься до значения ниже 0,5.
Введение
27
1.3.3. Регулярность и модульность
При проектировании систем на СБИС общая архитектура должна
быть по возможности регулярной и модульной, благодаря чему
сокращаются ошибки, время и стоимость разработки, а кристаллы
памяти и некоторых специальных операций становятся недорогими.
Даже при глобальной связи любой вид регулярности, извлекаемый
при разработке алгоритма, может оказаться полезным при
отображении алгоритмов на архитектуру.
Чрезвычайно полезной при проектировании систем на СБИС
является идея использования стандартных элементов (например,
макроячеек). Сочетание этой идеи со средствами высокого уровня,
такими, как кремниевые компиляторы, делает доступными разработчику
возможности гибкого проектирования.
1.3.4. Конвейерная и параллельная обработка
Производительность является основным фактором, определяющим
системные характеристики. Для оптимизации производительности
обработка сигналов в реальном времени требует широкого
привлечения параллелизма в виде конвейерной и параллельной обработки.
Более того, выбор того или иного проекта часто зависит от
степени минимизации общего времени обработки. В настоящее время
разработаны соответствующие методы конвейеризации, которые нашли
достаточно широкое применение во многих алгоритмах ЦОС.
В матричных процессорах для обработки сигналов принцип
конвейеризации должен быть реализован на всех уровнях.
Конвейеризация может увеличить производительность на порядок за счет
незначительных аппаратурных затрат. Хотя в большинстве современных
процессоров конвейеризация используется только на уровне слов,
имеется тенденция совмещать конвейеризацию на уровне разрядов,
слов и массивов.
1.3.5. Сопоставление глобально синхронных и асинхронных систем
Для систем на СБИС разработка схем синхронизации является
основной задачей. В этом смысле критичен выбор между синхронной
и асинхронной матричной обработкой [Kung82b, Frank82].
Асинхронная обработка базируется на принципах ЭВМ с управлением потоком
данных [Denni80], в которых поток данных используется для
инициации выполнения команд (в отличие от традиционных фоннейманов-
28
Глава 1
ских машин с хранимой программой, основанных на доступности
потока управления). В потоковых машинах активизация команды
связана лишь с доступностью операндов для этой команды. Такой подход
исключает необходимость глобального управления и глобальной
синхронизации, так как все взаимодействия модулей в потоковой сети
являются асинхронными. Необходимо также четкое манипулирование
зависимостями данных: обработка потока данных в общем случае
определяется графом потока данных, который отображает точные
зависимости данных [А11еп85].
В глобально синхронной схеме существует сеть глобальной
синхронизации, которая распределяет тактовые сигналы по всей
матрице [Fishe83]. В очень больших схемах фазовый сдвиг, возникающий
при распределении глобальных сигналов, приводит к вынужденному
уменьшению тактовой частоты. Действительно, в работе [Kung82b]
показано, что расфазировка тактовых сигналов может возрастать
при увеличении размера массива процессорных элементов со
скоростью, значительно превышающей линейную. Из этого анализа
следует, что если для массивов малого размера глобальная
синхронизация легко реализуема, то для массивов большого размера
предпочтительными являются асинхронные системы. Кроме того, полная
синхронность работы всех ПЭ в большом массиве приводит к высоким
мгновенным значениям потребляемой мощности. По мере развития
субмикронной технологии и интеграции в масштабе пластины
проблемы расфазировки тактовых сигналов и пиковых значений
потребляемой мощности, присущие распределению глобальных сигналов, будут
приобретать еще более острый характер. Поэтому локально
синхронные системы в перспективе более привлекательны, и глобальная
синхронизация должна по возможности исключаться уже на этапе
архитектурного проектирования.
1.3.6. Программируемость
Представляют интерес два типа матричных процессоров: один из
них характеризуется жесткой и предельно специализированной
структурой, другой допускает некоторую гибкость, определяемую
программируемостью и возможностью реконфигурации. "Запаянные"
специализированные процессоры характеризуются высокой скоростью
обработки, но отличаются большим временем разработки и высокой
стоимостью проекта. С появлением современных методов анализа
алгоритмов и архитектур программируемые матричные процессоры ста-
Введение
29
новятся не только более экономичными, но и более
привлекательными с точки зрения отображения постоянных изменений системных
спецификаций.
Основная цель в использовании параллельных языков [Ноаге78]
состоит в поиске простейшей математической теории, которая
должна:
1) описывать широкий класс алгоритмов, охватывающий задачи
обработки сигналов и изображений и многие прикладные задачи;
2) допускать эффективную реализацию на сетях связи ПЭ;
3) обеспечить ощутимую помощь программисту в решении задач
спецификации, разработки, реализации, верификации и аттестации
сложных вычислительных систем.
Хотя исходная идея систолических массивов ориентируется на
реализацию в виде специализированных систем, программирование и
программное обеспечение продолжают оставаться существенным
звеном, особенно для волновых процессоров. Поэтому для предлагаемых
матричных архитектур важно развивать полноценные пакеты
прикладных программ, а может быть, и формальную алгоритмическую нотацию
и язык программирования. Принципиальными аспектами в выражении
матричной обработки являются параллелизм и связь. С целью
упрощения разработки языка такой язык высокого уровня, как Оккам,
обычно игнорирует точные временные проявления тех или иных
событий.
1.3.7. Возможность реконфигурации и отказоустойчивость
Реконфигурация означает изменение рисунка соединений ПЭ в
различных целях (таких, например, как многофункциональность или
отказоустойчивость). Известны две стратегии реконфигурации:
статическая реконфигурация, реализуемая до начала выполнения задач,
и динамическая реконфигурация, формирующая связи в процессе
выполнения. Последняя стратегия используется в таких технических
системах, в которых схема связи не является детерминированной.
Выбор характера реконфигурации определяется требованиями области
приложений ( работа в реальном времени или надежность).
Для повышения производительности или надежности матричных
процессоров особое внимание следует уделить отказоустойчивости.
Отказоустойчивые проекты должны быть предметом исследований и в
процессе изготовления, и в процессе эксплуатации. В больших
двумерных матричных процессорах, созданных на большом кристалле или
пластине, появление фатальных дефектов растет экспоненциально с
30
Глава I
увеличением площади. Поэтому в сети необходимо использовать
некоторую разновидность отказоустойчивости обычно на уровне
процессоров, поскольку все процессоры одинаковы. Классический
подход к решению этой проблемы состоит в введении избыточности и
обходе неисправных модулей. Должны быть разработаны некоторые
способы введения избыточных ПЭ и замены ими плохих процессоров в
массиве. Из-за ограничений связи желательными становятся такие
свойства отказоустойчивых систем, как реконфигурация и возвраты.
В настоящее время разработано несколько алгоритмо-ориентирован-
ных подходов к реализации отказоустойчивости в системах
обработки сигналов и изображений в реальном времени. Если говорить
кратко, то для обеспечения отказоустойчивости стратегия
разработки матричных процессоров должна использовать регулярность,
локальность и самосинхронизацию, присущие систолическим и
волновым процессорам, и структурные свойства матричных алгоритмов.
1.3.8. Разбиение массива и кристалла
Часто возникают ситуации, когда размер вычислительного
массива не согласуется с размером задачи. Обычно размер задач,
решаемых на систолических и волновых процессорах, намного превышает
размеры массивов. Поэтому данные, используемые при решении
задачи, должны быть представлены в виде блоков, размер которых
соответствует размеру массива. Такое представление называют
"разбиением".
Другим важным вопросом является разбиение реализуемой
функции, если она не может быть размещена на одном кристалле.
Границы между кристаллами создают следующие основные проблемы:
1) жесткие ограничения на пропускную способность на кристалле
и вне кристалла;
2) существенное несоответствие между задержками связи на
кристалле и вне кристалла.
Кроме того, разбиение на кристаллы связано еще с двумя
вопросами - числом выводов и выбором между памятью на кристалле и
памятью вне кристалла. Например, память вне кристалла для
массива ПЭ умеренного размера потребует сотни входных/выходных
выводов и соответственно высокой мощности возбуждающего сигнала.
1.3.9. Иерархические методы автоматизированного проектирования
Усложнение СБИС делает необходимыми иерархические методы
автоматизированного проектирования. Такие подходы обязательны из-
Введение
31
за огромного числа МОП-вентилей, которое современная технология
может разместить на одном кристалле. Сложность разработки СБИС-
устройств характеризуется числом 50000 приборов для современной
технологии и до 1000000 приборов в будущем. Идея
автоматизированного проектирования Мида - Конвея обеспечивает базовую
методологию, которая может быть расширена иерархической системой
проектирования, включающей схемотехническое и временное
моделирование, а также контроль правил проектирования.
Уровни описания
Для того чтобы сохранить описание разработки понятным,
необходимо ввести различные уровни описания системы. Предлагается
пять таких уровней описания (рис. 1.7).
1. Алгоритмический уровень, описывающий алгоритмы на языке
высокого уровня или с использованием формальной нотации.
2. Архитектурный уровень, дающий точное описание системы и ее
структуры.
3. Уровень регистровой логики, который, начиная с
архитектурного описания, дает более подробное описание поведения
логических схем в терминах регистровых передач и выполнения операций.
4. Уровень электрических схем, описывающий детальную
электрическую структуру системы в терминах транзисторов, емкостей и
резисторов.
5. Уровень геометрического размещения, описывающий маску для
фотолитографии схемы.
Основная сложность в таком подходе к проектированию СБИС
связана с переплетением уровней. Особенно очевидно это при
проектировании створчатой решетки, объединяющем разработку
электрической транзисторной схемы и топологии. Эти два уровня трудно
разделить, потому что паразитные компоненты, влияющие на
электрическое поведение схемы, в сильной степени зависят от топологии.
Уровни описания образуют иерархию в соответствии с
уменьшением сложности описания элементов. Снижению стоимости разработки
способствует модульный принцип проектирования: дешевле
реализовать общий модуль, который может быть использован в различных
местах, чем разрабатывать специфический модуль для однократного
использования.
Любая цифровая система состоит из трех компонентов: памяти,
управления и обработки. Им соответствуют запоминающее
устройство, устройство управления и арифметическое устройство. Каждое
32
Глава ί
Цифровой
генератор
Система фазовой
автоподстройки частоты
a
% % 92 Q3
phi
ph2
Обнулить
Счетчик
phi
ph2
D ς
Q
Phi
ph2
RST
-L-
ς
>0
D Q
Q
phi
ph2
RST
-i-
ς
^
к
D Q
Q
phi
ph2
RST
—L-
ς
>2
D Q
Q
phi
ph2
RST
_1
Q3
—(
1
Обнулить
D Oj—
Qr
phl
ph2
RST
phi
ph2
X-o-^j>
4^
RST
Φ~Ξ
(PMOS)
Рис. 1.7. Пять уровней описания разработки.
а - алгоритмический уровень; б -
архитектурный уровень; в - уровень регистровой
логики; г - уровень электрических схем;
д - уровень геометрического размещения.
Введение
33
Цифровой элемент
Логика
Ячейка памяти управления Арифметика
Ячейка оперативной памяти АЛУ Полный сумматор
Рис. 1.8. Основные функциональные элементы цифровой схемы.
из этих устройств может быть построено из различных элементов.
Например, запоминающее устройство выполняется на основе триггер-
ных схем, логика устройства управления реализуется на
программируемых логических матрицах (ПЛМ), а арифметическое устройство
использует полные сумматоры (рис. 1.8). Специальный логический
модуль ПЛМ может быть использован для реализации любого
множества булевых уравнений, а при объединении с регистром состояний
может реализовать даже конечный автомат. ПЛМ может быть получена
непосредственно по описанию на уровне регистровых передач. В
общем случае с развитием средств высокого уровня для
проектирования будет появляться все больше и больше программ, способных
синтезировать большие фрагменты СБИС по описаниям регистровых
передач на высоком уровне.
Стиль разработки
Методы разработки СБИС могут быть классифицированы следующим
образом: полузаказной проект, полностью заказной проект и
кремниевая компиляция.
Полузаказной проект. Полузаказная разработка объединяет два
различных вида реализации схем - вентильные матрицы и
стандартные ячейки. Вентильная матрица - это матрица транзисторов. Заказ
3—1028
34
Глава 1
определяется описанием цепей связи между транзисторами.
Поставщики полупроводниковых схем могут производить и накапливать
базовые матрицы и индивидуализировать их по требованиям заказчика.
К достоинствам вентильных матриц относится быстрота настройки,
поскольку требуется лишь незначительная обработка, и уменьшенная
стоимость обработки, так как одни и те же базовые слои могут
быть использованы во многих вентильных матрицах. Их основной
недостаток заключается в том, что некоторые транзисторы вообще
не используются, что приводит к потере площади кристалла и в
конечном итоге к увеличению стоимости.
В кристаллах, спроектированных с использованием стандартных
ячеек, этот недостаток устранен. Кристалл со стандартными
ячейками состоит из заранее спроектированных блоков одинаковой
высоты и различной ширины, которые реализуют различные логические
функции. При проектировании с использованием стандартных ячеек
требуемые блоки размещаются в строках, а затем производится
связь входов и выходов для выполнения требуемой функции. В
результате площадь кристалла не оптимизируется, как в случае
полностью заказной схемы, где каждый элемент может быть разработан
индивидуально, но затраты на разработку значительно снижаются. В
этом смысле, а также с точки зрения стоимости кристаллы на
стандартных ячейках находятся где-то между вентильными матрицами и
полностью заказными схемами.
Полностью заказной проект. Цель заказного проекта -
минимизировать площадь кремниевого кристалла и оптимизировать
производительность. Проектирование заказной схемы включает разработку
ячеек, развитие и использование библиотеки ячеек,
автоматизированные трассировку и размещение ПЛМ, постоянных запоминающих
устройств (ПЗУ) и запоминающих устройств с произвольной выборкой
(ЗУПВ), моделирование на функциональном, логическом и временном
уровнях, верификацию, тестирование для проверки правильности
проектирования, определения электрических параметров и выпуск
кристалла в производство.
Кремниевая компиляция. Кремниевая компиляция поражает
воображение разработчиков возможностью автоматического генерирования
топологии по описанию высокого уровня схемы или системы
[Gajsk85]. Кремниевая компиляция включает задачи размещения,
модели схем и такие вопросы компиляции, как ячейки топологии,
компиляция с "односторонними" ячейками, реорганизация для
улучшения размещения и электрическое моделирование.
В то время как кремниевая компиляция во многом находится на
Введение
35
стадии исследований, компиляторы ячеек уже внедрены в
промышленность. Компилятор ячеек определяет множество логических функций
в библиотеке базы данных. Например, если требуется
спроектировать четырехвходовый вентиль НЕ-И с выходной нагрузкой 1 пкф и
задержкой на выходе 5 не, то все, что надо сделать, - это
выбрать вентиль НЕ-И и снабдить его определенными параметрами.
Компилятор ячеек автоматически сформирует кремниевую топологию.
Хотя используемая площадь будет отличаться от оптимальной (часто
на 10-15 % по сравнению с полностью заказной схемой), такое
решение оказывается вполне приемлемым.
В заключение отметим, что при проектировании матричных
процессоров спецификации системы, определяемые характером
прикладных задач, могут существенно изменяться, если процесс разработки
слишком затягивается. Поэтому важно быстро провести разработку,
и в этой связи средства автоматизированного проектирования на
всех уровнях разработки матричного процессора являются
существенными.
Создание методологии иерархического и структурного
проектирования и упрощенных правил разработки СБИС уже позволило ускорить
проектирование кристаллов СБИС. Хотя технология кремниевой
компиляции становится все более и более совершенной, важно, чтобы
были разработаны средства высокого уровня для описания и
структурного проектирования матричных процессоров. Важно также, чтобы
они были совместимы с существующими средствами низкого уровня
САПР и кремниевых компиляторов. Отсюда возникает уже упомянутая
идея матричного компилятора (см. рис. 1.1).
1.4. ОБЗОР СОДЕРЖАНИЯ ГЛАВ КНИГИ
Цель данной книги - изложение фундаментальных основ
проектирования матричных процессоров на СБИС прежде всего для таких
приложение, как обработка сигналов и изображений в реальном
времени. Важная особенность книги состоит в синергистическом и
связанном исследовании прикладных, алгоритмических и архитектурных
аспектов матричных процессоров на СБИС.
1.4.1. Интегрированное представление проблем создания матричных
процессоров на СБИС
Основной порядок в методологии вертикально-организованного
проектирования СБИС-систем, как показано на рис. 1.9, зависит от
фундаментального понимания алгоритмов, архитектур и прикладных
3*
36
Глава I
задач. Поэтому проектирование матричных процессоров объединяет
широкий спектр дисциплин, таких, как анализ алгоритмов,
обнаружение и выделение параллелизма, матричные архитектуры, методы
программирования, функциональные примитивы, структурные
примитивы, оценка производительности алгоритмов ЦОС. Для полного и
согласованного представления предмета книги были включены
следующие главы:
1. Введение.
2. Алгоритмы обработки сигналов и изображений.
3. Отображение алгоритмов на матричные структуры.
4. Систолические матричные процессоры.
5. Волновые матричные процессоры.
6. Разработка систем и программного обеспечения.
7. Реализация матричных процессоров.
8. Использование методологии проектирования систолических
вычислителей в обработке сигналов и изображений.
1.4.2. Глава 2. Алгоритмы обработки сигналов и изображений
Матричный алгоритм - это набор правил для решения задачи за
конечное число шагов с помощью большого числа связных машин.
Следовательно, матричный алгоритм зависит и от характеристик
машины и от стратегии связей. В результате анализа множества
подпрограмм обработки изображений были найдены их общие черты. К
ним относятся интенсивные вычисления, появление матричных
представлений и локализованные или перестановочные связи. Все это
указывает на перспективу систематической разработки матричных
архитектур. Другими словами, решение задач обработки сигналов и
изображений в реальном времени связано с созданием новейших
матричных процессоров для таких общих в обработке сигналов и
изображений функций, как свертка, БПФ и матричные операции.
Известны два типа алгоритмов - алгоритмы с локальной связью и
алгоритмы с глобальной связью. Большинство методов обработки
сигналов и изображений распадается на классы алгоритмов типа
свертки, фильтрации, обработки матриц, преобразований. Эти
алгоритмы обладают некоторыми общими полезными свойствами
(регулярность, рекурсивность и локальный обмен данными) и относятся к
классу алгоритмов с локальной связью. Другой важный класс
рекурсивных алгоритмов обработки сигналов относится к алгоритмам с
глобальной связью, в которых пространственное разделение узлов
выходит за определенный предел (типичным примером является алго-
Введение
37
f
Прикладные
задачи/описания
4
Постановка задач,
анализ алгоритмов
Τ
Отображение алгоритма
в матричную структуру
i
1
1
1
Разработка
матричного процессора
ι
f
Реализация
τ
1
Прикладные
задачи
_
ι
Прогр
обесп
Аппар
_
1
7
зммное
ечение
1
i
>атура
t
Рис. 1.9. Вертикальная организация проектирования СБИС-систем.
ритм быстрого преобразования Фурье (БПФ)). Архитектурные
исследования подтверждают, что аппаратные .затраты, определяемые
глобальной связностью, преобладают и оказывают заметное влияние на
производительность системы.
В гл. 2 рассмотрены общеупотребительные алгоритмы для решения
задач обработки сигналов и изображений. К ним относятся
матричные алгоритмы, дискретные системы, одно- и двумерная цифровая
фильтрация, свертка, корреляция, преобразования.
Кроме того, в главе представлены усовершенствованные
алгоритмические методы, включающие динамическое программирование,
методы релаксации и модельный отжиг. Наконец, здесь же обсуждаются
СБИС-алгоритмы и особое внимание уделено локально и глобально
рекурсивным алгоритмам.
38
Глава 1
1.4.3. Глава 3. Отображение алгоритмов на матричные структуры
Максимальный параллелизм в работе матричных процессоров на
СБИС может быть получен применением конвейерной и параллельной
обработки. Основной вопрос: как в полной мере выразить
параллелизм, присущий алгоритмам обработки сигналов и изображений!
В общем случае параллелизм достигается разбиением задачи на
независимые подзадачи, выполняемые конвейерным образом. Степень
параллелизма может существенно меняться для различных методов.
При отображении этих алгоритмов на параллельные процессоры
возникают следующие вопросы: Как структура матричного процессора
зависит от алгоритма! Как наилучшим образом реализовать алгоритм
в матричном процессоре!
Граф зависимостей (ГЗ) обеспечивает первый полезный шаг на
пути к стационарному ответу. Процесс разработки матричного
процессора включает последовательность промежуточных этапов,
которые связаны с построением ГЗ, отображением ГЗ на массив графа
потока сигналов (ГПС) и получением систолического массива из
ГПС.
Этап 1. Построение ГЗ. Для данной задачи разработчик' должен
идентифицировать подходящий алгоритм, описанный с помощью
определенного выражения. Рекурсивный алгоритм легко преобразуется в
ГЗ путем рассмотрения соответствующего
пространственно-временного индексного пространства и использования надлежащих дуг для
отображения зависимостей в индексном пространстве.
Этап 2. Построение ГПС. Выражение ГПС вначале состоит из
узлов обработки, ребер связи и задержек. Простой (хотя и не
единственный) способ отображения ГЗ на массив ГПС реализуется с
помощью проекции, которая назначает операции всех узлов на одной
линии одному ПЭ. Например, трехмерное индексное пространство ГЗ
может быть спроецировано на двумерный массив ГПС.
Этап 3. Разработка матричного процессора. ГПС, полученный на
этапе 2, может быть затем отображен в SIMD-машину,систолический
массив, волновой массив или даже в MIMD-машину. Например, для
преобразования ГПС в систолический массив может быть принята
процедура систолизации (ресинхронизации), основанная на сечении.
В главе 3 вводятся методология канонического отображения для
отображения однородных ГЗ на процессорные массивы и методология
обобщеного отображения для отображения неоднородных ГЗ на
процессорные массивы.
Для разработки матричных процессоров имеется большое число
Введение
39
алгоритмов, обладающих полезными свойствами полной регулярности
и локализуемости. Этому важному классу алгоритмов принадлежат,
например, матричное умножение, свертка, авторегрессионная
фильтрация, дискретное преобразование Фурье (ДПФ), дискретное
преобразование Адамара, преобразование Хафа, метод наименьших
квадратов, сортировка, перспективное преобразование, медианная
фильтрация, LU- и QR-разложения. Использование регулярности
значительно упрощает разработку матричных процессоров для указанных
алгоритмов. Методология канонического отображения удобна для
работы с таким классом алгоритмов, которые могут быть выражены
графами зависимостей, инвариантными относительно сдвига. Этот
метод отображения состоит из трех этапов разработки, каждый из
которых использует соответствующую каноническую форму.
Методология обобщенного отображения позволяет использовать
более широкий класс алгоритмов и соответствующих графов
зависимостей. Имеются много других важных алгоритмов, которые не
являются полностью регулярными (т.е. не полностью инвариантны
относительно сдвига), но демонстрируют определенную степень
регулярности. Эта полурегулярность часто оказывается полезной для
методов эффективного отображения. Методология обобщенного
отображения позволяет иметь дело с расширенной классификацией ГЗ и
сделать выбор между линейными и нелинейными назначением и планом.
Большая гибкость возникает и при использовании мультипроекций,
допускающих глобальную связь и позволяющих использовать
полностью нерегулярные структуры ГЗ. Методология обобщенного
отображения может привести к эффективным разработкам для многих
алгоритмов решения таких задач, как исключение Гаусса - Жордана,
задачи о кратчайшем пути, транзитивное замыкание, модельный
отжиг, уравнения с частными производными, сингулярное разложение
(SVD), БПФ, декодирование Витерби.
1.4.4. Глава 4. Систолические матричные процессоры
Если говорить о СБИС-реализациях, то аппаратура памяти и
обработки оказывается относительно недорогой. Внимание должно
уделяться сохранению регулярности всей архитектуры и снижению ее
сложности. Хорошие СБИС-архитектуры должны быть предельно
конвейеризованными и иерархическими. Поэтому они требуют хорошо
структурированных алгоритмов с предсказуемыми результатами.
Поскольку связь остается для СБИС ограничивающим фактором,
локальность рекурсивного алгоритма имеет большое значение. Можно ожи-
40
Глава 1
дать увеличения эффективности, если алгоритм структурирован с
учетом сбалансированного распределения рабочей нагрузки при
соблюдении требования локальности, т.е. использования коротких
путей связи.
Первым результатом, основанным на такой постановке, является
структура систолического массива. Систолическая система - это
сеть процессоров, которые производят ритмичные вычисления и
передачу данных по системе. Каждый процессор регулярно прокачивает
данные, выполняя в каждый момент короткие вычисления, с тем
чтобы в сети сохранялся регулярный поток данных [HTKun78].
Систолические массивы доступны для СБИС-реализации, поскольку обладают
важными свойствами модульности, регулярности, локальной
связности и конвейерной, синхронной мультиобработки.
Если в гл. 3 рассматривались систематические методологии
отображения алгоритмов на структуры ГПС, то гл. 4 предлагает
основанную на сечении процедуру ресинхронизации для преобразования
массивов ГПС в синхронные систолические массивы. В этой же главе
рассмотрены некоторые вопросы и предложения, касающиеся
проектирования оптимальных систолических массивов, такие, как
максимизация производительности, минимизация требуемого числа элементов
задержки, оптимизация использования процессоров, времени
ожидания и блочного конвейерного такта. Представлены систолические
структуры для многих алгоритмов, в том числе для фильтрации,
свертки, матричных операций и сортировки. Обсуждается
систолический проект с двухуровневой конвейеризацией. Предложены также
оптимальные Структуры для некоторых задач динамического
программирования (задачи о транзитивном замыкании и о кратчайшем пути).
1.4.5. Глава 5. Волновые матричные процессоры
Тот факт, что действия в систолическом массиве должны быть
управляемы синхронизированной "пульсацией", ставят систолические
структуры в неблагоприятное положение: на аппаратном уровне
глобальная синхронизация привносит такие проблемы, как расфазировка
тактовых сигналов, отказоустойчивость и максимальная
потребляемая мощность. Необходимость в синхронизации всей вычислительной
сети неизмеримо возрастет для сверхбыстродействующих ультраСБИС-
массивов.
На уровне программного обеспечения жесткие требования
предъявляются к разработке компилятора для того, чтобы синхронизовать
действия в систолическом массиве, простым может оказаться реше-
Введение
41
ние использовать принцип вычислений, управляемых потоком данных.
Такой путь приводит к разработке волновых матричных процессоров.
Благодаря принципу управления потоком данных в волновых
матричных процессорах команды могут начинать выполнение, как только
станут доступными их операнды. При таком подходе поступление
данных из соседних процессоров будет интерпретироваться как
изменение состояния и инициировать некоторое действие. Волновые
процессоры своим действием напоминают процесс распространения
волны и представляют собой распределенную и глобально
асинхронную матричную систему обработки. Этот подход заменяет требование
корректной синхронизации требованием корректного упорядочения и
позволяет оперировать зависимостями данных локально. Таким
образом, он исключает необходимость в глобальном управлении и
глобальной синхронизации.
В общем случае имеются два подхода к построению волновых
массивов. Традиционный подход состоит в отслеживании вычислительных
фронтов и их конвейерной закачки в процессорный массив. Здесь
предлагается другой подход, который основан на преобразовании
ГПС-массива в массив графа потока данных (ГПД), а затем -
волновой массив путем введения нескольких ключевых элементов
потоковых вычислений.
В гл. 5 выделены понятия волновой обработки и потоковых
вычислений. ГПД формально представлен как абстрактная модель для
волнового матричного процессора. Прежде всего рассмотрен вопрос
преобразования ГПС в ГПД с помощью эквивалентной процедуры.
Затем представлен полный временной анализ для обобщенных
(циклических или ациклических) ГПД-сетей, основанный главным образом
на понятии синхронизированных сетей Петри [Ramam80]. Анализ
позволяет также определять минимальное число буферов, требуемых на
всех ребрах ГПД для того, чтобы достичь максимально возможной
производительности.1
С учетом понятия волновой обработки разработка языков для
матричных процессоров может быть несколько упрощена. В гл. 5
рассмотрены два языка для программирования на матричных
процессорах - волновой язык (MDFL) и Оккам.
MDFL основан на понятии вычислительных фронтов, Оккам был
разработан фирмой INMOS. Оба варианта весьма сходны, поскольку
каждый из них использует принцип потока данных для упрощения
описания параллельных перемещений данных и вычислений в
матричных процессорах на СБИС.
42
Глава 1
1.4.6. Глава 6. Разработка систем и программного обеспечения
В гл. 6 рассмотрен ряд важных вопросов, связанных с
разработкой матричных процессоров, в том числе обсуждение общей
структуры системы, алгоритмическое разбиение при ограничении ресурсов,
алгоритмы отказоустойчивости и, наконец, программное обеспечение
и средства автоматизированного проектирования.
Если говорить об общей структуре системы, то основными
компонентами матричной системы являются: 1) ведущая ЭВМ; 2) система
сопряжения, включающая буферную память и устройство управления;
3) сети обмена; 4) массив процессоров, состоящий из процессорных
элементов с локальной памятью. Ведущая ЭВМ поддерживает хранение
и форматирование данных, а также управление планирующей
программой. Система сопряжения, связанная с ведущей ЭВМ шиной,
реализует функции подкачки и откачки данных. С помощью планирующей
программы контроллер отслеживает действия системы сопряжения и
матричного процессора. Система сопряжения должна также
обеспечить адекватную аппаратную поддержку для выполнения общепринятых
операций управления данными. Сети обмена реализуют множество
отображений между процессорами и модулями памяти,
соответствующих определенным требованиям глобальной связи. Введение
конкретных структурных соединений может существенно повлиять на
повышение производительности матричных процессоров.
В этой главе обсуждаются вопросы разбиения для структур
матричных процессоров. В общем случае имеются две схемы
разбиения задачи: локально последовательная, глобально параллельная
(ЛПосГПар) и локально параллельная, глобально последовательная
(ЛПарГПос). В схеме ЛПосГПар кластер соседних виртуальных
процессоров отображается на реальный процессор, в то время как в
схеме ЛПарГПос окно размером в реальный массив продвигается по
задаче, обрабатывая ее. В обсуждение включены также методы
согласования алгоритмов с некоторыми выбранными матричными
архитектурами, такими, как сеточный массив или гиперкуб.
В этой же главе рассматривается очень важный вопрос
отказоустойчивости матричных процессоров, включая ее обеспечение при
изготовлении и функционировании. Отказоустойчивость при
изготовлении позволяет обеспечить экономный выход годных при
возможном наличии дефектов изготовления. С другой стороны,
определенный вид отказоустойчивости должен быть использован для
того, чтобы предотвратить неисправности, возникающие в процессе
работы. Предложены два подхода - архитектурный и алгоритмичес-
Введение
43
кий. Архитектурный подход основан на реконфигурации матричной
структуры, чтобы можно было выполнять задачу на массиве
уменьшенного размера [Fort85a]. Алгоритмический подход использует
мощное представление ГЗ и определенные алгебраические свойства,
присущие многим алгоритмам ЦОС в реальном времени, для того
чтобы восстановить правильные результаты при использовании
неисправного процессора.
Практическая реализация матричных процессоров на СБИС имеет
специализированный или программируемый характер. Программируемые
массивы часто предпочтительнее, поскольку позволяют работать с
постоянно изменяющимися формулировками прикладных задач. Однако
матричное программирование оказывается значительно сложнее
последовательного из-за трудности слежения за несколькими
одновременно происходящими событиями. Желательно вместо традиционных
языков программирования иметь новые представления или новые
языки, соответствующие матричным процессорам. Важно также
разрабатывать логически связанные программные методы для
программирования или проектирования матричных процессоров. (Для удобства
пользователей был бы полезен набор пакетов прикладных программ.)
В гл. 6 рассмотрен ряд языков программирования, а также
предложен подход к развитию интегрированных САПР высокого уровня,
облегчающих отображение алгоритмов и их согласование с матричными
архитектурами.
1.4.7. Глава 7. Реализация матричных процессоров
При реализации матричных процессоров с использованием СБИС-
технологии тратят меньше аппаратуры, энергии и достигают более
высокого быстродействия. В гл. 7 рассмотрены два аспекта такой
реализации.
• Реализация на уровне процессоров: как наилучшим образом
реализовать систолические и волновые массивы с использованием
имеющихся или заказных компонентов}
• Реализация на системном уровне: как можно ввести мощные
средства матричной обработки в общую структуру системы с ведущей
ЭВМ}
При реализации на уровне процессоров рассмотрены основные
элементы кристаллов ЦОС, их спецификация и способы их
соединения. Внимание уделяется таким основным свойствам процессоров
ЦОС, как скорость, точность, конвейеризация, гарвардская архи-
44
Глава 1
тектура, RISC-архитектура, режимы адресации, последовательная
или параллельная поразрядная обработка.
Типовой набор элементарных операций процессоров ЦОС должен
включать арифметические и логические операции, операции
считывания и записи данных, операции управления, ввода-вывода и связи.
Примерами коммерчески доступных кристаллов СБИС, заслуживающих
внимания при реализации матричных процессоров, являются
транспьютер фирмы INMOS, GAPP фирмы NCR, потоковый кристалл μΡΩ7281
фирмы NEC, программируемый кристалл TMS320 для ЦОС фирмы TI, а
также такие 32-разрядные процессоры, как AND 29325, Motorola
68020 и 32-разрядные (в настоящее время и 64-разрядные)
кристаллы с плавающей запятой Wei tec [Ware84]. Многие задачи ЦОС
требуют специальных возможностей, таких, как быстрое умножение с
накоплением, быстродействующие ЗУПВ, быстроадресуемая таблица
коэффициентов и т.д. Они должны быть учтены при разработке
специализированных, ориентированных на реализуемые задачи ИС для
матричных процессоров.
В этой главе представлены некоторые существующие системы с
матричными процессорами и проведено их сравнение. Примеры
включают SIMD-массивы, систолические массивы, волновые массивы,
матричные массивы типа гиперкуб и перспективные матричные
архитектуры.
1.4.8. Глава 8. Использование методологии проектирования
систолических вычислителей в обработке сигналов и изображений
В гл. 8 показано, как применять методологию проектирования
матричных процессоров при создании высокоскоростных параллельных
процессоров для обработки сигналов на основе систолических и
волновых процессоров. Рассматриваемые прикладные задачи включают
оценивание спектра, обработку речевых сигналов, обработку и
анализ изображений.
В матричных процессорах используется характерное
алгоритмическое подобие задач оценивания спектра, формирования диаграммы
направленности и калмановской фильтрации. Алгоримы для решения
этих задач основаны на формулировке задачи наименьших квадратов.
Можно показать, что для такого типа алгоритмов наиболее
предпочтительной является треугольная конфигурация массива.
Использование треугольного массива для формирования диаграммы
направленности и калмановской фильтрации рассмотрено в главе подробно.
Основными задачами в обработке речевых сигналов являются ана-
Введение
45
Аиз и синтез речи, кодирование речи и распознавание речи. В этой
главе представлены структуры матричных процессоров для решения
указанных задач. Примеры разработок охватывают методы линейного
предсказания для анализа и синтеза речи, векторное квантование
для кодирования речи и динамическое изменение масштаба времени
для распознавания речи.
Для задач обработки изображений рассмотрены два класса
проблем: грубая обработка изображений и тонкая обработка
изображений. Обработка изображений включает алгоритмы для
преобразования, улучшения, восстановления и реконструкции. Анализ
изображений основан на распределении сегментов или признаков
изображения по известным классам.
Как пример обработки изображений в этой главе рассмотрены
матричный процессор, выполняющий медианную/ранговую фильтрацию для
улучшения изображений, методы релаксации для восстановления
изображения и методы интерполяции для реконструкции изображения.
При анализе изображений приведены примеры решения задачи
обнаружения яркостных переходов для выделения признаков,
преобразования Хафа для выделения прямых и кривых и сопоставления с
шаблоном для классификации образов.
1.5. ДРУГИЕ БЛИЗКИЕ ТЕМЫ ИССЛЕДОВАНИЙ
1.5.1. СБИС и интеграция в масштабе пластины
Реальное оборудование матричной обработки в виде
систолических и волновых процессоров является громоздким и потребляющим
много энергии. Даже при реализуемом в настоящее время
критическом размере и доступных методах упаковки существуют жесткие
ограничения на объем оборудования, которое можно разместить на
кристалле СБИС. Увеличение на порядок плотности упаковки
возможно в настоящее время при переходе к технологии интеграции в
масштабе пластины. Поэтому важно исследовать возможности резкого
улучшения метрических, весовых и энергетических факторов путем
реализации архитектур с массовым параллелизмом на кремниевой
пластине.
Технология интеграции в масштабе пластины может привести к
существенному увеличению производительности по сравнению с
обычным методом, когда отдельно корпусированные кристаллы
устанавливаются на печатной плате. К ее принципиально важным достоинствам
46
Глава 1
относятся: 1) сокращение длины межсоединений; 2) возможность
применения смешанных полупроводниковых технологий; 3) увеличение
тактовой частоты; 4) реализуемость динамических соединений.
Выгоды, ожидаемые при реализации систолической технологии на
пластине, многообразны: присущая систолическим и волновым
архитектурам локальность связей делает интеграцию в масштабе
пластины особенно привлекательной. Однако проблема рассеяния мощности
остается в основном нерешенной.
Представляют интерес две разновидности технологии интеграции
в масштабе пластины: 1) монолитные схемы процессоров на пластине
и 2) гибридные подходы, включающие "перевернутые кристаллы" на
монолитных подложках.
Монолитные ИС на пластине. Предложено, чтобы различные
кристаллы, требуемые для реализации конкретной схемы,
прорабатывались и связывались на пластине. Такая схема получила название
монолитной. К ожидаемым преимуществам относятся: снижение
стоимости благодаря исключению процессов разрезания и корпусирова-
ния, увеличение плотности размещения из-за отсутствия
межкорпусного пространства, повышение скорости в связи с уменьшением
длины межсоединений и улучшение надежности при сокращении числа
компонентов системы. Несмотря на значительные успехи в лазерной
реструктуризации межсоединений монолитных ИС, остается еще
крайне необходимая для введения избыточности и выхода годных и
надежности система многослойной металлизации. До сих пор
технология монолитных ИС не гарантирует приемлемый выход годных. Однако
быстрый прогресс в развитии технологии интеграции на пластине
позволяет надеяться на улучшения в ближайшем будущем.
Гибридные ИС на пластине. Любая схема, которая использует
предварительно оттестированные, но неупакованные кристаллы,
собирает и связывает их на подложке, может быть названа гибридной
ИС на пластине. В гибридной схеме, поскольку отдельные кристаллы
уже проверены и полностью работоспособны, нет необходимости в
сложных избыточных схемах, что значительно упрощает систему
межсоединений и приводит к повышению выхода годных. Один из
подходов в гибридной технологии на пластине называется технологией
"перевернутых кристаллов". Материал подложки несет два слоя ме-
Введение
47
тализированных межсоединений . Поскольку кристаллы не корпусиро-
ваны, может быть достигнута высокая плотность размещения.
Высокая плотность в свою очередь, приводит к высокой скорости
благодаря сокращению задержек межсоединений. Отсутствие необходимости
упаковки отдельных кристаллов может также привести к сокращению
стоимости при условии оптимизации выбора материала подложки и
процессов обработки.
Разработка матричных процессоров на пластине. При современных
технологиях разработка отказоустойчивых систолических и волновых
процессоров с использованием технологии интеграции в масштабе
пластины становится реальной целью. Поэтому необходимо разраба
тывать такие отказоустойчивые архитектуры. При этом необходимо
рассмотреть методы обнаружения неисправностей, реконфигурации
массивов для обхода неисправных элементов, топологии связей эле
ментов и методы обеспечения надежности центрального контроллера
[Raffe85, Jessh85].
Для отказоустойчивых систем на пластине разработка аппаратуры
ПЭ массива должна учитывать оптимальное разбиение на модули.
Проектирование должно представлять собой детальную разработку
блоков с моделированием критических цепей с целью проверки их
эффективности, быстродействия и потребления энергии. Кроме того,
должна быть разработана архитектура на системном уровне, описы
вающая включение предполагаемых систолических и волновых процес
соров на пластине в подсистему обработки, состоящую из памяти,
управляющих структур, сопряжения с ведущей ЭВМ и ввода-вывода
данных.
В заключение отметим, что архитектуры систем параллельной
обработки и систолических процессоров являются важными для
достижения уровней производительности, требуемых при работе в
реальном времени. Технология интеграции в масштабе пластины
обладает преимуществами в этой области. В гл. 6 интеграция в
масштабе пластины и отказоустойчивость будут обсуждены более
подробно.
Контактные площадки ввода-вывода кристаллов, которые должны
быть соединены, наносятся в виде контактных столбиков, покрытых
припоем. Эти кристаллы перевернуты на подложке. Подложка
нагревается, чтобы расплавить пайку, реализующую контакт. Другие
компоненты (емкости и резисторы) также могут быть смонтированы
рядом с кристаллами.
48
Глава I
1.5.2, СБИС и оптическая обработка
Оптическая обработка предлагает другой, дополняющий подход
[Goodm]. Оптические компьютеры обрабатывают информацию,
закодированную в пучках света. Поэтому оптические вычисления при
определенных операциях делают потенциально достижимыми для обработки
сигналов и изображений вычисления со скоростью света, устраняя
ограничения для арсенидо-галлиевых СБИС и других электронных
технологий.
Достоинства оптической обработки. Оптические вычисления
обладают дополнительными достоинствами. Оптические линзы выполняют
определенные математические вычисления намного эффективнее, чем
их электронные аналоги. Алгебраические оптические матричные
процессоры должны оказаться технически осуществимыми. Свойства
линзы могут быть использованы для преобразования Фурье, сверток и
других математических операций, как, например, умножение матриц
в линейной алгебре. Высокоплотная трехмерная память для хранения
данных может быть осуществлена с помощью оптической голографии.
Ограничения на пространство межсоединений и расфазировка
тактовых импульсов, присущая проводной связи, здесь исключаются
[Huang84]. (В настоящее время проводятся исследования по
организации фиксированных и изменяемых соединений [Goodm84].) Наконец,
оптическая обработка обладает уникальным свойством радиационной
стойкости.
Недостатки оптической обработки. По сравнению с цифровой
технологией оптическая обработка характеризуется ограниченной
гибкостью, меньшими возможностями программирования и низкой
точностью. Более того, оптическая технология еще недостаточно
развита. Этим объясняется, почему до сих пор оптические компьютеры
не стали еще коммерчески доступными, если не считать некоторых
приборов, используемых в военных целях ( как антенны РЛС с
синтезированной апертурой). В настоящее время не существует
оптической технологии (например, бистабильного оптического
материала), которая могла бы реализовать высокоскоростные оптические и
нелинейные операции. Наконец, производительность всей системы
часто падает из-за дополнительных затрат времени на цифро-
аналоговые и аналого-цифровые преобразования [PSalt84].
Гибридные СБИС и оптические матричные процессоры. Гибридные
СБИС и оптические матричные процессоры представляют собой новое
направление развития быстродействующей суперкомпьютерной
технологии. Гибридные системы обладают достоинствами оптики (эффек-
Введение
49
тивные линейные операции и связь) и электроники (эффективные
нелинейные операции). Некоторые гибридные проекты используют
систолические массивы для осуществления параллельной обработки
цифровых и аналоговых данных. Оптические СБИС-системы
распознавания образов используют также присущее оптическим системам
свойство преобразований для быстрого вычисления корреляции. Для
многих областей применения гибридные системы приведут к заметным
улучшениям таких характеристик, как стоимость, размеры, вес,
потребление энергии и надежность. В некоторых важных областях
гибридные СБИС и оптические гибридные матричные процессоры
являются технологией следующего поколения, заменяющего электронные
компьютеры. К таким применениям относятся распознавание образов,
преобразование Фурье, выделение признаков, корреляция,
классификация сцен, анализ изображений, машинное зрение, анализ
буквенно-цифровых данных, обработка сигналов с помощью антенны с
синтезированной апертурой.
Оптические вычисления незаменимы при решении вычислительно
емких задач военного и промышленного применения. Таким образом,
имеются сильные побудительные причины для разработки оптоэлек-
тронных компонентов и приборов. Представленная в гл. 3-5
информация и методология отображения для матричных процессоров на
СБИС хотя и не связаны напрямую с оптической матричной
обработкой, могут оказаться полезными для разработки оптических
матричных процессоров по мере развития этой технологии.
В табл. 1.3 представлено сравнение цифровых оптических и
СБИС-систем обработки и соответствующих технологий [Jenki87].
1.5.3. Супервычисления на СБИС, ориентированные на задачи
искусственного интеллекта
Высокопроизводительная числовая обработка была преобладающим
требованием для научных вычислений и ЦОС. Благодаря регулярности
большинства алгоритмов числовой обработки для их реализации
могут быть эффективно использованы матричные процессоры на СБИС с
предельно локальными и регулярными связями. С другой стороны,
символьные вычисления, используемые в задачах искусственного
интеллекта, демонстрируют крайне нерегулярные структуры связи.
Например, узлы в семантической сети могут иметь коэффициент
ветвления (число соединений), изменяющийся от 0 до 10000 и
более. В матричном процессоре на СБИС с фиксированным и
ограниченным числом соединений между ПЭ нельзя разместить всю связанную
информацию для ближайших соседних узлов.
4—1028
50
Глава 1
Таблица 1.3. Сравнение цифровых, оптических и СБИС-систем
обработки и технологий (из работы [Jenki 87]). Отметим, что
параметры для энергии переключения и скорости относятся
только к отдельному вентилю
Оптическая обработка СБИС-обработка
Характеристики
системы
• Физические
соединения
•
Алгоритмическая связь
• Ввод-вы вод
Физические
характеристики
• Число
вентилей
• Энергия
переключения
• Время переклю-_
чения вентиля
Глобальные и
локальные (например,
пирамида ячеек)
Глобальная и
локальная (например, БПФ)
Параллельный
Большое
Пикоджоули-фитоджоу-
ли
ЮОпс
Только локальные
(например,
систолические и волновые
массивы)
Только локальная
(например,
умножение векторов
или матриц, ДПФ)
Ограничения по
числу выводов
Большое
Пикоджоули-
фитоджоули
Наносекунды
Большие усилия необходимо приложить для поиска архитектур на
СБИС применительно к задачам искусственного интеллекта [Hwang86,
Moldo86]. Подобные машины должны обладать другими свойствами,
отличными от свойств матричных процессоров на СБИС для задач
числовой обработки. Основные из этих отличий следующие:
• Большой размер задачи. Из-за гигантских размеров задач
число процессорных элементов в системе искусственного интеллекта
должно быть очень большим. Например, прототип Connection Machine
СМ-1 [НПП85] содержит 64К процессорных элементов.
• Частое обращение к памяти. Обращения к памяти происходят
очень часто. Чтобы решить эту проблему, можно ввести локальную
память в каждый процессорный элемент. Например, каждый ПЭ машины
СМ-1 имеет специализированные 4К-битовые ячейки памяти.
Введение
51
• Напряженная и нерегулярная связь. Связь между процессорными
элементами должна быть быстрой и гибкой. Например, в СМ-1
основными элементами являются заказные КМОП-кристаллы, каждый из
которых содержит 16 процессоров и 1 маршрутизатор. Маршрутизатор
предназначен для проведения сообщений между кристаллами, которые
физически связаны сетью типа 12-мерный гиперкуб.
• Ассоциативная обработка. Существуют два типа структур
памяти: традиционная (с адресацией ячеек) и ассоциативная. Было
признано, что память ассоциативного типа выполняет функции, сходные
с действиями головного мозга человека. Действительно,
распространенный подход к реализации ассоциативной памяти основан
на нейронных сетях. В результате возникает понятие ассоциативный
процессор, основными свойствами которого являются распознавание
и исправление ошибок при частично или полностью хаотическом
входе [ Kohoe72].
• Сравнение с образцом и теоретико-множественные операции.
Символьная обработка требует выполнения сравнений с образцом и
логических теоретико-множественных операций (объединение,
пересечение, отрицание) над большими базами данных. С точки зрения
архитектурной перспективы для этого требуется возможность
распространения сообщений, позволяющая производить сравнение или
унификацию в параллель.
В последнее время для задач искусственного интеллекта были
предложены коннекционистские сети [Fahlm87]. Смысл их состоит в
том, что процессы хранения и поиска информации более не связаны
с обычными ячейками памяти. Вместо этого они выполняются путем
изменения рисунка связи по большому числу примитивных ячеек
и/или модификации определенных весовых параметров, соотнесенных
с каждой связью. Примеры сетей Хопфилда и Больцмана для
некоторых задач ассоциативного поиска и оптимизации обсуждаются в
гл. 2. Архитектурный пример - машина СМ-1 - представлен в гл. 7.
1.5.4. Взаимодополняющие роли универсальных суперЭВМ и матричных
процессоров
С помощью технологии СБИС уже реализованы суперкомпьютерные
системы, способные производить тысячи миллионов операций с
плавающей запятой в lc (MFLOPS). Коммерчески доступны такие
суперЭВМ, как Cray 1/2, Cyber 205 и HEP в США, Fujitsu VP 200,
Hitachi S-810/20 и NEC SX-2 в Японии. Универсальные суперЭВМ
обладают большой гибкостью и оснащены множеством пакетов при-
4*
52
Глава 1
кладных программ для решения конкретных научных задач. Однако
сложные управляющие функции в универсальных ЭВМ часто
ограничивают производительность при выполнении задач обработки сигналов
и изображений. В этой ситуации единственно эффективной
альтернативой для обработки в реальном времени оказывается массовый
параллелизм. Поэтому для специальных применений автономные или
периферийные матричные процессоры окажутся более эффективными.
Технология СБИС и современные САПР облегчают создание более
быстрых прототипов и реализацию предметно-ориентированных (или
алгоритмо-ориентированных) матричных процессоров. Имеются два
важных соображения относительно будущего специализированных
матричных процессоров. Во-первых, благодаря технологии СБИС
становится осуществимой реализация больших матричных процессоров с
точки зрения стоимости и потребления энергии. Во-вторых,
благодаря САПР время разработки и изготовления таких процессоров
резко сокращается.
Для универсальных суперЭВМ развитие методов программирования
и програмного обеспечения обычно связано с конкретной
аппаратурой. С другой стороны, разработка аппаратуры матричного
процессора (специализированного или программируемого) тесно связана с
анализом алгоритмов и специальными языками программирования.
Разумный компромисс при выборе между отдельными суперЭВМ или
специализированными матричными процессорами лежит в их
взаимодополняющей роли для систем обработки сигналов и изображений в
реальном времени. В этом случае суперЭВМ будет представлять
собой ведущую машину, выполняющую функции центрального управления,
планирования ресурсов и управления базой данных, но, самое
главное, сверхскоростного сопряжения ввода-вывода с периферийными
матричными процессорами. В свою очередь параллельные матричные
процессоры будут эффективно выполнять такие действия, как БПФ,
цифровая фильтрация, корреляция, умножение и обращение матриц и
многие другие вычислительно трудные задачи.
1.6. ЗАКЛЮЧЕНИЕ
Все мы были свидетелями быстрого развития методов вычислений
и обработки сигналов, которое последовало за изобретением
транзистора в 40-х годах и созданием интегральных схем в конце 50-х
годов. Новая технология СБИС наряду с современными рабочими
станциями, САПР и другими аппаратными и программными
достижениями компьютерной технологии фактически гарантирует начало эры
Введение
53
информационной обработки в ближайшем будущем. Действительно,
темпы исследований и разработок в суперкомпьютерной технологии
продолжают нарастать. В частности, систолические и волновые
матричные процессоры являются весьма перспективными для широкого
диапазона применений в задачах обработки сигналов и изображений.
Исследования и разработки матричных процессоров будут играть
основную роль в определении тенденции развития будущей
суперкомпьютерной технологии.
Фундаментальным является вопрос о формах исследования
матричных процессоров на СБИС в данное время, а также в ближайшем и
отдаленном будущем. В узком смысле СБИС представляет собой область
исследования приборов, в то время как матричный процессор
принадлежит области исследования компьютерной техники. Однако в
широком смысле существует тесная взаимосвязь между СБИС и
матричными процессорами, что побуждает к новым исследованиям в
области матричных СБИС-процессоров. Конечно, матричные
процессоры, реализованные на СБИС, предоставляют новые возможности для
дальнейшего совершенствования суперЭВМ. По нашему мнению, эта
область исследований имеет значительно более глубокий смысл, чем
просто разработка многочисленных систолических проектов для коет-
кретных алгоритмов или приложений. Суть дела состоит в
систематической методологии отображения прикладных задач и алгоритмов
на матричные архитектуры. Другими словами, исследовательская
сущность матричных процессоров на СБИС связана с новым значением
термина "интеграция". Этот термин должен означать вертикальное
объединение таких кажущихся различными областей, как приложения,
алгоритмы, архитектуры и технология.
1.7. ЗАДАЧИ
1. Эффекты масштабирования в СБИС. Теория подобия первого
порядка, которая основана на модели постоянного поля, указывает,
что характеристики МОП-прибора и его операционные особенности
могут быть сохранены при изменении критических параметров
прибора на коэффициент а, как указано в табл. 1.4.
а) Заполните полностью таблицу, дав краткие пояснения.
б) Для постоянного размера кристалла длина некоторых
сигнальных путей, проходящих через кристалл, обычно не уменьшается. Это
называется эффектом заполнения. Задержку провода можно
промоделировать произведением RC, где R - линейное сопротивление, а С -
входная емкость затвора или линейная емкость (в зависимости от
54
Глава 1
Таблица L4
Параметры прибора/схемы Коэффициент
масштабирования
Размеры прибора (длина, ширина, толщина 1/а
окисла, глубина перехода)
Концентрация легирующей примеси α
Напряжение источника питания 1/а
Область затворного окисла 1
Емкость затворного окисла
Ток
Задержка вентиля
Мощность рассеяния
Произведение мощности на скорость
Площадь вентиля
Плотность мощности
Линейное сопротивление
Линейная емкость
Линейное время срабатывания
Линейное падение напряжения
Линейная плотность тока
того, что больше). Объясните влияние масштабирования на задержку
провода в связи с заполнением.
в) Каково влияние задержки провода при заполнении, плотности
линейного тока и предельно допустимой мощности соответственно на
СБИС-технологию?
2. Модель Веа для определения ускорения, доступного β
параллельной системе. Пусть ρ - число процессоров, / - часть работы,
которая может быть выполнена параллельно. Предположим, что в
любой момент времени работают или все ρ процессоров, или только
один процессор. Тогда согласно модели Веа ускорение равно
S -—J 1
Ρ Тр Ц(1 - /) + f/p]
Покажите, что чем ближе / к 1, тем ближе ускорение 5 к
предельному значению. Поэтому очень важной (чтобы / было близко к 1)
является разработка хорошего параллельного алгоритма.
Введение
55
3. Вычислительная нагрузка при БПФ. Для выполнения
^-точечного БПФ требуется Nlog^N умножений. Пусть операции БПФ
выполняются над входным растровым сканируемым изображением с
частотой опроса 25К/с и с использованием программы 1024-
точечного БПФ (т.е. необходима сегментация входной
последовательности). Какова требуемая производительность (в MFLOPS) для
получения результата в реальном времени?
4. Расходы на изготовление [Murog82]. Сколько кристаллов
можно получить из пластины диаметром αΊ Предполагается, что
кристалл - квадрат со стороной а.
а) Изобразите примерную зависимость стоимости от а, если а
0,25-7,5 мм, используя d в качестве параметра со значениями
d*75, 100, 150 мм.
б) Определите стоимость кристалла с α = 7.5 мм, предполагая
что стоимость обработки пластины равна 150$. (Надо разделить
150$ на число кристаллов, не учитывая другие факторы.)
5. Сравнение на функциональном уровне. Выберите компьютер, с
которым вы знакомы лучше всего (большая ЭВМ, мини- или
микрокомпьютер). Нарисуйте блок-схему этой машины на функциональном
уровне. Опишите информационный поток от входа к выходу. Какие
факторы будут определять скорость обработки на этой машине?
6. Терминологические сравнения. Объясните различия в
понятиях, используемых в компьютерной архитектуре:
а) параллельный и конвейерный;
б) синхронная и асинхронная связь;
в) поток управления и поток данных.
7. Разъяснение термина "матричный процессор". Матричный
процессор в этой книге и "матричный процессор" фирмы Floating Point
System (FPS) имеют различный смысл [Hwan84a].
а) Набросайте архитектуру FPS и покажите, что это векторный
процессор.
б) Подтвердите, что матричный процессор FPS на самом деле
связан с матрицей данных, а не с матрицей процессоров.
8. Потребление энергии при оптических вычислениях. В
последние годы достигнут прогресс в области оптической бистабильности
Для реализации логических вентилей. Экспериментально была
получена энергия переключения 1-10 пДж для приборов с временем
переключения 1-10 не. Основываясь на этих данных, определите, каким
ожидается потребление энергии подобным прибором.
9. Система понимания изображения. Идеальная система понимания
изображений должна обладать остротой зрения человека, а также
56
Глава 1
воспринимать запросы пользователя. Имеются по крайней мере
четыре области, в которых это необходимо: анализ изображений,
распознавание образов, анализ сцен и понимание языка. Их реализация
связана с совместными действиями архитектур по меньшей мере трех
типов: параллельный матричный процессор обработки изображений
(ПИ), полупараллельный распознаватель образов (РО) и структура
базы данных (наиболее близкая к обычной архитектуре), которая
действует, как ЗУ знаний.
а) Каковы структурные связи между этими типами архитектуры?
б) Какая из них (ПИ или РО) имеет преимущество с точки зрения
регулярности и параллелизма? Кратко обоснуйте свой ответ.
в) Для поддержки операций ПИ и РО можно использовать два
метода поиска (в глубину и в ширину) в базе данных. Какой из них
более предпочтителен для такой системы понимания с точки зрения
параллелизма? Почему?
10. СБИС и ИС на пластине для матричных процессоров.
Перечислите пять СБИС и ИС на пластине, предназначенных для матричных
процессоров (по ссылкам в литературе).
11. Обучение и искусственный интеллект [Rich83]. Один из
аргументов критики искусственного интеллекта состоит в том, что
машина не может называться интеллектуальной, если она не
способна обучаться или, в более радикальной терминологии, если она не
может думать. Каким могло быть хорошее определение обучения? Как
определить понятие "думать"? Подумайте об этом.
Глава 2. АЛГОРИТМЫ ОБРАБОТКИ СИГНАЛОВ И
ИЗОБРАЖЕНИЙ
2.1. ВВЕДЕНИЕ
Алгоритм есть последовательность правил решения некоторой
задачи за конечное число шагов. Исследованию различных
вычислительных аспектов алгоритмов обработки сигналов и изображений
посвящена обширная литература. Известно также большое число
пакетов программ, ориентированных на использование при обработке
радиолокационных данных, в системах машинного зрения, в ядерной
физике, структурном анализе, цифровой обработке сигналов и
изображений в таких приложениях, как анализ речевых и сейсмических
сигналов, прогноз погоды, астрономия и медицина. В научных
вычислениях (особенно там, где используются матричные операции
различных типов) широкую известность получили такие пакеты, как
UNPACK [Stewa73] и EISPACK [Smith76]. Переносимый пакет
обработки изображений SPIDER, разработанный Электротехнической
лабораторией MITI в Японии, содержит удачный набор примерно 350
алгоритмов обработки изображений.
2.1.1. Перечень алгоритмов
Ниже приведены примеры различных операций и алгоритмов,
применяемых в обработке сигналов и изображений.
Матричные операции
а) Умножение матрицы на вектор, умножение матриц.
б) Решение систем линейных уравнений: приведение матрицы к
треугольному виду (QR-разложение), решение треугольных линейных
систем (обратная подстановка), обращение матриц,
псевдообращение.
в) Сингулярное разложение, вычисление собственных значений.
г) Решение теплицевых линейных систем.
Базовые операции цифровой обработки сигналов
а) Фильтры: К.ИХ (с конечной импульсной характеристикой), БИХ
(с бесконечной импульсной характеристикой), одномерная и
двумерная свертка и корреляция, одномерная и двумерная интерполяция и
58
Глава 2
восстановление дискретизованного сигнала, одномерная и двумерная
медианная фильтрация, сравнение с шаблоном (операторы Прюита,
Кирша или Хеккеля), линейная фазовая фильтрация (низкочастотная,
высокочастотная, полосовая двух типов - с пропуском сигнала и
подавлением сигнала в полосе), обратная фильтрация, винеровская
фильтрация, калмановская фильтрация, адаптивная фильтрация,
операции с окнами (прямоугольные, гауссовы, Хэмминга, Хэннинга,
Бартлета), дифференциальные фильтры (градиентные, на основе
лапласиана) и т.д.
б) Преобразования: дискретное преобразование Фурье, быстрое
преобразование Фурье, преобразование Уолша - Адамара, быстрое
преобразование Адамара, наклонное преобразование, числовые
преобразования Ферма, преобразование Хаара, дискретное косинусное
преобразование, преобразование Хафа, преобразование Карунена -
Лоэва и т.д.
Алгоритмы обработки изображений
а) Восстановление: обратный фильтр, винеровский фильтр,
ограниченный фильтр наименьших квадратов, псевдообратный фильтр на
основе сингулярного разложения и т.п.
б) Реконструкция: преобразование Радона, метод обратных
проекций, интерполяция, регуляризованная оптимизация,
псевдообратный фильтр, оптимизация с ограничениями, методы алгебраической
реконструкции и т.д.
в) Улучшение качества и сглаживание: гистограммное
преобразование, итерационное улучшение качества и подавление шума, гисте-
резисное сглаживание, медианная фильтрация, сглаживание с
сохранением яркостных переходов и линий и т.д.
г) Обнаружение яркостных переходов и линий: разностное
обнаружение переходов (лапласиан, операторы Робертса, Собеля,
Прюита), на основе сравнения с образцом (Прюит, Кирш, Робинсон),
преобразование Хафа, метод эвристического поиска, оператор
Хеккеля, итерационный метод и т.д.
д) Текстурный анализ: матрица совместной встречаемости,
разностные статистики, локальный экстремум, код длины серий,
авторегрессионная модель, автокорреляция, Фурье-анализ, обнаружение
яркостных переходов на текстуре, сглаживание с сохранением
яркостных переходов и т.д.
е) Сегментация области: эвристический метод, метод
итерационного объединения, итерационный пороговый метод, метод расщепле-
Алгоритмы обработки сигналов и изображений 59
ния-слияния и т.д.
ж) Геометрические операции: операции над связными
компонентами (пометки, последовательная нумерация меток, добавление или
исключение), выделение границ, описание границ (цепной код,
фронт, кривизна, Фурье-описания), свойства формы (начальная
точка, центроид, вписанный четырехугольник, площадь, периметр,
диаметр, растяжимость, моменты, Фурье-описания), растяжение и
сжатие, утончение линий, прореживание, преобразование расстояния и
выделение остова, пересечение, проекция, геометрическое
искажение и т.д.
з) Другие операции: фундаментальные статистики, построение
гистограмм, разделение по порогу, линейные фильтры, табличное
преобразование тоновых изображений (нормализация, сдвиг и т.д.),
аффинное преобразование (с линейной интерполяцией, без
интерполяции), релаксационное переквантование с расстановкой меток,
транспонирование, изменение признака, замещение и копирование.
Другие алгоритмы
а) Поиск и сортировка (сортировка слиянием, битонная
сортировка и т.д.).
б) Алгоритмы на графах и геометрические алгоритмы:
транзитивное замыкание, построение минимального остовного дерева и
нахождение связных компонентов.
в) Операции с многочленами: умножение и деление многочленов,
отыскание наибольшего общего делителя, кодирование и
декодирование в задачах исправления ошибок.
Два других важных аспекта изучения алгоритмов - предметная
область и вычислительная сложность. В табл. 2.1 [Casas84]
содержится несколько примеров предметных областей. Табл. 2.2 содержит
числа операций [Вгот184].
Для современной цифровой обработки сигналов (ЦОС) характерно
использование средств и методов из многих разделов
вычислительной математики: обработка сигналов и изображений, линейная
алгебра, нечисленный анализ. Можно выделить широкий класс задач
чисто машинной обработки, в которых над каждым элементом данных
производится множество повторяющихся операций. К таким задачам
прежде всего относится трудоемкая первичная обработка больших
массивов данных, получаемых с датчиков, в различных операциях
ЦОС. Увеличение скорости обработки и производительности требует
использования при решении задач ЦОС сверхмощных вычислительных
60
Глава 2
Таблица 2.1
Предметная
область
Математическая
постановка
задачи
Возможный
метод решения
Отыскание
направления
с большой степенью
точности
Оценка
состояния
Адаптивное
подавление
шума
Симметричная
задача на
собственные
значения
Калмановская
фильтрация
Метод
наименьших квадратов
с ограничениями
Сингулярное
разложение
Рекурсивный метод
наименьших квадратов
(квадратный корень из
суммы квадратов)
Треугольное или
ортогональное разложение
Таблица 2.2
Порядок
величины
Тип
Примеры
N Скалярный Скалярное произведение,
БИХ-фильтрация
N Векторный Линейные преобразования,
преобразование Фурье, свертка, корреляция,
умножение матрицы на вектор
о
N Матричный Умножение матриц, разложение
матриц, решение задач на собственные
значения, решение СЛАУ, задачи
наименьших квадратов
систем, построенных на новейшей суперкомпьютерной технологии.
Ниже рассмотрены базовые операции и алгоритмы ЦОС, которые
составят основу при разработке суперкомпьютеров специального
назначения, в частности матричных процессоров на СБИС. Базовые
операции ЦОС можно разделить на три класса: матричные операции,
алгоритмы обработки сигналов и алгоритмы обработки изображений.
Алгоритмы обработки сигналов и изображений
61
2.2. МАТРИЧНЫЕ АЛГОРИТМЫ
Матричные операции являются основными во многих приложениях,
связанных с обработкой сигналов и изображений. Матрица размером
пгхп содержит шп элементов (т.е. скаляров), упорядоченных в m
строк и η столбцов. Вектор можно рассматривать как частный
случай матрицы. Произвольный n-мерный вектор, состоящий из η
элементов, может быть представлен как вектор-столбец или
вектор-строка.
2.2.1. Базовые матричные операции
С матрицами можно выполнить большое число операций. Некоторые
из них приводятся ниже.
Скалярное произведение
Скалярное произведение двух м-мерных векторов и и ν есть про-
т
изведение вектор-строки и и вектор-столбца ν, где
ν*
"т= \μγ »2 иг) и ν
и определяется следующим образом:
<u,v> = ηυχ + u2v2 + ...+ uvn = Σγ.
Внешнее произведение
Внешнее произведение я-элементного вектор-столбца и и
τ
m-элементной вектор-строки ν по определению есть матрица
размером η χ m
■["Λ-υ
η2υχ u2v2
U0V
2 m
U„V. U„u0 ... U~V
3 13 2 3 m
62
Глава 2
Умножение матрицы на вектор
Умножение η χ m-матрицы А и m-элементного вектор-столбца и
можно записать в виде ν = Au, где ν - /г-элементный
вектор-столбец. Элемент ν с номером ι есть
т
где а - элемент ί-й строки и /-го столбца матрицы А.
Умножение матриц
Пусть к - тх я-матрица, В - η χ р-матрица, тогда эти матрицы
можно перемножить, и результат, который обозначим С, есть
т χ р-мат-рица С = АВ. Ее элементы равны
т
сч -,?,"/***'
Заметим, что и скалярное произведение, и внешнее
произведение, и умножение матрицы на вектор есть частные случаи умножения
матриц.
2.2.2. Решение систем линейных уравнений
Распространенная матричная задача, возникающая при обработке
сигналов и изображений, состоит в совместном решении
совокупности линейных уравнений. Требуется решить η линейных уравнений с η
неизвестными. В матричной формулировке задача состоит в
нахождении η χ 1-вектора х, такого, что Α· χ = у, где А - заданная
невырожденная матрица порядка л, а у - данный η χ 1-вектор .
Один из способов решения этой задачи - обратить матрицу:
В общем случае А - прямоугольная пх т- матрица (η ^ т).
Обозначив число линейно независимых вектор-столбцов А через к,
получим три возможности для решения системы с матрицей А:
1) к < т: недоопределенная система; решение существует, но не
единственно; 2)k = mnn>m- точного решения может не
существовать, однако можно получить обобщенное решение, оптимальное в
смысле наименьших квадратов; 3) к = т = η - как показано ниже,
решение существует и единственно.
Алгоритмы обработки сигналов и изображений 63
х = А" · у. Однако процедура обращения матрицы имеет большую
вычислительную сложность и является численно неустойчивой. Обычно
сначала осуществляется треугольное разложение матрицы А
А' · χ = у',
где А7 - верхнетреугольная матрица, а затем используется
обратная подстановка для получения решения.
Треугольное разложение матриц
Известно немало способов треугольного разложения матриц.
Назовем лишь некоторые из них: исключение Гаусса, LU-разложение,
QR-разложение. Ниже обсуждается процедура, основанная на
QR-разложении. QR-разложение матрицы выполняется с помощью
процедуры ортогонализации Грамма - Шмидта или ортогонального
преобразования (например, вращение Гивенса (ВГ) или преобразование
Хаусхолдера). Поскольку ВГ часто используется в последующих
главах, дадим определение этой операции. Другие методы читатель
сможет найти в работе [Stran80].
QR-разложение на основе ВГ. Произвольную матрицу А можно
представить в виде произведения матрицы с ортонормальными
столбцами на обратимую верхнетреугольную матрицу: А = QR, где
Q - матрица с ортонормальными столбцами, a R - верхнетреугольная
матрица. Это разложение, известное как QR-разложение, можно
выполнить с помощью последовательности ВГ. ВГ представляет собой
численно устойчивый ортогональный оператор, выполняющий
двумерное преобразование вращения для обнуления поддиагональных
элементов матрицы А и приведения ее к верхнетреугольному виду.
Сначала обнуляются элементы первого столбца, затем - элементы
второго столбца и так до тех пор, пока не будет получена
верхнетреугольная матрица. Рассмотрим эту процедуру более подробно.
Для обратимой матрицы А верхнетреугольное разложение получается
в результате следующей процедуры:
QTA = R,
Семейство векторов {ό*, iw..,t> п} называется ортонормаль-
Т Τ
ным, если νγΰι = 1 при / = / и ir.i/. = 0 - в противном случае.
64
Глава 2
QTs V-l)Q(^2)-Q(1)
q = q(P,P)q(P+M Q(AM,p)
(2.3)
(2.4)
Здесь q'^'P'- оператор вращения Гивенса, аннулирующий элемент
(q + 1)-й строки и р-го столбца:
ъ(я>р)
1 0
0 1
0 0
ό ό
0 0
0 0
(7-й
столбец
cosG
-sin0
(Я + υ
столбец
sinG
COS0
-й
0 0
0 0
0 0
0 1 0
0 0 1
q-я строка
(q + 1)-я строка,
(
(2.5)
где символ θ = tg~ [я ι /я ] служит для обозначения
функции Q(q,p). Операция вычисления cos9 и sin9 называется
построением вращения Гивенса (ПГ).
В результате произведение матриц А = Сг^А
а . = a .cos9 + а 1 .sin9,
q, k q, ft 7 +1 , ft
a ι и = ~a ,sin9 + а Л ,cos9,
q+ 1 ,ft 7, ft 7 + 1 , ft
= a .«l ,если / * q,q + 1
lik - »jk
(2.6)
(2.7)
для всех k = Ι,.,.,ΛΛ
Операции (2.6) и (2.7) образуют применение вращения Гивенса
(ВГ). В результате ВГ строки с номерами q и q + 1 преобразуются
следующим образом:
cos9 sin9"
-sin9 cos9
а л a ^ ... a
7,1 7,2 q%N
а л л a A 0... а л .,
7+1,1 7+1,2 <7+1 ,Λ^_
a . a n ... a .,
7, 1 7,2 q, N
II II
0 a 4 0 ... a 4 »,i
7+1,2 7+1, WJ
(2.8)
Полностью процедура изображена на рис. 2.1.
Алгоритмы обработки сигналов и изображений
65
X X X х~
X X X X
X X X X
χ χ χ хш
χ χ χ х"
X X X X
X X X X
0 χ χ хш
"χ χ χ х"
X X X X
0 χ χ χ
0 χ χ хш
'χ X X х~\
0 χ χ х\
0 χ χ х\
0 χ χ х\
X X X х~
0 χ χ χ
0 χ χ χ
0 0 χ χ
"χ χ χ х"
0 χ χ χ
0 0 χ χ
0 0 χ χ
'χ χ χ xl
0 χ χ х\
0 0 χ х\
[0 0 0 х\
Рис. 2.1. Процедура QR-разложения: а - исходная матрица размером
4x4; б - результат вычисления по формуле (2.8) при q = 3;.
в - при q = 2, г - при q = 1, д, β - обнуление нижней части
второго столбца; ж - обнуление нижней части третьего столбца.
Обратная подстановка
После того как треугольное разложение матрицы получено,,
встает задача решения системы
А' · χ = у7,
где А - верхнетреугольная матрица.
Эта задача легко может быть решена на основе обратной
подстановки. Рассмотрим эту процедуру на следующем примере.
Пример 1. Обратная подстановка
1 1
0 3
0 0
-Г
-2
1
•
*1
х2
h
=
-2]
-9
з|
Поэтому
V х2
V "2>
3*2 - 2д:3= -9,
х0= 3.
(2.9)
(2.10)
(2.11)
Подставляя χ в уравнение (2.10), получаем х~ = -1. Затем,
подставляя *2 и *3 в уравнение (2.9), .получаем х* = 2.
Полученное решение имеет вид: *, = 2, х0 = -1 и xQ = 3.
Рассмотренная процедура очевидным образом обобщается на слу-
Чай произвольной системы уравнений с верхнетреугольной матрицей.
5—1028
66
Глава 2
2.2.3. Итеративный метод
Рассмотренный выше способ, основанный на приведении матрицы к
треугольному виду с последующей обратной подстановкой, - лишь
один из бесчисленного множества методов решения линейных систем.
Обсудим теперь итеративный метод - наиболее эффективный способ
решения систем большого размера и разреженных систем.
Итеративные методы можно, в частности, использовать в задачах
восстановления рентгеновских изображений по проекциям, для
которых характерны большие и разреженные матрицы. Задачу
восстановления можно сформулировать в виде большой системы линейных
уравнений g = Hf, где g - измеренное приборами ослабление
рентгеновского излучения. Матрица Η обычно большая (порядка 10 χ 10 ) и
разреженная (иногда - бинарная). В то время как прямые методы
обращения такой матрицы практически не пригодны, итеративный
метод дает эффективное решение. Другая область, где широко
применяется итеративный метод,- решение уравнений в частных
производных [Arpin86], которые возникают в многочисленных физических
и геометрических задачах. Например, уравнение Пуассона - одно из
наиболее важных в физике - в том случае, если условия на границе
представлены в форме Дирихле [Kuo85, Kung86c], можно записать в
виде системы линейных уравнений с разреженной матрицей большого
размера. Следовательно, для решения этой задачи можно
использовать итеративный метод. Ниже итеративный метод рассмотрен более
подробно.
Заданная матрица А расщепляется на две матрицы S и Т:
А = S + Т, (2.12)
и, начиная с некоторого вектора xQ, выполняются итерации
Sx*+i = -Тх* + У· <2·13)
в результате которых генерируется последовательность векторов х.
Предполагается, что она сходится к точному решению х.
Для того чтобы обеспечить эффективность итеративной
процедуры, к расщеплению предъявляются следующие требования.
1. Простота вычисления вектора х. .. Это означает, что
матрица S должна быть легко обратима. В частности, S может быть
диагональной или разреженной треугольной матрицей.
2. На практике матрица Τ обычно сильно разрежена, поэтому
объем вычислений, связанный с умножением Τ на х, невелик. Кроме
Алгоритмы обработки сигналов и изображений
67
того, поскольку матрица Τ не меняется от итерации к итерации,
отпадает необходимость дополнительных подкачек данных, что также
приводит к экономии вычислений.
3. Последовательность χ должна сходиться. Известно, что
данная итерационная процедура сходится тогда и только тогда, когда
все собственные значения матрицы S ·Τ по модулю меньше 1.
Более подробно процедура изложена в работе [Stran80].
Ниже описаны некоторые распространенные итеративные методы,
основанные на формуле (2.12). Матрицы S и Τ в этих методах
записываются в виде комбинации матриц L (нижнетреугольная матрица),
D (диагональная матрица) и U (верхнетреугольная матрица), т.е.
L =
ГО 0 .
α21 0 .
а31 а32"
ап\ап2 '
Метод
Якоби
и
0
0
0
01
0
0
α β
η,η-1
• D =
0 О12 . .
ό ό . . .
0 0 . . .
О11
0
ό
0 ... 0
О12 . . . 0
ό . . . ό
ам л аЛ
2,п-1 2л
0 а л
0 оп~ия
0 1
о
0
а
В итеративном методе Якоби
Sj = D, Tj = L + U
и, согласно уравнению (2.13), получаем при / = 1,2,...,я.
*f+,) = *[(-£ v!ft) _._ J, νί*>+yi>- (214)
Л^етод Гаусса - Зейделя
Отметим, что метод Якоби не использует при вычислении х\ +'
большую часть уже полученной на текущей итерации информации,
положив в методе Якоби
5*
SG = D + L, TG = U ,
68
Глава 2
получим, согласно уравнению (2.13), итеративную процедуру
(D + L)xfc+] =-Uxfc + y ,
которая называется методом Гаусса - Зейделя [Golub83]:
/-1
*r'-ifcu*/r\-JtaP, ♦ур·'-1·2 "·
Метод последовательной верхней релаксации
Благодаря своей простоте метод Гауса - Зейделя находит весьма
широкое применение. К сожалению, если максимальное по модулю
собственное значение матрицы Sq Tq близко к 1, скорость
сходимости метода становится недопустимо малой. Чтобы устранить этот
недостаток, рассмотрим следующую модификацию метода Гаусса -
Зейделя: S = D + wL и Τ = -(1 - w)D + w\J, где weR
(R - множество действительных чисел). В результате получаем
метод последовательной верхней, релаксации (SOR - Succesive Over
Relaxation):
y(fe+1)_ _w_
xi " a . .
ι I
i = 1,2,.. . , n.
\-Σα/ΐ+])- ( Σ aJkK у) + (1 - w)№ j
[/=1 *' ' /=/+1z/ I l l J
(2.16)
Выбор параметра релаксации w должен обеспечивать максимальную
скорость сходимости.
При w = 1 данный метод, очевидно, ничем не отличается от
метода Гаусса - Зейделя [Dahlq74]. Можно показать, что для
симметричной положительно определенной действительной матрицы А
SOR-метод сходится для всех до, таких, что 0 < w < 2. Для
некоторых часто используемых на практике классов матриц (таких, как
симметричные, положительно определенные или блочно-трехдиаго-
нальные) известно оптимальное значение параметра wy а скорость
сходимости значительно выше, чем в методе Гаусса - Зейделя.
2.2.4. Спектральное и сингулярное разложение
В приложениях, связанных с обработкой сигналов, встречается
еще одна матричная операция - нахождение собственных значений и
собственных векторов матриц, а в последнее время используется и
вычисление сингулярных значений и сингулярных векторов матриц.
Алгоритмы обработки сигналов и изображений 69
Спектральное разложение
Пусть А - η χ я-матрица. Если найдется вектор е, такой, что
де = Ае, то λ называется собственным значением матрицы А, а
е - соответствующий ему собственный вектор. Собственные
значения можно получить из характеристического уравнения матрицы А:
det | Α— λΙ| =0. Если все собственные значения различны, то
~λχ 0 . . . 0 ]
о λ2 . . . о
0 0 ... λ
nJ
где λ. - собственные значения А, е. - соответствующие
собственные векторы. Матрица Ε также является обратимой, поэтому можно
записать А=ЕЛЕ~ . Матрицы с кратными собственными значениями
рассматриваются в работе [Stewa73].
н н н
Если матрица А нормальная, т.е. А А = АА (где А -
транспонированная сопряженная матрица), она может быть представлена в
τ
виде A=UAU, где U - унитарная матрица размером η χ я, а
Л - диагональная матрица с собственными значениями матрицы А на
диагонали .
Данное разложение, часто называемое спектральным разложением,
широко используется в теории управления и обработке сигналов.
Например, оптимальное в некотором смысле преобразование Каруне-
на - Лоэва основано на спектральном разложении матрицы ковари-
ации.
Сингулярное разложение (SVD)
Сингулярное разложение (SVD - Singular Value Decomposition) -
Другой широко используемый на практике тип разложения матриц.
SVD-разложение используется в цифровой обработке изображений и
системах машинного зрения, например при кодировании изображений
[Andr76a] и улучшении изображений [Andr76b]. Кроме того,
сингулярное разложение используется для реконструкции и восстановле-
Эрмитова, косоэрмитова и унитарная матрицы - частные случаи
нормальной матрицы.
АЕ = ΕΛ = [еге2 ... ej·
70
Глава 2
ния изображений на основе методов псевдообращения [Shim81].
Можно показать, что любую т χ /z-матрицу А можно представить в
виде A=Q12Q2» гДе Qj " унитарная матрица размером тхт, Q2 ~
унитарная η χ η - матрица, а 2 имеет специальную диагональную
форму
-[?:]·
где D = diag(ara2,...,ar), ^ ^ (r2 ^...i (rf > 0 и г - ранг
матрицы А. Таким образом, SVD-разложение можно записать в
виде
А = Q,EQj = Σ σρρ] . (2.17)
где и. - столбцы матрицы Qv υ - столбцы матрицы Q2.
Это и называется SVD-разложением матрицы. Сингулярные
значения σ-,.,.,σ матрицы А записываются как квадратные корни из
ненулевых собственных значений матрицы А А (или АА ), а
вектор-столбцы Qt и Q2, называемые сингулярными векторами
матрицы А, при этом являются собственными векторами матриц АА и А А
соответственно, в чем нетрудно убедиться, заметив, что
[AAT]Q1 = QtE ΣΤ, [ATA]Q2 = Q2£TE .
В последние годы SVD-разложение широко применяется в задачах
цифровой обработки сигналов и изображений, например при решении
систем методом наименьших квадратов без ограничений [Stran80,
Stewa73], который изложен в следующем подразделе. Кроме того,
сингулярные значения можно использовать для численно
достоверного определения ранга матрицы и поиска хорошей малорайговой
аппроксимации данной матрицы. Использование малоранговой
аппроксимации весьма полезно при решении ряда задач обработки сигналов и
изображений. Ниже приведен пример сингулярного разложения.
Пример 2. SVD - разложение. Рассмотрим 3 χ 2-матрицу
Унитарная матрица U по определению - матрица с ортонормальными
столбцами, т.е. UHU = UUH= I-(UH= (U*)T). Действительная
унитарная матрица называется ортогональной матрицей. Унитарные матрицы
обладают важным свойством: умножение на эту матрицу сохраняет
скалярное произведение (или, что то же самое, углы и длины),
н н
т.е. (Ux) (Uy) = χ у и IIUxll = llxll, где χ и у - вектор- столбцы.
Алгоритмы обработки сигналов и изображений
71
А =
Ί 1
2 2
2 2
1 -2 2 /ίΓ Ί
3 УТ 15
2 1 4 /ίΓ
3 у— 15
/5 ,—
2 п -5 /5
3 ° 15—
" з/2^ 0
0 0
[ 0 0
1
1
1 -1
/Т SY
Обратим внимание, что А А имеет два собственных значения 18 и
О, а ААТ- три собственных значения: 18, 0 и 0. Чтобы получить
единственное сингулярное значение матрицы А, надо извлечь корень
из 18. (Матрица А имеет ранг 1.)
2.2.5. Решение задачи наименьших квадратов
Широко известный метод наименьших квадратов используется в
задачах управления, связи и обработки сигналов. Он применяется
во многих областях ЦОС, таких, как выравнивание, спектральный
анализ, цифровое отбеливание, адаптивные антенны, уменьшение
межканальной интерференции, обработка речевых сигналов
[Giord85].
Многие алгоритмы восстановления и реконструкции также можно
естественным образом сформулировать в терминах задачи наименьших
квадратов. Рассматриваемая задача отличается от задачи решения
линейных систем тем, что число уравнений больше числа
неизвестных. В матричной записи задачу можно сформулировать так:
Задана η χ р-матрица наблюдений (п > р) полного ранга А и
приближаемый вектор данных у длиной п. Требуется найти w -
р-элементный вектор весов, который минимизирует евклидову норму
вектора невязки е, определяемого по формуле е = у - A w .
Задачу можно обобщить, если наложить на вектор невязки некото-
т
рый весовой вектор, т.е. минимизировать норму вектора b е вместо
нормы е. Такая целевая функция вводится для увеличения вклада
наблюдаемых в настоящий момент данных по отношению к более
ранним наблюдениям. В этой постановке задача называется взвешенной
задачей наименьших квадратов и ее можно решить с помощью
незначительной модификации данной формулировки [Stran80].
72
Глава 2
Алгоритм наименьших квадратов без ограничений
Поскольку евклидова норма вектора инвариантна относительно
умножения на ортонормальную матрицу, то аналогично случаю
решения линейных систем можно использовать ортонормальные матрицы
для приведения А к верхнетреугольному виду. После умножения на
соответствующие матрицы вращения Гивенса вектор невязки е
преобразуется в вектор
Qe = Qy - [QA]w = у' - A-w,
где Q - ортогональная матрица размером /ι χ я, а А - η χ ρ -
матрица следующей структуры:
Г χ χ χ ... χ χ Ί
О χ χ ... χ χ \
О 0 χ ... χ χ \
О 0 0 ... χ χ
О 0 0 ... О χ
О 0 0 ... О О
L 0 0 0 ... О О J
Другими словами, матрицу А можно представить в виде
*-- [ ϊ ].
где R - верхнетреугольная квадратная матрица порядка р.
Теперь легко построить оптимальный вектор весов w,
минимизирующий евклидову норму у - A*w. Заметим, что w не дает
вклада в нижние компоненты вектора-разности, следовательно
Процесс ортогонального приведения к треугольному виду может
быть выполнен разными способами: на основе вращений Гивенса,
преобразования Хаусхолдера, ортогонализации Грамма - Шмидта.
Метод вращений Гивенса обсуждался и в разд. 2.2.2.
Алгоритмы обработки сигналов и изображений 73
Здесь у7 - вектор, состоящий из ρ ведущих элементов вектора у.
Поскольку R - верхнетреугольная матрица, оптимальный век-
хор весов w0Dt» как показано в разд. 2.2.2, можно построить с
помощью обратной подстановки.
Алгоритм наименьших квадратов с ограничениями
Наряду с задачей наименьших квадратов без ограничений
актуальна и аналогичная задача с линейными ограничениями, которая,
например, естественно возникает при работе с адаптивными
антенными решетками. Более подробно эта задача и ее приложения
рассматриваются в гл. 8.
2.3. АЛГОРИТМЫ ЦИФРОВОЙ ОБРАБОТКИ СИГНАЛОВ
Ниже вводятся такие базовые операции ЦОС, как свертка,
корреляция, фильтрация, цифровые преобразования.
2.3.1. Дискретные системы и Z-преобразование
В задачах ЦОС объектом изучения являются дискретные сигналы и
системы. Дискретизованные по времени сигналы возникают либо
естественным путем, либо - и это достаточно распространенная
ситуация - получаются в результате дискретизации аналоговых
(непрерывных по времени) сигналов. В наиболее общей форме
операция над дискретной последовательностью выглядит так:
последовательность пропускается через некоторую дискретную систему, и в
результате на выходе получаем преобразованную
последовательность. Как правило, дискретные системы имеют вполне определенное
предназначение и образуют класс линейных инвариантных по времени
систем (ЛИВ). Интересно, что ЛИВ-системы полностью
характеризуются своим откликом h(n) на единичный импульс δ(η), где
{1, если η = О,
О в противном случае.
Последовательность h(n) называют откликом на единичный импульс
или импульсной характеристикой системы. Можно показать, что
последовательность y(n)t получаемая на выходе ЛИВ-системы
(задача 7), имеет вид
У(п) = Σ x(k)h(n-k). (2.18)
74
Глава 2
Данное выражение называется оператором свертки и обозначается
у(п) = x(n)*h(n).
Более подробно оператор свертки рассмотрен в подразд. 2.3.2.
По традиции ЛИВ-системы разбиваются на две группы - системы с
конечной импульсной характеристикой (КИХ) и системы с
бесконечной импульсной характеристикой (БИХ). Если последовательность
h(n) ограничена во времени, говорят о КИХ-системе, в противном
случае система называется БИХ-системой.
До сих пор обсуждались характеристики сигналов и систем
только во временной области. Кроме рассмотренного представления во
временной области, сигналы и системы принято также представлять
в области преобразования. Подобно преобразованию Лапласа,
которое определено для непрерывных сигналов, Z-преобразование может
использоваться при обработке дискретных сигналов.
Z-преобразование. Z-преобразованием последовательности χ
называется функция Χ(ζ) комплексного переменного г, такая, что
Х(г) = Ζ[χ(η)] = Σ x(n)z~n.
л=-со
Пример 3. Z-преобразование. Пусть
Х(П) = Щ %(/!),
где s(n) - единичная импульсная функция:
{1, если η £ О,
О в противном случае.
Тогда
Χ(Ζ) = Ζ[χ(η)] = Σ i?|V" = Е(0,5г-У =
п=0LZJ /г=0
= —т— = для \z\ > 0,5.
1 - Ο,δζ1 ζ - 0,5
Z-преобразование обладает двумя важными свойствами, которые
используются в дальнейшем:
1) x(n)*h(n) < > Х(г)Н(г), (2.19)
2) х(п + nQ) < > zn°X(z). (2.20)
Алгоритмы обработки сигналов и изображений 75
Отметим, что преобразование Фурье X(eIW) дискретной
последовательности х(п)
X(eiw) = Σ x(n)e-i'wn
можно получить, вычислив Z-преобразование в точках единичной
окружности, т.е.
*(е'ш) = X(z)\z=ejw .
В области Z-преобразования операция свертки сводится к
простому умножению последовательностей. Применяя Z-преобразование
к выражению (2.18), можно показать, что
Υ(ζ) = Η(ζ)Χ(ζ),
где Η(ζ) = Σ h(n)z-n, a X(z) = Σ x(n)z~\
Это свойство Z-преобразования используется для эффективного
вычисления свертки. Функция H(z) - представление ЛИВ-систем в
Z-области - называется передаточной функцией системы и
определяется отношением преобразований выходной и входной
последовательностей.
2.3.2. Свертка
Свертку двух последовательностей и(п) и w(n)y определяемую как
00
у(п) = Σ u(k)w(n - k),
будем обозначать
у(п) = u(n)*w(n) .
Если и(п) и w(n) - каузальные последовательности конечной
длины N, т.е. η = 0,1,2,...,W - 1, то (линейная) свертка этих
последовательностей также каузальна и определяется выражением
у(п) = Σ u(k)w(n - *), (2.21)
fe-0
где η = 0,1,...y2N - 2.
При использовании свертки для цифровой фильтрации и(п)
представляет обрабатываемую входную последовательность, a w(n) -
импульсную характеристику цифрового фильтра. В общем случае две
эти последовательности могут иметь разную длину. Получаемая на
76
Глава 2
выходе последовательность у(п) представляет обработанный сигнал.
Им может быть либо сглаженный сигнал, либо сигнал с повышенным
уровнем, либо сигнал, подвергшийся каким-то другим воздействиям
в зависимости от типа выбранного фильтра.
С точки зрения обеспечения вычислительной эффективности для
вычисления свертки надо сначала перейти в область
преобразования, в которой операции можно выполнить проще, чем во временной
области, после чего применить обратное преобразование. Для этой
цели наиболее часто используется быстрое преобразование Фурье,
применение которого позволяет уменьшить порядок вычислительной
сложности от 0(N ) до 0(AMog Ν).
В задачах связи распространенным способом реализации
оптимального приемника является согласованный фильтр. В цифровом
согласованном фильтре получаемый сигнал свертывается с фильтром,
импульсная характеристика которого является "отражением"
переданного сигнала.
Свертка, кроме того, - основная операция при выполнении
интерполяции. При обработке сигналов часто сталкиваются с
ситуацией, когда период выборки больше, чем требуется. В этом случае
для получения значений между точками дискретизации можно
воспользоваться интерполяцией, которая заключается в том, что
вычисляется некоторая взвешенная сумма по соседним отсчетам.
Заметим, что свертку можно интерпретировать и как частный случай
умножения матрицы на вектор.
Рекурсивные уравнения. Рекурсивные уравнения - удобный
формализм, который широко используется при описании многих операций
обработки сигналов. Запись в виде рекурсивных уравнений, которая
используется в программировании и при разработке
последовательных архитектур, мы будем также использовать как важный этап
проектирования параллельных архитектур. Рекурсивное уравнение для
записи свертки двух каузальных последовательностей имеет вид
у) = ykj']+ uk'wj-k · <2·22)
k = 0,1,...,/ для / = 0,1,...,# - 1 и к = / - N + 1, j - N +
+ 2....W - 1 для / = Ν,Ν +1 2Ν - 2.
2.3.3. Корреляция
Корреляция - распространенная операция обработки сигналов,
которая часто возникает в случайных процессах. Математическая
запись корреляции аналогична определению свертки:
Алгоритмы обработки сигналов и изображений 77
00
У(п) = Σ u(k)w(n + k) .
fe--oo
Если и(п) и w(n) - каузальные последовательности конечной
длины N, т.е. η = 0,1,2,...,ЛМ, корреляция этих
последовательностей также является каузальной последовательностью и
вычисляется по формуле
у(п) = Σ u(k)w(n + k), (2.23)
ft=0
где η = -Ν + 1,-tf + 2 -1,0,1 ЛГ - 2,tf- 1.
Из сравнения уравнений (2.23) и (2.21) видно, что алгоритмы
быстрых преобразований можно применять и для вычисления
корреляции.
2.3.4. Цифровые КИХ- и БИХ-фильтры
Цифровые фильтры - это разновидность ЛИВ-систем, которые
удовлетворяют некоторым специальным требованиям. Для определения
ЛИВ-систем может служить передаточная функция, заданная на
единичной окружности, т.е. H(e^w)t которую, как любую комплексную
функцию, можно представить в виде
Ще*") = |Я(«'")|е'в<ш>.
Абсолютная величина |Н(е^)| и фазовая характеристика часто
используются для описания цифрового фильтра.
Цифровые фильтры делятся на два класса - КИХ-фильтры и
БИХ-фильтры, выбор между которыми зависит от области .приложений
и предъявляемых требований.
Представление цифровых фильтров
При описании дискретных систем важную роль играют разностные
уравнения. Наиболее общим способом представления цифрового
фильтра является линейная инвариантная дискретная система, заданная
в виде разностного уравнения р-го порядка
У(п) = £ а у(п - k) + έ Ь х(п - *), (2.24)
Здесь х(п) - входной сигнал, у(п) - выходной сигнал.
Применяя Z-преобразование к уравнению (2.24) и учитывая
(2.20), получаем:
78
Глава 2
У(*) = ί а.*-*У(г) + I Ь z'kX(z) ,
*-1 fe=0 *
где Y(z) и Х(г) - Z-преобразования последовательностей {у(/г)} и
{х(л)} соответственно. Если определить
В(г) = έ V"*· И(г) = 1 - £ а^гЛ
fe-Ο * fe-1 *
то можно записать последнее равенство в более простом виде
Υ(ζ) = Χ(ζ)Η(ζ), (2.25)
где передаточная функция имеет вид
Цифровые фильтры можно разделить на рекурсивные и
нерекурсивные. Если не все коэффициенты а. равны нулю, для вычисления у(п)
используются значения уже вычисленных на^ последних шагах
выходных отсчетов. Такой фильтр называется рекурсивным. Если же все
значения а, нулевые, т.е. Oj = а2 = ...= а = О, и ранее
полученные выходные отсчеты не требуются для вычисления текущего
значения у(п), фильтр называется нерекурсивным.
Практически все цифровые фильтры делятся на три основных
класса.
Бегущий усредняющий фильтр. Это частный случай фильтра с
передаточной функцией, заданной выражением (2.26), когда А(г) = 1.
В этом случае передаточная функция принимает вид
Η(ζ) = Β(ζ) = £ b. г"?
fc = 0 k
а зависимость вход-выход описывается следующим образом:
у(п) = bQx(n) + Ьхх(п - 1) + Ь2х(п - 2) + ... + bqx(n - q).
Поскольку каждое выходное значение представлено взвешенной
суммой входных отсчетов, фильтр называется бегущим усредняющим
(БУ) фильтром. Заметим, что такой фильтр относится к разряду
КИХ-фильтров, поэтому выходную последовательность можно получить
в результате свертки входной последовательности с импульсной
характеристикой фильтра {b^by &«,..., 6 }.
Авторегрессионный фильтр. Другой распространенный в обработке
сигналов и изображений тип фильтра возникает, если положить
B(z) =s 1. Передаточная функция такого фильтра
Алгоритмы обработки сигналов и изображений 79
где Л(г) = 1 - £ a г"\
а связь между входом и выходом можно описать в виде
У{">) = Σ а.у(п - k) + *(л).
Выходное значение #(/г) является линейной регрессией от
последних полученных значений этой последовательности, поэтому
такой фильтр и получил название авторегрессионного (АР) фильтра.
Авторегрессионый фильтр относится к разряду БИХ-фильтров.
Авторегрессионный бегущий усредняющий фильтр. Фильтр более
общего вида, определенный уравнениями (2.24) и (2.26), является
составным из АР- и БУ-фильтров и соответственно назван
авторегрессионным бегущим усредняющим (АРБУ) фильтром. Он относится к
разряду БИХ-фильтров.
2.3.5. Линейный фазовый фильтр
Во многих задачах желательно иметь фильтр с линейной фазой,
т.е. такой, что Q(w) = aw. Таким образом, сигналы в полосе
пропускания фильтра в точности воспроизводятся на выходе фильтра за
исключением временной задержки, соответствующей наклону фазы.
Импульсная характеристика линейного фазового КИХ-фильтра
обладает следующим свойством (в задаче 13 показано, что это свойство
является достаточным условием линейности фазы):
h(n) = h(N - 1 - η), η = Ο,Ι,.,.,ΛΜ. (2.27)
Имеется способ реализации такого фильтра, требующий вдвое
меньше умножений за счет использования симметрии h(n).
Предположим, что N нечетно, тогда
Ν-\ (Λ/-1)/2 Ν-\
H(z) = Σ h(n)z~n = Σ h(n)z~n+ Σ h(n)z'n.
л = 0 n = 0 n={N+\)/2
/
После подстановки η = (Ν - \) - η уравнение принимает вид
(#-1)/2 (Ν-\)/2 , .. 1 , ч
И(*) = Σ h(n)z~n = Σ Л(л')г~( η ) =
" = ° η'-Ο
=Ν~Σ]%)[ζ-η+ г-*"-1-"»].
η = 0
Реализация рассмотренного фильтра описывается в гл. 3.
80
Глава 2
2.3.6. Дискретное преобразование Фурье (ДПФ)
Пусть задана последовательность {х(п),п = 0,1,...,N - 1}. ДПФ
последовательности х(п) определяется как
X(k) =Nlx(n)-Wnkt (2.28)
n = 0 N
где k = 0,1,2,...%N - 1, a WN = e~i2Ti/N
ДПФ широко используется в обработке сигналов и изображений и
может быть эффективно реализовано с помощью алгоритма быстрого
преобразования Фурье (БПФ) (разд. 2.3.7). ДПФ имеет два
следующих важных свойства.
1. ДПФ некоторой последовательности можно получить с помощью
равномерной дискретизации преобразования Фурье (непрерывного)
данной последовательности. Точнее говоря, X(k) является
результатом дискретизации преобразования Фурье в следующих N точках:
w = 0, -дг, 2·-^,..., (Ν - 1)·-у .
Обратное ДПФ определяется следующим образом:
*(п) = | N~lX{kyW-Nn\ η = 0,1,...,# - 1.
В задаче 14 обосновывается корректность такого определения. Если
в этом выражении η не ограничено диапазоном 0 ^ η ^ N - 1,
результирующая последовательность х(я)
yv /г = 0 N
является периодической, т.е. 1с(п) = *(л + N) и x(ai) = х(п),
0 ^ η ^ N - \. Эту последовательность часто называют
периодическим продолжением х(п).
2. Результат перемножения ДПФ двух W-точечных
последовательностей совпадает с циклической сверткой этих
последовательностей, выполненной во временной области (или в пространственной
области, если речь идет об обработке изображений). Пусть
Х,(Л) = ДПФ[х,(«)],
х2(*) = дпфо2(*)] .
Алгоритмы обработки сигналов и изображений
81
Тогда последовательность X3(fc) = XAk)X2(k) - результат ДПФ
последовательности х(п), где
х*(п) = Σ *ι(ή) х2(Л " m)» л = 0,1,...,# - 1.
Заметим, что в последнем уравнении последовательность *3(л)
длиной N является линейной сверткой двух периодических
последовательностей "хЛпг) и J?2(m) (или циклической сверткой двух
непериодических последовательностей х^т) и х2(т))- Явление
''обертывания", обусловленное циклическим характером свертки,
проиллюстрировано на рис. 2.2. Эффект "обертывания" можно
устранить, если добавить нули к исходной непериодической
последовательности. Этот метод, называемый "набивкой нулями", может
использоваться при вычислении линейной свертки двух'
последовательностей.
Кроме формульной записи ДПФ можно воспользоваться также
представлением преобразования в виде произведения матрицы на вектор
(вместо ΨN мы будем писать W):
Х(0)
Х(1)
Х(2)
X(N - 1)
=
1
W
1
ψ2
wz wq
ψΝ-\ w2N-2... ψ{Ν-\){Ν-\)
1
7N-\
,2N-2
x(0)
*(2)
x(N - 1)1
• ·—·—·-
• · m ·■
♦ · л m *
Рис. 2.2. Две исходные последовательности χχ(η) = *2(η) (α), их
линейная (б) и циклическая (в) свертки.
6—1028
82
Глава 2
2.3.7. Быстрое преобразование Фурье (БПФ)
Оценим сначала сложность непосредственного вычисления ДПФ
произвольной последовательности по формуле (2.28). Вычисление
x(n)Wnk требует одного комплексного умножения (четыре
действительных умножения + два действительных сложения). Для получения
X(k), k = 0,1,...,# - 1 необходимо N комплексных умножений и
N(N - 1) комплексных сложений (т.е. порядка N операций).
Рассмотрим теперь вычисление ДПФ некоторой последовательности с
помощью алгоритма БПФ.
Пусть N = 2т. Использование свойств симметрии и периодичности
W^k позволяет сократить число операций с N до N*\og2N. Приняв,
что время выполнения одного комплексного умножения составляет
0,5 мкс, получим следующие времена выполнения ДПФ и БПФ:
N
212
21б
220
ТДПФ
8с
10 мин
6 дней
ТБПФ
0,013 с
0,26 с
5с
Известны две разновидности алгоритмов БПФ - прореживание по
времени (decimation in time - DIT) и прореживание по частоте
(decimation in frequency - DIF), которые имеют одинаковую
вычислительную сложность. Ниже мы остановимся на алгоритме DIT БПФ, а
вывод алгоритма DIF БПФ предлагается в качестве упражнения.
Алгоритм БПФ с прореживанием по времени
Пусть X(k) = Σ x(n)W"k .
n = 0
Разделим последовательность х(п) на четные (even) и нечетные
(odd) составляющие
X(k) = ς x(nywnNk+ ς x(nywnNk .
n~even n=odd
Введем подстановку η = 2г для четных η и η = 2k + 1 для
нечетных η:
Щ) = Σ x(2r)Wlrk+ Σ x&r + l)W<2r+1>* _
r«0 N r-0 N
Алгоритмы обработки сигналов и изображений
83
(Л//2)-1 0 . u(N/2)-\ 0 .
= Σ x(2r)(Wl)rk+ Wk Σ *(2r + \)(W2N)rk .
Поскольку W2N = e-2/(2^)= β-2/π/<*/2) = ψ^ %
(N/2)-\ . b(N/2)-\ .
X(k) = Σ *Vr)WrNk/2 + WkN Ε x(2r + 1)^ =
= ОД + №*#(*)· (2.29)
Заметим, что и G(k)> и H(k) в последнем равенстве можно
трактовать как (#/2)-точечное БПФ. Следовательно, Af-точечное БПФ
можно вычислить с помощью комбинирования двух N/2-точечных БПФ
по формуле (2.29). Продолжение рекурсии приводит к 2-точечным
БПФ, которые выполняются без использования умножений.
Комбинирование 2-точечных БПФ осуществляется в соответствии с выражением
(2.29). На рис. 2.3 приведено 8-точечное БПФ, построенное по
этой схеме. Заметим, что входная последовательность представлена
в двоично-реверсированном виде. Такие алгоритмы называются
алгоритмами БПФ с прореживанием по времени.
Нетрудно убедиться, что вычисление БПФ, показанное на
рис. 2.3, состоит в последовательном выполнении специальных опе-
Рис 2.3. Алгоритм БПФ с прореживанием по времени (N = 8).
6*
84
Глава 2
раций, называемых "бабочкой", заключающихся в выполнении одного
комплексного сложения, одного вычитания и одного умножения.
Вычитание возникает, поскольку
И
WNN/2 = exp(-j2nN/2N) = exp(-/ir) = -1.
На рис. 2.4 приведен листинг подпрограммы прямого и обратного
DIT БПФ, демонстрирующий, как программировать рассмотренный
алгоритм. Алгоритм прореживания по частоте содержится в монографии
[Орреп75]. Отметим, что программу обратного БПФ (ОБПФ) можно
получить из программы прямого БПФ простым добавлением нескольких
команд. Поясним это с помощью следующих очевидных выкладок:
Ν-χ пЪ
X(k) = Σ *(">YWN (опРеДеление ДПФ),
η = 0
χ{η) = ^ Vmw-Nnk = к
Σ X*(k)WnNk
fe = 0 N
= ^ [ДПФ{Х*(Л)}]* (определение ОДПФ).
До сих пор мы ограничивались рассмотрением алгоритмов БПФ по
основанию 2, т.е. таких, что # = 2т. Если N представлено в виде
произведения простых сомножителей, можно использовать более
общие алгоритмы [Орреп75]. Поскольку алгоритмы БПФ значительно
превосходят по быстродействию прямой способ вычисления ДПФ, они
часто используются для вычисления свертки, корреляции и деконво-
люции . Итак, приложения алгоритма БПФ весьма многообразны. Ниже
приведена процедура вычисления линейной свертки, основанная на
преобразовании Фурье.
1. Если N и Μ - длины двух свертываемых последовательностей,
то свертка будет иметь длину Ν + Μ - \. Пусть L - наименьшая
степень двойки, такая, что L £ Ν + Μ - 1.
2. Дополнить исходные последовательности до длины L нулями.
3. К полученным последовательностям длиной L применить L-to-
Задача деконволюции заключается в следующем. Пусть заданы
выходная последовательность и импульсная характеристика фильтра.
Требуется определить входную последовательность. Эту задачу
можно решить с помощью двух операций БПФ, покоординатного деления и
одного обратного БПФ.
Алгоритмы обработки сигналов и изображений 85
С ПОДПРОГРАММА БПФ (ПРОРЕЖИВАНИЕ ПО ВРЕМЕНИ)
С А - КОМПЛЕКСНЫЙ ВЕКТОР ДЛИНОЙ 2**М
С ЕСЛИ INV>0, ТО - ПРЯМОЕ БПФ, ИНАЧЕ - ОБРАТНОЕ БПФ
С
SUBROUTINE FFT(A,M,INV)
COMPLEX A(1024),U,W,T
N=2**M
С ПРЯМОЕ ИЛИ ОБРАТНОЕ БПФ?
IFHNV.GT.O) GOTO 4
DO 3 1=1, Ν
3 Α(Ι) = CONJG(A(I))
С ОПЕРАЦИЯ ДВОИЧНОГО РЕВЕРСИРОВАНИЯ
4 NV2 = N/2
NM1 = N - 1
J = 1
DO 7 1=1, NM1
IF(I.GE.J) GOTO 5
A(J) = 1(1)
A I) = Τ
5 К = NV2
6 IF (K.GE.J) GOTO 7
J = J - К
К = К/2
GOTO 6
7 J = J + К
С ОПЕРАЦИЯ "БАБОЧКА"
PI = 3.141592653589793
DO 20 L=1,M
LE = 2**L
LEI = LE/2
U = (1.0,0.)
FLE1 = FL0AT(LE1)
W = CMPLX(COS(Pi/FLEl),-SIN(PI/FLEl))
DO 20 J=1,LE1
DO 10 I=J,N,LE
IP = I+LE1
Τ = A(IP)*U
A(IP) = A(I) - Τ
10 A(I) = A(I) + Τ
20 U = \J*W
С ПРЯМОЕ ИЛИ ОБРАТНОЕ БПФ?
IFHNV.GT.O) GOTO 30
DO 25 1=1, Ν
25 ΑΠ) = CONJG(A(I))/FLOAT(N)
30 RETURN
END
Рис. 2.4. Подпрограмма прямого и обратного БПФ с прореживанием
по времени.
чечное БПФ. В результате в пространстве преобразований будут
получены две новые последовательности длиной L.
4. Покоординатно перемножить преобразованные
последовательности и получить новую последовательность длины L.
5. Выполнить обратное L-точечное БПФ этой последовательности
86
Глава 2
и получить последовательность длиной L. Первые Ν + Μ - 1
отсчетов этой последовательности и дают требуемый результат -
линейную свертку двух исходных последовательностей.
2.3.8. Дискретное преобразование Адамара
Из сказанного выше следует, что преобразования применяются
достаточно широко. Они, в частности, используются в тех
приложениях, где интересующие исследователя особенности объекта можно
описать в категориях пространства преобразований. Так,
преобразование Фурье играет важную роль в обработке сигналов.
Одним из широко распространенных преобразований является
преобразование Уолша - Адамара (ПУА). Поскольку в качестве базисных
функций преобразования используются двузначные функции Уолша,
принимающие значения 1, -1, их генерация не представляет труда.
Более того, преобразование не имеет других операций кроме
сложений и вычитаний, поэтому стоимость его реализации относительно
низка.
ПУА подобно ДПФ можно выразить в виде произведения матрицы на
вектор. Матрица преобразования - матрица Адамара - состоит из +1
и -1. Строки и столбцы матрицы ортогональны. Матрицу Адамара
можно определить рекурсивно:
2 VZ
1 1
1 -1
и Н2„ =
JL.
н„ нх
Htf ~HN J
Построим матрицу Адамара восьмого порядка:
Н0
1 .
2νΊ?
Если на входе имеется вектор χ длиной Ν (Ν = 2п), то вектор
у, полученный в результате применения преобразования Уолша -
Адамара, равен: у = Н^х.
О многофункциональности преобразования Адамара говорит тот
факт, что оно широко применяется в обработке сигналов и
изображений, обработке речи, распознавании слов, рукописной
информации, символов, распознавании образов, спектральном анализе ли-
Алгоритмы обработки сигналов и изображений 87
нейных систем, вычислении корреляции и свертки, фильтрации,
сжатии данных, кодировании, системах связи, статистическом анализе,
спектрометрии и спектроскопии изображений. Для преобразования
ддамара, так же как и для большинства других преобразований,
известен быстрый алгоритм - быстрое преобразование Адамара. .
2.3.9. Оценивание наименьших средних квадратов
До сих пор рассматривались операции только с
детерминированными сигналами. В то же время дискретные случайные сигналы и
операции с такими сигналами имеют большое значение во многих
приложениях обработки сигналов. В частности, одна из
распространенных задач обработки сигналов заключается в прогнозировании
поведения случайного процесса {у } по результатам наблюдения за
другим случайным процессом {х }. Оценка у отыскивается как
конечная линейная комбинация текущего и предыдущих отсчетов
Сигнала V У* = а0Хп + й\Хп-\ + а2Хп-2 + - + арХп-р · ПРИ ЭТ0М
Λ 2
минимизируется математическое ожидание Е{[у я- у J }.
Уравнение Винера - Хопфа
Для получения наилучшей среднеквадратичной оценки у раскроем
Λ 2
выражение Щ[уп - у ] } и приравняем частные производные по a i к
нулю. В результате получим уравнение Винера - Хопфа относительно
вектора а:
(2.30)
где
R «а = г ,
χ ху
а = 1а0,ауа2 а ]т, R, = Ε{Χ·ΧΤ}, г = Е{Х-уп)
Κ·νι· ·ν/
Если χ и у марковские, то
»ж-
■' J»)
rJV
. Гж>>
'J-»>
'„«»
rJp - υ · ·
• г**(-р) 1
• ^(-ρ+1)
• 'Jt» \
88
Глава 2
а
г = [г (0),г (1),..., г (р)]Т,
ху L χук ' хух ' * хууии '
где гху(£) = Е{«/п*п_,}.
Матрица R имеет специальную структуру, инвариантную
относительно сдвига, и называется теплицевой матрицей.
Винеровская фильтрация
В случае марковских процессов умножение на матрицу R есть
конечная свертка автокорреляционной последовательности R (п) с
а(п). Если допускается неограниченность последовательности а(л)
по длине и некаузальность, т.е.
у\ 00
У η = Σ ¥„.t·
Л--0Э
то выражение (2.30) можно записать в виде
R,(O * а(л) = гху(пУ
Если к обеим частям последнего равенства применить
преобразование Фурье, получим
Sxx(eiw)H(eiw) = Syx(elw).
Таким образом, оптимальный линейный фильтр, который дает -
оценку у(п) по х(п) с минимальной среднеквадратичной ошибкой,
имеет следующую частотную характеристику:
хху '
Этот фильтр, известный как винеровский фильтр, находит
применение в задачах восстановления изображений. Отметим, что фильтр
обладает свойством некаузальности.
Другая задача возникает в случае, если допускается
неограниченность а(п) по длине и предполагается каузальность. Этот
случай рассмотрен в монографии [Giord85].
Винеровский конечный фильтр, получаемый на основе решения
уравнения Винера - Хопфа, весьма популярен. В случае
стационарных случайных процессов построение такого фильтра сводится к
решению системы уравнений с теплицевой матрицей. Теплицевы сие-
Алгоритмы обработки сигналов и изображений 89
темы уравнений возникают также во многих методах оценивания
спектра, таких, например, как энтропийный метод или метод
максимального правдоподобия. Следующий раздел посвящен решению тепли-
цевых систем.
2.3.10. Решение теплицевых систем (алгоритм Шура)
Попытаемся определить χ - решение системы
Rx = у (2.31)
с теплицевой матрицей R : r(ij) = r(\i-j\).
Разумеется, эту систему можно решить с помощью общей
процедуры решения линейных систем, изложенной в предыдущем разделе. При
этом, однако, не используется специальный вид теплицевой
матрицы. Среди последовательных алгоритмов решения симметричных
теплицевых систем наибольшей популярностью пользуется известный
алгоритм Левинсона [Levin47, Kaila74]. Однако этот алгоритм
плохо распараллеливается, поскольку требует вычисления большого
числа скалярных произведений, что препятствует его реализации на
линейном массиве процессоров [Kung83b]. Поскольку нас интересует
преимущественно параллельная обработка и параллельные
архитектуры, опишем алгоритм Шура, который не требует вычисления
скалярных произведений и более пригоден для параллельной реализации.
Основную часть вычислений при решении теплицевых систем
составляет треугольное разложение матрицы R, т.е.
R = UTDU = UTU (U = DU),
где D - диагональная матрица, a U - верхнетреугольня
матрица. Если разложение найдено, то решение χ уравнения (2.31)
χ = R^y = 1Г1(иТГ1у
можно, получить в два этапа: сначала выполняется прямая
подстановка
а затем - обратная подстановка
Черта сверху при обозначении треугольной матрицы U указывает,
что ее диагональные элементы единичны.
90
Глава 2
х = IT1*
Для простоты проиллюстрируем процедуру треугольного
разложения на примере матрицы 4x4. Вспомним, что матрица, обратная к
верхней (нижней) треугольной матрице, также является верхней
(нижней) треугольной. Задача состоит в том, чтобы найти элементы
{ /.,} и { и..}, такие, что
1 0 0
/21i о
*31 *32 Ьз
^41 *42 '43
0 "
0
0
1
R =
"ll "12 "l3
0 «22 И23
0 ° «33
0 0 0
«14 '
"24
"34
"44
(2.32)
или, что то же самое,
LR = U,
где L = (и1)"1.
Верхние строки матриц L и U определяются сразу из уравнения
(2.32). Чтобы найти вторую строку, рассмотрим следующее
уравнение:
10 0 0
0 10 0
R =
Ό U Ч h
и /, *о <1 <2
где t - элементы R (ср. со структурой теплицевой матрицы).
Выполним теперь операции над строками последнего равенства:
1 к(2>
к(2) 1
1
0
0
1
0
0
0
0
R =
»<2> о
<42> «<2)
«<2> и<2) 42)
где так называемые "коэффициенты отражения" К вычисляются
следующим образом:
К
(2). Ill
Можно записать последнее равенство в виде
1 к(2) 0 0
К(2) 1 0 0
R =
,<2> о »<2) »Г1
0 «w «<2) «<*>
(2.33)
Алгоритмы обработки сигналов и изображений
91
Отсюда следует
[К<2>1 О 0]-R= [θ «<2>«<2>«<2)].
Сравнивая со второй строкой в правой части равенства (2.32),
получаем искомые строки матриц С и 11:
J2
[К(2) 1 0 0]
-2 - [*21 1 0 0]
U, = [0 «22 и23 и24] = [0 «<2>
42) 42)]·
Третью строку матриц L и U можно вычислить с помощью
повторения этой же стратегии. Чтобы подготовить следующий шаг рекурсии,
сначала выполним циклический сдвиг вправо второй строки в обеих
частях равенства (2.33), т.е.
[К
(2)
1 0 0]
[0 К(2) 1 0],
к<2> о
к<2) 1
,(2)
,<2)
J2
■'з
,<2) „(2)
Μ И2
(2.34)
Итак, используя теплицеву структуру матрицы R, получаем, что
и^ 'в равенстве (2.33) соответственно сдвинуто вправо и
единственный новый
,(2)
= ^2иг +12 = <42>,
-1
Поскольку и
(2) _
1
член в строке
ι(2) - „(2)
-1 " U2 ·
Отметим также, что в процессе выполнения этой операции
сдвига элементы правой части, обнулившиеся на предыдущем шаге
рекурсии, остаются в своем столбце. Операция линейной комбинации двух
строк на следующем шаге рекурсии их не затрагивает. Такое
расположение элементов позволяет повторить процедуру, аналогичную
предыдущему шагу рекурсии:
"1 К(3)] Г1
К<3> 1 о
к(2) о
К(2) t
■R =
,<3)
,<3)
'^3) ° о 43)"
0 0 и<3> и<3>
где
К(3) =
-νί2)
,(2)·
Сравнивая и' 'с третьей строкой правой части выражения
(2.32), убеждаемся, что получили третьи строки матриц t и U:
92
Глава 2
t3 = [<31 '32 * °] =
= [К(3). (К(3)К(2)+ К(2)). 1 0]
и3 - to 0 «зз"з4] = [° ° 43)«з3)]·
Таким образом, второй шаг рекурсии завершен. Продолжаем
подобным образом рекурсию до тех пор, пока не вычислим все строки
матриц t и U.
Отметим, что операция сдвига, выполняемая на каждом шаге
рекурсии, вполне согласуется с теплицевой природой матрицы R,
поскольку таким образом сохраняются нулевые элементы, полученные на
предыдущих шагах. Цель этой операции состоит в выравнивании
нулевых позиций в соответствии со вспомогательным вектором ν
(выражение (2.34)) так, чтобы эти нули не затрагивались
последующими операциями над строками. Отсюда очевидна необходимость
вычисления вспомогательного вектора ν на каждом шаге рекурсии.
2.4. АЛГОРИТМЫ ОБРАБОТКИ ИЗОБРАЖЕНИЙ
Большинство рассмотренных выше одномерных операций обработки
сигналов естественным образом обобщается на двумерные и
многомерные задачи. В этом разделе обсуждаются некоторые двумерные
аналоги одномерных алгоритмов обработки сигналов.
2.4.1. Двумерная свертка и корреляция
Поскольку данные, с которыми имеет дело обработка
изображений, двумерны, необходимы двумерные операции свертки и
корреляции. Основное отличие от одномерного случая состоит в том, что в
определениях удваивается число индексов. Двумерная свертка
определяется следующим образом:
п1 п2
У(пуп2) = Σ Σ u(kvk2)w(nx - kyn2 - k2) ,
где nyn2 € {0,1, ... , 2N - 2} .
Определение двумерной корреляции также обобщает одномерный
аналог:
п1 п2
У(пуп2) = Σ Σ u(Kk2)w(n + kvti2 + k2)
Алгоритмы обработки сигналов и изображений 93
где nvn2 € {-Ν + 1,-tf + 2 -1.0.1 JV - 2,N - 1}.
Поскольку объем вычислений, необходимый для получения
двумерной свертки или корреляции, очень велик, для повышения
эффективности обработки используются преобразования. Двумерные алгоритмы
аналогичны соответствующим одномерным алгоритмам.
2.4.2. Двумерная фильтрация
Соотношение между входом и выходом двумерного фильтра можно
представить либо в виде двумерного разностного уравнения в
пространстве состояний, либо описать в частотной области (или в
двумерной Z-области) с помощью передаточной функции. Несмотря на
то что двумерная фильтрация иногда выполняется на основе
многократного применения одномерной фильтрации, общий метод связан
либо с применением быстрой двумерной свертки с помощью 2-БПФ,
либо с прямым использованием двумерного разностного уравнения.
Подробности можно найти в работе [Rabin75]. Приведем пример
двумерного фильтра, представленного в виде разностного уравнения.
Пример 4. Двумерная фильтрация
Следующее разностное уравнение (вместе с соответствующими
начальными условиями) описывает двумерный фильтр:
ί/(ηΓΛ2) = χ(λ1,λ2)+0.3·[/(λ1 - 1,л2) + 0.3-y(nvn2 - 1)
- 0.2-|/(/г1 - 1,л2 - 1).
2.4.3. 2-ДПФ, 2-БПФ и двумерное преобразование Адамара
Двумерные преобразования можно определить аналогично
соответствующим одномерным преобразованиям, например, 2-ДПФ
определяется следующим образом:
Щгь2) = Σ Σ *(*,,/i2)-V 22,
n.-O n2«0
где kvk2 € {0, 1, 2,...,tf - 1}, a WN = e~i21l/N.
2-ДПФ характеризуется следующими свойствами.
1. 2-ДПФ можно вычислить за время 0(2N \og2N) с помощью
2#-кратного применения одномерного БПФ. В этом нетрудно
убедиться, записав следующие тождества:
94
Глава 2
W-1 #-1 nJ.+η,Κ
X(kvk2) = Σ Σ {nvn2ywNx 1 2 2
■w\,1 1
tf-1 (Ν-\ n0fe0l
= Σ Σ *(/γΛ2>·^
ηι=θ[η2 = 0 J
= ΑΠΦη№Φη[χ(ηνη2)]).
Итак, 2-ДПФ можно вычислить следующим образом: сначала N раз
выполнить 1-БПФ по строкам (по столбцам), после чего N раз
выполнить 1-БПФ со столбцами (строками) преобразованного массива.
В этом и состоит строчно-столбцовый алгоритм двумерного БПФ.
2. Двумерную свертку, так же как и одномерную, можно
вычислить быстро, используя методы, основанные на преобразованиях:
например, применить 2-БПФ, перемножить в частотной области,
после чего воспользоваться обратным 2-БПФ.
Аналогично можно определить и двумерное преобразование Адама-
ра, детали которого обсуждаются в монографии [Pratt78].
2.5. УСОВЕРШЕНСТВОВАННЫЕ АЛГОРИТМЫ И ИХ ПРИМЕНЕНИЯ
В этом разделе рассмотрены некоторые важные классы
алгоритмов, заслуживающие дальнейшего исследования, поскольку они
характеризуются двумя многообещающими свойствами: во-первых,
каждый из них представляет целый класс алгоритмов и имеет большое
прикладное значение и, во-вторых, эти алгоритмы можно
реализовать на систолических процессорах.
2.5.1. Методика "разделяй и властвуй"
Распространенный прием при решении задач большого размера
состоит в том, чтобы разложить задачу на подзадачи, решить
каждую из них и затем построить решение "большой" задачи как
комбинацию полученных решений. Общая идея методики "разделяй и
властвуй" заключается в том, что формулировки подзадач имеют тот же
вид, что и исходная задача меньшего размера. При этом для их
решения может использоваться одна и та же подпрограмма. Прием
"разделяй и властвуй" применяется рекурсивно и дает решение
исходной задачи [Aho74]. Рассмотрим, например, задачу отыскания
максимального элемента в некотором множестве S, состоящем из η
Алгоритмы обработки сигналов и изображений 95^
элементов, где η является степенью двойки. Согласно подходу
"разделяй и властвуй", разбиваем множество S на два подмножества
51 и S2 , состоящие из л/2 элементов каждое. В соответствии с
методикой "разделяй и властвуй" необходимо теперь найти
максимальные элементы каждого из подмножеств и выбрать среди них
наибольший, который и является максимальным элементом S.
Рекурсивное применение этого алгоритма дает эффективное решение задачи.
Повышенный интерес при разработке процессоров матричной
архитектуры вызывает конструирование сетей связи между процессорами
для конкретных алгоритмов типа "разделяй и властвуй".
Характерные примеры - алгоритмы сортировки (битонная сортировка) и БПФ.
Как показывает анализ, сеть совершенной тасовки обеспечивает
эффективное выполнение этих алгоритмов и дает значительное
повышение скорости обработки данных (см. рис. 2.6 в разд. 2.6.2).
2.5.2. Метод динамического программирования
Методика динамического программирования широко используется в
оптимизационных задачах, в которых необходимо минимизировать
либо максимизировать целевую функцию в заданных ограничениях.
Если такая задача удовлетворяет принципу оптимальности, к ней
можно применить метод динамического программирования.
Динамическое программирование - это, по сути, восходящая процедура, в
которой сначала находится решение всех подзадач, а затем на их
основе строится решение задачи целиком. Задача опять разбивается
на этапы, и выполнение ведется от меньших подзадач к большим.
Промежуточные результаты сохраняются и используются на
последующих стадиях. В отличие от нисходящей стратегии "разделяй и
властвуй", где один этап состоит из нескольких подзадач, метод
динамического программирования обладает тем преимуществом, что на
одном этапе решается только одна задача. Объединение решений
этих подзадач по реккурентной формуле составляет основной
принцип динамического программирования [Gondr84].
Формулировка в рекурсивном виде может служить инструментом
отображения алгоритмов на массивы процессоров с локальными
связями между элементами. Можно назвать множество задач, которые
решаются методом динамического программирования. К ним
относится, например, задача построения всех кратчайших путей в графе.
Более подробно этот метод обсуждается в разд. 4.4, а также в
работе [Kung86a]. Другой пример дает задача нахождения пути
наименьшей стоимости, которая, в частности, применяется в распозна-
96
Глава 2
вании речи для компенсации изменения скорости речевого потока. В
этой постановке она может быть решена с помощью так называемого
алгоритма динамической трансформации временной шкалы, который
подробно обсуждается в разд. 8.5, а также в работе [Kung86c].
2.5.3. Методика релаксации
Многообещающим с точки зрения матричной обработки является
класс алгоритмов, основанных на так называемой методике
релаксации. Методика релаксации представляет итеративный подход к
задаче, состоящий в том, что на каждой итерации параллельно
осуществляется обновление данных в каждой точке. Для этого
используются данные (ими могут быть все элементы данных, но
чаще - соседние элементы) последнего обновления либо
непосредственно предшествующей итерации. Такой подход эффективнее, чем
однопроходные вычислительные методы, поскольку здесь начальный
выбор последовательно уточняется на основе последней полученной
информации. Делаются скорее пробные, чем окончательные
предположения, которые могут адаптивно обновляться, приводя в результате
к искомому либо оптимальному решению. Подход, основанный на
релаксации, хорошо отображается на матричные процессоры и дает
большое ускорение при параллельной обработке, поскольку является
независимым от порядка операций. Распараллеливание становится
возможным за счет того, что обновление каждой точки на каждой
итерации можно выполнить независимо. Среди релаксационных
методов наиболее популярны методы линейной релаксации, которые можно
сформулировать в виде задачи итеративного решения линейного
уравнения (разд. 2.2). Для повышения эффективности решения более
сложных задач требуются методы нелинейной или стохастической
релаксации.
Методы релаксации, основанные на итеративном решении линейных
уравнений, успешно применяются в обработке изображений и решении
уравнений в частных производных [Кио85]. Стохастическая
релаксация в свою очередь дает эффективные решения при восстановлении
нерезких изображений.
2.5.4. Модельный отжиг с помощью стохастической релаксации
Для некоторых задач оптимизации вычислительная сложность
столь велика, что точное решение невозможно. К этим задачам
также можно применить метод итеративного уточнения. Основной не-
Алгоритмы обработки сигналов и изображений 97
достаток такого подхода состоит в том, что полученное решение
может быть оптимальным только локально и не обладать глобальной
оптимальностью. Подобная неэффективность характерна для
большинства методов оптимизации, ибо попадание в локальный оптимум фик-
сйруется навсегда из-за "жадного" характера итеративного
уточнения.
Модельный отжиг представляет собой методику поиска оптимума,
которая дает возможность выскочить из ловушки локального
минимума (введя механизм выравнивания ловушки) и выбрать на основе
стохастического решения обновление, соответствующее (временно)
наихудшему решению. Ниже описывается метод модельного отжига для
дискретных систем с конечным числом состояний.
Предположим, что на конечном множестве состояний S задана
энергетическая функция Е. Задача состоит в том, чтобы найти
состояние 5#, которое минимизирует E(s). Пусть для каждого
состояния s € S определена вероятность R(s,s') перехода из 5 в s'.
Опишем стохастическую схему построения последовательности
состояний s^SySy..., где в качестве начального состояния
выбрано sQ. Если задано текущее состояние, например, s., то следующее
состояние s'. выбирается из разрешенных состояний перехода с ве1
роятностью
P[^|sfe] = R(vs*)· (2·35)
Положим
{s', с вероятностью Р.
s., в противном случае,
где
Pk = expj-MafAE'Q1 | , (2.36)
где ΔΕ = E(s£) - E(s^), a {Tfe} - управляющий параметр
выравнивания ловушки, называемый "температурой".
Итак, мы показали, как выбирается последовательность
Sy $2'··· и т,д* Эт°т процесс медленного "остывания" аналогичен
постепенному отжигу металла для его кристаллизации в низшем из
возможных энергетических состояний. Если система обладает
определенными свойствами и подобрана соответствующая
последовательность температур, можно гарантировать сходимость процедуры
[Hajek85].
7 — 1028
98
Глава 2
Для понимания механизма, с помощью которого можно обойти
локальный минимум и гарантировать достижение глобального минимума,
рассмотрим вероятность Pfe при двух разных значениях
температуры - высоком и очень низком, близком к нулю. В начале
процесса модельного отжига температура Τ очень высока, поэтому
для фиксированного значения ΔΕ вероятность достижения нового
состояния s'u достаточно велика, что означает возможность выхода
к
из области локального минимума. С другой стороны, в процессе
итераций температура Τ постепенно понижается и предполагается,
что через конечное число итераций (которое можно оценить)
процесс попадет в область глобального минимума. Предположим, что со
временем температура станет достаточно низкой (например,
приблизится к нулю), тогда вероятность выхода из глобального минимума
Р. очень близка к нулю. Это и обеспечивает сходимость.
Модельный отжиг применялся в задачах восстановления и
реконструкции изображений, основанных на методе стохастической
релаксации, и позволил успешно восстанавливать изображения после
таких искажений, как, например, размывание, нелинейная деформация,
мультипликативный или аддитивный шум [Geman84]. Модельный отжиг
находит также применение в некоторых задачах оптимизации,
разработке программ для систем связи, в отдельных направлениях
искусственного интеллекта и восстановления изображений [Hajek85].
Подробно процесс построения матричного процессора для модельного
отжига [Kung86c] излагается в гл. 8.
2.5.5. Ассоциативный поиск
Ассоциативные процедуры записи в файл и поиска данных
являются мощным средством решения многих задач обработки больших
объемов данных. Система ассоциативной обработки весьма искусна в
распознавании и восстановлении данных по неполной информации и
обладает замечательными способностями исправления ошибок.
Распространенная модель ассоциативной обработки основана на
ассоциативной памяти (АП), которая демонстрирует одно из простейших
свойств коллективного поведения простой нейронной системы. В АП
данные адресуются по значению, и, основное преимущество
ассоциативной памяти перед ЗУПД (ЗУ с произвольным доступом) состоит в
способности выполнения операций параллельного поиска и
параллельного сравнения. Эти операции необходимы в таких важных
приложениях, как хранение и поиск данных в быстро обновляющихся
базах данных, радиолокационное слежение, обработка изображений,
Алгоритмы обработки сигналов и изображений 99
машинное зрение, искусственный интеллект.
Модель на основе матрицы корреляции. Хорошо известно, что
встроенные в зрительно-мозговые системы нейронные сети ведут
параллельную обработку информации с помощью большого числа
простых, соединенных между собой процессорных элементов, называемых
нейронами. Начиная с 70-х годов модель распределенной
ассоциативной запоминающей сети, основанная на матрице корреляции,
нашла широкое распространение. Отметим, что концепция ассоциативной
памяти восходит еще к работе Аристотеля [370 г.до н.э.], посвя-
щеной памяти и процессу вспоминания. Кибернетические
исследования 50-х годов, посвященные обучающимся цифровым сетям,
восприятию и переключателям с обусловленной связностью [Farle54,
Rosbl58, Stein61] открыли дорогу к новейшим результатам в этой
области. В 70-е годы матричная модель (в отличие от коннекцио-
нистской модели) запоминающих сетей, казалось, привлекла
внимание многих исследователей [Kohoe72, Nakan72, Ander77]. В
последние годы Хопфилд продолжил предыдущие работы по структуризации
вычислительной модели, введя понятие энергетических функций и
итеративной вычислительной модели [НорП82]. В упомянутых
работах признается, что ассоциативная память значительно ближе к
тому, как функционирует мозг человека. Распространенный подход к
реализации ассоциативной памяти фактически напоминает реализацию
нейронных сетей. Нейросигналы - это пачки импульсов с
переменными частотами. Работа памяти состоит в том, чтобы воспроизвести
нейросигнал в том месте, где он возник раньше. Таким образом,
возникает понятие ассоциативных сетей памяти и ассоциативного
поиска с возможностями распознавания и коррекции ошибок
неполного или зашумленного входного сигнала.
Сети Хопфилда. Первоначальная модель Хопфилда использует
пороговые нейроны с двумя состояниями, которые действуют по
стохастическому алгоритму. Каждый из нейронов / модели описывается
своим выходом V , принимающим два значения \г: или V: . Для
входных значений каждого нейрона имеются два источника - внешний
сигнал I. и состояния остальных нейронов. Для симметрично
связных сетей Хопфилд ввел энергетическую функцию произвольного
состояния, которая определяется по формуле
Ε = - Σ TV .V - Σ IlVr (2.37)
где Τ - описание силы синаптического взаимодействия нейрона /
с нейроном i (в биологической интерпретации).
7*
100
Глава 2
При квадратичном определении энергии по Хопфилду и заданных
текущих состояниях других нейронов разность значений энергии на
двух уровнях нейрона ί (V. = 1 в состоянии "on" и V^ = 0 в
состоянии "off") равна
:, - Ег .. = LE, = -У Τ .У. - /.
i-on i-off i у ij j I
(2.38)
Если разность энергий ΔΕ { отрицательна, то, чтобы минимизировать
энергию, следует выполнить усиление. В противном случае
необходимо произвести ослабление.
Модель Хопфилда ведет себя как ассоциативная память. На
рис. 2.5, каждый локальный минимум соответствует хранимому
образцу. Память называют адресуемой по значению, поскольку, если
запуск происходит вблизи данного устойчивого состояния
(локального минимума с энергетической точки зрения) и далеко от всех
других, в этом случае память будет стремиться к этому
устойчивому состоянию (рис. 2.5).
В данном пространстве состояний, если положение определенной
устойчивой точки определяется информацией специальной памяти
всей системы, то состояния, расположенные в непосредственной
близости к этой устойчивой точке, содержат частичную информацию
Энергетическая функция
Начальная точка
/
АП-модель Хопфилда
I
/"
Ловушка
Глобальный минимум j
Р4
р2
' Модель Хопфилда и Танка
рЗ
Состояния
Рис 2.5. Исходная модель Хопфилда, ведущая себя как
ассоциативная память. Локальный минимум .(pi, г?2, рЗ и р4) соответствует
хранимому образцу. Для достижения глобального минимума рЗ можно
использовать модель Хопфилда и Танка.
Алгоритмы обработки сигналов и изображений 101_
0б этой памяти. Конечное устойчивое состояние, содержащее всю
иНформацию памяти, может быть найдено из рассмотрения начального
состояния частичной информации, касающейся памяти. Переводом
некоторой части памяти в начальное состояние память может быть
заполнена. В этом и состоит идея АП.
Машина Больцмана. Модель Хопфилда можно фактически
представлять двояким образом. Во-первых, это - моделировать АП, как уже
говорилось. Вторая формулировка, предложенная Хопфилдом и Танком
[Hopfi84, НорП85], строится на принципах аналоговой
вычислительной сети и связана с решением дискретных задач в непрерывном
пространстве, в котором выполняются нейронные вычисления.
Благодаря таким сетям появляется возможность выбраться из локального
экстремума и достичь глобального оптимума с помощью встраивания
в аналоговые цепи некоторых параметров "прибыли", которые
эквивалентны параметру "температуры" в машине Больцмана, описываемой
ниже.
Используя методику модельного отжига для выхода из локального
минимума в модели Хопфилда, можно получить архитектуру машины
Больцмана. Точнее говоря, для каждого элемента памяти i разность
энергий Δ£. можно вычислить из выражения (2.38) и доказать, что
двоичный механизм решения регулируется следующей вероятностной
функцией Р.:
Переменная Τ аналогична параметру температуры в модельном
отжиге и по существу является масштабирующим множителем,
управляющим интенсивностью шума. При возрастании Τ Р. стремится к
0,5, поэтому система ведет себя хаотично безотносительно к
ограничениям в самой сети; - при Τ = 0 и Δ£. = 0 система становится
детерминированной (т.е. Ρ = 1) и скатывается в ближайший
локальный минимум, как' в исходной модели Хопфилда. Когда система
достигает температурного равновесия, относительная вероятность
нахождения в состоянии а по сравнению с вероятностью состояния Ь
в данный момент времени Τ подчиняется распределению Больцмана
Ра -(Е -EJ/T
Хотя система и находится в состоянии температурного
равновесия, это не гарантирует достижения некоторого устойчивого со-
102
Глава 2
стояния. Существенно, что, хотя распределение вероятностей
состояний устанавливается, сами состояния продолжают изменяться.
Наилучшая стратегия для достижения температурного равновесия при
любой заданной температуре Τ состоит в том, чтобы стартовать с
высокой температуры (сделав энергетические барьеры легко
преодолимыми для системы) и постепенно понижать Г, повышая статус
состояний с низкой энергией. Уменьшая Τ достаточно плавно, можно
с большой вероятностью попасть в наилучшее состояние (глобальный
оптимум) или по крайней мере в состояние, очень близкое к
искомому оптимальному.
Соотношение между моделью Хопфилда и модельным отжигом. Схема,
предложенная Хопфилдом и Танком [Hopfi85], является вещественно-
значной аналоговой нелинейной моделью, цель которой обеспечить
выход из ловушки локального минимума. Хотя эта модель
аппроксимирует модельный отжиг, она фактически не моделирует
стохастическую систему.
2.6. МАТРИЧНЫЕ АЛГОРИТМЫ НА СБИС
Матричные алгоритмы представляют собой набор правил для
решения некоторой задачи за конечное число шагов на большом числе
взаимосвязанных процессоров. Поэтому матричный алгоритм зависит
как от характеристик вычислительного устройства, так и от
стратегий взаимодействия процессоров. Ниже проблеме взаимодействия
уделено особое внимание.
Для достижения высокой производительности при вычислениях на
СБИС необходимо распараллеливание, которое во многих случаях
достигается либо за счет декомпозиции задачи на независимые
подзадачи (выполнимые · параллельно), либо на зависимые подзадачи,
которые выполняются в конвейерном режиме. Степень
распараллеливания колеблется в зависимости от принятой методики. При
отображении алгоритмов на параллельную систему возникают следующие
взаимосвязанные вопросы: как разработка матричного процессора
зависит от алгоритма? Какие алгоритмы наилучшим образом отвечают
матричной архитектуре? И наиболее важный вопрос: каким образом
полностью использовать естественный параллелизм (параллельная и
конвейерная обработка) алгоритмов обработки сигналов и
изображений?
Решающее обстоятельство, от которого зависит эффективность
матричной обработки, - схема соединения, т.е. схема передачи
данных между процессорными элементами (ПЭ) в сети большого раз-
Алгоритмы обработки сигналов и изображений 103
мера. Соответственно для отображения параллельных алгоритмов на
матрицы процессоров необходим их коммуникационный анализ. Для
согласования с ограничениями, диктуемыми технологией СБИС,
выделим специальный класс алгоритмов, которые назовем рекурсивными,
локально зависимыми алгоритмами .
Процедура разработки эффективного алгоритма должна начинаться
с ясного понимания спецификаций задачи, ее анализа с
математической точки зрения и алгоритмического анализа (с точек зрения
распараллеливания и вычислительной сложности). Эффективным
инструментом анализа и достижения максимального распараллеливания и
конвейеризации является граф зависимостей данных, поскольку он
полностью выявляет зависимости между данными, которые
подвергаются обработке алгоритмом. Эти зависимости устанавливают
основные ограничения на процесс обработки. Для эффективного
использования потенциального параллелизма матричных процессоров должна
быть разработана специальная методология конструирования
алгоритмов, ориентированная на матричные процессоры. Хотя процесс
разработки алгоритмов является искусством, которое никогда не
будет полностью автоматизировано, ниже предлагаются некоторые
стратегии, полезные при разработке матричных алгоритмов.
2.6.1. Критерии построения алгоритмов для матричных процессоров
на СБИС
Эффективность отображения алгоритма на массив процессоров
непосредственно связана со способом декомпозиции алгоритма. Два
различных алгоритма, имеющие одинаковую производительность на
последовательной ЭВМ (например, требующие одного числа
арифметических операций) могут совершенно по-разному выполняться на
массиве процессоров.
При общепринятом анализе последовательных алгоритмов
сложность алгоритма зависит от объема вычислений и объема требуемой
памяти, причем число операций является основным параметром.
Например, известно, что алгоритм БПФ предпочтительнее алгоритма
ДПФ по числу операций: N#log2N для БПФ по сравнению с N опера-
В рекурсивном алгоритме все процессоры выполняют примерно
одинаковые задачи. Каждый из процессоров повторяет выполнение
фиксированного набора заданий над последовательно поступающими
данными.
104
Глава 2
циями при непосредственном вычислении ДПФ. Это сравнение
абсолютно корректно для традиционной фоннеймановской архитектуры,
где каждая операция сопровождается одинаковыми накладными
расходами на доступ (чтение/запись) к памяти. Однако при обработке
на массиве процессоров, накладные расходы уже нельзя считать
одинаковыми. Поскольку используется большое число процессоров,
накладные расходы определяются наличием. и доступностью ресурсов.
Меньшее число операций не влечет автоматически более быстрое
выполнение. Другими словами, число операций само по себе нельзя
теперь рассматривать как решающий критерий производительности.
Анализ соотношения между временной и пространственной сложностью
Теория сложности делает попытку предоставить систематическую
информацию о сложности алгоритма для того, чтобы можно было
обоснованно выбрать алгоритм. Модель СБИС-вычислений часто основана
на "решеточной модели" [Prepa84, Thomp79]. Совместному анализу
временной и пространственной сложности, которая зависит от двух
факторов - времени вычислений (Т) и площади кристалла (А),
уделяется особое внимание. В частности, при получении нижних оценок
сложности систолических алгоритмов весьма популярен критерий
AT , выбор которого мотивируется тем, что он служит мерой
информационного обмена между двумя разделенными пополам областями
массива процессоров. Есть, однако, две причины, чтобы не
рассматривать здесь указанную меру сложности. Во-первых, уже
существует ряд интересных работ по этому вопросу, например
[Ullma84]. Вторая причина более существенна: критерий AT не
получил большого распространения в практике проектирования
СБИС-процессоров. Выбор конкретного критерия эффективности вида
/(А,Т) полностью определяется областью приложения. Например, для
военных систем, функционирующих в жестких ограничениях реального
времени, параметру скорости Τ следует приписать больший вес. С
другой стороны, при включении СБИС в предметы широкого
потребления, где скорость уже не столь критична, можно отдать
предпочтение стоимостному параметру А (площадь кристалла) с целью
повышения конкурентоспособности. Во всяком случае связь между
специальным критерием AT , который используется в академических
кругах, и практическим критерием ДА,Т), который определяется
стоимостью и эффективностью, не велика. Правильно было бы сказать,
что основанные на критерии AT теории непосредственно не
применимы к разработке матричных процессоров.
Алгоритмы обработки сигналов и изображений 105
Критерии разработки алгоритмов для матричных процессоров на СБИС
Очевидно, что вместо принятого при оценке последовательных
алгоритмов простого критерия - числа операций, не адекватного
параллельным системам, необходим новый критерий определения
эффективности алгоритма. В частности, поскольку для систем,
выполненных по СБИС-технологии, существенными оказываются проблемы
передачи данных, вводимый критерий должен учитывать затраты на
межпроцессорные соединения. Удовлетворяющий современным
требованиям критерий эффективности вычислений на массиве процессоров
должен учитывать также такие факторы, как параллелизм и
конвейерная скорость. В общем случае критерии эффективности
алгоритмов для матричных процессоров должны объединять эффективность
вычислений, коммуникационную сложность, затраты памяти и
интенсивность операций ввода-вывода. Рассмотрим основные
характеристики алгоритмов.
1. Максимальный параллелизм. Два алгоритма, имеющие
одинаковую производительность на последовательной ЭВМ, могут работать
совершенно по-разному в параллельной среде. Из них
предпочтительнее, разумеется, алгоритм с более высокой степенью
параллелизма, который могут использовать вычислительные массивы. В
качестве иллюстрации сказанного можно привести задачу решения
теплицевой системы, для решения которой наиболее часто
используются алгоритмы Шура и Левинсона [Kung83b]. Последний весьма
популярен во многих приложениях, связанных с оценкой спектра. Оба
алгоритма имеют одинаковую последовательную вычислительную
сложность. Однако при параллельной реализации на линейном
систолическом массиве алгоритм Шура обладает явным преимуществом перед
алгоритмом Левинсона. Более строго, при реализации на линейном
массиве из N процессоров алгоритм Шура может быть выполнен за
время O(N), в то время как алгоритм Левинсона требует время
порядка 0(N\og2N), где N - размер обрабатываемой теплицевой
матрицы. Более подробные сведения содержатся в работе [Kung83b].
2. Максимальная конвейеризуемость. Большинство алгоритмов
обработки сигналов требуют чрезвычайно высокой производитель-
Определение конвейерного такта: интервал времени между двумя
последовательными поступлениями данных по запросу задачи
обозначается символом α . Конвейерная скорость - величина, обратная
конвейерному такту.
106
Глава 2
ности и являются достаточно вычислительноемкими (по сравнению с
интенсивностью ввода-вывода). В регулярных сетях с локальными
связями использование конвейерной обработки часто оказывается
весьма естественным. Более того, распараллеливание при матричной
обработке в основном достигается за счет конвейеризации. Для
увеличения производительности необходимо из всех возможных
алгоритмов и архитектур выбрать наилучшие. Заранее не известные
зависимости между данными могут в несколько раз понизить
эффективность регулярного и структурированного матричного алгоритма.
Высокопроизводительные СБИС-вычислители, как правило, основаны
на конвейерных принципах и соответственно требуют хорошо
структурированных алгоритмов с детерминированными перемещениями
данных. Итеративные методы с динамическим ветвлением, зависящим от
значений, полученных в процессе счета, хуже реализуются на
конвейерных архитектурах.
3. Согласование затрат на вычисления и обмены. Хороший
систолический алгоритм должен обладать удачным соотношением между
интенсивностью потоков данных на всех уровнях иерархии, чтобы
избежать лишних пересылок данных и устранить необязательные
узкие места. Комплексный подход к организации вычислительной части
алгоритма и обменов данными - залог эффективности матричных
вычислений. Современная технология позволяет без больших затрат
улучшать вычислительные характеристики системы, в то же время
увеличение интенсивности ввода-вывода оказывается значительно
сложнее. В этой ситуации принцип конвейерности позволяет
находить компромисс между вычислительными операциями и
вводом-выводом, поскольку каждый элемент данных проходит через
максимально возможное число процессоров, не выходя за пределы
одного вычислителя. Следовательно, уменьшается интенсивность
внешних обменов. Однако в таких задачах, как умножение матриц,
БПФ и сортировка, при увеличении объема вычислений для
сбалансирования вычислительных операций и операций ввода-вывода
необходимо увеличивать размер локальной памяти [HTKun86].
4. Компромисс между вычислениями и обменами. Для того чтобы
сделать сеть обмена практичной, эффективной и работоспособной,
необходимо поддерживать регулярность межсоединений. На
регулярность коммуникаций влияют характеристики модулей межпроцессорных
соединений: являются они локальными или глобальными,
статическими или динамическими, зависят или не зависят от значений
данных. Искомый критерий должен находить компромисс между
стоимостью сети обмена и пропускной способностью. Коммуникационные
Алгоритмы обработки сигналов и изображений
оГраничения СБИС-технологии привлекают внимание исследователей к
локальным и рекурсивным алгоритмам. Сравним с этой точки зрения
алгоритмы ДПФ и БПФ, имеющие вычислительную сложность 0(N ) и
0(N\og2N) соответственно. БПФ имеет вычислительную сложность
почти на порядок меньшую, чем ДПФ. При этом, однако, ДПФ не
требует сложной сети обмена, поскольку принадлежит классу так
называемых "локально рекурсивных" алгоритмов, в то время как для
реализации БПФ необходимы глобальные связи между процессорами
[Thomp83]. Поэтому по интегральному критерию, учитывающему и
время вычислений, и стоимость сети обмена, алгоритм БПФ может
оказаться хуже. В качестве другого примера можно указать на то,
что алгоритм, реализуемый на статической сети обмена,
предпочтительнее алгоритма, требующего динамическую сеть, поскольку
статическая сеть проще реализуется.
5. Производительность и точность вычислений. Точность
вычислений зависит от многих факторов, таких, как длина машинного
слова или используемый алгоритм. Например, QR-разложение,
основанное на ВГ, несмотря на большую вычислительную сложность
нередко предпочтительнее Ш-разложения, так как характеризуется
большей устойчивостью. Достаточно часто для повышения точности
можно использовать дополнительные вычислительные операции.
Однако соотношение между объемом вычислений и точностью зависит от
конкретной задачи, и никаких общих закономерностей здесь не
известно . Хорошей иллюстрацией служит алгоритм БПФ, имеющий
одновременно и меньшую вычислительную сложность, и большую
точность по сравнению с прямым вычислением ДПФ.
2.6.2. Локально и глобально рекурсивные алгоритмы
После проведенного в настоящей главе анализа математических
основ алгоритмов цифровой обработки сигналов и изображений*
осталось ответить на следующие вопросы: как особенности задач
обработки сигналов и изображений влияют на разработку матричных
процессоров? Как эти алгоритмы могут быть практически реализованы
на СБИС? Исследование множества программ обработки сигналов
позволяет вычленить некоторые их очевидные особенности: интенсив-
Если не считать того, что дополнительные вычисления можно
использовать для увеличения длины слова данных (двойная или
многократная точность) и тем самым повысить производительность.
108
Глава 2
ность вычислений, наличие матричных операций и либо
локализованные связи, либо связи типа совершенной тасовки. Эти свойства
можно использовать в качестве отправной точки при разработке
систематических методов отображения алгоритмов на матричные
архитектуры. Эффективность систем обработки сигналов и изображений
в реальном времени зависит от реализации специализированных
процессоров для таких базовых операций, как свертка, БПФ и
матричные операции.
Для требуемой организации обмена в сети процессоров каждый ПЭ
должен знать, куда, когда и как посылать (или принимать) данные.
Если речь идет о реализации локально рекурсивного алгоритма,
вопрос «куда» решается просто, поскольку обмены совершаются
только между ближайшими соседями. Поэтому именно при реализации
алгоритма на вычислительной сети с локальными связями
достигается наивысшая производительность.
Общепринятый подход к решению второго вопроса "когда
выполнять обмены", состоит в использовании схемы глобальной
синхронизации, где управление осуществляется последовательностью
тактовых импульсов [Ullma84], как, например, в систолических
вычислителях [HTKun78, HTKun82]. Однако понятие локальности
применительно к разработке массивов процессоров имеет два значения -
локализованные запросы данных и/или локализованная синхронизация
(т.е. использование самосинхронизации при управлении потоком
данных). Класс локально рекурсивных алгоритмов фактически
удовлетворяет обоим определениям локальности, что можно использовать
при проектировании архитектуры процессоров [Kung82a]. И наконец,
как организовывать передачу данных, в большой степени зависит от
сети обмена конкретной системы.
Локальные и глобальные связи в алгоритмах
Поскольку на производительность параллельной обработки
решающее влияние оказывает стоимость запросов данных, необходимо
иметь формальную модель обменов и уметь оценивать затраты на их
выполнение. Каждому ПЭ сопоставим индекс позиции так, чтобы
расстояние между двумя ПЭ определялось как разность двух
соответствующих индексов. Стоимость обмена данными между ПЭ зависит от
расстояния между ними.
Для полного описания рекурсивного функционирования аппаратуры
параллельной обработки необходимо ввести временной и
пространственный индексы для указания, когда и где выполняется каждая, из
Алгоритмы обработки сигналов и изображений
оПераций алгоритма. Рекурсивные алгоритмы можно разбить на два
основных класса - алгоритмы с локальными пересылками данных и с
глобальными пересылками данных.
1. Говорят, что алгоритм имеет локальный тип, если разность
между пространственными индексами на шаге рекурсии ограничена
некоторой константой. Подавляющее большинство алгоритмов
обработки сигналов удовлетворяет свойствам рекурсивности и
локальности зависимостей между данными. Типичный пример - класс
матричных алгоритмов, широко используемых в обработке сигналов и
других задачах прикладной математики. Ниже мы рассмотрим именно
этот класс алгоритмов.
2. Если рекурсия включает глобально разнесенные
пространственные индексы, то говорят об алгоритме глобального типа. Для
реализации этих алгоритмов, к числу которых, например, относятся
такие процедуры обработки сигналов, как БПФ и сортировка,
необходимы вычислительные структуры с глобальными связями между
процессорами.
Некоторые наиболее характерные примеры локально и глобально
рекурсивных алгоритмов приведены в табл. 2.4.
Таблица 2.4
Локально рекурсивные Глобально рекурсивные
алгоритмы алгоритмы
Умножение матриц БПФ
Свертка Битонная сортировка
Обратная подстановка Декодирование Витерби
БИХ-фильтрация
Сортировка выбором
Решение теплицевых систем
Транзитивное замыкание
Локально рекурсивные алгоритмы
Большинство алгоритмов цифровой обработки сигналов и
изображений характеризуется локализованными операциями, преобладанием
вычислительных операций над операциями ввода-вывода и матричным
характером операций. Основное свойство этих алгоритмов состоит в
том, что при их отображении на матричные структуры требуются
110
Глава 2
только локальные связи, что позволяет упростить аппаратную и
программную части специализированных процессоров обработки
сигналов и изображений. Гл. 3 целиком посвящена классу локально
рекурсивных алгоритмов. Ниже мы остановимся вкратце на классе
глобально рекурсивных алгоритмов.
БПФ как пример глобально рекурсивного алгоритма
Алгоритм БПФ - типичный пример глобально рекурсивного
алгоритма. Поскольку совершенная тасовка, которая используется для
передачи данных между этапами вычислений, является неотъемлемой
частью алгоритма БПФ [Singl67, Stone71], для его реализации
необходимы глобальные связи. Ниже приведено подробное описание
матричных процессоров БПФ, в основе которых лежит сеть
совершенной тасовки [Stone71]. На рис.2.6 даны одноярусная и многоярусная
схемы процессоров БПФ. Отметим, что общее число операций
——*O-\ /\ у*·
М-А
МЛ
Щ
рО-
МЛ
МЛ
Рис. 2.6. Две схемы вычисления БПФ на сети совершенной тасовки.
а - многоярусный массив; б - одноярусный массив. МА - умножение
с накоплением.
Алгоритмы обработки сигналов и изображений 111
"бабочка" в алгоритме равно (N/2)*\og2N, причем каждая "бабочка"
состоит из четырех действительных умножений и шести
действительных сложений. Для реализации БПФ длиной N на одноярусной схеме,
представляющей линейный массив из N/2 ПЭ, требуется время,
равное log2#. Покажем возможность реализации БПФ на сети
тасовки-обмена на примере алгоритма БПФ с прореживанием по
времени.
Совершенная тасовка. Понятие "совершенная тасовка" пришло из
карточной терминологии: в процессе тасовки колода карт сначала
делится на две равные части, затем эти части сливаются с
чередованием (рис. 2.7, а). Такая перестановка соответствует
циклическому сдвигу двоичного представления индекса на одну позицию,
т.е. если двоичная запись χ имеет вид
1 л' л-Г * 1·"
то операция совершенной тасовки выражается следующим образом:
Обменная перестановка. Обменная перестановка определяется
следующим образом:
ε<*>(χ) = <»„.-Л.···.*,}.
где Ь.- дополнение fc-го разряда. Обменная перестановка показана
на рис. 2.7,6.
Рис.2.7. Совершенная тасовка (а) и обменная перестановка (б).
112
Глава 2
Реализация БПФ на сети тасовки-обмена. Заметим, что сеть
обмена на рис. 2.7,6 в точности совпадает с графом алгоритма
8-точечного БПФ с прореживанием по времени (см. рис. 2.3).
Фактически сеть обмена для 8-точечного БПФ с прореживанием по
времени задается следующим образом:
Ρ[ε(1)[ε(2)[ε(3)]]].
(2.39)
Сеть обмена для вычисления БПФ без использования
дополнительной памяти должна обеспечивать обменную перестановку (ε,.χ) и
двоичное реверсирование (р). Отметим, что операции выполняются в
такой последовательности: сначала ε,3„ затем ε,^ и т.д., т.е.
операциии в выражении (2.39) выполняются справа-налево. Для ил-
люстрации рассмотрим частный случай, например, N = 2 = 8.
В процессе вычисления X(k) последовательность х(п)
разделяется на две Af/2-точечные подпоследовательности, состоящие из
четных и нечетных элементов х(п):
X(k) = Σ x(n)WnNk, k = 0,1,...,7.
Представим k и η в двоичном виде:
η = (n^n^nj = 4л3 + 2п2 + ηγ
k = (*з*2*1> = 4/г + 2*2 + ky
Используя двоичное представление ли*, получим
1 1 1 {Ak~+2K+k. ) (4п~+2пп+пЛ)
X(Wi> = Σ Σ Σ χ{ηζη2ηχ)ΨΝ 3 2 1 3 2 χ
л3"° л2°° ηΓ°
1 1 (2Λ9+Λ1 )(2η«+η9)
Σ Σ /("з«2°)^/22 χ 3 2
4fe3(2n3+n2)
Γ 1 1 (2Λ9+Λ1 )(2η„+η9) Ί (4^+2^)
4*,(2η,+η9) 4Ц(2л„+п9)
Но поскольку U^3 3 2 = W4 3 3 2 = 1,
ство можно упростить следующим образом:
последнее равен-
Алгоритмы обработки сигналов и изображений 113^
1 1 (2V*i) ( 2л. + п9)
X(*3W=E Σ *(n3n20)WN/22 Х )3W2 +
η3β° Л2Ш°
f 1 1 (2fe9+fe1)(2nq+n9)
к«0 п9-0 3 2 Л^/2
·№
(4^3+2^+^)
Ν/2
Поскольку вычисления выполняются "на месте", т.е. входные и
выходные данные занимают одно и то же место в памяти, можно
убедиться (из последнего равенства), что п* заменяется на k~. Таким
образом, при разделении входных данных на две группы, х(п. = 0)
и х(п. = 1), и выходных данных на две группы, Х(&3 = 0) и
Х(/г = 1), последнее равенство показывает, как связаны эти
группы данных структурой "бабочки" (рис. 2.3). Далее, поскольку
1 1 (2Λ9+Λ1)(2η« + η9) 1 Λ, η,
Σ Σ χ(η3η20) ΨΝ/2> * 3 2 = Σ *(*з° °)<23
η3»0 η2=0 η3=0
Σ χ(η3ο o)WkN^
^3 = 0
-W
2k2+kx
Ν/Α
1
Σ
η3=0 Λ9=0
Σ *(*3/ι2ΐ) wN/2
(2fe2+fe1)(2n3+n2)
χ(ηΛ 0)W
*1η3
1
= Σ -ν«3* "'"Ν/Α
ηο=0
*1η3
Σ *(*3ι ΐ)^;4
η3-0
■w
Ν/2
η2 заменяется на k2 . Подобным образом можно показать, что п^
заменяется на ky Если (язл2п1) ~ двоичное представление индекса
последовательности х(п), то элемент х^оп^пл) записывается в
позиции X(k^k2k^). Таким образом, чтобы найти положение
х(п„п2пЛ во входной последовательности, необходимо обратить
порядок следования разрядов индекса η (ср. рис. 2.3 и табл.
2.5).
Теорема 2.1. Вычисление БПФ с прореживанием по времени можно
реализовать на статической одноярусной сети совершенной тасовки,
как показано на рис. 2.6,6.
Доказательство. Во-первых, докажем истинность следующего
соотношения: ε,.* = а~^п~*+1Ц1лгл~*+1 k-я обменная
перестановка определяется через операцию дополнения /г-го разряда двоичного
представления. Определим операцию ση~*+1 как (я-£+1)-кратный
8—1028
114
Глава 2
Таблица 2.5
х(0)
х(\)
х(2)
*(3)
*(4)
х(5)
*(6)
х(7)
000
00 1
010
01 1
100
10 1
ПО
11 1
х(0)
х(4)
х(2)
*(6)
*(1)
х(5)
х(3)
х(7)
Исходный индекс Двоично-реверсированный индекс
000
100
о ι о
ι ι о
оо ι
10 1
0 1 1
1 1 1
сдвиг двоичного представления влево и обратную к ней операцию
σ-(η- +) Процедура состоит из следующей последовательности
действий: k-Pi разряд сдвигается в положение старшего разряда,
дополняется до единицы и возвращается в исходное положение. Эта
процедура совпадает с операцией ε..*.
Теперь запишем выражение (2.39) в следующем виде:
ρ[σ"3^ΐ)σ3[σ_2ε(ΐ)σ2[σ"1ε(ί)σ1]]] = ρ[σ_3ε(ΐ)σ [ε(ΐ)°ΐε(ΐ)σ№
= Ρ[ε(1)σ[ε(1)σ[ε(1)σ]]],
что полностью соответствует · сети, приведенной на рис. 2.6, а.
Если теперь склеить ярусы рис. 2.6, а в один ярус, получим
структуру, приведенную на рис. 2.6,6.
Отметим, что сеть совершенной тасовки эквивалентна
циклическому сдвигу влево двоичного представления пространственного
индекса. В результате перестановки элементы X(b„b2b<) и ЩЬЛЛЛ
переходят в последовательно расположенные элементы, двоичные
индексы которых отличаются только в крайнем правом разряде.
Другими словами, сеть тасовки переводит пары взаимодействующих
отсчетов в соседние.
Основные операции цифровой обработки сигналов - быстрое
преобразование Фурье, быстрое косинус-преобразование и быстрое
преобразование Адамара - имеют много общего. Если с функциональной
точки зрения эти преобразования основаны на различных базовых
операциях (БПФ включает комплексные умножения и сложения,
косинус-преобразование - действительные умножения и сложения,
преобразование Адамара - действительные сложения), то структурно они
удовлетворяют одному принципиальному требованию: для их
реализации необходимы глобальные соединения между процессорными
элементами.
Алгоритмы обработки сигналов и изображений
115
2.7. ЗАКЛЮЧЕНИЕ
В главе рассмотрен широкий спектр алгоритмов. По-видимому,
для эффективной разработки специализированных процессоров
необходимо сначала проанализировать свойства алгоритмов,
классифицировать их и лишь затем приступать к разработке архитектуры и
аппаратной реализации. Таким образом, данная глава дает
основные понятия, необходимые для понимания алгоритмов. Хотя в
первую очередь рассматривались алгоритмы цифровой обработки
сигналов и изображений, они могут найти естественное применение во
многих областях вычислительной математики. Кроме того, здесь
описаны некоторые прогрессивные алгоритмические методы, интерес
к которым будет возрастать с развитием технологии СБИС.
Необходимо исследовать несколько принципиальных задач,
связанных с пониманием алгоритмов:
1. Гарантировать, что численное поведение алгоритмов
соответствует (хотя бы приблизительно) тому, что они должны делать.
2. Создать систематическую методологию
отображения/согласования алгоритмов и матричных архитектур.
3. Разработать подходящие для реализации на матричных
процессорах алгоритмы. Последняя задача более острая и трудная по
сравнению с разработкой и реализацией собственно матричной
архитектуры, по крайней мере с точки зрения ее теоретического
осмысления.
Изучение численных свойств алгоритмов - задача весьма
актуальная, однако она выходит за рамки этой книги. Методология
отображения и/или согласования алгоритмов и массивов с
локальными связями рассматривается в гл.З. Методология же разработки
алгоритмов должна в идеале превратиться в автоматическое
проектирование, что, однако, в силу эвристической природы алгоритмов
является очень непростой задачей.
2.8. ЗАДАЧИ
1. Число операций при умножении матриц. Найдите число
сложений и умножений при умножении матрицы размером 3 χ 4 на матрицу
размером 4 χ 12.
2. Сходимость итеративного метода. Докажите, что итеративный
метод решения линейной системы сходится в том и только в том
случае, когда все собственные значения по модулю меньше единицы.
3. Критерий сходимости метода последовательной верхней
релаксации.
8*
116
Глава 2
а) Основываясь на данных значениях S и Τ , найдите результат
вычисления S + Τ и соотношение между этим результатом и
матрицей А. Объясните на интуитивном уровне, почему этот результат
может способствовать сходимости итеративного алгоритма.
б) Проверьте правильность равенства (2.16), используя (2.13).
в) Покажите, что для матрицы В$ = S"1!^ справедлив
следующий критерий и метод может сходиться только для 0 < w < 2:
p(Bs) * \w - 1|,
где p(B ) - модуль наибольшего собственного значения матрицы В .
4. Алгоритм исключения по Гауссу для LU-ρизложения. Решите
следующую линейную систему с помощью метода Гаусса [Stran80]:
2и + ν + w = 1 ,
4и + ν = -2 ,
-2и + 2v + w = 7 .
Указание. Сначала приведите систему к треугольному виду.
5. Обратная подстановка. Используйте обратную подстановку для
решения следующей системы:
4 2 10
0 4 2 1
0 0 4 2
0 0 0 4
6. Алгоритм Шура для решения теплицевой системы. Используя
алгоритм Шура, решите следующую теплицеву систему:
.
\ х\]
ч
Η
L*4J
_
Г 6]
з
6
ни
Г4 2 1 0"
2 4 2 1
12 4 2
[.0 12 4
1
а
b
с
11
-5
-1
-4
7. Интерпретация линейной инвариантной системы как свертки.
Покажите, что для линейной инвариантной системы выходная
последовательность {у(п)} связана со входной следующим соотношением:
y(Ai) = Σ x(k)h(n - k),
fe=-co
где {h(n)} - импульсная характеристика системы.
8. Вычисление линейной свертки. Найдите результат свертки
двух последовательностей:
а) β, 2, 3, 4} и {1, -1, 1, -1, 1};
б) {ί, О, 3} и {1, -1, 1, О, 1, 2}.
9. Вычисление циклической свертки. Найдите результат свертки
двух последовательностей:
а) {1, 2, 3, 4} и {1, -1, 1, -1} ;
б) {1, 0, 3, 2, 4, 1} и {1, -1, 1, 0, 1, 2}.
10. Область сходимости Ζ- преобразования. В общем случае
Z-преобразование определено только в некоторой области плоскости
3, называемой областью сходимости, где сходится геометрический
ряд Z-преобразования. Найдите область сходимости следующих
последовательностей:
а) х(п) = 2пи(п), где и(п) = 1 для η = 0,1,2,... и
и(п) = 0, для η < 0;
б) х(п) = -g)V" " 1).
И. Свойства Z-преобразования. Покажите, что выполняются
следующие свойства Z-преобразования:
а) х(-п) < > Х(2-1).
б) апх(п) < > Χ(α_1ζ).
в) пх(п) « ~г[Ц^\
12. Собственные функции линейных инвариантных систем.
Собственной функцией системы называется функция, которая, будучи
поданной на вход системы, переходит сама в себя с точностью, до
масштабного множителя. Покажите, что {e'wn} являются
собственными функциями дискретных инвариантных систем.
13. Свойства линейного фазового фильтра. Импульсная
характеристика линейной фазовой (КИХ) системы обладает следующим
свойством (предположим без потери общности, что N - нечетно):
h(n) = Λ(Ν - 1 - л), η = 0,1,...,Ν - 1.
а) Покажите, что это условие достаточно для линейности фазы.
Указание. Обозначим п(п) = п(п + 2 )· Заметим, что п(п)
является симметричной, вследствие чего ее преобразование Фурье
t\Aeiw) - действительно.
б) Покажите (для нечетного N), что следующее условие также
является достаточным условием линейности фазы:
п(п) = Λ(Ν - 1 - п\п = 0,1,...,Ν - 1.
14. Корректность определения обратного ДПФ. Покажите, что
если применить обратное ДПФ к последовательности X(k) (ДПФ по-
118
Глава 2
следовательности х(п))> то полученная последовательность х(п)
совпадает с Тс(п) для η = 0,1, 2,..., N - 1.
15. ДПФ и свертка. Рассмотрим две конечные последовательности
х(п) и у(л), которые равны нулю при η < 0 и такие, что
х(п) = 0, η £ Ю,
у(п) = 0, л £ 18.
20-точечные ДПФ двух этих последовательностей перемножаются и
вычисляется обратное ДПФ. Обозначим его г(п). Укажите, какие
компоненты г(п) соответствуют точкам, которые были бы получены
при вычислении линейной свертки х(п) и у(п).
16. БПФ с прореживанием по частоте. На рис. 2.8 показан
алгоритм вычисления 8-точечного БПФ с прореживанием по частоте.
Покажите, что результат этого вычисления эквивалентен
результату ДПФ.
Указание:
(tf/2)-1 „ JV-1 пК
вд = Σ x(n)Wn/ + ς x(n)Wn/ =
n=0 N n=N/2 N
{N/2)-\ nK tu/oxy (N/2)-\ xr „
= Σ *(n)K + W<"/2>fe Σ *(" + τγ)^Ϊ* ·
n=0 N N n = 0 Z ^
-1 -i -1
Рис. 2.8. БПФ с прореживанием по частоте.
Алгоритмы обработки сигналов и изображений
119
17. Сравнение ДПФ и ДПА. Сравните ДПФ (БПФ) и ДПА (дискретное
преобразование Адамара) (БПА) с точек зрения вычислительной
сложности, ортогональности преобразования и т.д.
18. Дискретное преобразование Адамара. Найдите будет
дискретное преобразование Адамара следующего вектора:
19. Быстрое преобразование Адамара. Покажите, что матрицу
Адамара порядка 4 можно разложить в произведение двух
разреженных матриц, как показано ниже. Сколько сложений/вычитаний
требуется для вычисления преобразования Адамара с помощью этих двух
разреженных матриц? Сравните с прямым вычислением преобразования
Адамара. Изобразите граф потока вычислений (см. рис. 2.3) для
быстрого способа.
1
0
1
0
1
0
-1
0
0
1
0
1
01
1
0
-1J
110 0
0 0 11
1-10 0
0 0 1-1
20. Быстрое преобразование Адамара (прореживание по частоте).
Изобразите граф потока вычислений (см. рис.2.8) с учетом того,
что ^-точечное преобразование Адамара можно представить
следующим образом:
Нж, =
V2
Htf/2X1 + Htf/2X2
Н#/2Х1
Н#/2Х2
*WX1 + χ2)
НЛ^/2^Х1 " Х2^
21. Двумерная свертка. Пусть задана матрица А размером 5x5.
Покажите, что всегда можно подобрать решения следующего
уравнения:
А = с^ dt + с2* d2 + с3* d3 + с4* d4 ,
где * означает свертку, и все матрицы с^ и d^., i = 1, 2, 3, 4
- размером 3x3.
Замечание. Все матрицы d/f / = 1, 2, 3, 4 состоят только из
нулей и единиц.
22. Математическая запись различных операций. Дайте
определение каждой из следующих операций:
120
Глава 2
а) Решение линейных систем.
б) Сингулярное разложение.
в) Двумерная свертка.
г) Двумерное ДПФ.
д) Линейный фазовый фильтр.
23. Локально и глобально рекурсивный алгоритм. Поясните
различия между локально рекурсивным алгоритмом и глобально
рекурсивным алгоритмом.
24. Совершенная тасовка. Какой станет последовательность если
трижды выполнить совершенную тасовку последовательности
{1,2,3,4,5,6,7,8} ?
25. Перестановка обменом. Какой будет * последовательность
после выполнения перестановок обменом ε,,ν, е.^и е,3*над
последовательностью {1,2,3,4,5,6,7,8}?
26. Планарный граф вычислителя БПФ. Изобразите линейный
вычислитель для 16-точечного БПФ аналогичный тому, что изображен
на рис. 2.6. Будет ли этот ГПС планарным графом, если
рассматривать каждый процессорный элемент как вершину? (Граф является
планарным тогда и только тогда, когда он может быть отображен на
топологически эквивалентный ему граф, не имеющий пересечений по
ребрам.)
3. ОТОБРАЖЕНИЕ АЛГОРИТМОВ НА
МАТРИЧНЫЕ СТРУКТУРЫ
3.1. ВВЕДЕНИЕ
Локализованные действия, интенсивные вычисления и матричные
операции присущи многим алгоритмам, применяемым в обработке
сигналов и изображений. Общие свойства этих алгоритмов должны
использоваться при разработке специализированных матричных
процессоров для обработки сигналов и изображений. Поэтому основное
внимание здесь мы уделим выражению (описанию) и преобразованию
таких алгоритмов.
Выражение алгоритма - основное средство соответствующего
описания алгоритма для параллельной и конвейерной обработки.
Формальное описание пространственно-временного функционирования
матричных процессоров приведено в работах [HTKun78, Chen83].
Один из естественных подходов заключается в описании реальных
пространственно-временных действий с помощью кадров, которые
отображают информационные процессы в конкретные промежутки
времени, или в виде пространственно-временной рекурсивной
программы. Хотя эти описания часто оказываются достаточно сложными, их
можно использовать в качестве начального шага, ведущего к более
систематическому и формальному описанию, такому, как граф
зависимостей.
Естественно возникают следующие вопросы.
1. Что является главным при формальном и содержательном
описании (выражении) алгоритмов?
2. Каковы допустимые подходы к проектированию и оценке СБИС-
алгоритмов?
3. Что представляет собой систематический метод
преобразования описания алгоритма в матричный процессор?
4. Как оптимизировать параллельные алгоритмы?
В этой главе рассмотрены выражения алгоритмов и различные
преобразования одних выражений в другие. Критерии и способы
разработки оптимальных алгоритмов и матричных устройств
рассматриваются в гл. 4.
122
Глава 3
3.2. ПАРАЛЛЕЛЬНЫЕ ВЫРАЖЕНИЯ АЛГОРИТМА
Возможны два подхода к образованию параллельных выражений
алгоритма:
1. Векторизация последовательных выражений алгоритма.
2. Непосредственно параллельные выражения алгоритма, такие,
как кадры, рекурсивные уравнения, параллельные программы,
программы с однократным присваиванием, графы зависимостей и т.д.
3.2.1. векторизация последовательных выражений алгоритма
Обычно алгоритм записывается в последовательном коде. Языки
высокого уровня обеспечивают сжатое выражение алгоритма и
являются машинно-независимым средством программирования. Два из
наиболее употребительных языков Фортран и Алгол, появившиеся в
50-е годы, отражают структуру ранних ЭВМ, призванных выполнять
последовательности операций над скалярными данными.
Программирование на этих языках требует разбиения алгоритма на
последовательность шагов, каждый из которых выполняет операцию над
скалярным объектом. Результирующий порядок вычислений чаЪто
оказывается произвольным.
Рассмотрим, например, математическое выражение для сложения
двух матриц С = А + В:
С(*,/) = Α(ι,/) + Β(ί,/) для всех / и /. (3.1)
Соответствующая программа на Фортране может быть записана
следующим образом (здесь А, В и С - матрицы размером 4 χ 4).
DO 10 J=l,4
DO 10 1=1,4
C( I,J)=i4(I,J)+B(I,J)
10 CONTINUE
Элементы А и В выбираются по столбцам, что соответствует
порядку, в котором по определению они хранятся в памяти. На других
машинах, где порядок хранения иной (по строкам), эта программа
выполняется неэффективно. Поскольку в примере алгоритм не
требует упорядочения операций, нет и смысла отображать его в
программе. Но все же упорядочение должно присутствовать в
последовательном языке программирования, и это упорядочение может стать
препятствием для эффективной параллельной реализации алгоритма.
Отображение алгоритмов на матричные структуры 123
Если упорядочение вычислений не введено в программу, компиля-
оР может выбирать порядок, наиболее эффективный для данной
объектной машины. Более того, если бы объектная машина обладала
средствами параллельной обработки, то некоторые или все операции
м0ГЛи быть выполнены одновременно без какого-либо анализа или
риска. Так как упорядочение неизбежно при использовании
последовательной программы, параллельное выражение алгоритма является
крайне желательным.
Существует огромное количество последовательных программ для
обработки сигналов и изображений. Из-за высокой стоимости
программного обеспечения пользователи могут отказаться переписывать
его вручную в параллельных конструкциях. Поэтому обычный подход
для выявления параллелизма связан с использованием
векторизующего компилятора, хотя его эффективность невелика.
Векторизующий компилятор обрабатывает исходный текст, записанный на
последовательном языке, и, где это возможно, генерирует
параллельные машинные команды. В некоторых случаях может компилироваться
более компактная промежуточная форма представления исходной
программы, как, например, ориентированный граф для ЭВМ Advanced
Scientific Computer (ASC NX) фирмы Texas Instruments. Наиболее
вероятными фрагментами программ, где можно найти подходящие
последовательности операций для векторизации, являются
повторяющиеся (например, рекурсивные) вычисления, такие, как циклы DO
Фортрана. Поэтому векторизующий компилятор с Фортрана нацелен на
циклы DO. Например, компилятор для ASC NX может анализировать
гнезда, включающие три цикла DO, и генерировать, если позволяют
зависимости, для выполнения тройного цикла одну машинную
команду. Векторизатор ЭВМ Burroughs Scientific Processor (BSP) может
анализировать вложенные циклы DO и переупорядочивать их, если
самый внутренний цикл содержит зависимость [Hockn83].
Действительно, обнаружение и анализ зависимостей между операторами в
Циклах является основной задачей при векторизации [Носкп83].
Рассмотрим, например, программу на Фортране для умножения
матрицы на вектор (ср. с уравнением 2.1)
с = АЬ .
'-й элемент с вычисляется по формуле
m
124
Глава 3
Код для умножения матрицы на вектор записывается на Фортране
следующим образом:
DO 10 1=1,4
С(1)=0
DO 10 J=l,4 (3.2)
C(I)=C(IM(I,J)*B(j)
10 CONTINUE
В этой программе С(2) вычисляется после С(1). Более того,
необязательно вычислять Л(1,1)*В(1) раньше Л(1,2)*В(2), и
наоборот. Этот вид упорядочения является необязательным и при анализе
параллелизма должен быть исключен. Используя подобные факты,
векторизующий компилятор может преобразовать эту программу на
Фортране в следующий параллельный код:
IN PARALLEL FOR 1</<4,1</<4 DO BEGIN
TEMP(I,J)=>l(I,J)*B(J)
END IN PARALLEL DO
IN PARALLEL FOR l</<4 DO BEGIN
C(I)=0
DO 10 J=l,4
C(I)=C(I)+TEMP(I,J)
10 CONTINUE
END IN PARALLEL DO
3.2.2. Прямые выражения параллельных алгоритмов
Поскольку векторизующий компилятор не может быть достаточно
эффективным в извлечении параллелизма (в параллельной или
конвейерной форме), желательно, чтобы прежде всего сам пользователь
или разработчик использовал параллельные выражения для описания
алгоритма. Это - первый шаг к созданию алгоритмо-ориентирован-
ного проектирования матричных процессоров. Для представления
параллельного алгоритма могут быть использованы разнообразные
выражения, такие, как кадры, рекурсивные алгоритмы с
пространственно-временными индексами, параллельные программы, графы
зависимостей (ГЗ) или графы потока сигналов (ГПС). Главный фактор
при выборе выражения алгоритма - четкость и краткость.
Программа с однократным присваиванием - это форма, в которой
Отображение алгоритмов на матричные структуры 125
fcaofcdou переменной присваивается только одно значение при
выполнении алгоритма.
Программа с однократным , присваиванием резко отличается от
обычной программы на Фортране. Рассмотрим, например, умножение
матрицы на вектор (выражение (3.2)). Отметим, что в этой
программе С(1) переписывается много раз для экономии памяти. Таким
образом, значение QI) присваивается более одного раза. При
преобразовании этой программы в программу с однократным
присваиванием число индексов вектора С возрастет; программа на
Фортране будет выглядеть тогда следующим образом (здесь А и С -
матрицы размером 4x4 и В - вектор размером 4x1):
DO 10 1=1,4
С(1,1)=0
DO 10 J=l,4
qi,j+i)=qi,j)+A(i,j)*B(j)
10 CONTINUE
Каждому элементу вектора С будет присвоено только одно
значение. Поэтому приведенная программа действительно является
программой с однократным присваиванием. Если использовать индексы I
и J для описания двумерного индексного пространства, то
последнее представляет собой прямоугольник с 16 (т.е. 4x4)
индексными точками. В каждой индексной точке три переменные Л, В и С
определены однозначно, поскольку программа обладает свойствами
однократного присваивания (предполагается, что значение В в
каждой индексной точке не зависит от индекса I). Ниже будет
показано, что однократное присваивание является решающим при получении
ГЗ.
Рекурсивные алгоритмы
Удобное, сжатое выражение для представления многих алгоритмов
связано с использованием рекурсивных уравнений. Вывод
рекурсивных уравнений часто является непосредственным . Рекурсивное
уравнение для умножения матрицы на вектор с = АЬ имеет вид
с</ + 1> = с</> + а</>Ь</>,
где / - индекс рекурсии, / = 1,2,...,# и
Более подробно это рассмотрено в задаче 1.
126
Глава 3
с« = О,
а</> = А(/,/),
Ь« = В(/).
В рекурсивном уравнении с пространственно-временными
индексами один индекс используется для времени, другой - для
пространства. В этом случае действия параллельных алгоритмов описываются
адекватно. Предыдущее уравнение можно рассматривать как рекусив-
ное уравнение с временным индексом / и пространственным индексом
L Конечно, их роли могут и поменяться. С математической точки
зрения между верхними и нижними индексами различия нет, т.е. i и
/ равноправны. Поэтому в последующем описании будем говорить об
индексном пространстве, не делая различия между временными и
пространственными индексами.
Отметим учто рекурсивный алгоритм по существу определяется с
помощью правила однократного присваивания.
Кадры. Кадр - это описание действий в конкретный момент
времени. Возможно, кадры являются наиболее естественным средством,
с помощью которого разработчик может проверить или
верифицировать новый математический алгоритм. Выборочные кадры для
систолического алгоритма умножения матрицы на вектор приведены на
рис. 3.1.
Граф зависимостей (ГЗ)
Для извлечения максимального параллелизма из алгоритма
необходимо тщательно исследовать зависимости данных при вычислениях.
В частном случае, когда операции алгоритма не имеют зависимостей
данных, они могут быть выполнены одновременно на параллельном
компьютере. Например, очевидно, что все сложения в уравнении
(3.1) не имеют зависимостей данных, и поэтому они могут быть
выполнены одновременно. Однако в общем случае всегда существует
некоторая степень зависимости, которая определяет
последовательность вычислений.
Терминология теории графов. Граф G=[N,A] - это множество N,
элементы которого называются узлами, и множество Л, элементы
которого называются дугами, или ребрами. Каждая дуга а € А
связывает пару узлов /,/ € N и записывается как а = / ^-» /. Здесь
i - начальная концевая точка а и / - конечная концевая точка а.
Дуга, концевые точки которой совпадают, называется петлей. Цепь
- это последовательность дуг L = {α.,...,α } такая, что дуга af
Отображение алгоритмов на матричные структуры, 127
,<1 * г £ q - 1) имеет одну концевую точку, общую с дугой
а л(а * а -i)* а Другую концевую точку - общую с дугой
а Ха * а Л независимо от направления дуг. "Свободные"
концевые точки первой и последней дуг цепи являются концевыми
точками цепи. Путь - это цепь, все дуги которой направлены в
одну сторону. Заметим, что путь имеет строго определенные
начальную и конечную концевые точки. Если концевые точки пути
совпадают, то путь называется циклом. Если концевые точки цепи
совпадают, то это - неориентированный цикл. Элементарными
называются цепь, путь, неориентированный цикл или цикл, в кото-
АпВ(1)
В(2) >·-^ ( В(1)
Рис. 3.1. Кадры для систолического алгоритма умножения матрицы
на вектор.
128
Глава 3
рых один и тот же узел не встречается дважды (за исключением
концевых точек). Граф называется связным, если существует цепь
между каждой парой его узлов. Он называется сильно связным, если
существует путь из каждого узла во все другие узлы.
Граф зависимостей. Граф зависимостей - это граф, который
описывает зависимость вычислений, представленных в алгоритме. ГЗ
может рассматриваться как графическое представление алгоритма с
однократным присваиванием.
В терминах ранее рассмотренного алгоритма с однократным
присваиванием говорят, что QI,J+1) непосредственно зависит от
C(I,J), i4(I,J) и B(J). Представляя каждое отношение зависимости
в виде дуги между соответствующими переменными, размещенными в
индексном пространстве, можно получить ГЗ, показанный на
рис. 3.2,а.
Отметим, что на рис. 3.2 представлены только зависимости
между узлами. Операции в каждом узле преднамеренно игнорируются в
ГЗ, так как они будут назначены на один и тот же процессорный
элемент при использовании ГЗ для отображения алгоритма в
матричный процессор. Однако несложно расширить идею ГЗ, включив
операции в каждом узле.
Такой ГЗ, который называется полным ГЗ, определяет все
зависимости между всеми переменными в индексном пространстве.
Алгоритм является вычислимым, если его полный ГЗ не содержит ни
петель, ни циклов. Поэтому полный ГЗ является чрезвычайно полезным
для изучения вопросов, связанных с вычислимостью. Однако в этой
книге вряд ли придется явно прибегать к использованию полного
ГЗ.
Локализованный граф зависимостей. На рис. 3.2, α значение B(J)
каждого элемента вектора b должно быть "распространено" во все
индексные точки, имеющие один и тот же индекс J. Этот тип данных
называется распространяемыми данными. В общем случае это
означает, что в состав матричного процессора должна входить система
глобальной связи. Во многих ситуациях такое распространение
может быть исключено и заменено локальной связью.
Говорят, что алгоритм является локализованным, если все
переменные непосредственно зависят только от переменных соседних
узлов. Пример локализованного ГЗ показан на рис. 3.2,6, где B(J)
пересылается шаг за шагом без изменений ко всем вершинам с тем
же значением индекса J. Такой тип данных, пересылаемых без
изменения, называется передаваемыми данными; в противном случае -
это непередаваемые данные.
Отображение алгоритмов на матричные структуры 129
j t
4 -Р(4)
3 -Ш(3)
В(2)
В(1)
С(4)
-о-о-оо
J L
1* 2 3 4 i
б
Рис. 3.2. ГЗ для умножения матрицы на вектор с глобальной связью
(а) и только с локальной связью (б).
Соответствующая программа на Фортране для локализованного
алгоритма имеет вид (B(l,J)=b(J), J = 1, 2, 3, 4):
DO 10 I = 1,4
Qbl) = 0
DO 10 J = 1,4
Щ1 + 1, J) + Щ1, J)
qi, J + i) = qi, J) + >4(ΐ, J) * B(i, J)
10 CONTINUE
9—1028
130
Глава 3
В этом алгоритме с однократным присваиванием P(I+1,J)
непосредственно зависит от B(I,J), a C(I,J+1) непосредственно зависит от
C(I,J), i4(I,J) и B(I,J).
Идея локальных и регулярных ГЗ была применена Карпом,
Миллером и Виноградом [Кагр67] в их "системе однородных
рекурсивных уравнений". Они первыми использовали отображение индексного
пространства для того, чтобы показать полную зависимость
локально рекурсивных алгоритмов. Были введены некоторые
инструментальные понятия, такие как, приведенный ГЗ и разделяющие
"равновременные" гиперплоскости, а также степень параллелизма.
Для анализа локально рекурсивных алгоритмов были также
предложены теоретико-графовый подход и методы целочисленного
программирования [Кагр67, Rao85]. Другой интуитивный и распространенный
подход к построению ГЗ основан на кадрах. Если последовательные
кадры разместить в одном направлении, то каждую позицию данных
можно рассматривать как индексную точку для ГЗ. Прослеживая
движение данных в последовательных кадрах, можно определить
направление потока данных, и, следовательно, зависимости данных,
которые в конечном итоге приведут к выводу ГЗ.
Основываясь на идее ГЗ, дадим определение локально
рекурсивного алгоритма. Локально рекурсивный алгоритм - это алгоритм,
соответствующий ГЗ которого имеет только локальные зависимости,
т.е. на длину каждой дуги зависимости не влияет размер задачи,
и большинство узлов ГЗ состоит из операций одного и того же ти-
па] [Kung87].
Так как зависимости данных явно выражены в графе
зависимостей, то использование таких регулярных ГЗ делает возможным
систематический подход к разработке матричных процессоров
[Moldo83, Miran84, Quint84, Сарре84, Rao85, Chen85b, Chen85,
Moldo86, Kung86a].
3.3. МЕТОДОЛОГИЯ КАНОНИЧЕСКОГО ОТОБРАЖЕНИЯ
Выше были введены несколько вариантов выражения алгоритмов.
Рассмотрим теперь вопросы преобразования таких выражений в
структуру матричного процессора. На рис. 3.3 схематично показаны
Иногда операции, выполняемые в граничных узлах ГЗ, могут
отличаться от операций, выполняемых во внутренних узлах, как,
например, в LU-разложении (см. разд. 3.3.4.).
Отображение алгоритмов на матричные структуры 131
Решатель систем линейных уравнений Ах = у
LU-разложение Метод Метод
Последовательный Гивенса Хаусхолдера
алгоритм
1 -й этап
Построение ГЗ
• · ·
2-й этап
Построение ГПС
(параллельный
алгоритм)
3-й этап
Разработка
матричного
процессора
на СБИС
(автоматическая
компиляция)
SIMD-процессор Систолический Волновой MIMD-процессор
(распространение) процессор процессор (планирование)
(систолизация (эквивалент-
с помощью ность ГПС и ГПД)
сечений)
Рис. 3.3. Различные уровни в проектировании систолических
алгоритмов и массивов.
три основных уровня процесса проектирования. Они составляют
основу САПР, обеспечивающей непосредственный графический
интерфейс между различными уровнями.
Методология проектирования, основанная на графах
• Этап 1. Разработка ГЗ.
Для рассматриваемой задачи пользователь прежде всего
устанавливает подходящий алгоритм. Затем разработчик подбирает прием-
132
Глава 3
лемое выражение алгоритма и формирует для него ГЗ. Так как
структура ГЗ в большей степени влияет на окончательный проект
матричного процессора, для улучшения его качества крайне
желательны последующие модификации ГЗ.
• Этап 2. Разработка ГПС.
В соответствии с различными отображениями ГЗ на матричную
структуру из ГЗ можно извлечь множество ГПС.
• Этап 3. Разработка матричного процессора.
ГПС, полученный на 2-м этапе может быть физически реализован
в виде SIMD-процессора, систолического процессора, волнового
процессора или MIMD-процессора. Методы реализации этого этапа
более подробно рассматриваются в гл. 4 и 5.
В общем случае выбор определенного ГЗ для алгоритма,
направление проекции, а также план могут существенно повлиять на
производительность проектируемого матричного процессора. Поэтому
целесообразны исследования в области классификации ГЗ и
возможных схем назначения и планирования. В этой главе рассматриваются
методология канонического отображения для отображения однородных
ГЗ на матричные процессоры и методология обобщенного
отображения для отображения неоднородных ГЗ на матричные процессоры.
Смысл этих отображений разъясняется на рис. 3.4.
Ниже описана методология канонического отображения.
Существует большое число алгоритмов, которые могут быть выражены в
терминах регулярных и локализованных ГЗ. К ним, например, отно-
гз
1
_
" Однородный
(инверсный к
сдвигу) ГЗ
!
1
Проекция ГПС с
линейным планом
*
Проект матричного
. процессора
Методология
канонического
отображения
r*-i
Λ
I Неоднородный ГЗ |
Классификация ГЗ,
основанная на проекции
Классификация ГЗ 1
основанная на плане
С
Нелинейное назначение
Нелинейный план
Мультипроекция
)
Методология обобщенного отображения
Рис. 3.4. Каноническое и обобщенное отображения.
Отображение алгоритмов на матричные стриктиоы 133
сЯтся перемножение матриц, свертка, авторегрессионная (АР-)
фильтрация, ДПФ, дискретное преобразование Адамара,
преобразовала Хафа, метод наименьших квадратов, сортировка, другие
преобразования, медианная фильтрация, LU-разложение, QR-разложение.
использование регулярности ГЗ позволяет существенно упростить
разработку матричных процессоров для таких алгоритмов. Короче
говоря, методология канонического отображения включает
использование регулярности ГЗ совместно со схемами линейной проекции и
планирования для получения простой и регулярной структуры
матричного процессора.
3.3.1. Первый этап проектирования: отображение алгоритма в ГЗ
Несмотря на то что предложено множество методов построения ГЗ
по последовательной программе, формальные и автоматические
методы пока не разработаны. Выражение ГЗ получается путем выделения
частичной упорядоченности операций алгоритма. Извлечение ГЗ из
определенного класса простых алгоритмов, таких, как алгоритм
сортировки, выполняется достаточно просто. Однако для извлечения
ГЗ из общего рекурсивного алгоритма требуются уже некоторые
правила. Ниже они рассмотрены на примерах алгоритмов свертки и
АР-фильтрации.
В рассматриваемом подходе построение ГЗ основано на
пространственно-временных индексах в рекурсивном алгоритме:
пространству пространственно-временных индексов рекурсивного
алгоритма соответствует естественное сеточное пространство (с теми
же индексами) для ГЗ, в каждой точке которого размещается один
узел. Тогда зависимости данных в рекурсивном алгоритме могут
быть явно выражены дугами, соединяющими взаимодействующие узлы в
ГЗ, в которые встроено их функциональное описание. Пример такой
сеточной модели приведен на рис. 3.2 в виде ГЗ для умножения
матрицы на вектор.
Инвариантность ГЗ (однородность) относительно сдвига
ГЗ инвариантен относительно сдвига, если дуги зависимостей,
соответствующие всем узлам в индексном пространстве, являются
независимыми от их расположения. Формально это означает, что для
индексных векторов i^L и j если переменная в L зависит от
переменной в L-j, то переменная в L будет зависеть от
переменной в L-j. Заметим, что операции в узлах могут быть различными
134
Глава 3
и только ввод-вывод в граничных узлах свободен от требований
инвариантности относительно сдвига. Инвариантность относительно
сдвига является основным предположением в методологии
канонического отображения.
Пример 1. Инвариантный относительно сдвига ГЗ для алгоритма
сортировки
Сортировка - одна из наиболее часто используемых процедур в
обработке данных и научных вычислениях. Задача сортировки
формулируется следующим образом: для данной последовательности {x(i)}
получить новую последовательность {т(/)}, состоящую из элементов
{*(/)}, переставленных в требуемом порядке. Например,
последовательность m(i) может быть отсортирована в невозрастающем
порядке, где m(i) ^ m(k) при i < k.
Алгоритмы сортировки легко формулируются в локально
рекурсивном виде. Программа с однократным присваиванием для алгоритма
сортировки может быть записана следующим образом:
For i from 1 to Ν
For / from 1 to /
m(i + 1,/) «— max [*(/,/),/w(/,/)]
*(/,/ + 1) <— min [*(ι\/),/η(ι\/)]
Здесь x(i>\) инициализирован для исходной неотсортированной
последовательности *(/), m(ij) установлен в -оо, и
отсортированная последовательность m(j) имеет вид {m(N,j),j = 1,2,...,Л^,
где элементы размещены в убывающем порядке.
ГЗ,' соответствующий программе с однократным присваиванием,
показан на рис. 3.5 [Rao85]. Как видно, ГЗ действительно
является инвариантным относительно сдвига, поскольку структуры
зависимости от узла к узлу не меняются.
Локализация ГЗ: распространяемые и передаваемые данные
В каноническом отображении рассматриваемые ГЗ обладают
свойствами локальной зависимости. Общеупотребительные рекурсивные
алгоритмы обычно не описываются непосредственно в локализованной
форме. Нелокализованный рекурсивный алгоритм при отображении на
матричный процессор скорее всего приведет к структуре с
глобальными связями, хотя в определенных случаях такие глобальные дуги
Отображение алгоритмов на матричные стриктуры 135
ЮЮЮЮ^
Рис. 3.5. ГЗ для сортировки. Исходная последовательность *(*")
поступает на вход верхней строки, как *(/,1). Данные m(ij)
устанавливают в диагональных узлах значение -со. Отсортированная
последовательность m(j) появляется на выходе правого столбца в
виде {m(N,/),/ = 1,2,...,Ν}.
могут быть исключены с помощью соответствующего выбора
направления проекции в схемах отображения. Для того чтобы гарантировать
локальность связей в матричном процессоре, необходимо получить
локализованный рекурсивный алгоритм и соответственно
локализованный ГЗ.
В настоящее время существуют некоторые методы локализации
рекурсивных алгоритмов, примеры которых можно найти в работах
[Quint84, Chen85b, Chen85c, Li85]. Хотя основные идеи достаточно
понятны, проблема получения локально рекурсивного алгоритма из
нелокально рекурсивного алгоритма полностью еще не решена. На
самом деле, большинство из существующих подходов к получению
локально рекурсивных алгоритмов являются эвристическими. Ниже
описывается более формальная (но, по-видимому, еще в чем-то
эвристическая) стратегия.
Распространяемые данные. Если переменная распространяется, то
существует соответствующее множество точек, в которых одни и те
136
Глава 3
же значения данных появляются повторно. Это множество
называется контуром распространения. ГЗ может содержать некоторое
число таких контуров распространения.
Передаваемые данные. Ключевая идея состоит в том, что вместо
распространения (общих) данных по глобальной дуге те же данные
могут быть пересланы по локальным дугам и становятся, таким
образом, передаваемыми данными. При замене контуров
распространения локальными дугами глобальный ГЗ может быть преобразован в
локализованную версию. Это преобразование показано в следующем
примере.
Пример 2. ГЗ для алгоритма свертки
Задача свертки определяется следующим образом: если даны две
последовательности u(j) и w(j), j = 0,1,...,Ν - 1, то их свертка
записывается в виде
y(j) = Σ ΦΜΐ ~ k) или у = Σ ukw . ,
ft=0 ' k-Q R ' R
где / = 0,1 2N - 2.
Получение ГЗ для свертки аналогично случаю умножения матрицы
на вектор. Первый шаг получения рекурсивного уравнения состоит
во введении рекурсивной переменной у. . Тогда уравнение свертки
может быть записано в рекурсивной форме
у) = *Г+ vH - (3·3>
для / = 0,1,...,ЛМ и Л = 0,1,...,/ и для / = #,ЛМ,...,2ЛГ-2, и
k = j-N+\J-N+2,...tN-l.
Отметим, что уравнение (3.3) уже представлено в форме с
однократным присваиванием, поэтому легко можно набросать ГЗ,
показанный на рис. 3.6,а. Уравнение (3.3) является выражением с
глобальными зависимостями данных и, следовательно, это - не
локально рекурсивный алгоритм.
При замене контуров распространения локальными дугами
глобальный ГЗ на рис. 3.6, α легко преобразуется в локализованную
версию, представленную на рис. 3.6,6, которая, конечно,
выполняет тот же алгоритм. Локализованный ГЗ имеет соответствующий
локально рекурсивный алгоритм.
Отображение алгоритмов на матричные стрцктиоы 137
'0) у(1) у(2) у(3) у(4) у(5) у(6)
....
w(0) w(l) w(2) w(3)
к 4
У*
0) У(1) У(2) у(3) у(4) у(5) у(6)
......
ч(0) -
w(0) w(l) w(2) w(3)
Рис. 3.6. ГЗ для свертки с глобальными зависимостями данных (а)
и с локальными зависимостями данных (б)..
у) = У*'* + «X , y°j = о
k k k
и = и . . ui = и.
uj uj-\ » "о uk
k k-\ 0
для / = 0,1 ΛΜ, и /г = 0,1...../ и для / = N,N+\t...,2N-2
и k = j-N+l,j-N+2,...9N-\.
Реверсируемые дуги для ассоциативных операций
Если операция, использованная в рекурсии, является
ассоциативной, то направления дуг могут быть изменены.
Проиллюстрируем это на простом примере. Так как в рассмотренной выше
138
Глава 3
рекурсии используется операция сложения (которая является
ассоциативной), то следующие два уравнения приведут к тому же
результату, если выбраны подходящие начальные условия:
у) - у)'Х+ ukwhk ·
ή = ή+Κ uk-whk .
Это означает, что дуги в ГЗ являются реверсируемыми. Ниже при
рассмотрении АР-фильтрации будет введено полезное правило
локализации.
Локализация с включением промежуточных переменных
Существуют небольшие отличия между переменными для
распространяемых данных, входящими в рекурсивное уравнение. Говорят,
что переменная в множестве рекурсивных уравнений является
промежуточной переменной, если она оказывается и в правой, и в левой
частях рекурсивного уравнения (с различными нижними и верхними
индексами). В противном случае переменная называется внешней
переменной. Значения промежуточных переменных формируются узлом
ГЗ и используются некоторым другим узлом ГЗ. Очевидно,
расстояние между формирующим и использующим узлами влияет некоторым
образом на выбор схемы связи, что отражается и на используемой
схеме локализации. Следующий пример АР-фильтрации иллюстрирует
это положение.
Пример 3. ГЗ для алгоритма АР-фильтрации
Чтобы рассмотреть общую процедуру локализации рекурсивного
алгоритма, представим более усложненный пример АР-фильтрации.
Алгоритм АР-фильтрации описывается следующим разностным
уравнением:
N
*/(/) = Σ a.y(j - k) + u(j) для / = 1,2,...
Заметим, что выход АР-фильтра - это бесконечная
последовательность, даже если входная последовательность u(j) имеет
конечную длину. Для того чтобы получить ГЗ для АР-алгоритма,
можно следовать ранее описанной формальной процедуре. Чтобы
упростить пример, предполагается действовать так же, как в случае
Отображение алгоритмов на матричные стриктуры 139
алгоритма свертки, и получить для АР-алгоритма предварительный
ГЗ, показанный (рис. 3.7,а) для N = 4. Отметим два основных
различия: 1) данные у(с), где с = 0,1,2,..., предполагаются
доступными и не показано, откуда они должны поступить; 2) здесь не
указано направление потока данных по вертикальным линиям, так
как в соответствии с принципом ассоциативной операции возможны
оба направления (рис. 3.7,6). Аналогично, входные данные и(с)
могут поступать сверху или снизу по вертикальным линиям (на
рисунке не показаны).
Напомним, что на рис. 3.7,α точно не указано, как формируются
и используются у(с). Чтобы понять, как они могут быть получены,
обратимся, например, к операциям в пятом столбце (/ = 4):
t/(4) = и(4) + а4у(0) + а3у(\) + а2у(2) + а^(3). (3.4)
Промежуточные и внешние переменные. Как видно, в ГЗ имеются
два типа контуров распространения. Один из них объединяет
индексные точки постоянного индекса k , передающего
распространяемые данные а., а второй объединяет индексные точки,
определенные j-k = const и передающие распространяемые данные y(j-k).
Вспомнив определения промежуточной и внешней переменных, можно
отметить, что в алгоритме АР-фильтрации y(j-k) является
промежуточной переменной, а а. - внешней переменной.
Подобно процедуре локализации для ГЗ алгоритма свертки,
распространяемые данные а. , которые являются внешней переменной,
могут быть локализованы просто заменой глобальной дуги
множеством локальных дуг. Однако распространяемые данные y(j-k),
которые являются промежуточной переменной, требуют больших усилий
для получения максимально локализованного ГЗ.
Напомним, что в предварительном ГЗ не было решено, где будут
формироваться данные у(с). В действительности это зависит от
того, где сформированные данные будут использованы. Отметим, что
данные у(с) могут быть введены в любой узел контура
распространения / - k = с. Однако можно показать, что нижний
узел (с+1,1) является наиболее подходящей позицией для введения
данных . Например, если с = 4, то данное у(4) будет введено в
узел (5,1). Как следует из уравнения (3.4), данное у(4) может
Для получения ГЗ с некоторыми допустимыми линейными планами
(об этом говорится ниже) узел (с+1,1) является единственным
выбором.
140
Глава 3
u(0) u(l) u(2) u(3) u(4) u(5) u(6) u(7) u(8)
1 У(0) y(l) y(2) y(3) y(4) y(5) y(6) y(7)
N=4
Контуры
распространения
Ассоциативное
суммирование
u(0) u(l) u(2) u(3) u(4) u(5) u(6) u(7) u(8)
Рис. 3.7. Предварительный (глобальный) ГЗ для АР-фильтрации (а)
детализация узла (б), спиральный ГЗ (в), локализованный ГЗ (г).
Отображение алгоритмов на матричные структуры 141_
У(0) У(1) У(2) у(3) у(4) у(5) у(в) у(7) у(8)
г
Рис. 3.7. (Продолжение).
быть сформировано в верхнем узле (4,4) или в нижнем узле (4,1)
вертикальной линии (/ = 4). Последний, конечно, ближе к узлу
(5,1), где сформированное данное будет использовано.
В общем случае имеются две возможные позиции, где может быть
сформирована промежуточная переменная у(с)у что соответствует
двум различным подходам к проектированию, рассматриваемым ниже.
Спиральная связь. Если данные у(с) формируются в верхних
узлах вертикальных линий, то рекурсивный алгоритм для
АР-фильтрации имеет вид
(3.5)
вход: ι/° = и(/); выход: (/(/) = уы.
Для проверки уравнения (3.5) вновь обратимся к функционированию
узлов (снизу вверх) на вертикальной линии для / = 4:
1 0 4
У4 = У4 + а]Уу
у\ = у\ + «2*4 = У°4 + аА + аА'
У\ = У\ + аУ\ = У°4 + аА + а&\ + йзУу
у\ - у\ + «4^о = ^4 + <¥з + Va + α3<Ί +α4^ο·
Сформированный в верхнем узле результат
i/(4) = (/J = «(4) + α,ί/(3) + а2у(2) + α^\) + α4(/(0).
142
Глава 3
В общем случае у(с) формируется в узле (c,N) (yNc = У^+а^/У^ы)
(так как у(с) зависит от у ). Для передачи результатов узла
(c,N) в узел (с+1,1) потребуется спиральная связь. Таким образом
возникает ГЗ со спиральной связью (см. рис. 3.7, в).
Локальная связь. Заметим, что операция сложения, используемая
в рекурсивном уравнении (3.5), является ассоциативной (рис.
3.7,6). Поэтому возможно также и альтернативное рекурсивное
уравнение (с реверсом направления). Это соответствует случаю,
когда данные у(с) формируются в нижних узлах вертикальных линий.
Соответственно рекурсивный алгоритм получает следующий вид:
А =уТк аъУ\-* (з.б)
вход: yN.+i = и(/); выход: */(/) = #!
Таким образом, у(с) формируется в узле (с,1) и для отсылки
данных в узел (с+1,1) требуется только локальная связь.
Соответствующий ГЗ, показанный на рис. 3.7, г, является полностью
локализованным. Очевидно, этот локализованный ГЗ более
предпочтителен, чем спиральный вариант. Теперь можно записать
локально рекурсивный алгоритм для данного ГЗ:
nfe _ τΛ-\ R0 _ 1
В/ - В/-г в/ -У/
yNj^ = u(i), y(i) = у),
где / = 0,1,2 со, k = Ν,Ν-ί,Ν-2, ..,1.
Заметим, что поскольку переменная у уже использована в контуре
/ = с для обозначения данных, включенных в итерационный процесс
суммирования, для пересылки данных у(с) по контуру
распространения / - k = с вводится новая переменная В* .
Индексное преобразование и переиндексация ГЗ
Вид ГЗ всегда можно изменить, применяя координатное
преобразование к индексному пространству. Один такой пример представлен
в задаче 6. Однако подобное преобразование не приводит к любому
новому ГПС на втором этапе проектирования. Другими словами, на
Отображение алгоритмов на матричные стрцктиры 143
втором этапе проектирования индексное преобразование является
частным случаем и в предложенной методологии не рассматривается.
Более полезным методом модификации ГЗ является схема
переиндексации. Примерами переиндексации могут служить сдвиги
плоскостей относительно друг друга или круговой сдвиг в индексном
пространстве. Например, в случае когда невозможно применить к
исходному ГЗ линейный план (см. следующий раздел) или
систолический план, получение требуемого плана связано с модификацией
ГЗ. Очень часто такие методы требуют использования понятия
передаваемых данных, чтобы ГЗ мог быть локализован. Поэтому полезна
и соответствующая разметка передаваемых данных, которая
привносит большую гибкость в дальнейшие процессы проектирования.
Пример схемы переиндексации приведен в гл. 4, где рассматриваются
систолические вычислители для задачи поиска кратчайшего пути.
3.3.2. Второй этап проектирования: отображение ГЗ в ГПС
Простой метод определения работоспособной матричной
структуры, соответствующей локально рекурсивному алгоритму, заключается
в назначении одного процессорного элемента (ПЭ) для каждого узла
ГЗ. Однако в общем случае такой подход приводит к очень
неэффективному использованию ПЭ, так как каждый ПЭ может быть активным
только небольшую часть времени вычислений. Для того чтобы
улучшить утилизацию ПЭ, часто предпочтительнее отображать узлы ГЗ на
несколько ПЭ. В этом случае полезно вначале отображать ГЗ в
некоторое промежуточное выражение, например в ГПС.
Граф потока сигнала (ГПС)
ГПС представляет собой мощное средство абстрактного и
графического представления задач во многих научных приложениях, в том
числе в обработке сигналов. Выражение в виде ГПС, который
содержит обрабатывающие узлы, связывающие ребра и задержки,
представлено на рис. 3.8. В общем случае узел, изображенный кружком,
представляет арифметическую или логическую операцию, выполненную
с нулевой задержкой, такую, как умножение или сложение. Ребро
обозначает отношение зависимости или задержку. Для простоты,
если специально не оговаривается, мы используем следующие
соглашения. Когда ребро помечено прописной буквой D (или D,2D,...),
оно представляет оператор задержки с временем задержки D (или
D,2D,...). Удобство представления в виде ГПС основано на предпо-
144
Глава 3
Вход (1)
Ход (1;
х(п) х(п-1)
-*—
Вход (2)
а б
Рис. 3.8. Обозначения ГПС. Операционный узел (а), ребро, как
оператор задержки (б).
ложении, что вычисления не вносят задержек, т.е. все они не
требуют времени. В связи с этим исключается трудность детального
просмотра пространственно-временного функционирования,
связанного с конвейеризацией. Более того, любая задержка в системе
должна быть введена явно в виде так называемых ветвей задержки. Эти
ветви задержки позволяют описывать системы с памятью ясным и
недвусмысленным образом.
Полное описание ГПС должно включать две части -
функциональную и структурную. Функциональное описание представляет
поведение в узле, а структурные связи - (ветви и задержки) между
узлами. Теоретически структурная часть ГПС может быть представлена
конечным ориентированным графом G = <V,E,D(E)>. Вершины V
моделируют узлы. Ориентированные ребра Ε моделируют связи между
узлами. Каждое ребро е € Ε связывает выходной порт некоторого узла
с входным портом другого узла и обладает весом, равным значению
задержки D(e). Значение задержки определяет задержку связи.
Часто входной и выходной порты называются источником и потребителем
соответственно.
ГПС обладает следующими свойствами.
1. ГПС может рассматриваться как упрощенный граф. Это
означает, ГПС является более сжатым представлением, чем ГЗ.
2. ГПС более специфичен, т.е. более близок к аппаратному
уровню проектирования. Поэтому ГПС определяет также тип
матричного устройства, которое будет получено.
3. В то время как в ГЗ отсутствуют петли, ГПС может иметь
петли, причем на каждой петле размещается по крайней мере одна
задержка D.
Отображение алгоритмов на матричные стриктиры 145
Пример 4. ГПС для свертки
ГПС для свертки показан на рис. 3.9. Наличие ребер без
задержек означает, что данные пересылаются за "нулевое" время.
Предполагается, что вычисления в каждом узле также выполняются за
"нулевое" время.
—fr4—"
-—Мь^
Рис. 3.9. ГПС для свертки.
Назначение процессора и планирование
При отображении ГЗ в ГПС требуется ответить на два вопроса.
1. На какие процессоры следует назначить операции? (Критерием
может быть, например, минимизация обменов между процессорами).
2. В каком порядке должны быть назначены операции на
процессор? (критерием может служить минимизация общего времени
вычислений).
В соответствии с этим отображение ГЗ в ГПС происходит в два
этапа: первый этап - назначение на процессоры, и выполняемый
после этого второй этап - планирование. Эти операции в общем
случае могут быть достаточно произвольными, однако, чтобы
получить регулярный систолический массив, следует сохранить
регулярность ГЗ. Поэтому регулярные назначение и планирование
требуют большего внимания. Общепринято для назначения на процессоры
использовать линейную проекцию, при которой узлы ГЗ,
расположенные в определенной строке, проецируются (назначаются) в ПЭ
процессорного массива (рис. 3.10, а), а для планирования работы
процессоров использовать линейное планирование, при котором узлы
ГЗ, размещенные в параллельных гиперплоскостях, планируются для
обработки в один и тот же момент времени (рис. 3.10,6).
10—1028
146
Глава 3
I I \ .1 \ *t \ »ί* ΤΙ Направление
I \r*\.r\.f*\.) I проекции
IfWWWii d
Гиперплоскость
S Вектор-нормаль
Рис. 3.10. Линейная проекция с вектором проекции d (α) и
линейный план t и его гиперплоскости (б).
Назначение на процессоры. Простой пример использования метода
проекции - назначение узлов ГЗ, принадлежащих одной строке,
одному общему ПЭ. Так как ГЗ локально рекурсивного алгоритма
является регулярным, проекция отображает ГЗ на решетку из точек
меньшей размерности, названную процессорным пространством.
Математически линейная проекция может быть представлена* вектором
проекции Э. Результаты такой проекции представляются ГПС. Если
обратиться к примеру на рис. 3.10, двумерное индексное
пространство умножения матрицы на вектор может быть разложено в прямую
сумму одномерного процессорного пространства и одномерного
пространства задержек. Пространство задержек, как показано ниже,
связано с планированием.
Планирование. Проекция должна сопровождаться схемой
планирования, которая определяет последовательность операций во всех
ПЭ. Операция планирования представляет отображение W-мерного
индексного пространства ГЗ на одномерное пространство планов
(расписаний). Линейный план основан на множестве параллельных и
равномерно распределенных гиперплоскостей в ГЗ, названных равно-
временными. Все узлы одной и той же гиперплоскости должны быть
обработаны одновременно. Математически план может быть
представлен вектор-столбцом плана ?, указывающим направление,
перпендикулярное гиперплоскостям. Для любой индексной точки ί в ГЗ ее
шаг по времени есть ? ι. Множество гиперплоскостей линейного
плана и вектор плана показаны на рис. 3.10,6.
На вычислениях определен частичный порядок, присущий
алгоритму и описываемый ГЗ. Более конкретно, если существует непосред-
Отображение алгоритмов на матричные стриктиры 147
сТвенный путь от узла χ к узлу t/, вычисление, представленное
узлом у, должно быть выполнено после того, как завершится
вычисление, представленное узлом х. Осуществимость плана
определяется частичным порядком и схемой назначения процессоров.
Необходимые и достаточные условия будут представлены позже.
Допустимые линейные планы. Для данного ГЗ и направления
проекции 3 не все гиперплоскости пригодны при определении
корректного плана для ГЗ. Некоторые из них нарушают отношение
предшествования в вычислениях, заданные дугами зависимостей.
Разрешенные направления гиперплоскостей определяют класс допустимых
линейных планов. Для того чтобы данные гиперплоскости
представляли допустимый линейный план, необходимо и достаточно, чтобы
вектор-нормаль ? удовлетворяла следующим двум условиям:
1) ? ? £ 0, для любой дуги зависимости 2 (3.7)
2) ?ТЙ > 0. (3.8)
Оба условия могут быть проверены непосредственно. Другими
словами, план является допустимым тогда и только тогда, когда,
во-первых, все дуги зависимости пересекают гиперплоскости в
одном и том же направлении и, во-вторых, гиперплоскости не
параллельны вектору проекции 3. Первое условие означает, что в
допустимый план должна быть введена причинность (каузальность).
Например, если узел ρ зависит от узла q, то временной шаг,
назначенный для р, не может быть меньше временного шага,
назначенного для q. Второе условие требует, чтобы узлы на равновременной
гиперплоскости не были спроецированы в один и тот же ПЭ.
Направления допустимой гиперплоскости, определенные первым условием,
те же, что и в понятии временного конуса в работах
[Кагр67, Delos86].
Типы планов. Для данного ГЗ и вектора проекции 3 следующие
планы для ГПС-проекции являются наиболее распространенными.
1. План по умолчанию. Соответствующие гиперплоскости
ортогональны направлению проекции 3 или направление нормали ? к
гиперплоскостям параллельно направлению проекции <£
2. Рекурсивный план. Вектор плана ? параллелен одной из осей
в индексном пространстве ГЗ (обычно оси, соответствующей
рекурсивному вычислению).
3. Систолический* план. Это план для систолического массива.
Он предполагает, что на каждом ребре результирующего ГПС
размещается по крайней мере одна задержка (см. гл.4).
10*
148
Глава 3
4. Оптимизированный план. План, определенный зависимостями
данных, доступностью процессора и требованиями разработки. Для
обращения к нему могут потребоваться средства САПР.
В этой главе рассматриваются только первые два вида планов.
Систолический и оптимизированный планы обсуждаются в гл. 4.
ГПС, инвариантные относительно времени
Наибольший интерес представляют ГПС, структурно и
функционально инвариантные относительно времени. Для удобства разделим
в этой главе ГПС на два класса. В первый класс отнесем ГПС,
инвариантные относительно времени (ИВ ГПС), для которых операции в
узлах и структуры ребер остаются инвариантными относительно
времени. Во второй класс - ГПС, структурно инвариантные
относительно времени (СИВ ГПС), для которых структуры ребер остаются
инвариантными . Понятие ГПС легко может быть расширено, чтобы
включить линейные и нелинейные, изменяемые во времени и инвариантные
относительно времени, а также многомерные системы. Однако
обобщение понятия влечет за собой усложнение физической реализации.
Например, введение изменяемых во времени операций в СИВ ГПС
приведет к усложнению аппаратуры управления в соответствующей
структуре матричного процессора.
Условия для проекции в СИВ ГПС. Приведенное ниже утверждение
гарантирует, что если ГЗ инвариантен относительно сдвига, то
существует соответствующий СИВ ГПС, полученный проецированием ГЗ
в любом направлении.
ГЗ является инвариантным относительно сдвига тогда и только
тогда,- когда для любого вектора υ ГЗ может быть спроецирован в
СИВ ГПС с помощью допустимого линейного плана в направлении
проекции i = t или И = -v.
Доказательство. Достаточность. Если ГЗ размером η не является
инвариантным относительно сдвига, то должен существовать по
крайней мере один "особый" узел, который имеет различные дуги
зависимости из других узлов. В этом случае можно найти такое
направление проекции, при котором спроецированный ГПС не будет
СИВ.
Обозначения ИВ и СИВ введены для того, чтобы обратить внимание
на функциональное и структурное описания ГПС. Описание ввода-
вывода намеренно исключено из условий инвариантности для ИВ и
СИВ ГПС.
Отображение алгоритмов на матричные структуры 149
Необходимость. Так как ГЗ является инвариантным относительно
сдвига, то спроецированный ГПС должен быть СИВ для любого
направления проекции. Остается доказать лишь существование
допустимого линейного плана. 1) Поскольку граф ациклический (т.е.
не содержит ни петель ни циклов), ГЗ должен быть двудольным
графом, т.е. должна существовать» хотя бы одна поверхность,
разрезающая граф на два подграфа так, что все дуги из одного подграфа
направлены в другой подграф. Более того, в качестве таких
поверхностей могут быть выбраны плоскости с использованием
свойства инвариантности относительно сдвига. 2) Так как граф
инвариантен относительно сдвига, то должна существовать
последовательность таких плоскостей, параллельных друг другу. При этом
узлы между двумя соседними плоскостями могут рассматриваться как
равновременная гиперплоскость.
Из утверждений 1 и 2 следует, что в таком ГЗ может быть
определен линейный план, удовлетворяющий условию (3.7). Поскольку
для каждого узла существует конечое число дуг, новый вектор
плана, также удовлетворяющий условию (3.7), может быть создан
изменением направления вектора плана на бесконечно малый угол. Таким
образом, оказывается, что существуют по меньшей мере два
линейных плана для ГЗ, инвариантного относительно сдвига. Для любого
вектора υ хотя бы один из этих двух линейных планов должен
удовлетворять условию (3.8).
Замечание. Вопрос состоит в том, как среди множества
возможных направлений проекции выбрать оптимальное направление. Задача
достаточно сложная и остается пока нерешенной. К обсуждению этой
проблемы мы вернемся в гл. 4.
Процедура проекции в ГПС
В общем случае выполнение процедуры проекции включает
следующие шаги.
1. Для любого направления проекции процессорное пространство
является ортогональным к направлению проекции. Процессорный
массив может быть получен проецированием индексных точек в
процессорное пространство. Для данного направления проекции
закрепляется план по умолчанию. Если план по умолчанию не допустим, т.е.
он нарушает условия (3.7) и (3.8), то может быть использован
рекурсивный план. Таким образом, можно выбирать между планом по
умолчанию и рекурсивным планом.
150
Глава 3
2. Заменить дуги в ГЗ ребрами с нулевыми или ненулевыми
задержками между соответствующими процессорами. Число задержек на
каждом ребре определяется синхронизацией и равно количеству
шагов по времени, необходимых для соответствующих дуг.
3. Так как каждый узел должен быть спроецирован в ПЭ и каждое
входное (или выходное) данное связано с некоторыми узлами, то
можно придать входные и выходные данные соответствующим
процессорам.
Пример 5. Умножение матрицы на вектор
Рассмотрим пример умножения матрицы А размером 4 χ 4 на
вектор b размером 4x1, т.е. с = АЬ. ГЗ для этой задачи
представлен на рис. 3.2,6. Используя проекцию в направлении [0,1] (и
план по умолчанию), получим одномерный ГПС, показанный на
рис. 3.11.
Обращаясь к ГЗ на рис. 3.2,6, прежде всего находим функцию
линейного плана ? = [1 1]. Этот план, как показано на рис. 3.12,
является систолическим планом.
Затем находим вектор проекции 3 = [1 0]Т Топология ГПС, как
D D D D
B(4)B(3)B(2)B(1)
А(1,1) А(2,1) А(3,1) А(4,1)
А(1,2) А(2,2) А(3,2) А(4,2)
a
б
Рис. 3.11. ГПС для алгоритма умножения матрицы на вектор (а) и
детализация вершин (б).
^н^
Отображение алгоритмов на матричные структуры 151^
з Ч
2 Ч
С(1) С(2) С(3) С(4)
i ι ι t
Г'-О^СЬ
Рис. 3.12. Систолический план для умножения матрицы на вектор,
? = [1 1]Т
показано на рис. 3.13, а, получена с помощью этой проекции. Если
отобразить систолический план в ГПС, то получим временные
соотношения. Соответствующий систолический массив представлен на
рис. 3.13,6. Конвейерный такт α для этого систолического массива
равен единице.
Пример 6: Умножение ленточной матрицы на вектор
На рис. 3.14, α показан ГЗ для умножения ленточной матрицы А
размером 9 χ 9 и с шириной ленты 4 на вектор b размером 9x1.
Используя проекцию в направлении [1 0] и план по умолчанию,
можно получить одномерный ГПС, показанный на рис. 3.14,6. Однако
если использовать проекцию в направлении [1 1] (и план по
умолчанию), то можно получить ГПС меньшего размера, который показан
на рис. 3.14, е. В общем случае размер массива может быть
уменьшен или минимизирован с помощью выбора подходящего направления
проекции.
152
Глава 3
А .
А .
Рис. 3.13. ГПС для умножения матрицы на вектор (а) и
соответствующий ему систолический массив (а = 1) (б).
-*-о—«о—»о
.' -*-о—-о—-о—«о
1 К\ХХ.
лХХ
Рис. 3.14. Умножение ленточной матрицы на вектор, а - граф
зависимостей, б - ГПС, полученный при использовании проекции в
направлении [1 0], в - ГПС, полученный при использовании проекции
в направлении [1 1].
Отображение алгоритмов на матричные стриктуры 153
длгебраический подход к проекции в ГПС
Предложеная процедура проекции, основанная на графах, может
быть формально описана с помощью алгебраических преобразований.
Пусть даны ГЗ размером я, вектор проекции 3 и допустимый
линейный план ?. Тогда ГПС может быть получен при помощи следующих
отображений.
1. Отображение узлов. Это отображение назначает операции узлов
в ГЗ на процессоры. Индексное множество узлов ГПС представлено
отображением
Р: R -> /п"\
где R - индексное множество узлов ГЗ и /п~ - декартово
произведение (п - 1) целых чисел. Отображение вычисления с ГЗ в узел η
ГПС определяется как
η = Ртс,
где процессорный базис Р, определяемый матрицей η χ (η - 1),
ортогонален 3, т.е.
рта = о.
2. Отображение дуг. Оно отображает дуги ГЗ в ребра ГПС.
Множество ребер е* в каждом узле ГПС и число задержек D(?) на каждом
ребре могут быть получены из множества ребер зависимости t для
каждой точки в ГЗ (инвариантном относительно сдвига)
[f] - $и
3. Отображение ввода-вывода. Позиция узла η ГПС и время
ввода вычисления /(с) ГЗ могут быть получены из соотношения
Аналогичное отображение применимо и к выходным узлам.
Замечание. Элементы ?, ί и Ρ являются целыми числами. Ясно,
что желательно по возможности иметь представления этих векторов
(матриц) в виде самых малых чисел. Будем всегда предполагать,
что элементы ? являются взаимно простыми, т.е. наибольший общий
делитель всех элементов t равен 1. Элементы 3, как и элементы
каждого вектора-столбца матрицы Р, также предполагаются взаимно
простыми.
154
Глава 3
Пример 7. Проекция в ГПС для сортировки вставками [Rao85]
Проекция на рис. 3.15, α для рассматриваемой сортировки может
быть описана в виде алгебраического преобразования следующим
образом:
Зт= Ψ = [1 0], РТ = [0 1].
Отображение узлов:
to!][;:] = /.
Отображение дуг:
гаи-и·
Отображение ввода/вы вода:
·« [S?] [ί] ■ [ί] ■
■— га га - га ·
Результирующий ГПС для сортировки вставками (рис. 3.15,6)
представляет собой вертикальный линейный массив. Отметим, что
входные данные последовательно поступают в первый узел, однако
выходные данные формируются в разных узлах. Они могут выводиться
последовательно или параллельно по шине вывода. Заметим также,
что имеются N входов для т(/\/), которыми можно пренебречь,
поскольку т(/,/) всегда установлены в -со. Итак, исходная
последовательность вводится с верхней части массива, а элементы
отсортированной последовательности запоминаются в ячейках m(i,j).
Пример 8. Проекция в ГПС для сортировки выбором
В зависимости от направления проецирования ГЗ могут быть
получены различные линейные массивы [Rao85]. Так, горизонтальный
линейный массив, представленный на рис. 3.15, β и реализующий
сортировку выбором, получен в результате проекции в направлении
оси / (3 = [0 1]т при процессорном базисе Ρ = [1 0]т),
использован план по умолчанию, т.е. ? = [0 1] . Три отображения
извлекаются из следующего алгебраического описания:
ίτ = [0 1], Рт = [1 0].
Отображение алгоритмов на матричные стриктиры 155
Рис. 3.15. ГЗ для сортировки (а) и ГПС, соответствующие
сортировке вставками (б), сортировке выбором (в) и пузырьковой
сортировке (г).
Отображение узлов:
[1 о][{] = [О-
Отображение дуг:
ПИ-ВИЯ И-El·
156
Глава 3
— ВЯИ-И'—* ПИ-М-
В этом ГПС m переменных проходят слева направо, в то время как
*(/,/) циркулируют в ПЭ.. Начальное значение χ необходимо
вводить параллельно, но результат выводится последовательно.
Пример 9. Проекция в ГПС для пузырьковой сортировки
Третий вариант сортировки - пузырьковая сортировка
реализуется путем проекции в направлении [1 1] (рис. 3.15, г). Вновь
использован план по умолчанию. Три отображения имеют следующий
вид:
?т =Д1 1], Рт = [-1 1].
Отображение узлов:
[-1 !][)] = Н+Я.
Отображение дуг:
[-ПИЯ-ΒΗί НИ-[-!]'
-«[-11] И -[-i:il·
-~[-!Ш7]-[-»:!]■
Вновь выходные данные формируются в каждом узле. Переменные т и
χ перемещаются в противоположных направлениях, и использование
ПЭ снижается до 50%.
Замечание. Как видно, три рассмотренных алгоритма сортировки
реализуются схемами с одним и тем же числом процессоров N.
Однако в определенных ситуациях отображение с нелинейной схемой
назначения может привести к более гибким структурам, обладающим
уникальными свойствами. Так, с помощью нелинейного назначения
может быть получена схема для "рикошетной" сортировки,
содержащая менее Ν/2 процессоров (раздел 3.4.4).
Построение ГЗ по ГПС
По данному ГПС можно реконструировать ГЗ, однако решение
будет неоднозначно. Предположим, что ГПС - .N-мерный и включает т
итераций.* Тогда реконструированный ГЗ будет определен над
(Ν + 1)-мерным индексным пространством, где дополнительное
Отображение алгоритмов на матричные стриктиры 157
,# + 1)-е измерение представляет направление проекции. (В этом
сЛучае направление проекции эквивалентно направлению итерации.)
2То направление должно быть перпендикулярно ^-мерному простран-
стВу ГПС. Зависимости между индексными точками могут быть
определены по следующим правилам. Прежде всего, ребра с нулевой
задержкой в ГПС образуют W-мерный граф. Повторим один и тот же
граф m раз в направлении итерации. Для ребер с η задержками
(я =1,2,...) применяется та же процедура за исключением того,
что начальные и конечные концевые точки реконструируемых дуг в
ГЗ должны иметь индексное приращение η в направлении итерации. В
соответствии с этими правилами реконструируемый ГЗ при
проецировании в направлении итерации приведет к исходному ГПС.
3.3.3. Третий этап проектирования: отображение ГПС в матричный
процессор
Описания матричной обработки с помощью ГПС-представлений
просты для понимания. Уровень абстракции, представленной ГПС,
чрезвычайно полезен для использования, и преобразование ГПС-
описания в процессор с одним потоком команд и многими потоками
данных, систолический процессор или волновой процессор во многих
случаях может выполняться автоматически.
Процессор с одним потоком команд и многими потоками данных
(SIMD-процессор)
Процессор с одним потоком команд и многими потоками данных
(SIMD-процессор) представляет собой массив процессорных
элементов, действующих синхронно под управлением одного устройства
управления. Все ПЭ получают одну и ту же команду,
распространяемую устройством управления, но выполняют ее над различными
множествами данных из различных потоков данных. Вместе с тем в
SIMD-процессоре допускается и распространение данных.
Глобальный ГЗ для умножения матрицы на вектор, представленный
на рис. 3.2,а, может быть спроецирован в направлении оси / для
получения глобального ГПС, показанного на рис. 3.16. Поскольку
распространение допустимо, такой ГПС может быть непосредственно
реализован в виде SIMD-массива. В общем случае SIMD-массив может
рассматриваться как естественная физическая реализация ГПС, если
передаваемые данные пересылаются. Во многих случаях данные,
обрабатываемые граничными ПЭ, передаются другим ПЭ без дальнейшей
158
Глава 3
В(4) В(3) В(2) В(1)
А(1Д) А(2,1) А(3,1) А(4,1)
A(l,2) А(2,2) А(3,2) A(4f2)
А(1,3) А(2,3) А(3,3) А(4,3)
А(1,4) А(2,4) А(3,4) А(4,4)
Рис. 3.16. Глобальный ГПС для умножения матрицы на вектор.
модификации (т.е. данные, передаваемые после обработки
граничными ПЭ). В этой ситуации более предпочтительным является массив
с усиленными граничными элементами (BESIMD-массив).
Систолический процессор
Систолические массивы хорошо приспособлены для реализации на
СБИС. Особенно пригодны они для специального класса
вычислительных алгоритмов с регулярным, локализованным потоком данных.
Систолическая система - это сеть процессоров, которые
ритмично вычисляют и передают данные по системе. Физиологи используют
термин "систолический" для описания ритмически повторяющихся
сокращений сердца и пульсации артерий, переносящих кровь по
телу. В систолической вычислительной системе функция процессора
аналогична функции сердца. Каждый процессор регулярно
прокачивает данные, в каждый момент времени выполняя некоторое короткое
вычисление, так что в сети сохраняется регулярный поток данных
[HTKun78].
Например, в работе [HTKun78] показано, что некоторое число
ПЭ, выполняющих операцию скалярного произведения Υ <— Υ + ЛВ,
могут быть объединены локальной связью для выполнения цифровой
фильтрации, умножения матриц и других подобных операций. В общем
случае перемещения данных в систолическом массиве заранее
планируются и описываются в терминах "кадров" функционирования
массива.
Систолический массив, как правило, представляет прямое
отображение вычислений в массив процессоров. Обычно он используется
в виде присоединенного процессора к главной вычислительной маши-
Φ
Отображение алгоритмов на матричные структуры 159
у(0) - y(i) - у(2). у(3) ^_
и(3) - u(2) - u(1) - u(0) —^)-J^)-^^)-^^
рис. 3.17. Систолический массив для свертки.
не. Основной принцип систолического проекта состоит в том, чтобы
все данные, будучи регулярно "подкачаны" и ритмично переданы по
массиву, могли быть эффективно использованы всеми ПЭ.
Систолический массив обладает важными свойствами модульности,
регулярности, локальности связей, высокой степенью конвейеризации и
максимально синхронной мультиобработки. Он является также
архитектурно тиражируемым, т.е. размер массива может быть
неограниченно расширен, насколько это позволяет синхронизация системы.
Имеется обширная литература по проблеме систолических
вычислений, читателю мы рекомендуем работу [Fish85b], где помещена и
библиография. Фактически систолический массив может
рассматриваться как ГПС-массив, дополненный конвейеризацией и
ресинхронизацией. Систолический массив для свертки (полученный методом
ресинхронизации ГПС, который подробно разбирается в следующей
главе) показан на рис. 3.17.
Волновой процессор
Проблема систолических процессоров заключается в том, что
перемещения данных производятся под управлением глобальной по-
тактовой синхронизации. Для синхронизации действий в
систолическом массиве часто приходится прибегать к введению дополнительных
задержек, обеспечивающих корректность вычислений. И, что
существенно, расходы на синхронизацию полной вычислительной сети
становятся неприемлемыми для массивов со сверхвысоким и
ультравысоким уровнем интеграции.
Простое решение для ранее рассмотренных задач состояло в
использовании локальности потока управления в дополнение к
локальности потока данных, присущей большинству представляющих здесь
интерес алгоритмов. Это позволяет применить
самосинхронизирующийся подход управления потоком данных к матричной обработке. По
сути этот подход замещает требование корректной синхронизации
для обеспечения корректной последовательности вычислений. Он
широко используется в машинах с управлением потоком данных и в
волновых процессорах.
160
Глава 3
Потоковая многопроцессорная система [Denni80] является
асинхронной системой, которая управляется потоком данных и
выполняет программы, записанные в виде графа потока данных. Поскольку
исполнение ее команд управляется данными, т.е. запуск команд
зависит только от доступности операндов и требуемых ресурсов,
несвязанные команды могут выполняться одновременно без взаимного
влияния.
Достоинства многопроцессорных систем с управлением потоком
данных обусловлены простотой представления параллельного
функционирования, относительной независимостью отдельных ПЭ,
эффективным использованием конвейеризации и снижением роли
централизованного управления и глобальной памяти.
Однако для универсальных потоковых многопроцессорных систем
критическими остаются проблемы конфликтов, затрагивающие память
и взаимодействие. Эти проблемы можно разрешить, если потоковые
системы сделать модульными и локальными. Отсюда родилась идея
волновых матричных процессоров (ВМП).
Волновая обработка состоит из трех этапов: 1) выражение
алгоритма в виде последовательности рекурсий; 2) отображение каждой
рекурсии в соответствующую вычислительную волну; 3) организация
последовательного конвейера волн через процессорный массив.
Отметим еще раз, что основное отличие волнового процессора от
систолического состоит в использовании управления потоком
данных. Смягчение жестких временных требований приводит к тому, что
повышается скорость обработки и упрощается программирование.
Название волновой процессор связано с тем, что вычислительные
волны в некотором смысле подобны электромагнитным волнам,
поскольку каждый процессор действует как вторичный источник и
поддерживает распространение волн. При этом возникает возможность
конвейеризации, так как волны двух последовательных рекурсий
никогда не пересекаются, что исключает любые проблемы конфликта.
Возможно даже распространение волн в нескольких различных
режимах, например, в исключительном случае неоднородного
тактирования волны на самом деле искривляются. Необходимо и достаточно,
чтобы сохранялся последовательный порядок задач. Корректность
последовательности задач гарантируется самим волновым принципом
[Kung 82а].
Волновая обработка использует локальность как потока данных,
так и потока управления, присущую многим алгоритмам обработки
сигналов. Поскольку необходимости в синхронизации всего
процессора нет, волновой процессор оказывается архитектурно расширя-
Отображение алгоритмов на матричные стриктуры 161_
емым. В конечном итоге можно сказать, что волновой процессор -
9Го систолический процессор, в котором реализован принцип
управления потоком данных.
Процессор с многими потоками команд и многими потоками данных
(/VUMD-прцессор)
MIMD-структура рассматривается здесь для полноты изложения.
Следует сразу отметить, что для регулярных ГЗ вряд ли имеется
необходимость использования столь усложненной структуры.
MlMD-процессор состоит из ряда процессорных элементов, каждый из
которых имеет свое устройство управления, работает по своей
программе над своими данными. Основное свойство ЭВМ с
MIMD-архитектурой состоит в том, что все задачи можно
распределить по процессорным элементам и тем самым увеличить степень
параллелизма. Особенно перспективно использование гибкости MIMD-
архитектур для обработки структурно сложных алгоритмов
(например, алгоритмов интеллектуального анализа и обработки
изображений). Понятно, что отображение алгоритмов в MIMD-процессоры или
программные коды обычно выполняется на уровне задач. Но эти
вопросы здесь не рассматриваются.
3.3.4. Примеры алгоритмов отображения в ГПС
Предположение о рекурсивном и локальном характере
зависимостей данных в алгоритмах, используемое в методологии
канонического отображения, приводит к незначительной потере общности,
поскольку подавляющее большинство алгоритмов обработки сигналов
удовлетворяет этим свойствам. Действительно, этот класс
рекурсивных алгоритмов охватывает чрезвычайно широкий диапазон таких
операций, как одно- и двумерная свертки, умножение матрицы на
вектор и перемножение матриц, LU-разложение (для решения
линейных систем уравнений), QR-разложение, обратная подстановка и
многие другие. Ниже на некоторых примерах отображения показано,
как они соотносятся с критериями проектирования в различных
ситуациях.
Цифровые фильтры
АР-фильтр. Локально рекурсивный алгоритм для АР-фильтра был
рассмотрен в гл. 3 и его ГЗ показан на рис. 3.7, е. Поскольку
индексное пространство для АР-фильтра не конечно, направление
11 — 1028
162
Глава 3
-&&&&
Рис. 3.18. ГПС для АР-фильтра.
1 о
проекции для реализации ГПС является единственным. Спроецирован
ный ГПС для АР-фильтра приведен на рис. 3.18. Отметим, что его
вид в точности соответствует стандартной форме АР-фильтра,
приводимой в фундаментальных трудах по обработке сигналов,
например, в работе [Орреп75].
АРБУ-фильтр. Обычно АРБУ-фильтр описывается передаточной
функцией
Ъ.г~
Щг)
/-1
1 " Ϊ CL.Z-
/-1 '
Отметим, что КИХ-фильтрация (линейная свертка или трансверсаль-
ная фильтрация) является просто частным случаем, когда а = О,
i = 1,...,р. Соответствующий рекурсивный алгоритм обычно
записывается в виде разностного уравнения
y(k) = Σ x(k - тЩт) + £ y(k - т)а(т) .
m=1 m=1
АРБУ-фильтр может быть представлен как последовательное
соединение АР- и БУ-фильтров. Так как операция БУ-фильтра - просто
свертка, а ГПС для АР-фильтрации и свертки уже были
рассмотрены, можно легко получить ГПС и для АРБУ-фильтра (рис. 3.19).
Укажем, что ГПС реализован в прямой форме. Учитывая, что
операции АР- и БУ-фильтров используют одни и те же данные, можно
реализовать АРБУ-фильтр в канонической форме (рис. 3.20), которая
Отображение алгоритмов на матричные структуры 163
@^_@^_@^_@__@ '
Ь(4) Ь(3) Ь(2) Ь(1)
рис. 3.19. Непосредственная форма ГПС для АРБУ-фильтра.
Рис. 3.20. Каноническая форма ГПС для АРБУ-фильтра.
использует меньшую память, чем реализация в прямой форме
[Oppen, Rabin, Kaila80].
Линейный фазовый фильтр. Реализация линейного фазового
фильтра в прямой форме, обеспечивающей симметрию временной
характеристики для импульсного воздействия, предложена в гл. 2. ГПС для
фильтра нечетного порядка показан на рис. 3.21. Отметим, что
этот ГПС может быть получен с использованием ГЗ для свертки и
свойства симметрии для коэффициентов фильтра (задача 9).
Х-образные БУ- и АР- фильтры. С точки зрения устойчивости
канонические АРБУ- или АР-фильтры являются не самыми идеальными.
Более предпочтительной оказывается структура, известная как
Х-образный фильтр (рис. 3.22), который обладает свойством
устойчивости [Магке76]. В одномерном случае цифровые Х-образные
фильтры имеют многочисленные применения в обработке речевых и
сейсмических сигналов. Кроме того, та же форма Х-образного ГПС
может быть применена и для решения теплицевых систем линейных
Уравнений.
и*
164
Глава 3
Рис. 3.21. ГПС для линейного фазового фильтра.
Рис. 3.22. ГПС для Х-образного БУ-фильтра.
ГПС для аэторегрессионного Х-образного фильтра может быть полу
аналогичным образом (рис. 3.23).
Умножение матриц
Умножение двух заполненных матриц. Умножение матриц С = АВ
означает вычисление элементов матрицы С в виде
Из этого выражения видно, что все умножения могут быть выполнены
одновременно, так как между ними нет никаких зависимостей. Для
того чтобы получить максимальный параллелизм, необходимо пере-
Отображение алгоритмов на матричные структуры 165
χ(η) —
у(п) -*-
^Θ^&^Θ^ ■ ■ .-©
Рис. 3.23. ГПС для Х-образного АР-фильтра.
•5
слать входные данные в N умножителей по двум входным каналам
для каждого умножителя. Это означает, что , потребуется не менее
о
2Лг каналов связи.
Подобная ситуация заставляет перейти к некоторым новым
переменным, чтобы алгоритм умножения матриц можно было записать в
более предпочтительной рекурсивной форме
ι/ // Ik kf '
где k - индекс рекурсии.
Указанная форма вычисления может быть записана в виде
последовательной программы следующим образом:
For / from 1 to Afj
For i from 1 to N2
For / from 1 to Af,
c(i,j,k) = c(i,j,k - 1) + a(iyk)b(kyj).
Отметим, что этот алгоритм записан в глобальной форме, т.е.
a(itk) распространяются во все индексные точки, имеющие
одинаковые индексы / и k. Аналогично, b(kj) распространяются во все
индексные точки с одинаковыми индексами k и /. Поэтому программа
неявно вводит глобальную связь.
Итак, между рекурсивным алгоритмом и соответствующей ему по-
следоватальной программой имеется аналогия. Поэтому стратегию
локализации, используемую в рекурсивном алгоритме, можно
применить и для преобразования последовательной программы в более
приемлемую (т.е. локализованную) программу.
166
Глава 3
Таким образом, локально рекурсивный алгоритм может быть
запрограммирован следующим образом (приведенная ниже программа
является также программой с однократным присваиванием):
For i from 1 to Νχ
For / from 1 to N2
For k from 1 to #3
a(i,j,k) = a(ij - l,k)
b(i,j,k) = b(i - \,j9k)
c(iyj,k) = c(iyj,k - 1) + a(i,j,k)b(i,j,k).
ГЗ, соответствующий этому алгоритму, показан на рис. 3.24. Зцесь
же приведены и функциональные операции, выполняемые в каждом
узле.
Структурный уровень Функциональный уровень
Рис. 3.24. ГЗ для перемножения матриц.
Полученные путем различных проекций ГЗ два ГПС для умножения
матриц представлены на рис. 3.25 и 3.26. На рис. 3.25
использовано направление проекции [0 0 1]. Указанная задержка относится
к продвижению по индексу к. Заметим, что введение задержек
необходимо для выражения зависимости в направлении [0 0 1]. А на
рис. 3.26 использовано направление проекции [0 10] и задержка
относится к продвижению по индексу у.
Умножение ленточной и прямоугольной матриц. Рассмотрим часто
встречающуюся задачу умножения матриц, одна из которых А
размером Ν χ N с шириной ленты Р, а другая - прямоугольная матрица В
размером Λί χ Q. В большинстве применений Ν » Ρ и Af » Q, поэтому
использование массивов Ν χ N для вычисления произведения С = АВ
очень неэффективно.
Отображение алгоритмов на матричные структуры 167
D D d
113 12 11
Рис. 3.25. ГПС типа 1 (проекция по [0 0 1]) для перемножения
матриц.
ЬП Ь12 Ьп
b b b
23 22 21
Ь33 Ь32 Ь31
Рис. 3.26. ГПС типа 2 (проекция по [0 1 0]) для перемножения
матриц.
Немного изменяя границу ГЗ для умножения прямоугольных матриц
(рис. 3.24), можно получить ГЗ для перемножения ленточной и
прямоугольной матриц. Результат приведен на рис. 3.27, а, где одно
из измерений ГЗ не показано. Используя проекцию в направлении
диагонали ленточной матрицы, можно получить ту же скорость
вычислений, что и на массиве размером Ν χ Q, но уже на прямоуголь-
168
Глава 3
Рис. 3.27. Вырезка ГЗ для перемножения матриц, одна из которых
ленточная (не показано ι-e измерение) (а), и ГПС, полученный с
помощью проекции (б).
ном массиве меньшего размера Ρ χ Q. Соответствующий ГПС
представлен на рис. 3.27,6. Здесь память левых модулей хранит
матрицу А в направлении ленты, а верхние модули хранят матрицу В в
первоначальном виде.
Основная модификация массива связана с тем, что частичные
суммы должны быть сдвинуты в направлении снизу вверх между
рекурсивными вычислениями внешних произведений, что обусловлено
загрузкой матрицы А в скошенном виде. Конечный результат -
матрица С выдается из ПЭ верхней строки массива.
Умножение двух ленточных матриц. Другой интересный случай -
ситуация, когда обе матрицы А и В являются ленточными с шириной
ленты Ρ и Q соответственно (задача 8). Предположим, что Ν » Ρ и
N » Q. Тогда полного параллелизма можно достичь, применяя
прямоугольный массив размера Ρ χ Q (а не Ν χ Ν).
В памяти левых и верхних модулей соответственно хранятся
матрицы А и В в направлении лент (рис. 3.28). Ребро задержанной
обратной связи (с частичной суммой внешних произведений)
размещено по диагонали в северо-западном направлении, что вновь
обусловлено хранением матриц А и В в скошенном виде.
Ш-разложение
Выбор различных направлений проекции при получении ГПС может
приводить к существенно разным результатам. Поиск оптимальной
проекции может быть осуществлен путем перебора по нескольким
Отображение алгоритмов на матричные стриктуры 169
^
Ьз2
К
0
К
К
К
Ъг
Ъь
К
Чз
ь»г
ь«
К
К
Ьь
- % а23 Ъ
О
Рис. 3.28. ГПС для перемножения двух ленточных матриц.
направлениям. В качестве примера рассмотрим два варианта
двумерных массивов для LU-разложения, полученные при различных
направлениях проекции.
LU-разложение - это представление заданной матрицы С в виде
С = АВ,
где А - нижняя треугольная и В - верхняя треугольная матрицы.
Рекурсивные выражения имеют вид
c(k-\)
b<*> - r(b-V а<*> - 11*
r(k-\)
r(k) _ c(k-\) _ a(k)b(k)
(3.10)
для k = 1,2,...,N; k < i < N\ k < j < N.
Анализируя процедуру, представленную выражениями (3.10),
получим
170
Глава 3
s ■с? -Mf- <»·«>
где A = {amn} = {a^n)} и В = {bmn} = {b^m)} - результаты
вычислений. Сравнивая выражение (3.11) с выражением (3.9), можно
сказать, что выражение (3.11) является обратным к рекурсиям
умножения матриц.
• Граф зависимости. Формулировка с однократным присваиванием
предложенного рекурсивного алгоритма имеет вид
for k from 1 to Ν
for i from k to N
for / from k to N
k
1ротивном случае
если / = k
1ротивном случае
c(i,j,k) <-— c(/, j,k - 1) - a(*,/,£) * b(/,/,/e)
fc( i, Lk - 1), если i
b(/,/,/0 *— J
|b( i - 1,j,k) в против
m fc(/,/,* - l)/b(/f/,A)
a(i,/,fc) <-— Л
|a( ι , / - l,k) в против!
Вначале c(/,/,0) <— С...
ГЗ для алгоритма LU-разложения показан на рис. 3.29.
(Дополнительные линии зависимости в направлении &, которые идут от
точек (/,/,/г) к точкам (/,/,£ + 1), здесь не показаны). В каждой
плоскости точки, играющие роль источников значений строк и
столбцов, представлены черными кружками.
В соответствии с ГПС-проекцией ГЗ имеются два естественных
отображения локально рекурсивного алгоритма в массивы.
к=2 к=3 к=4
Рис. 3.29. ГЗ для Ш-разложения.
Отображение алгоритмов на матричные стриктиры
171
Вариант 1 (проекция в направлении [1,1,1] ). Прежде всего
вЫберем вектор проекции ? = [1 1 1]т и процессорный базис Р,
Ортогональный ?. Отображения имеют вид
.т т Г 1 0 -11
ίτ = [1 1 1], Рт
О 1 -1
отображение узлов:
Отображение дуг:
Отображение ввода-вывода:
Ввод:
i
1
k .
=
i -
L / -
- k ]
- k J
Г 1
1
L о
1
0
1
1 ]
-1
-i J
Г 1 1 11
1 0 -1
L ο ι -ι .
•
i
i
. 1 .
=
/ + / + 1
i - 1
/ - 1
Г 1 1 1 ] Г i k ] Г i + 2k j + 2k
Вывод: 1 0 -1 · \ k j = \ i - k 0
L 0 1 -1 J L b k J L 0 i - k
ГПС-массив, полученный в результате такой проекции
(рис. 3.30, а) является гексагональным массивом с конвейерным
тактом α = 3. В этом ГПС-массиве функции ПЭ фиксированы: ПЭ с
координатами (0,0) выполняет деление, первый столбец ПЭ
выполняет умножение, первая строка ПЭ только передает данные и
внутренние ПЭ выполняют операцию "умножение-и-сложение". Результирующие
матрицы А и В выдаются из ПЭ первого столбца и первой строки.
Τ
Вариант 2 (проекция в направлении [1 0 0] ). Выберем вектор
проекции ί = [1 0 0] и процессорный базис Р, ортогональный ί.
Отображения имеют вид:
ат= [юо], рт = [ 11J ].
Отображение узлов:
0 10 1
0 0 1 J
172
Глава 3
Q, ς,
a32 a42
Рис. 3.30. ГПС для Ш-разложения, а - вариант 1, б - вариант 2
Отображение алгоритмов на матричные структуры
Соображение дуг:
173
1 О О
О 1 О
О О 1
Г 1 О О
0 10
L о о ι
=
г ι о о ι
0 1 0
L о о ι J
Отображение ввода-вывода:
Ввод:
Г 1 0 0 Ί
0 1 0
L о о ι .
•
Г'k 1
k i
Л ь.
=
Г i k ]
k'
, k k \
Вывод:
ГПС-массив, полученный с помощью этой проекции (рис. 3.30,6),
является треугольным массивом. Данный ГПС использует в 2 раза
меньше ПЭ, чем в предыдущей версии. Отметим, что функции ПЭ
должны изменяться во времени. Входом является полная матрица С
размером η χ п. Матрица В остается в узлах, а матрица А выводится
из диагональных узлов.
Первая строка массива обрабатывает первую рекурсию (k = 1),
вторая строка - вторую рекурсию (k = 2) и т.д. Отметим, что в
процессе разложения размер матрицы уменьшается и, следовательно,
первая рекурсия имеет размер я, вторая рекурсия - размер (п - 1)
и т.д. Это служит причиной для перехода к треугольному массиву.
Отметим также, что, хотя функции диагональных ПЭ меняются от
деления к умножению, их все же можно легко реализовать, если
использовать арифметическое устройство CORDIC (разд. 7.3). Для
этого необходимо лишь изменить один управляющий разряд.
Теперь сравним два варианта матричного алгоритма
LU-разложения. Первый вариант имеет следующие преимущества:
1) не требуется перепрограммирование процессора (процессор не
меняет своих функций); ?) легко приспосабливается к решению
задачи LU-разложения ленточной матрицы.
Второй вариант также обладает достоинствами: 1) не требуются
диагональные связи; 2) использование ПЭ более эффективно,
поскольку та же производительность достигается при вдвое меньшем
числе ПЭ. Кроме того, как показано в гл. 4, систолический массив
по второму варианту обеспечивает конвейерный такт α = 1, а по
первому варианту α = 3 (хотя в обоих случаях задержка результата
одна и та же).
174
Глава 3
QR-разложение
ГЗ для QR-разложения. Алгоритм QR-разложения, представленный
в разделе 2.2, может быть записан в виде следующей
последовательной программы:
For k from 1 to Ν
For i from N - \ \o k
θ — tg -Ц+1,/аа)
For / from k to N
tempi <— a,. cosO + а. л . si/ιθ
temp2 < a.. sine + a. 4 . cosO
a <— tempi
где временные переменные используются для запоминания новых
значений а., и а.+1 .. Вначале в ячейки а загружается входная
матрица А, а затем в них появляются конечные значения,
образующие матрицу R.
Этот последовательный алгоритм может быть преобразован в
форму с однократным присваиванием, однако при этом требуется
определенная аккуратность. Прежде всего сгруппируем плоское вращение
двух элементов в один узел в ГЗ. При этом угол вращения
распространяется по строке только· один раз. Более важно, что это
группирование упрощает зависимости, поскольку узлу назначается
большее число переменных. Другое замечание связано с тем, что
для каждой рекурсии в к каждая строка (за исключением N-й)
изменяется дважды, а не один раз. При преобразовании предложенного
последовательного алгоритма в форму с однократным присваиванием
будем использовать четыре переменные для матрицы А в каждом
узле^',/, &). Обозначим "старые" значения двух элементов во
вращении как ox(iyjtk) и oy(itjtk)t„ а "новые" значения двух элементов
как nx(iyj,k) и ny(i,jyk). Форма с однократным присваиванием
имеет вид:
For k from 1 to Ν - 1
For / from N - 1 to k
For / from k to N
ox(i,j,k) <— nx(i,j,k - 1)
{ny(i,j>k - 1), если i = N - 1
nx(i + 1, /, k), если i * N - \
Отображение алгоритмов на матричные структуры.
175
\tg \oy(i,j,k
β(<\/.*) <— \ β л
Ιθ(ι,/ - Ι,Λ),
nx{i,Uk)
ny{iiUk)
k)/ox( /,/,£)),если / = £
если / * fc
ox(iJyk)cos(Q(itjyk))+oy(iJtk)sin(Q(ltitk))
-ox(i, /, k)sin(Q(i, /, k))+oy(i, /, fc)cos(6(i\ /. £))»
где nx(i,j,k) = α - входная матрица; m/(N - l,/,0) = a(N,j)\
строка / (за исключением последней строки) результирующей
матрицы R будет размещаться в nx(iJJ) для i s j * N. Последняя, #-я
строка матрицы R, размещается в ш/(# - 1,/,# - 1).
ГЗ этой программы с однократным присваиванием может быть
легко получен путем сравнения разностей индексов по каждому
оператору присваивания. ГЗ показан на рис. 3.31, где приведены дуги
зависимости в каждой /г-плоскости. Зависимости между /г-плоскос-
тями изобразить труднее. Имеется только один тип дуги между
^-плоскостями - от точек (/,/,& - 1) к точкам (/,/,&)·
Проекция в направлении [0 -1 1]. Из ГЗ путем проекции в
некотором направлении можно реализовать ГПС-массив. Спроецированный в
направлении [0 -1 1] ГПС показан на рис. 3.32. Это - регулярный
граф потока сигналов, ,ъ котором все операции построения вращения
Гивенса выполняются в ПЭ первого столбца, а все остальные узлы
выполняют операцию применения вращения Гивенса.
Проекция в направлении [1 0 0]. Проекция в указанном направлении
приводит к ГПС на рис. 3.33, представляющему собой треугольный
массив и, следовательно, экономящему половину ПЭ по сравнению с
ГПС, полученным проекцией в направлении [0 -1 1].
π к.
о—**о—»ю
з t t t
9—^9-*Ю К = 2
ппп
11 t ι
О—*ю—**о—»ю
Рис. 3.31. ГЗ для QR-разложения при N
висимости между /г-плоскостями).
4 (не показаны дуги за-
"il
22
33
Г
34
*13
14
24
34
44
Рис. 3.32. ГПС для QR-разложения, полученный проекцией в
направлении [0 -1 1].
1Ц D |
Ъч ък ьС °^
41
31
№21
ап
42
*32
22
12
d43
азз
а23
*13
*24
'14
Рис. 3.33. ГПС для QR-разложения, полученный проекцией в на-
" Λ 0]. GG-n
вращения I ивенса.
правлении
J1
Гив
О
-построение вращения Гивенса; GR-применение
Отображение алгоритмов на матричные структуры 177
3 4. МЕТОДОЛОГИЯ ОБОБЩЕННОГО ОТОБРАЖЕНИЯ ГЗ В ГПС
Класс однородных (т.е. инвариантных относительно сдвига) ГЗ
охватывает широкий диапазон алгоритмов. Многие другие важные
алгоритмы, не являясь полностью регулярными, обладают
определений степенью регулярности. И подобная "полурегулярность" может
оказаться полезной для эффективного отображения. Поэтому
обратимся к методологии обобщенного отображения. Новый подход
позволяет применять расширенную классификацию ГЗ и осуществлять выбор
между линейными и нелинейными схемами назначения и
планирования. Перспективным является использование множества проекций,
допускающих глобальную связь и обработку полностью нерегулярных
структур ГЗ. Методология обобщенного отображения позволяет
получить эффективные схемы для многих алгоритмов, в том числе для
исключения Гаусса-Жордана, задач поиска кратчайшего пути,
транзитивного замыкания, модельного отжига, решения уравнений в
частных производных, сингулярного разложения, БПФ и
декодирования Витерби.
Назначение узлов и планирование. Для увеличения возможностей
выбора среди различных матричных структур введем расширение
классов допустимых направлений проекций (назначений узлов) и
допустимых планов (назначений планов).
Имеются два основных типа схем назначения узлов.
1. Линейное назначение (проекция). Линейное назначение ГЗ -
это линейное отображение узлов ГЗ в ПЭ, при котором узлы,
лежащие на прямой линии, отображаются в один ПЭ. Формально линейное
назначение, описываемое матрицей L размером (п - 1) χ я,
отображает индекс узла I в вектор S из η - 1 элементов, где S(I) = LI.
2. Нелинейное назначение. Если назначение узлов не является
линейной проекцией, то оно определяется как нелинейное.
Планирование включает определение времени выполнения для всех узлов ГЗ.
Спланированное время выполнения узла представляется временным
индексом (т.е. целым числом). Можно выделить два класса планов.
1) Линейный план. Линейный план отображает множество
параллельных равновременных гиперплоскостей в множество линейно
возрастающих временных индексов. Иными словами, временные индексы
узлов могут быть формально представлены в виде ? I, где I
обозначает индексное пространство узлов и ? - вектор-нормаль к рав-
новременным гиперплоскостям.
2) Нелинейный план. Если план не является линейным, то он
относится к нелинейным планам.
12—1028
178
Глава 3
Отображение с
[оптимальным вре
менем ожидания^
Рис. 3.34. Методология обобщенного отображения.
Методология обобщенного отображения охватывает все
перечисленные варианты классификации (рис. 3.34).
3.4.1. Классификация ГЗ, связанная с направлением проецирования
Для оценки свойств ГПС, получаемых отображением в
определенных направлениях проекции, рассмотрим специфические свойства ГЗ.
Это приводит к следующей расширенной классификации алгоритмов,
базирующейся на их характеристиках инвариантности относительно
сдвига. Рассматриваемая классификация включает такие алгоритмы,
как исключение Гаусса-Жордана, задачи транзитивного замыкания и
поиска кратчайшего пути.
1. Инвариантность относительно сдвига. Если дуги зависимости,
соответствующие всем узлам в индексном пространстве, неизменны
относительно позиций узлов, то говорят, что ГЗ инвариантен
относительно сдвига (ИС). Пример показан на рис. 3.35, а.
2. Направленная инвариантность относительно сдвига. Для
данного направления ί если дуги зависимости, соответствующие узлам
в направлении ?, остаются инвариантными относительно позиций
узлов, то говорят, что ГЗ направленно инвариантен относительно
сдвига (НИС) в направлении ί. Заметим, что ИС эквивалентен НИС
во всех направлениях. Пример НИС дан на рис. 3.35,6.
Отображение алгоритмов на матричные стриктиры 179
Направление проекции
Рис. 3.35. Примеры ИС-проекции (а), НИС-проекции (б) и ПНИС-
проекции (в).
3. ПсевдоНИС. Для данного направления проекции ί, если
спроецированные компоненты дуг зависимости (полученные проекцией в
направлении ί) инвариантны для узлов в направлении ί, то
говорят, что ГЗ является псевдоИИС (ПНИС) в направлении ί
(рис. 3.35,в). Заметим, что дуги зависимости в направлении ί
могут иметь глобальные или даже противоположные компоненты.
Однако эти компоненты не влияют на спроецированные дуги, поскольку
после проекции они соответствуют нулевым компонентам.
Напомним, что СИВ ГПС имеет статические связи, т.е. дуги
являются инвариантными относительно времени. (Однако по
определению, операции, выполняемые в узлах СИВ ГПС, могут изменяться во
времени). ИС ГЗ отображается в СИВ ГПС проекцией в любом
направлении. В общем случае СИВ ГПС может быть получен, пока
соответствующие дуги зависимости остаются непосредственно инвариантными
относительно сдвига. Другими словами, СИВ ГПС может быть получен
проецированием в любом направлении, в том числе из ПНИС. Эти
свойства иллюстрируются алгоритмом исключения Гаусса - Жордана.
Пример 1. Исключение Гаусса - Жордана
Для данной невырожденной матрицы А размером Ν χ N обратная
матрица А может быть найдена с помощью элементарных операций
над строками матрицы и последовательным сведением матрицы А к
единичной матрице I, т.е. А А = I. Если то же множество
операций над строками применить к единичной матрице, в результате
получится А . Это основная идея алгоритма исключения Гаусса-
Жордана, который сходен с алгоритмом исключения Гаусса. Различие
заключается в том, что исключение Гаусса затрагивает элементы,
12*
180
Глава 3
лежащие ниже главной диагонали, и, таким образом, матрица
приводится к верхней треугольной матрице, а в алгоритме Гаусса-
Жордана исключаются элементы, лежащие и ниже, и выше главной
диагонали, и матрица приводится к единичной матрице.
(Предполагается, что выбор ведущего элемента здесь не требуется).
Формально исключение Гаусса - Жордана начинается с расширенной
матрицы Х° = [А | I] и заканчивается получением матрицы
Х^ = [I | А"1]. Рекурсивное уравнение может быть описано
следующим образом:
For к from 1 to Ν
For i from 1 to ^
For / from к to 2N
xk
if
xk. ,X(xkuu 1 ) 1, если i = к
[х)~:]- х)~к 1 (^ftV1*^1 в противном случае,
где X° = [A I I] и X^ = [I | A"1].
Предположим, что для решения системы линейных уравнений
необходимо вычислить А Ь. Тогда вычисления начинаются с матрицы
X = [А | Ь] и оканчиваются результатом X = [I |А Ь].
ГЗ (1-й этап разработки). Представленные зависимости могут
быть локализованы добавлением передаваемых переменных. Одна из
них - строковая передаваемая переменная г, которая пересылает
данные во все узлы в строке. Другая - столбцовая передаваемая
переменная с, которая пересылает данные во все узлы в столбце.
For к from 1 to Ν
For i from 1 to iV
For / from k to 2N
x(i,j,k)
c(i,j,k)
x(it jyk - 1), если / = к
r (i, / - 1,&), если / > к
1, если i = к и / = k
x(i*j*k) , если i = к и / > к
c(i + 1 , / ,&), если i < к
[c(i - 1 , /,k)t если i > k
[x(ij:k - ΙΜ/./,Α)"1 ,ec,
*(*,/,*) <— ]
lx(ij,k - 1) - r(i,j,k)c(i,]tk) в π
если i = к
ротивном
случае,
Отображение алгоритмов на матричные стриктуры
181
к = 1
к = 2
к = 3
Рис. 3.36. Трехмерный граф зависимостей.
где вход Х° = [А | I] и выход Х^
[I | А"1].
Трехмерный ГЗ показан на рис. 3.36, на котором отдельно
представлена каждая из плоскостей η (дополнительные линии
зависимости в направлении k, идущие от точек (/,/,&) к точкам
(A/, k + 1), не показаны). В каждой плоскости точки, которые
служат источником строк и столбцов, заштрихованы.
Исходя из этого ГЗ, представим три различные проекции,
обладающие разными свойствами, и результирующие ГПС.
Случай 1: проекция в направлении [111] - НИС-проекция.
[111] - это НИС-проекция в ГЗ. Если спроецировать ГЗ в этом
направлении и использовать рекурсивный план в fc-направлении, то
результирующий ГПС будет ИВ ГПС (рис.3.37, а). Функция каждого
узла фиксирована и структура ГПС не меняется во времени.
Случай 2: проекция в направлении j - НИС-проекция.
Направление проекции по оси / является НИС-направлением, а
результирующий ГПС - СИВ ГПС, который может быть спланирован линейно. ГПС,
полученный с помощью этой проекции, показан на рис. 3.37,6, где
использован план по умолчанию.
182
Глава 3
Рис. 3.37. ИВ ГПС, полученный проекцией в направлении [1 1 11,
(а); СИВ ГПС, полученный проекцией в направлении у (б); СИВ ГПС,
полученный проекцией в направлении i (в).
Случай 3: проекция в направлении i - ПНИС-проекция.
Направление проекции по оси i является ПНИС-направлением. Используется
также план по умолчанию. Однако из-за ПНИС-проекции ГПС не имеет
линейного плана. Этот ГПС показан на рис. 3.37, е.
Отметим, если выбрано направление проекции по оси k, то
проекция не обладает свойствами ни НИС, ни ПНИС. И следовательно,
соответствующий ГПС не является регулярным.
Замечание. Умножение матриц, Ш-разложение и исключение
Гаусса - Жордана имеют общее рекурсивное описание
Αϊ - *Ϊ,Κ "«W41. (3-12)
где + , ·, * - алгебраические операции, определяемые
применением. Это обобщенное описание используется для многих приложений.
Кроме указанных матричных операций к ним относятся транзитивное
замыкание, задача поиска кратчайшего пути и др. Выбор различных
направлений проекций, а также некоторых схем переиндексации
позволяет получить разнообразные ГПС. Это важно для построения
оптимального систолического массива (гл. 4).
Отображение алгоритмов на матричные структуры 183
3.4.2. Отображение в массивы без внутреннего ввода-вывода
Во многих случаях проецирование ГЗ в ГПС приводит к
распространению результирующего ввода-вывода по внутренним узлам ГПС-
массива и возникновению большого числа портов ввода-вывода.
Например, на рис. 3.38, α показан двумерный ГЗ Ν χ Ν, в котором
входы представлены сверху и слева, а выходы - снизу и справа. Хотя
весь ввод-вывод для ГЗ размещается на границах, любая проекция
данного ГЗ в линейный массив приведет к перемещению ввода-вывода
во внутренние узлы. Это иллюстрируется на рис. 3.38,6, где
линейный ГПС получен вертикальной проекцией.
О
Рис. 3.38. ГЗ (а) и ГПС для вертикальной проекции (б).
Для решения этой проблемы можно расширить индексное
пространство ГЗ, чтобы весь ввод-вывод оказался в точках, которые были
бы отображены в граничные узлы ГПС. Это расширение соответствует
определению схем связи для пересылки выходных данных из
граничных узлов ГПС во внутренние узлы, где это необходимо, и для
пересылки входных данных в граничные узлы ГПС из внутренних узлов,
где они были получены. Расширение индексного пространства для
исключения внутреннего ввода-вывода было предложено в работе
[Rao85] для ограниченных направлений проекции. Для данного ГЗ с
направлением проекции 3 процедура расширения индексного
пространства состоит в следующем.
1.Определить границу ввода-вывода в ГЗ. Поскольку структура
ГПС определена направлением 3, граничные узлы ГПС хорошо
определены и предполагаемые позиции ввода-вывода в ГПС известны.
Некоторые граничные линии (или плоскости), которые будут спроециро-
184
Глава 3
Рис. 3.39. Граничные линии с d = [1 1] (а) и граничные линии с
d = [О 1]т (б).
Рис. 3.40. Расширение индексного пространства с d = [1 1]
(α) и результирующий ГПС (б).
ваны в граничные узлы ГПС могут быть определены в ГЗ. На
рис. 3.39,а показаны граничные линии для предыдущего примера при
выборе направления ί = [1 1] , а на рис.3.39, б - при выборе
направления а* = [0 1] .
2. Расширить ГЗ некоторым числом пустых узлиь. Цель этих
пустых узлов - передать выходные данные из граничных линий в узлы
Отображение алгоритмов на матричные стриктиры 185
значения и входные данные - из узлов назначения к граничным
йниям. Для упрощения управления результирующим массивом не
должны быть использованы никакие дополнительные дуги зависимости
яля этих пустых узлов, кроме тех, что имеются в исходном
гЗ. Введение пустых узлов для предыдущего примера с направлением
J = [1 1] и результирующий ГПС (использующий план по умолчанию)
п0казаны на рис. 3.40. Отметим, что для каждого пустого узла
используется только одна дуга зависимости. Для сравнения
введение пустых узлов для случая <t = [0 1] и соответствующий ГПС (с
планом ? = [1 1]Т) показаны на рис. 3.41. Отметим, что одной
дуги зависимости для каждого пустого узла при этой проекции
недостаточно и поэтому появились две дуги.
Комментарий. Более подробно операции ввода-вывода в массиве
на рис. 3.40 могут быть описаны следующим образом. Данные
вначале последовательно загружаются из граничных ПЭ. Как только они
поступят в получающий ПЭ, начнутся вычисления. Аналогично,
выходные данные будут пересылаться в граничные ПЭ по мере их
получения, не дожидаясь получения всех выходных данных. Что касается
ввода-вывода в массиве на рис. 3.41, то он выполняется следующим
образом. Каждый ПЭ выбирает требуемые входные данные, пропуская
через себя другие данные, и начинает выполнять вычисления после
того, как пропустит все данные для других ПЭ. После начала
вычислений последующие данные воспринимаются уже как обычные
входные данные. В этом массиве ввод и вывод управляются
различными граничными ПЭ.
Ввод-вывод данных может также выполняться путем
предварительной загрузки данных, когда вычисления начинаются после того, как
все входные данные поступят в получающие ПЭ, и путем
одновременной выдачи выходных данных после завершения всех вычислений. Для
массивов, полученных из ГЗ с пустыми узлами, требуются
соответствующие механизмы управления. Реализация предварительной загрузки
и одновременной выдачи проста, потому что весь массив выполняет
одну и ту же операцию. Однако общее время выполнения, как
правило, возрастает, поэтому здесь необходим компромисс между
быстродействием и затратами оборудования.
3.4.3. Мультипроекция
В общем случае возможно непосредственное отображение
^-мерного ГЗ в (N - *)-мерный ГПС (k = 1,2,..., N - 1) [Wong85,
Rao85, Saal86]. В предыдущих разделах была предложена методоло-
186
Глава 3
Направление
проекции
υ υ υ υ
Рис. 3.41. Расширение индексного пространства с d = [0 1] (а)
и результирующий ГПС (б).
гия отображения N-мерного ГЗ в (N - 1)-мерный ГПС. В принципе
метод может быть применен k раз, что приведет к массиву размером
N - k. Более сложным является использование того же метода
проекции для отображения (N - 1)-мерного ГПС в (N - 2)-мерный ГПС и
т.д. Эта схема называется методом мультипроекции.
Для облегчения обсуждения метода мультипроекции введем
понятие ИИС-подпространства, которое расширяет ранее введенное
определение. Для данного ГЗ β-мерное подпространство является
подпространством НИС, если и только если ГЗ является НИС в любом
направлении в fc-мерном пространстве. (Эквивалентно, ^-мерное
подпространство ГЗ является Η И С-подпространством, если и только
если ГЗ является НИС в k независимых векторах (направлениях) в
подпространстве.) Для простоты предположим, что ГЗ :- ^-мерный,
ИС-подпространство - двумерное и размещается на плоскости *"/» а
результирующий ГПС после проекции, например в направлении /,
является (Ν - 1)-мерным. Вопрос заключается в том, как
осуществить дальнейшее проецирование ГПС в (Ν - 2)-мерный ГПС?
Отображение алгоритмов на матричные структуры 187
Потенциальные трудности такого отображения определяются, во-
первых, наличием ребер задержки в (N - 1)-мерном ГПС и, во-
зторых, возможным появлением петель или циклов в ГПС, хотя в ГЗ
нИ петли, ни циклы существовать не могут. Поэтому отображение
этого ГПС в (N - 2)-мерный ГПС потребует дополнительного
внимания.
Чтобы справиться с проблемой циклов введем понятие экземпляр
графа (в определенный момент времени / = tQ), как ГПС, из
которого удалены все ребра задержки. Следовательно, экземпляр графа
не имеет ни петель, ни циклов. Согласно плану ГПС все узлы в
экземпляре графа выполняют операции одновременно в момент
времени t = tQ. Экземпляр активности (в момент *0) может быть
определен в виде узлов экземпляра графа при t = tQ. В соответствии с
планом ГПС два последовательных экземпляра активности
перекрываться не будут (один - в момент времени / = tQ, а следующий в -
момент tQ = *0 + D).
Напомним, что методология отображения состоит из двух частей
- проекции и плана.
• Проекция. Поскольку предположение об //-НИС-подпространстве
означает, что экземпляр графа сам является НИС в направлении /,
метод проекции, предложеный в разделе 3.3.2, может быть применен
в направлении /. Исходный ГПС (с ребрами задержки) проецируется
теперь в направлении ί (т.е. /).
• План. Эта часть более сложная. Прежде всего всегда можно
найти допустимый вектор плана ГПС t для экземпляра графа, так
как в экземпляре графа нет ни петель, ни циклов. Для
проецирования (N - 1)-мерного экземпляра графа в (N - 2)-мерный граф
необходимо создать новый тип задержки, который обозначим τ. Отметим,
что глобальная задержка D и локальная задержка τ взаимосвязаны.
Связь зависит от ограничений, определяемых доступностью
процессора и зависимостью данных (т.е. доступностью данных). Исходные
ребра задержки с βΌ отображаются в ребро, порождающее задержку
веса βϋ + ί-ίτ (рис. 3.42,6).
Рассмотрим более подробно связь между τ и D. Чтобы обеспечить
доступность процессора, экземпляр' активности должен иметь
адекватное время для завершения, прежде чем начнется следующий
экземпляр активности. Отсюда следует необходимость условия
a) D * τ + (Μ - lXt-ijT,
где Μ - максимальное число узлов экземпляра графа в направлении
α (рис. 3.42, а). Это условие гарантирует также, что между двумя
экземплярами активности отсутствует перекрытие во времени.
188
Глава 3
Рис. 3.42. Исходный ГПС (а) и ГПС после дальнейшей проекции (б).
Для обеспечения доступности данных необходимо выполнение
условий бив для всех ребер t
б) βϋ + (?·?)τ £ О,
в) βϋ + ($-ί)τ s> τ,
по крайней мере, для одного ребра в каждом цикле.
Условие б неодходимо для того, чтобы удовлетворить условию
каузальности ГПС Условие в необходимо для того, чтобы
гарантировать, что в каждом цикле нового ГПС будет по крайней мере один
элемент задержки τ. Отметим, что эти два условия являются
необходимыми для такого графа, как ГПС.
Условия а, б и β совместно гарантируют доступность процессора
и данных для нового ГПС. Тем самым отображение завершено.
Кстати, условие а часто оказывается основным ограничением.
Действительно, условие а достаточно для обеспечения условий б и β в
случае, когда рассматривается ГПС с локальными связями.
Очевидно, эта методология отображения может быть
непосредственно применена к отображению (Ν - 2)-мерного ГПС в
(Ν - 3)-мерный ГПС. Метод может быть применен k раз (т.е.
используется k шагов простой проекции) для приведения размера
массива к N - к.
Пример 2. Умножение ленточных матриц
Для иллюстрации процедуры на рис. 3.43, α и б показаны
двумерный ГПС для умножения ленточных матриц и соответствующий ему
спроецированный ГПС. Отметим, что на рис. 3.43,6 матрица В
вводится параллельно и приводит к ширине полосы ввода-вывода поряд-
Отображение алгоритмов на матричные структуры
189
\з А»А21
0
в2,
в
32
а
τ
В
и
В
22
Взз
А
В
12
В
23
в„
A*t Ац Ajj Am Ajf Аи Ац Ац О
β» в„ В« В» Βα в„ в„ в,, о
Рис. 3.43. Мультипроекция для перемножения ленточных матриц, а -
двумерный ГПС и "хороший" план; б - одномерный ГПС после
проекции; в - конечный ГПС, использующий D = Зт.
ка Λί, что обычно не желательно. Поскольку в каждом параллельном
ребре ввода имеется только один элемент данных в течение Μ
временных шагов, эти данные могут чередоваться с вводом из
граничных ПЭ, как показано на рис. 3.43, е. Альтернативный способ
получения такого ГПС состоит в расширении индексного пространства
ГПС (разд. 3.4.2.) и перекрытии выполнения расширенного
индексного пространства (для ввода-вывода) со следующим экземпляром
графа (для вычисления). Аналогичным способом можно исключить и
вывод непосредственно из внутренних узлов (рис. 3.43, в).
Детальное рассмотрение процедуры предоставляется читателю.
190
Глава 3
3.4.4. Нелинейный план и нелинейное назначение
Кусочно-линейный план
Если вектор проекции ? располагается в НИС-направлении, то
существуют два вида отображения - отображение с линейным планом
(ЛП-НИС) и отображение с нелинейным планом (НЛП-НИС). Отображе-
ние ЛП-НИС отображает ГЗ в ГПС с линейным планом ?, который
удовлетворяет следующим условиям:
1) t t £ 0 для любой дуги зависимости ?,
2) ?т3 > 0.
Пример приведен на рис. 3.44, а. Отличное от ЛП-НИС отображение
называется НЛП-НИС-отображением.
Направление проекции
а лп-нис б клп-нис
Рис. 3.44. ЛП-НИС-отображение Г3(а) и НЛП-НИС-отображение ГЗ (б).
Обычно отображение НЛП-НИС может рассматриваться как
объединение множества ослабленных отображений ЛП-НИС, где условие 2
заменено условием
?тЗ*о.
В этом случае такое отображение называется кусочно-линейным
планом (КЛП) (рис. 3.44,6).
Поскольку КЛП-НИС-отображение может рассматриваться как
объединение множества ЛП-НИС-отображений, для соответствующего ГПС
требуется простое управление. Для подтверждения регулярности и
модульности отметим, что планы являются линейными с обеих сторон
разделяющей плоскости (рис. 3.45). Действительно, линейный план
может быть использован для каждой из областей ЛП-НИС ГЗ и каждая
Отображение алгоритмов на матричные стриктиры Ш
Рис. 3.45. КЛП-НИС-отображение ГЗ (а) и соответствующий ГПС с
буферами и стеками (б).
область может быть спроецирована в СИВ ГПС с простым
управлением. Отметим, что для обработки данных, пересекающих разделяющую
плоскость, требуется разработка модулей взаимосвязи. Возможны
два типа отношений между двумя соседними линейными планами.
Первая возможность состоит в том, что временные индексы обоих
линейных планов возрастают в направлении ί. Вторая возможность -
два линейных плана продвигаются в противоположных направлениях
относительно 3. Соответственно существуют и две возможные модели
взаимосвязи. В первом случае для согласования скоростей
обработки данных служит буфер, достаточный для надлежащей связи между
двумя областями. Во втором случае - стек, достаточный для
обработки стыка. Отметим, что для буфера и для стека требуется
простое управление. Отображение КЛП-НИС ГЗ в ГПС с буферами и
стеками показано на рис. 3.45.
Проекции в направлениях, отличных от НИС, обычно допускают
только нелинейные планы. Однако спроецированный ГПС может иметь
другие преимущества, такие, как меньшее число ПЭ, большая
конвейерная скорость или более высокая степень использования
массива. Если они могут быть реализованы, отображение с нелинейным
планом может оказаться более предпочтительным.
Нелинейное назначение
Под нелинейным назначением понимается назначение на ПЭ узлов,
не обязательно лежащих на прямой линии. Нелинейное назначение
при отображении ГЗ в ГПС обычно связано с усложнением управле-
192
Глава 3
ния. При определенных условиях отображение с нелинейным
назначением может привести к схемам, обладающим гибкостью и другими
достоинствами. Ниже рассмотрены два таких примера.
Пример 3. Сортировка рикошетом
Сортировка рикошетом [Chen78] иллюстрирует применение
нелинейного назначения. ГЗ (заимствованный из разд. 3.3.1, рис.
3.5,), отображенный в ГПС с помощью нелинейного назначения,
показан на рис. 3.46. В этом отображении узел (/,/) отображается
в ячейку /(*',/) = m\n{N + 1 - /,/}.
Рис. 3.46. "Нелинейное" отображение: ГЗ (а) и ГПС для сортировки
рикошетом (б).
Следовательно, в массиве ГПС требуются только N/2
процессоров, и их использование максимально. Название "сортировка
рикошетом" связано с тем, что входные данные, поступающие из левой
части массива, достигая его правой части, рикошетируют и
возвращаются в левую часть, и так до тех пор, пока левой части не
достигнут выходные данные. В результате отображения с нелинейным
назначением управление для этих ГПС становится более сложным.
Пример 4*. Последовательное умножение матрицы на вектор
Нелинейное назначение позволяет создавать более гибкие
структуры и охватывать более широкую область алгоритмов. Один из при-
Отображение алгоритмов на матричные стриктиры 193
(УО^ОеГ
<#
e = ABCd
pi
a xxxxj+: !
О—О—О—О—О^
гхххх.:
Ό—О—О—О—О—ι
Х"Г"»
е(1) е(2) е(3)
О:
:*.
d(1)
:— d(2)
d(3)
Рис. 3.47. Каскадный ГЗ для умножения матрицы на вектор.
меров - алгоритм, представленный каскадным ГЗ, т.е. группой ГЗ,
связанных в каскад. Простой пример показан на рис. 3.47, где три
ГЗ для умножения матрицы на вектор объединены для вычисления
е = ABCd. Здесь А, В и С - матрицы размером 3x3, а е и d -
векторы размером 3x1.
В этом каскадном ГЗ все исходные ГЗ одинаковы. Применение к
нему нелинейного назначения позволяет обрабатывать эти три ГЗ
одновременно, что облегчает переформатирование данных и
увеличивает конвейерную скорость.
3.4.5. Линейная проекция в ГПС с глобальной связью
Понятие линейной проекции и линейного плана в НИС ГЗ могут
быть аналогичным образом применены к глобальному ГЗ, что
приводит к ГПС со статической (но глобальной) связью. Для иллюстрации
на рис. 3.48, α воспроизведен из гл. 2 многоступенчатый алгоритм
вычисления БПФ. Он может быть рассмотрен как НИС ГЗ, и
применение к нему проекции в горизонтальном направлении приведет к
отображению с линейным планом. Спроецированный массив ГПС с сетью
совершенной тасовки показан на рис .3.48,6. Отметим, что сети
совершенной тасовки находят многочисленные применения в таких
задачах, как сортировка, кодирование, БПФ». Другой интересный
пример для декодирования Витерби приведен в задаче 15.
13—1028
194
Глава 3
Рис. 3.48. Многокаскадный массив для БПФ (а) и массив после
проекции (б).
3.4.6. Отображение с минимальным временем ожидания для ГЗ общего
вида
Выше речь шла о сильно регулярных ГЗ, узлы которых чаще всего
представляли элементарные операции, такие, как "умножение-и-
сложение". В общем случае ГЗ могут быть полностью нерегулярными,
особенно в тех случаях, когда узлы представляют, например,
задачу. Это приводит к разнообразию вычислительных машин. В общем
случае нерегулярный ГЗ может быть реализован полносвязной MIMD-
системой с общей памятью (рис. 3.49). В связи с отсутствием
регулярности ни линейная проекция, ни линейный план не могут счи-
Модули общей памяти
Коммутатор
Р|
р2
Рз
Рис. 3.49. Полная конфигурация системы с MIMD-архитектурой.
Отображение алгоритмов на матричные структуры 195
таться эффективными. Поэтому должна быть рассмотрена более общая
стратегия отображения. Ее некоторые задачи состоят в следующем.
1. Нахождение1 плана, минимизирующего время ожидания в
условиях отсутствия ограничений на число ПЭ или локальную связь. Время
о01сидания - это интервал между загрузкой первого входа и выдачей
последнего выхода для процессорного массива. Определение
минимального числа требуемых ПЭ (и оптимального назначения узлов),
достаточного для достижения плана с минимальным временем
ожидания .
2. Как для данного фиксированного числа ПЭ найти оптимальные
план и назначение узлов? Как для данного фиксированного числа ПЭ
и фиксированного назначения узлов определить план с оптимальным
временем ожидания?
План с минимальным временем ожидания
Рассмотрим сначала первую задачу. В предположении, что дос
тупно достаточное число ПЭ и что все ПЭ полностью связные, план
с минимальным временем ожидания может быть определен
непосредственно. Метод основан на частичном упорядочивании узлов ГЗ.
Задачи подобного типа возникают во многих приложениях
исследования операций, и известен ряд алгоритмов ее решения [Taha82].
План с минимальным временем ожидания может быть определен в
двух фазах. Первая фаза - в прямом направлении: отсчет времени
вычислений начинается с узлов-источников, т.е. тех узлов,
которые не имеют предшественников, и продолжается по всем возможным
путям к узлам-получателям. В этой схеме для каждого узла может
быть вычислено самое раннее время завершения ТЕ- Тогда
минимальное время ожидания Τ равно
тах{ТЕ}.
Во второй фазе пути просматриваются в обратном направлении
Для определения самого позднего времени завершения Т, для
каждого узла, так что минимальное время ожидания Τ остается
достижимым. Критический путь содержит все те узлы, вычисления которых
должны быть завершены к моменту времени Тр (т.е. для этих узлов
TL= Тр), если минимальное время ожидания достижимо.
Затраты на глобальную и локальную связь предполагаются
одинаковыми.
13+
196 Глава 3
Теперь рассмотрим задачу минимизации общего числа ПЭ. Узлы,
которые спланированы для одновременного выполнения, должны быть
назначены на различные ПЭ, чтобы они обрабатывались параллельно
и минимальное время ожидания было достижимо. Поэтому минимальное
число ПЭ, требуемых для соответствия данному плану, равно
£ _ moY/ число одновременно активных! /о <о\
гпах^ уЗЛ0в в момент времени t J ν · ;
С точки зрения стратегии планирования заметим, что имеются
два вида активных узлов в любой момент времени (например,
/ = /J: 1) узлы, принадлежащие критическому пути, и,
следовательно, с фиксированным планом, и 2) узлы, не принадлежащие
критическому пути и имеющие гибкий план. Диапозон допустимой
настройки синхронизации зависит от разности Т, - Тр.
При минимизации требуемого числа ПЭ время выполнения для
узлов, не принадлежащих критическим путям, может регулироваться с
целью минимизации целочисленного значения К, не приводящего к
увеличению времени ожидания. В исследовании операций эта задача
относится к проблеме распределения ресурсов. Методы оптимального
решения этой задачи неизвестны, однако существуют некоторые
эвристические подходы, с которыми читатель может познакомиться в
работе [Taha82].
Задача целочисленного программирования для определения
минимального времени ожидания при фиксированном числе ПЭ
Предположим, что система содержит т ПЭ.При этом возможны две
различные ситуации. Прежде всего если т £ R, то рассмотренный
подход применяется непосредственно. Однако более интересный и
практически распространенный случай - минимизация времени
ожидания при фиксированном числе ПЭ и т < К. Эта задача может
рассматриваться как частный случай общей задачи теории расписаний в
комбинаторной оптимизации, которая может быть сформулирована как
задача целочисленного программирования [Papad83].
В ГЗ с узлами {ν.,...,ν } припишем узлу v. целочисленное
значение τ^, равное времени его выполнения. Задача состоит из двух
частей: как произвести назначение и как выполнить планирование.
1. Назначение узлов. Функция назначения узлов определяется
функцией отображения ρ (для i = 1,...,л, / = 1,...,ш) с
р.. = 1, если узел ν выполняется на процессоре /, и 0 - в
противном случае.
Отображение алгоритмов на матричные стрцктиры 197
2. Планирование. Задача состоит в определении функции
планирования (определяемой начальным временем /. для узла ν ) для
/ = 1,...,л, в предположении, что / - целочисленны и min{/}=0.
Общая цель - минимизировать время ожидания /, которое равно
f = max{f. + τ,}.
рассмотрим ограничения планирования, входящие в эту задачу.
1. Ограничения доступности ПЭ. Так как никакие два узла не
могут выполняться одновременно в одном и том же ПЭ, всякий раз
когда р;/ = pk = 1 и узел v( выполняется раньше узла vfe, имеем
2. Ограничения зависимости данных. Если v. зависит от ν по
данным, то имеем t( + τ; - tk £ 0.
η
Если положить Τ = J]τ, то задача о минимальном времени ожида-
М'
ния может быть переформулирована в терминах целочисленного
программирования [Papad83]:
min /
при следующих ограничениях для неотрицательных чисел /, Т-
1. / as / + τ , i = 1 л;
m
2. Σ P„ = 1. I = 1..·..η; (3.14)
3. ρ £ 1, / = 1,...,/η, ι = Ι,.,.,λ; (3.15)
4. /. - t. * δ,.Τ, ι * ky i,k = l,...,/t;
k l Ik
5. δ. + dk = 1 i < k, i,k = 1,...,л;
е. tt + τ, - tk s то - aft - P// - Pft/). (3.16)
/ = l,...,m, ι * ky i,k = 1,...,λ;
7. δ . = 1, если vk зависит от υ:
8. t + τ - Λ £ 0, если i>fe зависит от и-
План с минимальным временем ожидания при фиксированном
назначении узлов. Иногда при формулировке задачи назначение
оказывается уже фиксированным, и возникает проблема определения плана с
оптимальным временем ожидания, которую можно сформулировать в
виде задачи целочисленного программирования. Единственное
отличие от предыдущей задачи состоит в том, что р„ должны быть
теперь не переменными, а константами (т.е. из выражений (3.14) и
(3.15) р. и р.. должны быть исключены, а в выражении (3.16)
должны рассматриваться как константы).
198
Глава 3
3.5. ЗАКЛЮЧЕНИЕ
Процессоры на СБИС реализуют максимальный параллелизм,
прибегая к конвейерной и параллельной обработке. Возникает важный
вопрос: как в полной мере выразить параллельную и конвейерную
обработку, присущую алгоритмами Прежде всего, фундаментальным
является вопрос конкретного представления структур данных в
алгоритмах. Для рассматриваемой в книге проблематики граф
зависимости (ГЗ) обеспечивает полезное графическое выражение,
допускающее определенные структурные модификации. Кроме того,
критическим шагом в архитектурном проектировании является
отображение структур данных в матричные структуры. Начиная с алгоритма,
выраженного его ГЗ, разработчик может следовать правилам,
обеспечиваемым методологиями отображения, которые предложены в этой
главе. Основной подход - методология канонического отображения,
относящаяся к регулярным ГЗ. Для работы с графами, обладающими
некоторой степенью нерегулярности, и для более гибких схем
назначения и планирования узлов предложена также методология
обобщенного отображения. Независимо от характера отображения его
можно разделить на три этапа. На первом этапе создается ГЗ и
производится его модификация * для удовлетворения определенным
структурным ограничениям. На втором этапе из ГЗ извлекается ГПС
путем простого метода проекции. И на последнем этапе полученный
ГПС может быть отображен в SIMD-, систолический, волновой и даже
MIMD-процессор.
Систематическое преобразование ГЗ в систолический массив во
многом упрощает понимание систолической структуры и обеспечивает
средства для верификации разработки. Оптимальность систолической
структуры определяется в соответствии с критериями
производительности. Очевидно, выбор определенного ГЗ для алгоритма, а
также типов проекции и планирования может существенно влиять на
производительность результирующего матричного процессора. Этот
вопрос рассмотрен в гл. '4. Методы отображения ГЗ потенциально
применимы для задач разбиения и обеспечения отказоустойчивости.
Эти возможности в настоящее время исследуются. Другая важная
проблема состоит в том, как эффективно выполнять алгоритмы в
матричных процессорах с фиксированной структурой. В
действительности это проблема согласования алгоритмических структур данных
с архитектурными структурами процессоров. Она требует более
общей методологии, которая еще разрабатывается. В гл. 6 обсуждены
некоторые предварительные результаты и приведены несколько при-
Отображение алгоритмов на матричные структуры, 199
меров методов разбиения и структурного согласования.
Как следует из маршрутной карты в предисловии к этой книге,
гЛ 3 действительно может рассматриваться как основная глава.
Она создает основу для проектирования и анализа систолических и
волновых матричных процессоров (гл. 4 и 5) и обеспечивает
хорошее понимание разработки программного обеспечения для
программирования, проектирования и моделирования (гл. 6).
3.6. ЗАДАЧИ
1. Получение рекурсивного алгоритма. Свертка описывается
следующей формулой:
у(п) = J u(k)w(n - k).
fe=0
а) Напишите программу на Фортране для вычисления у(п).
Предполагается, что обе входные последовательности имеют одну и
ту же длину N.
б) Перепишите программу в форме с однократным присваиванием,
которая приводит к следующему рекурсивному алгоритму:
у) = УТК ukwi-v
2. Локализация рекурсивного алгоритма. Можно ли локализовать
следующий рекурсивный алгоритм? Если да, то локализуйте его.
Обоснуйте свой ответ.
ή = yk-^a(k)-y(j - k)
У(П = У* . y°j= '"(/)>
где / = 0,1,2,...,*; k = Ν,Ν - ί,Ν - 2,...,1.
3. Локализация из последовательной программы. Ниже приведена
программа на Фортране для свертки двух последовательностей. Обе
последовательности имеют длину 4. Преобразуйте эту программу в
программу с однократным присваиванием и локализуйте ее.
DO 10 J = 1,4
DO 10 К = 1,J
Y(J) = Y(J) + U(K) * W(J - K)
10 CONTINUE
DO 20 J = 5,7
DO 20 К = J - 3,8
Y(J) = Y(J) + U(K) * W(J - K)
20 CONTINUE
200
Глава 3
4. Получение ГЗ. Получите подходящие ГЗ для алгоритмов
корреляции и обратной подстановки.
5. ГПС для корреляции. Получите для корреляции три различных
вида ГПС. (Они необязательно должны соответствовать одному и
тому же ГЗ).
6. Индексное преобразование и различные ГПС для свертки. ГЗ
для свертки показан на рис. 3.6,6. Учитывая форму ГЗ, выполним
следующее индексное преобразование:
L ь Ί L о ι J L ь J.
В результате получим ГЗ прямоугольрной формы, как показано на
рис. 3.50, а. Отметим, что коэффициенты w(i) в столбцах остаются
неизменными. Это означает, что коэффициент w(i) может храниться
в 1-м процессоре как константа (рис. 3.50,6). Другой ГПС,
полученный проекцией в направлении [1 0], представлен на
рис. 3.50, е.
а) Для ГЗ на рис. 3.6,6 получите ГПС, используя проекцию в
направлении [1 1]. Сравните этот ГПС с ГПС, полученным из ГЗ
индексным преобразованием и показанным на рис. 3.50,6.
б) Операция сложения, используемая в свертке, является
ассоциативной, поэтому направления дуг зависимости могут быть
изменены. Можно ли получить "новый" (в том числе полезный) ГПС,
используя этот метод?
7. Умножение двоичных чисел. Рассматривая задачу умножения
двоичных чисел, предположим, что множимое имеет длину 5 двоичных
разрядов, а множитель - 4 двоичных разряда.
а) Постройте для этой задачи ГЗ, узлы которого выполняли
бы функции полного сумматора.
б) Какое направление проекции следует применить, чтобы
получить ГПС с последовательным вводом множимого? Сколько ПЭ
потребуется?
в) Какое направление проекции следует применить, чтобы
получить ГПС с последовательным вводом множителя? Сколько ПЭ
потребуется?
г) Можно ли получить спроецированный ГПС со свойством
последовательного ввода и множимого, и множителя?
Отображение алгоритмов на матричные структуры 2Ш
w(0) w(l) w(2) w(3)
У(0)
У(1)
У(2)
V"(3)
,u(2)
U(l);
u(0)
y(0) y(l) y(2) · ·
u(3) u(2) u(l) u(0)
a
D D D
m /"-^ m ^^ m ^~^ 4 ^~^
J*(0) ) ( w(l) ) ( w(2) ) ( w(3)J
6
w(0)
w(l)
w(2)
w(3)
β
Рис. 3.50. ГЗ с преобразованными индексами для свертки (а). ГПС,
полученный проекцией в направлении [0 1] (б) и ГПС, полученный
проекцией в направлении [1 0] (в).
д) Можно ли воспользоваться индексным преобразованием
(задача 6) для сокращения необходимого числа ПЭ?
8. Умножение ленточных матриц. Предположим, что Ν » Ρ и
Л/" » Q, где Ρ и Q - ширина ленты для матриц А и В соответственно.
Тогда можно добиться полного параллелизма при реализации
умножения ленточных матриц на прямоугольном массиве размером Ρ χ Q (а
не Ν χ Ν}. Это утверждение можно подтвердить рассмотрением ГЗ и
применением подходящей проекции для получения ГПС. Постройте ГЗ
Для умножения двух ленточных матриц и предложите необходимую
проекцию для получения прямоугольного массива размером Ρ χ Q.
202
Глава 3
9. Получение ГПС для линейного фазового фильтра. Постройте
ГПС для линейного фазового фильтра длиной 5, используя ГЗ дд^
свертки.
Указание. Следует использовать свойство симметриии ГЗ и его
свертывание.
10. Преобразование Хаусхолдера. Преобразование Хаусхолдера
используется как элементарный шаг во многих распространенных
преобразованиях, например, при разложении матрицы А в
ортогональную матрицу Q и верхнюю треугольную матрицу R (так
называемый алгоритм QR-разложения) [St гап80]. Преобразование
реализуется, прежде всего, применением следующего разложения
Q(1)A
XXX
0
0 А
где Q(l) = I - 2—~—, и = А1 + IIAJIz, и А1 - первый вектор-
Па и\\ '
столбец матрицы А, а ζ = [1 0 0...0] . Затем аналогичные
разложения продолжаются, т.е. вычисляются Q(/), i = 2,3,..., ΛΜ, и
Q = Q(N - 1)...,Q(1). (Здесь Q(/) изменяет только нижнюю
диагональную подматрицу размером N - 1 + 1, где N обозначает число
столбцов в матрице А.)
Покажите, что изложенный рекурсивный алгоритм может быть
отображен в параллельно работающую ГПС-сеть (рис. 3.51). Из рисунка
видно, что после одного шага подматрица сдвигается влево.
Задержки D представляют состояние ГПС и содержат столбцы
подматрицы А, готовой для обработки на следующем шаге рекурсии.
4ιλ
А А А А
1 2 3 4
Рис. 3.51. ГПС для алгоритма Хаусхолдера.
Отображение алгоритмов на матричные стриктуры 203
Указание. Для иллюстрации понятия состояния в алгоритме Хаус-
холдера QR-разложения и его ГПС-представлении укажем, что
алгоритм преобразует исходную матрицу А в верхнюю треугольную
матрицу R с помощью ортогонального преобразования Q: QA = R.
Ортогональное преобразование реализуется повторным применением
одинаковых разложений Q(/), ι = l,2,3,...,tf-l. Из рис. 3.51 видно,
чТо после одного шага рекурсии подматрица А^ представляет
информацию, необходимую для последующей обработки (т.е. "состояние").
Согласно рис. 3.51 А^ должна быть сдвинута влево для подготовки
к следующему шагу рекурсии. Задержки D представляют память,
необходимую для состояния ГПС-сети, содержащей подматрицу А ,
которая обрабатывается на следующем шаге рекурсии.
11. Правила для локализации (наглядный подход). Следуя
приведенным правилам, изобразите локализованный ГЗ для свертки.
а) Начиная с одного оператора присваивания (иногда,
рекурсивного уравнения), первый шаг состоит в определении границы
индексного пространства.
б) Для тех переменных, которые имеют все верхние и нижние
индексы и уже локализованы, использовать дуги для связей
соответствующих индексных точек.
в) Для переменных, у которых отсутствуют некоторые (верхние
или нижние) индексы, могут быть применены два подхода:
1. Для внешних переменных использовать локальные дуги для
пересылки данных в соответствующие контуры общих данных.
Направления пересылки могут быть выбраны произвольно и должны быть
согласованы с другими требованиями проекта.
2. Для промежуточных переменных использовать локальные дуги
для пересылки данных в соответствующие контуры общих данных. Но
направления пересылки перестают быть произвольными. Следует
выбрать, где формировать промежуточные переменные.
12. Правила для локализации (алгебраический подход). Используя
следующие правила α и б, получите локально рекурсивный алгоритм
Для авторегрессионного АР-фильтра, где должны быть локализованы
следующие уравнения:
*}- у*** + a(k)-y(j - k)
У(П = у), /+1 = «(/) ·
а) Для внешних переменных использовать тот же метод, что и в
предыдущем подходе.
б) Для промежуточных переменных, которые должны быть
локализованы:
204
Глава 3
1. Сохранить нижние индексы и ввести дополнительные верхнее
индексы, чтобы все верхние и нижние индексы были представлены
явно. Добавленные таким образом верхние индексы указывают
переменные, которые будут соответствующими выходными переменными.
2. Различие между нижним и верхним индексами указывает на
глобальную зависимость. Этот вектор разности является вектором
глобальной зависимости.
3. Выразить вектор глобальной зависимости в виде линейной
комбинации некоторых локализованных векторов, независимых от
индексов. Использовать эти локализованные векторы для пересылки
данных. Если необходимо, использовать для пересылки данных
пустые переменные.
Указание. Уравнения могут быть переписаны в следующем виде:
А - *Г+ "Ч*·
</(/) = 4 ί/; + 1= «ω. α* = a(k).
Заметим, что вектор зависимости между у{ и у . есть
ίk
[ i
1
' " *.
" k -
- il
k\
Таким образом, в качестве векторов пересылки можно использовать
и (1,1), и (0,-1). Если введена пустая переменная пересылки В^,
то могут быть получены следующие выражения:
В* = В*"!, В° . = у\ ь.
13. Каноническое отображение. Пусть дан ГЗ, представленный на
рис. 3.52.
а) Какие из следующих пар плана и проекции являются допустимыми:
1. s = [1 0]т, d = [1 0]7
2. 5 = [1 -1]т, d = [1 0]7
3. 5 = [1 1]т, d = [1 0]т
4. 5 = [1 1]т, d = [1 -1]7
б) Приведите спроецированный ГПС для каждой допустимой пары.
Для простоты предположим, что смешанные индексы могут быть
представлены нижним индексом.
-1
0
Отображение алгоритмов на матричные стриктуры
205
Ш53
Q—-О—"О—-О—-О
О—О—О—О—6
О.—-Q—<Х—-о—ю
О—Ю—-О—-О—О
Рис. 3.52. ГЗ для задачи 13.
14. Обобщенное отображение. Для ГЗ на рис. 3.53 какие из
следующих планов являются допустимыми:
1) s = [1 0]т;
2) * = [1 -1]т;
3) s = [1 1]т;
JL XJL xi XJL xl
α—-6—<*—"6—-о
Рис. 3.53. ГЗ для задачи 14.
206
Глава 3
15. Декодирование Витерби. Алгоритм Витерби хорошо известен
как эффективный метод для реализации декодирования сверточных
кодов по максимуму правдоподобия. Ниже использован пример
линейной проекции глобальной связи.
Рассмотрим сверточный код со скоростью \/п и ограничением k.
Пусть N = 2 - число состояний. Решетчатая диаграмма для
декодирования, которая может рассматриваться как ГЗ, показана на
рис. 3.54.
Состояние
00
01
10
11
Рис. 3.54. Решетчатая диаграмма (k = 3) или ГЗ для декодирования
Витерби.
а) Какой ГПС будет получен с помощью проекции в направлении
итераций состояний? К какому классу графов он относится?
Заметим, что связь для этого ГПС глобальная, но статическая, поэтому
может быть применена статическая коммутационная сеть.
б) Какой ГПС будет получен с помощью проекции в вертикальном
направлении? К какому классу графов он относится?
При глобальной связи использование ПЭ может быть очень
интенсивным. Хотя были проведены некоторые исследования того, как
использовать локальную связь для декодирования Витерби, из-за
ограничений связи эффективность параллелизма остается еще хуже,
чем в случае глобальной связи.
Глава 4. СИСТОЛИЧЕСКИЕ МАТРИЧНЫЕ ПРОЦЕССОРЫ
4#1. ВВЕДЕНИЕ
В гл. 3 были рассмотрены методы отображения алгоритмов в
сТруктуры ГПС и показано, что введение конвейеризации в ГПС-
массив приводит к систолической схеме. В этой главе будет прежде
рсего описана методология отображения и предложена модификация,
необходимая для отображения ГЗ непосредственно в систолические
массивы. Затем обсуждаются систематические методы преобразования
ГПС-массивов в систолические массивы, которые основаны на
процедуре систолизации сечением (ресинхронизация). Представлены
примеры систолических вычислителей для многих алгоритмов, таких,
как фильтрация, свертка, матричные операции и сортировка.
Рассмотрены принципиальные вопросы проектирования оптимальных
систолических массивов, включающие выбор на различных уровнях
отображения таких характеристик, как оптимизация производительности,
время вычисления, блочный конвейерный такт и степень утилизации
процессоров. В последних двух разделах представлены
систолические массивы для двух важных классов задач, которые могут быть
решены: 1) методом динамического программирования и 2) с помощью
искусственных нейронных сетей. Первый класс задач включает
задачи о транзитивном замыкании и о поиске кратчайшего пути из
теории графов, исключение Гаусса - Жордана из линейной алгебры и
др. Второй класс связан с обработкой изображений и комбинаторной
оптимизацией.
4.2. СИСТОЛИЧЕСКИЕ МАТРИЧНЫЕ ПРОЦЕССОРЫ
Систолические процессоры [HTKun78, HTKun82] - это новый класс
конвейерных матричных структур. Систолическая система
представляет собой сеть процессоров, выполняющих ритмичные вычисления и
передачу данных по системе [HTKun78]. Например, можно показать,
что объединение ПЭ, выполняющих элементарную операцию "скалярное
произведение" (y*—y+axb) локальными связями, позволит
реализовать цифровую фильтрацию, умножение матриц и другие
операции. Систолический массив обладает важными свойствами
модульности, регулярности, локального взаимодействия, высоким уровнем
конвейерности и синхронизованной мультиобработки. Продвижение
Данных в нем обычно описывается с помощью кадров (мгновенных
представлений функционирования клеток массива).
208
Глава 4
Систолический процессор отличается от обычной фоннеймановской
машины высоким уровнем конвейерных вычислений, т.е. как только
элемент данных поступает из памяти, он может быть эффективно
использован в каждой клетке, в которую он попадет при
"прокачивании" по всему массиву. Это представляет интерес для
широкого класса вычислительных задач, связаных именно с
вычислениями, когда множество операций повторно выполняется над каждым
элементом данных. В данном случае устраняются проблемы обмена с
памятью, присущие фоннеймановским машинам.
Концептуально вычислительные задачи можно разделить на два
семейства - вычислительные задачи, связанные с вычислениями, и
вычислительные задачи, связанные с вводом-выводом [HTKun82].
Если в задаче общее число вычислительных операций больше общего
числа операций ввода-вывода, говорят, что такая задача связана с
вычислениями, в противном случае - с вводом-выводом. Например,
обычное умножение матриц является задачей, связанной с
вычислениями, а сложение двух матриц - задачей, связанной с вводом-
выводом. Для ускорения решения задач, связанных с вводом-
выводом, требуется увеличение доступа к памяти, что при
существующей технологии крайне затруднительно. В то же время ускорить
решение задач, связанных с вычислениями, часто можно за счет
использования систолических массивов. Основная конфигурация
систолического массива представлена на рис. 4.1. Заменяя отдельный
процессор одно- или двумерным массивом поцессоров можно достичь
увеличения производительности вычислений без увеличения
пропускной способности памяти.
Память
*—»j пэ | пэ | пэ | пэ | пэ | пэ | пэ |—'
Рис. 4.1. Базовая конфигурация систолического массива.
4.2.1. Определение систолических массивов
В работах [HTKun78, Ullma84, Kung84a] дано несколько
определений систолических массивов. Рассмотрим следующее определение.
Определение. Систолический массив - это вычислительная сеть,
обладающая следующими свойствами.
Систолические матричные процессоры 209
• Синхронность. Данные вычисляются ритмично (при глобальном
тактировании) и пропускаются по сети.
• Модульность и регулярность. Массив содержит модульные
процессорные элементы с однородными связями. Более того,
вычислительная сеть может неограниченно расширяться.
• Пространственная локальность и временная локальность.
Массив характеризуется локально связанной структурой межсоединений,
т.е. пространственной локальностью. В структуре существует
распределенная задержка (по меньшей мере единичной длительности), в
течение которой могут быть завершены прием, обработка и выдача
сигнала от одного узла к другому, т.е. временная локальность.
Поэтому, если ГПС (С = <VyEyD(E)> (разд. 3.3.2)) представляет
систолическую систему, то D(e) £ 1 для всех ребер е.
• Конвейеризуемость (т.е. ускорение выполнения О(М)). Массив
проявляет конвейеризуемость с линейной скоростью, т.е.
достигается ускорение вычислений Ο(Λί), где Μ - число процессорных
элементов (ПЭ). Здесь эффективность работы массива определяется
коэффициентом ускорения ТУТр, где Г« - время обработки на одном
процессоре и Тр - время обработки на матричном процессоре.
Пример 1. Систолический массив для свертки. Существует
множество вариантов реализации свертки на систолических массивах (в
соответствии с различными проекциями, как показано в разд. 3.3).
Рассмотрим один из примеров, соответствующий ГПС на рис. 3.50,6.
Как показано на рис. 4.2, входная последовательность и(п)
загружается слева, а веса {w(n)} предварительно устанавливаются в η
ПЭ в том же порядке.
Последовательность {у(п)} начинает прокачиваться с правой
стороны массива с начальным значением 0 с той же скоростью, что
и и(п). Конечный результат выдается с левой стороны массива.
Пример 2. Гексагональный массив для умножения двух ленточных
матриц. Для реализации умножения двух ленточных матриц С = АВ
w0
Ik.
■«
w,
►
4
W|
»■
*
^
+> aout *out = аш
** ЬЬ bout = Ъ.т +аь , W.
Рис. 4.2. Систолический массив для свертки.
14—1028
Wi
210
Глава 4
был предложен гексагональный массив [HTKun78]. Общее размещение
данных показано на рис. 4.3.
Ответим на вопрос о том, как такая схема вычисляет требуемый
результат. Простейший способ ответа - показать пространственно-
временные действия в течение нескольких первых последовательных
тактов, а затем получить остальные действия (и общее правило) с
помощью наблюдения и индукции.
В этом примере видно, что двумерный гексагональный массив
имеет естественную топологию для решения задачи умножения
ленточных матриц. Из рис. 4.3 видно, что данные ( матрицы А и В)
Рис. 4.3. Гексагональный систолический массив для перемножения
ленточных матриц.
Систолические матричные процессоры 21J_
упорядочены в определенной последовательности. Выходные данные
(матрица С) прокачиваются с другой стороны массива, встречая на
своем пути требуемые данные и объединяя их для искомых
произведений. Подробное описание продвижения данных и выполнения
вычислений часто приводится в виде кадров функционирования [HTKun78].
Интересно, что Ш-разложение (необходимая процедура при
обращении матрицы) может быть вычислено таким же образом, но кадры
при этом будут иметь обратный порядок. Более подробно с этим
читатель может ознакомиться в работах [HTKun78, HTKun82].
4.2.2. Свойства систолических архитектур
Почему отдают предпочтение систолическим архитектурам?
Следующие основные факторы объясняют интерес к систолическим
массивам для специализированных систем обработки: простота и
регулярность схемы, параллелизм и связь, сбалансированность
вычислений с вводом-выводом [HTKun82].
Простота и регулярность схемы. В интегральной технологии
стоимость компонентов существенно падает, однако стоимость схемы
растет вместе с ее сложностью. Использование простых и
регулярных схем с привлечением СБИС-технологии позволяет получить
ощутимый выигрыш. Кроме того, простые и регулярные схемы
предопределяют модульность системы, что способствует повышению
производительности.
Параллелизм и связь. Важным фактором в быстродействии
вычислительных систем является использование параллелизма. Для
специализированных систем параллелизм определяется теми алгоритмами,
которые реализуются в системе. При большом числе одновременно
работающих процессоров важное значение приобретает связь. В
СБИС-технологии стоимость трассировки доминирует над
требованиями, относящимися к мощности, времени и площади, необходимым для
реализации вычисления [Mead80]; поэтому регулярные и локальные
связи в систолических массивах представляются крайне полезными.
Сбалансированность вычислений с вводом-выводом. Систолический
массив обычно используется в виде присоединенного матричного
процессора и производит обмен данными и результатами через
основную машину. Поэтому затраты на ввод-вывод должны «приниматься
во внимание при оценке общей производительности. Конечная цель
реализации матричной процессорной системы - скорость вычислений,
14*
212
Глава 4
согласованная с шириной полосы ввода-вывода основной машины. При
относительно малой пропускной способности современных устройств
ввода-вывода для увеличения быстродействия необходимо выполнять
большой объем вычислений на одно обращение к вводу-выводу. Но
повторное использование данных требует их хранения в системе в
течение достаточно длительного времени. Другими словами,
проблема ввода-вывода связана не только с пропускной способностью, но
и с требованиями к внутренней памяти. Поэтому важным при
алгоритмической разработке матричного процессора становится вопрос,
как соотнести вычисления с соответствующей структурой памяти и
пропускной способностью ввода-вывода с тем, чтобы время
вычислений было сбалансировано с временем ввода-вывода.
Проблема ввода-вывода становится особенно трудной, когда
решение задачи большого размера производится на небольшом
матричном процессоре. Неизбежно возникает задача разбиения, т.е.
вычисления должны быть декомпозированы. На практике это происходит
очень часто, и поэтому вопросы, как произвести разбиение и как
организовать буферную память с целью минимизации ввода-вывода,
являются критическими для практической разработки матричной
системы обработки.
Схемы распределения тактовых импульсов
Согласно работе [Seitz80], синхронизация действий в больших
синхронных системах (таких, как систолический массив)
осуществляется широким системным синхронизирующим сигналом.
Синхронизирующий импульс выполняет две функции - как эталон
последовательности и как эталон времени. В качестве эталона
последовательности тактовые импульсы служат определению последовательных
моментов времени, в которые система может изменить свое состояние. В
качестве эталона времени тактовые импульсы необходимы для
определения задержек срабатывания элементов и передачи данных с
выхода на вход синхронизированных элементов. Двойственная роль
синхронизирующих импульсов, с одной стороны, вносит некоторое
упрощение в разработку цифровых систем, но, с другой стороны,
объединение функций установления последовательности работы и
синхронизации является источником многочисленных трудностей при
разработке, обслуживании, модификации и обеспечении надежности
синхронных систем [SeitzSO].
Поскольку синхронизирующие импульсы предопределяют действия
Систолические матричные процессоры 213
во всей системе, их распределение является критическим для
систолических массивов. Имеется ряд проблем, связанных с
синхронизацией больших массивов. Эти проблемы возникают главным образом
в результате расфазировки синхронизирующих импульсов, т.е.
ситуации, когда все ПЭ в массиве не могут получить тактовые импульсы
одновременно. Причины подобных явлений - разные длины соединений
генератора тактовых импульсов с каждым ПЭ, и другие причины,
например вариации параметров сигнала в различных цепях
распространения. С целью устранения этих явлений в регулярных массивах
для распространения синхронизирующих импульсов можно
использовать схемы Η-деревьев, в которых каждый ПЭ размещается на
одинаковом удалении от генератора. Размещения Η-деревьев для
линейных, квадратных и гексагональных массивов показаны на рис. 4.4.
Рис. 4.4. Размещение Н-деревьев для синхронизации линейного
массива (а), квадратного массива (б) и гексагонального массива (в).
Хотя Η-деревья и позволяют решить проблему равноудаленности
для распространения синхронизирующих импульсов, задача
расфазировки решается не полностью. Фишер [Fish85a] показал, что
произвольно большой линейный систолический массив может быть
синхронизирован глобальными импульсами с помощью их конвейерного
распространения.
Однако при попытке синхронизировать двумерный массив обычно
возникает расфазировка, пропорциональная размеру массива. При
устранении этих трудностей были разработаны асинхронные волновые
матричные процессоры, которые рассматриваются в гл. 5. В
асинхронных системах проблема тактирования может быть упрощена,
поскольку необходимо поддерживать только корректную
последовательность действий (а не синхронизацию).
214
Глава 4
Сравнение систолических массивов с SIMD- и ГПС-массивами
SIMD-массив сеточного типа (например, ILLIAC IV) показан на
рис. 4.5,а, а систолический массив - на рис. 4.5,6. SIMD-массив
- это синхронный массив процессорных элементов, действующих под
управлением одного устройства управления, в котором все ПЭ
получают из устройства управления одну и ту же команду, но выполняют
ее над разными множествами данных из различных потоков. Отметим,
Устройство
управления
Управляющая шина
Обрабатывающее устройство!
Обрабатываю
щее устройство!
f Информационная щ φ
шина ¥
Обрабатываю
|щее устройство!
Сеть связи (локальная)
Устройство
управления
1
Обрабатывающее устройство
J
1
Г
Устройство
управления
Обрабатывающее устройство
ι
Устройство
управления |
Обрабатывающее устройство
ι
ι
Сеть связи (локальная)
Устройство
управления
Обрабатываю
Ьдее устройство!
Устройство
управления
Обрабатываю-'
|щее устройство!
ГТ
у Информационная
Ώ
Устройство
управления
Обрабатывающее устройство
4 4
Сеть связи (локальная)
Рис. 4.5. Матричный SIMD-процессор (а), систолический массив
(б), ГПС-массив (в).
Систолические матричные процессоры 215
qTo в SIMD-массиве до начала вычислений данные обычно
загружаются в локальную память, в то время как в систолических массивах
данные откачиваются из основной машины и туда же закачиваются
полученные результаты. Дью и Мэннинг [Dew86] сравнивали
SlMD-массивы и систолические массивы для задач предварительной
обработки изображений. Найдено, что операции с локальными окнами
эффективно реализуются и на систолических, и на SIMD-массивах.
Однако на операциях, зависимых от данных, таких, как корреляция
с использованием двоичного поиска, SIMD-массив уступает
систолическому массиву. Эффективность систолического массива связана с
тем, что хранение изображения происходит в основной машине, из
которой можно выбрать требуемые данные и подкачать их в массив.
Проведем подобные сравнения для ГПС-массива. Заметим, что
термин ГПС долгое время был популярен в литературе по ЦОС. Более
того, ГПС-массив сам по себе приводит к новой матричной
архитектуре, отличной и от SIMD-процессора, и от систолического
вычислителя. Как и в SIMD-массиве, но в противоположность
систолической схеме, в ГПС допускается распространение данных (рис.
4.5, в), что полезно для быстрого обмена передаваемыми данными.
Как и в систолическом массиве, ГПС-массив работает с локальными
командами, что недоступно в SIMD-массивах. Потенциально
ГПС-массив представляет собой многообещающую структуру для
оптических матричных вычислений.
4.3. ОТОБРАЖЕНИЕ ГЗ И ГПС В СИСТОЛИЧЕСКИЕ МАССИВЫ
Много исследований было посвящено систематическим методам
синтеза систолических массивов, основанных на анализе
алгоритмов. Вкратце рассмотрим те работы, которые наиболее близки
содержанию данного раздела. Работа Карпа, Миллера и Винограда
[Кагр67] уже рассматривалась в разд. 3.2. Капелло и Стайглиц
[Сарре83] ввели геометрическую интерпретацию линейного
преобразования индексного пространства, которая позволила понять, как
связаны друг с другом различные систолические проекты для одного
и того же алгоритма. В том же направлении Молдован [Moldo83]
рассматривал отображение циклических алгоритмов на систолические
массивы. Циклические алгоритмы описываются на языках высокого
уравня типа Фортран в виде циклов DO. Процедура отображения
основана на линейном преобразовании индексных множеств и векторов
зависимости данных. Необходимые и достаточные условия существо-
216
Глава 4
вания справедливых преобразований получены для алгоритмов с
константными зависимостями данных. При нахождении оптимального
проекта (для заданной функции стоимости) используется эвристическая
процедура для поиска наилучшего преобразования среди множества
возможных преобразований. Это отображение может быть
распространено на решение задачи разбиения [Moldo86]. Независимо от Молдо-
вана аналогичные результаты получены в работе [Miran84].
Pao [Rao85] определил класс алгоритмов, названных регулярными
итерационными алгоритмами, которые подобны системам однородных
рекуррентных уравнений, рассмотренных Карпом и др. [Кагрб7]. Он
показал, что подкласс регулярных итерационных алгоритмов имеет
характеристики систолических алгоритмов и для них систематически
могут быть получены соответствующие систолические архитектуры.
Термин локально рекурсивные алгоритмы, предложенный Куном
[Kung83c], указывает на локальность пространственных и временных
индексов в рекурсивном (или итерационном) алгоритме, и поэтому
такие алгоритмы могут быть представлены в виде пространственно
локальных ГЗ или ГПС. В последнее время появилось много
результативных исследований в этом направлении, например работы [De-
los86] и [Chen86]. Более подробный обзор можно найти в работах
[Fort85a] и [Rao85].
Согласно методологии канонического отображения из разд. 3.3,
разработка систолических массивов может быть разделена на
следующие три этапа.
Этап 1. Извлечение (локализованного) ГЗ из алгоритма.
Этап 2. Отображение ГЗ в ГПС-массив.
Этап 3. Преобразование ГПС в систолический массив (т.е. сис-
толизация).
Для получения оптимального систолического проекта важно знать
варианты, доступные на каждом из этих трех этапов. Прежде всего
остановимся на различии между ГПС-планом и систолическим планом.
Затем обсудим метод непосредственного отображения ГЗ в
систолическую схему, т.е. объединение этапов 2 и 3. Возникает еще одна
ситуация: имея ГПС, разработчик хочет преобразовать его в
систолическую схему, и для этого предложена схема ресинхронизации
сечением. В этом разделе большое внимание уделено именно
разработке систолического массива (этап 3), хотя мы часто обращаемся
к двум другим этапам проектирования, которые уже достаточно
хорошо описаны в гл. 3.
Систолические матричные процессоры 217
4.3.1. Непосредственное отображение ГЗ в систолическую схему
Многие работы, посвященные систолическим структурам,
базируются на непосредственном отображении ГЗ в систолические схемы
[Moldo83, Сарре83, Rao85]. В основном такой подход следует
методологии отображения ГПС, рассмотренной в разд. 3.3.2.
Единственная модификация, связанная с планом, обсуждается ниже.
Систолический план. Отображение ГЗ в систолическую схему в
действительности означает отображение ГЗ в специальный класс
ГПС, обладающих систолическим планом. Вспомним, что при заданном
направлении проекции ί допустимый ГПС-план удовлетворяет
условиям (разд. 3.3.2):
?т? * 0 и ?т3 > 0, (4.1)
где Й - вектор проекции и t - любой вектор зависимости в ГЗ.
Неравенства (4.1) гарантируют D(e) £ 0 в формальном
представлении ГПС. Однако для систолической схемы вектор плана t в
процедуре проецирования (разд. 3.3.2) должен удовлетворять, следующим,
более сильным условиям:
?т? > О и ?т? > 0. (4.2)
Это означает, что каждое ребро результирующего ГПС должно иметь
один или несколько элементов задержки, т.е. D(e) £ 1, что
удовлетворяет условию временной локальности в определении
систолического массива. Другими словами, массив ГПС определяет условие
систолического массива, если ГЗ является локальным и направленно
инвариантным относительно сдвига.
4.3.2. Процедура систолизации сечением
Возможны несколько причин, по которым желательно сначала
получить ГПС, а затем преобразовать его в систолический массив:
1. ГПС дает четкое выражение параллельного алгоритма.
2. ГПС определяет структуру массива с минимальными
ограничениями на синхронизацию.
3. Могут быть разработаны формальные преобразования ГПС в
систолический массив.
Очевидно, при отображении ГЗ в ГПС не все ГПС-планы,
соответствующие неравенствам (4.1), удовлетворяют условиям
систолического плана, определяемым неравенствами (4.2). Поэтому в
некоторых случаях для систолизации ГПС требуется ресинхронизация. Для
218
Глава 4
лучшего понимания различия между требованиями синхронизации ΓΠς
и систолических массивов рассмотрим пример. Отметим, чТо
ГПС-массив для свертки на рис. 3.9 является пространственно-
локализованным, но не временно-локализованным. В соответствии с
видом графа на рис. 3.9 распространение данных, например, от
самого левого узла к самому правому узлу происходит без затрат
времени. Более точно, ГПС налагает требование, что данные и
должны быть доведены до всех узлов на верхнем пути. Это
нежелательно с точки зрения систолической структуры и схемной реализации.
Рассмотренный ГПС для свертки уже достаточно близок к
систолическому массиву. Основное расхождение состоит в том, что
большинство ГПС не заданы во временно-локализованной форме. Другими
словами,
Систолический массив = ГПС-массив + Конвейерная ресинхронизация.
Здесь ресинхронизация [Leise81] - это процедура
преобразования ГПС в эквивалентную временно-локализованную форму. Тема
введения временной локальности в вычислительную сеть была предметом
многочисленных исследований. Упомянем ряд публикаций:, Феттвайс
[Fettw76], Лейзерсон и др. [Leise81, Leise83a, Ltise83b], а
также более поздние работы [Kung83c, Kung84a, Lev-A83, Jagad83,
Cara84, Barnw83]. В этом разделе представлена процедура
ресинхронизации сечением (из работы [Kung84a]) для систолизации ГПС.
Основное достоинство этой схемы состоит в простоте использования
и ясности доказательства, основанного на лемме об окрашенной
дуге из теории графов (см. ниже теорему 4.1). Существует прямая
связь между вращением вектора плана в ГЗ и ресинхронизацией ГПС,
которая обсуждается в разд 4.3.3.
Процедура ресинхронизации сечением
Цель процедуры ресинхронизации сечением - преобразовать ГПС
во временно-локализованную форму так, чтобы все ребра между
модульными секциями имели по крайней мере один элемент задержки.
Сечение в ГПС - это минимальное множество ребер, которые
разбивают ГПС на две части. Процедура ресинхронизации сечением
основана на двух простых правилах.
Правило 1. Масштабирование времени. Все задержки D могут быть
масштабированы умножением на единое положительное целое число а,
которое называется конвейерным тактом ГПС, т.е. D —> olD. Со-
Систолические матричные процессоры 219
ответственно, скорости ввода и вывода также должны быть умножены
на коэффициент масштабирования α (в соответствии с новым
значением единицы времени D ).
Правило 2. Перемещение задержки. Для любого данного сечения
ГПС, которое разбивает граф на две части, можно сгруппировать
ребра сечения на входящие ребра и выходящие ребра в зависимости
от направлений, приписанных ребрам, как показано на рис. 4.6.
Правило 2 разрешает данным продвигаться k(D ) единиц времени
на всех входящих ребрах и задерживаться k единиц времени на
выходящих ребрах, и наоборот. Ясно, что для ГПС, инвариантного
относительно времени, поведение общей системы не нарушается,
поскольку эффекты отставаний и продвижений вперед аннулируют
друг друга в полной временной диаграмме. Отметим также, что
ввод-вводные и ввод-выводные временные соотношения остаются
неизменными, если только они относятся к одной и той же части
сечения. В противном случае они должны быть настроены на
отставание на +k единиц времени или ускорение на -k единиц времени.
Иными словами, если предусмотрено более чем одно сечение и если
ввод и вывод разделены более чем одним сечением, то такие
факторы настройки должны учитываться.
Будем говорить об этих двух правилах как о правилах
ресинхронизации сечением и докажем, что любой вычислимый ГПС (без петель
или циклов с нулевой задержкой) может быть систолизован
процедурой ресинхронизации сечением. (ГПС имеет смысл, только когда
он вычислим, т.е. когда в ГПС не существует петель или циклов с
нулевой задержкой.) Для того чтобы показать достаточность правил
ресинхронизации сечением для процедуры систолизации,
сформулируем следующую теорему.
Рис. 4.6. Иллюстрация правила перемещения задержки. Вычисление,
выполненное элементом, не изменится, если продвинуть входы и
задержать выходы на одно и то же число тактов.
220
Глава 4
Теорема 4.1. Все вычислимые ГПС могут быть сделаны временно-
локальными путем применения правил ресинхронизации сечением.
Следовательно, пространственно-локальные и регулярные ГПС-массивы
всегда систолизуемы.
Доказательство. Мы утверждаем, что правила ресинхронизации ι
и 2 могут быть использованы для локализации любого намеченного
(целевого) ребра с нулевой задержкой, т. е. для преобразования
его в ребро с ненулевой задержкой. Это может быть сделано
выбором хорошего сечения и применения к нему сформулированных
правил. Хорошее сечение, включающее целевое ребро, не должно
содержать плохих ребер, т. е. ребер с нулевой задержкой, имеющих
направление, противоположное направлению целевого ребра. Это
означает, что сечение будет включать только: 1) целевое ребро; 2)
ребра с ненулевой задержкой, имеющие одно из направлений; 3)
ребра с нулевой задержкой, имеющих то же направление.
Тогда в соответствии с правилом 2 ребра с ненулевой
задержкой, имеющие противоположное направление, могут дать одну или
несколько дополнительных задержек для целевого ребра (для того,
чтобы локализовать его). Если дополнительные задержки не
появляются, то все задержки в ГПС просто масштабируются в соответствии
с правилом 1, чтобы создать достаточное число задержек
необходимых для передачи.
Таким образом, остается трлько доказать, что такое хорошее
сечение всегда существует. С этой целью обратимся к рис. 4.7, в
котором сохранены ребра с нулевой задержкой, предшествующие и
последующие относительно целевого ребра, а все другие ребра из
графа * удалены. Другими словами, на рис. 4.7 изображены "плохие"
ребра, которые не должны быть включены в сечение. Как показано
на рис. 4.7 штриховыми линиями, между этими двумя множествами
плохих ребер должны быть щели. В противном случае некоторое
множество ребер с нулевой задержкой должно было бы образовать цикл
с нулевой задержкой, и ГПС был бы невычислимым.
Очевидно, любое сечение, проходящее через щели, является
хорошим сечением, и на этом доказательство существования
завершается. Отметим, что оно на самом деле представляет результат из
теории графов, известный как лемма об окрашенной дуге. Ясно, что
повторные применения к сечениям правила 2 (и при необходимости
правила 1) в конечном итоге приведут к временно-локализованному
ГПС.
Систолические матричные процессоры
221
Хорошее сечение
Предшествующие
ребра
Целевое
ребро
Рис. 4.7. Обоснование процедуры сечения. Всегда существуют
"щели" между плохими ребрами, которые гарантируют существование
хорошего сечения. Они могут быть использованы как ключ для выбора
хорошего сечения.
Процедура систолизации
Регулярный ГПС-массив может быть легко систолизован и
преобразован в систолический массив с помощью следующей процедуры
систолизации, базирующейся главным образом на правилах
ресинхронизации сечением.
1. Выбор основных функциональных модулей. Выбор может быть
неоднозначным. В общем случае чем мельче уровень разбиения на
основные модули, тем больше эффективность (быстродействие)
систолического массива. Ниже в этом разделе сравниваются два
варианта модулей систолического Х-образного фильтра.
2. Применение правил ресинхронизации. Если данный ГПС
является регулярным, т.е. модульным и пространственно-локализованным,
могут быть выбраны регулярные сечения и сформулированные выше
правила могут быть использованы для получения регулярного и
временно-локализованного ГПС. Для того чтобы сохранить модульную
структуру ГПС (основное свойство систолической разработки),
ресинхронизация сечением должна быть применена одинаково по всей
схеме.
3. Объединение задержки с функциональным модулем. Для
преобразования такого ГПС в систолическую форму остается только
ввести задержку в каждый из функциональных модулей, такой, например,
222
Глава 4
Of *>
f
a б
Рис. 4.8. Иллюстрация объединения задержки с модульной
операцией, а - модульная операция с задержками; б - соответствующий
процессорный элемент.
как а + Ьх с. Задержка может быть объединена с модульной
операцией для образования базового систолического элемента. Все
дополнительные задержки создаются как чистые задержки без
операций. Поскольку петли реализуются в ПЭ в виде регистров, они
также вводятся в ПЭ (рис. 4.8).
Пример 1. Систолические Х-образные фильтры
Примером процедуры систолизации является систолическая
реализация цифрового Х-образного фильтра, который имеет множество
важных применений в обработке речевых и сейсмических сигналов. В
этом примере мы используем правила преобразования к ГПС для АР
Х-образного фильтра, показанного на рис. 4.9, а. Имеются две
возможности для выбора базового функционального модуля для этой
схемы - функциональный модуль "решетка' и функциональный модуль
"умножение с накоплением". Отметим, что каждая операция
"решетка" состоит из двух операций "умножение с накоплением", и,
следовательно, она требует в два раза большего времени.
Х-образный систолический фильтр (схема типа А). Применяя
правило 1, прежде всего удвоим каждую задержку, т.е. D —> 2D,
как показано на рис. 4.9,6. Применим одинаковые сечения к ГПС и
исключим задержку из каждого левого ребра и соответственно доба-
Операция "решетка", трактуется как один модуль, что удобно для
реализации в базисе CORDIC.
Систолические матричные процессоры
223
χ, - хг - х0 | |РП"'"^о
У - У - У « 'р| /V
о ι 2 ^Ί J.... .У
2m χι * х° —Η —Η —Η **
у . у . у,"· г— г— г
о ι 2 I
Рис. 4.9. Систолизация авторегрессионых Х-образных фильтров
(типа А).
α - ГПС для авторегрессионных Х-образных фильтров; б - ГПС с
измененным временным масштабом для авторегрессионных Х-образных
фильтров (типа А); в - локализованный ГПС для авторегрессионных
Х-образных фильтров (типа А); г - систолический массив для авто-
регрессионных Х-образных фильтров (типа А).
вим одну задержку в каждое правое ребро всех сечений. Результат
представлен на рис. 4.9, е. Наконец, объединяя задержки с
модулями "решетка", получим окончательную систолическую структуру,
приведенную на рис. 4.9, г. Отметим, что из-за временного
масштабирования входная последовательность {*(/)} будет перемежаться с
224
Глава 4
пропусками в целях согласования с отрегулированными задержками.
Ясно, что α = 2, и схема позволяет достичь ускорения вычислений
в М/2 раз по сравнению с однопроцессорным вариантом.
у о- уг-
Рис. 4.10. Систол изация авторегрессионых Х-образных фильтров
(типа Б).
а - ГПС с временным масштабированием и сечения для
авторегрессионных Х-образных фильтров (типа Б); б - частично локализованный
ГПС - первое перемещение задержки при сечении; в -
локализованный ГПС - второе перемещение задержки при сечении; г -
локализованный ГПС - все операции готовы для слияния с соответствующими
временными задержками D'; д - систолический массив для
авторегрессионных Х-образных фильтров (типа Б), где маленькие квадраты
обозначают чистые задержки.
_____ Систолические матричные процессоры 225
Х-образный систолический фильтр (схема типа В). Применяя пра-
бИло 1, прежде всего утроим каждую задержку, т.е. D —> 3D.
Результирующий ГПС показан на рис. 4.10, а. Применим к этому ГПС
Одинаковые сечения (рис. 4.10,6). Исключим две задержки из
каждого левого ребра и соответственно добавим две задержки в каждое
правое ребро в этих сечениях. Далее используем сечение,
разделяющее верхние ребра от нижних ребер (рис. 4.10, в). Переместим
одну задержку из нижних ребер в верхние ребра. Наконец,
объединим задержки с модулем "умножение с накоплением" (рис.4.10,г) и
получим систолическую структуру (рис. 4.10,д). Отметим, что из-
за временного масштабирования входная последовательность {*(/)}
будет перемежаться двумя пропусками для согласования с
отрегулированными задержками. Ясно, что массив позволяет достичь
ускорения вычислений в 2М/3 раз по сравнению с вариантом одного модуля
"умножение с накоплением" . С точки зрения быстродействия эта
систолическая схема предпочтительнее схемы типа А.
Пример 2. Систолические массивы для умножения матриц
Умножение двух заполненных матриц. Как показано на рис. 4.11,
ГПС обычного умножения матриц допускает одновременное
распространение столбцов А. и строк В. по квадратному массиву с
частичной суммой внешних произведений, возвращаемых по петле с
задержкой.
Применим правило 2 к сечениям, показанным на рис. 4.11.
Систолизованный ГПС имеет по одной задержке, приписанной каждому
ребру, и поэтому представляет собой локализованную схему. В
соответствии с правилом 2 ввод различных столбцов В и строк А
должен быть до поступления в массив отрегулирован определенным
количеством задержек. Подсчет сечений, показанных на рис. 4.11,
показывает, что первый столбец В не требует дополнительной
задержки, второй столбец требует одну задержку, третий - требует
две задержки (поскольку два сечения отделяют ввод третьего
столбца от соответствующего поцессора верхней строки) и т.д.
Отметим, что, поскольку верхние и нижние модули "умножения с
накоплением" в каждом ПЭ никогда не работают одновременно, в
реализации для этих целей достаточен только один физический
модуль.
15—1028
226
Глава 4
Рис. 4.11. Сечения ГПС для умножения матриц.
Поэтому матрица В должна быть скошена (рис. 4.12). Аналогичное
расположение должно быть использовано и для матрицы А.
Умножение двух ленточных матриц. Обратимся к ГПС умножения
ленточных матриц на рис. 3.28. Применение процедуры систолизации
к сечениям, как показано на рис. 4.13, предусматривает утроение
задержки, т.е. D —» 3D. (Такое масштабирование необходимо
потому, что каждое северо-западное граничное ребро попадает под
сечение дважды.) Применение процедуры приводит к конфигурации
массива (рис. 4.14), которая топологически эквивалентна
двумерному гексагональному массиву, предложенному в работах [HTKun78]
и [HTKun82].
Пример 3. Два систолических массива для LU-разложения
С помощью процедуры ресинхронизации сечением можно систолизо-
вать два ГПС для Ш-разложения, соответствующие проекциям в на-
Систолические матричные процессоры
227
а а а а О
24 23 22 21
ООО
Ь " О v
£ λ Л i.
а а а а о π ».
34 33 32 31
Рис. 4.12. Систолический массив для умножения матриц.
правлениях [1 1 1]т и [1 О 0]т, как показано на рис. 3.30,α и б.
τ
Отметим, что ГПС, соответствующий проекции [1 1 1], уже систоли-
зован. Результирующий систолический массив (вариант 1) показан
на рис. 4.15. Конвейерный такт α для этого массива равен 3, так
как имеются три задержки в цикле, образованном ПЭ (1,1), (2,1) и
(2,2). Представленная конфигурация массива топологически
эквивалентна двумерному гексагональному массиву, предложенному в
работах [HTKun78] и [HTKun82]. Применение правила 2 к ГПС с
проекцией [1 0 0]тприводит ко второму варианту систолического массива
(рис. 4.16). Для этого систолического массива α = 1.
4.3.3. Связь между вращением вектора плана в ГЗ и
ресинхронизацией сечением в ГПС
Покажем, что объединение этапов 2 и 3 может привести, по
крайней мере, к структуре, достижимой непосредственными методами
отображения. Используем для этого следующее утверждение.
15*
228
Глава 4
\JL VJL \'л
а а а
54 43 32
ι а а а
64 53 42 31
-сиэ
Рис. 4.13. ГПС для перемножения двух ленточных матриц.
Утверждение. Все систолические массивы, извлекаемые из
линейных проекций ГЗ, могут быть получены с помощью двух следующих
шагов:
а) отображение ГЗ в ГПС путем процедуры проецирования
(этап 2),
б) отображение ГПС в систолический массив путем
ресинхронизации сечением (этап 3).
Это утверждение устанавливает связь между представленным
методом и непосредственными методами отображения. Чтобы установить
причину подобной связи, отметим, что для данного вектора
проекции единственный аспект, отличающий систолическую структуру от
обычного ГПС-массива, - это более строгий систолический план,
определяемый неравенствами (4.2), а не (4.1). Используем
обозначения ? и ?'для ГПС-плана и систолического плана,
соответственно. Так как ?'- это повернутый вектор ?, существует связь
Систолические матричные процессоры
229
Ь4з
0
0
Ь,2
0
0
ья
0
0
0
0
0
Ьзз
0
0
ь22
0
0
ь„
0
0
Ь34
0
0
Ь23
0
0
Ь,2
0
0
b
0
0
ь
0
0
ь,
0
0
0
аООаООаООО
34 23 12
О О а О О ал О О а О
зз 22 и
О а О О амО О а41 О О
43 32 21
аООаООаООО
S3 42 31
\J
ν
V
—Η
Μ
л)
VY
Η
\j
\]
\j
Η
Vl
l4T
Γ\Γ
Η
Рис. 4.14. Систолический массив для перемножения двух ленточных
матриц.
между вращением вектора плана в ГЗ и ресинхронизацией сечением в
ГПС. Дальнейшее пояснение может быть дано с помощью примера 4 .
Пример 4. Ресинхронизация в систолических массивах для
сортировки
Систолические массивы для различных алгоритмов сортировки
могут быть получены с помощью ресинхронизации сечением,
примененной к различным ГПС-массивам из разд. 3.3 (рис. 3.15). Ре-
В определенных случаях можно выбрать в качестве коэффициента
временного масштабирования рациональное число, чтобы получить
единственную схему ресинхронизации сечением.
230
Глава 4
Рис. 4.15. Гексагональный систолический массив для LU-разложения
(первый вариант).
зультат показан на рис. 4.17. Для сортировок вставкой и выбором
на каждом сечении перемещена только одна задержка. Отметим, что
ГПС-проекция для пузырьковой сортировки непосредственно приводит
к систолическому массиву, и поэтому дальнейшая ресинхронизация
не требуется.
Вращение векторов плана показано на рис. 4.18, где также
показаны план по умолчанию, искомый план (гиперплоскости) и
перемещение задержки на сечениях. Таким образом, установлена связь
между вращением двух векторов плана в ГЗ и ресинхронизацией
сечением в ГПС.
Пример 5. Ресинхронизация в систолических массивах для свертки
Применим процедуру систолизации к двум ГПС-массивам для
свертки (рис.3.50, б и в) На рис. 4.19 показаны два ГПС-массива
для свертки с сечениями. К схеме на рис. 4.19, α применим сначала
Систолические матричные процессоры
231
U42 33
'32 23
Рис. 4.16. Треугольный систолический массив для Ш-разложения
(второй вариант).
D "-" D
Рис. 4.17. Систолические массивы, соответствующие сортировке
вставками (а), выбором (б) и пузырьковой сортировке (в).
232
Глава 4
Требуемый
план
План по
умолчанию
Направление проекции
Рис. 4.18. Гиперплоскости и сечение для сортировки вставками.
У(0)у(1)у(2)у(3)...
• · · u(3)u(2)u(l)u(0)
Di D|
. w(2) w(l) w(0)
• · · У<1)У(0)
Рис. 4.19. ГПС для свертки: первый вариант (а) и второй
вариант (б).
масштабирование задержки на коэффициент 2, т.е. D —> 2D. Затем
в сечениях одна задержка может быть перемещена из ребер в левом
направлении в ребра в правом направлении. Систолизованный ГПС
показан на рис. 4.20,α (для этого массива α = 2). На рис. 4.19,6
перемещения задержки в сечении производятся просто: все ребра
имеют одно направление, и поэтому они в сечении получают одну
дополнительную задержку. Результирующий ГПС-массив представлен
Систолические матричные процессоры
233
у(0)-у(1). ..
""■' *t£wT
... - ц(1) - и(0) -*ЧЛУ *"
^-^ D
*<2)]
. . . w(2) w(l) w(0)
D
>_>*>
2D ^-^
6
D.^
|__^fu(2)J
2D ^^
D
_:<
2D
... y(l)y(0
Рис. 4.20. Систолический массив для свертки: первый вариант (а)
и второй вариант (б).
на рис. 4.20,6. Масштабирование времени здесь не требуется,
поэтому α = 1. Отметим, что те же самые систолические структуры
для обоих массивов могут быть непосредственно получены с
использованием систолического плана ? = [1 2] в ГЗ (рис. 4.21).
Рис. 4.21. Систолический план s = [1 2] в ГЗ алгоритма свертки.
4.3.4. Систолические массивы на разрядном уровне
Обсудим несколько иные возможности отображения. Все
рассмотренные выше ГЗ предполагали работу на уровне слов. Ниже
представлено отображение ГЗ в систолические массивы на разрядном
234
Глава 4
уровне. Систолические массивы на разрядном уровне позволяют
увеличить скорость конвейерной обработки и улучшить использование
возможностей текущего уровня интеграции, доступного в технологии
СБИС [МсСап82, МсСап84, МсСап86]. Массивы на разрядном уровне
могут быть использованы как компоненты или процессорные элементы
при создании систолических массивов, оперирующих словами.
Рассмотрим задачу скалярного произведения двух векторов а и Ь,
каждый длиной п. Возможны два подхода при разработке систолического
массива для решения этой задачи. Один подход - использовать два
уровня конвейеризации [HTKun84], первый из которых означает
конвейеризацию на уровне ПЭ, а второй - на уровне конвейеризации
внутри ПЭ. В этом случае первый уровень предполагает разработку
систолического массива на уровне слов, а второй - конвейерную
поразрядную обработку в каждом ПЭ. Другой подход с самого начала
рассматривает всю задачу на разрядном уровне, т.е. каждый узел в
ГЗ выполняет поразрядные операции, а не операции со словами.
Этот лоследний подход обсудим более подробно.
Скалярное произведение с двух векторов а и b определяется
следующим выражением:
η
с = Σ α.χ b
Пусть элементы векторов а и b - m-разрядные целые числа,
например ak = (akm_y α£ m-2,,,,afeo)* Выражение для /-го
разряда результата с имеет вид
. η т- 1
С: =2' Σ Σ ak bk + переносы.
Одна из возможностей определения разряда с - сначала
суммировать по индексу £, т.е. частичные произведения а, Ь. ._. , а
затем просуммировать их с накоплением по индексу /. При таком
подходе частичные произведения могут быть получены с помощью
следующей рекурсии:
ή-U = ή-U + 2ЧАн + пеРенось>. (4-3)
где с - сумма по k всех частичных произведений,
охватывающих разряды ak и 6fe .
ГЗ, который представляет такую форму вычисления, показан на
рис. 4.22. Этот ГЗ вложен в трехмерное индексное пространство
(i>j,k). Каждая горизонтальная плоскость данного графа представ-
Систолические матричные процессоры
235
Рис. 4.22. ГЗ на разрядном уровне для скалярного произведения
ляет операции над разрядами слов а. и &., что, собственно, и
требуется. Накапливаемые разряды суммы связаны с вертикальным
направлением, так что произведения вида afe bk
накапливаются, как и предусмотрено выражением (4.3). Для того чтобы полу-
чить окончательное значение разряда результата, все частичные
236
Глава 4
произведения должны быть просуммированы. Эта операция
представлена нижней плоскостью в рассматриваемом ГЗ.
Можно проецировать этот ГЗ в нескольких направлениях и
получать различные систолические структуры на разрядном уровне.
Например, если проецировать ГЗ в направлении [110] и выбрать
направление плана [1 1 1]Т то будет получен систолический массив
на разрядном уровне, показанный на рис. 4.23, а. Этот систоличес-
L12 С,
■-,,,, |
/К ЧД ПЬоИаооП Da01 a024,.
/\2 к ь2О0 Π Π D Es
а22
Ma v2i
\С02 СЦ
*\ с
\ 01
ί ··. boo
К
•.bio
V
ь„
,Ь20
ьи*
К
ь22 ч··.
и и в
Рис. 4.23. Систолический массив на разрядном уровне, полученный
с помошью проекции [1 1 0]т (а), систолический массив на
разрядном уровне, полученный с помощью проекции [0 1 0]т (б).
Систолические матричные процессоры
237
кИй массив, в котором разряды а. и Ь. движутся в противоположных
направлениях, совпадает с массивом, предложенным в работе
г^сСап84]. На рисунке не показана линейная схема сумматора для
завершения вычислений в нижней части массива.
Можно также получить систолические массивы, в которых разряды
одного множества слов остаются неподвижными, для чего требуется
проецирование в направлении [0 1 0] (для фиксации разрядов а)
или в направлении [1 0 0]т (для фиксации разрядов Ь). Пример
такой схемы приведен на рис. 4.23,6 и соответствует разработке,
описанной в работе [Urquhar].
4.4. АНАЛИЗ ПРОИЗВОДИТЕЛЬНОСТИ И ОПТИМИЗАЦИЯ СТРУКТУРЫ
Этот раздел посвящен производительности и оптимальности
систолических массивов. Очень трудно определить наиболее
подходящий критерий оптимальности, а оптимизация одного фактора может
оказать влияние на другие факторы. И тем не менее существуют
несколько полезных формул и наблюдений, которые помогают в
поиске оптимальной структуры.
4.4.1. Критерий оптимальности и основные формулы
Существует множество факторов, определяющих критерий
оптимальности при разработке систолических массивов. Окончательный
выбор критериев оптимальности зависит от области применения.
К числу наиболее типичных факторов следует отнести: время
вычислений, конвейерный такт, блочный конвейерный такт, размер
массива, каналы ввода-вывода. Уточним их определения.
Время вычислений Т: интервал времени между началом первого
вычисления и окончанием последнего вычисления для одной решаемой
на процессорном массиве задачи.
Конвейерный такт а: интервал времени между двумя
последовательными вычислениями в процессоре. Другими словами, процессор
занят один из каждых α интервалов времени. (Отметим, что α
является величиной, обратной скорости конвейера.)
Блочный конвейерный такт β: интервал времени между началом
Двух последовательных задач, выполняемых в процессорном массиве.
Размер массива: число процессоров в массиве. Размер массива,
очевидно, определяет базовую стоимость аппаратуры.
Каналы ввода-вывода: число каналов ввода-вывода, связывающих
с внешним миром (основной машиной). Число каналов ввода-вывода
238
Глава 4
непосредственно влияет на стоимость аппаратуры (зависит от числа
выводов кристалла СБИС или шин ввода-вывода на печатной плате).
Иногда представляет интерес комбинация двух или нескольких Из
перечисленных факторов. Например, произведение размера массива
на время вычислений является полезной мерой для оценки
аппаратуры по критерию "стоимость-эффективность". Другой полезный
критерий - использование процессора, которое зависит от
конвейерного такта, блочного конвейерного такта и схем ввода данных. Ниже
приводятся возможные варианты, из которых видно, как в различных
приложениях естественно возникают определяющие критерии
проектирования.
1. Решение одной задачи с конечным потоком данных. В случае
когда ГЗ конечен, время вычислений, возможно, является более
важным критерием, чем конвейерный такт. В работах [Moldo83,
Li85, Wong85, 0'Кее86] показано, как минимизировать время
вычислений на систолическом массиве. Ниже в разделе приводится
простая формула.
2. Решение одной задачи с бесконечным потоком входных данных.
Во многих применениях ЦОС (таких, как фильтрация) длина входных
данных оказывается очень большой или бесконечной, что приводит к
ГЗ "узкой" формы. В этом случае минимизация времени вычислений
эквивалентна минимизации конвейерного такта. Например, в случае
свертки, если входная последовательность является бесконечной,
то конвейерный такт становится определяющим критерием
оптимизации. При малом конвейерном такте мало и время вычислений.
3. Решение множества задач. При обработке на одном и том же
систолическом массиве множества задач следует обратиться к
блочному конвейерному такту β. Если должны быть вычислены Μ задач,
то общее время обработки составляет Μ χ β. Если не учитывать
пэ
Блочный 1
конвейерный такт
-*► Время
Рис. 4.24. Вычисление блочного конвейерного такта по таблице
резервирования.
Систолические матричные процессоры 239
рЛияния на работу систолического массива схемы ввода-вывода, то
точный конвейерный такт вычисляется достаточно просто. Напри-
мер, можно использовать таблицу резервирования, которая для всех
р1Э определяет интервалы времени их занятости при решении одной
задачи. На основе этой таблицы можно вычислить для каждого ПЭ
промежуток времени между последним и первым интервалом
занятости. Теперь легко вычислить блочный конвейерный такт - это
просто наибольший промежуток времени по всем ПЭ массива. Пример
таблицы резервирования показан на рис. 4.24.
Структуры с минимальным временем вычислений
Время вычислений. Назовем вектор плана ? = [srs2,...]T
взаимно простым, если его компоненты являются взаимно простыми
(т.е. наибольший общий делитель всех {s) равен 1). Аналогичное
определение можно применить и к 3. Для данного взаимно простого
вектора плана ? время вычислений в систолическом массиве
определяется [Wong85] по формуле
Τ = max{?T(j£ - ^)} + 1, (4.4)
ρ ,qGL
где L - индексное множество узлов в ГЗ.
Эта формулировка имеет простое объяснение. Поскольку
компоненты вектора ? являются взаимно простыми, ряд временных
интервалов, порожденных точками (β) в индексном пространстве L, ? jJ,
должен быть множеством последовательных целых чисел . Поэтому
время вычислений равно разности между самыми короткими
интервалами в этом ряду.
Минимаксная формулировка. Для вычисления выражения (4.4)
можно использовать метод целочисленного программирования.
Определение плана с минимальным временем вычислений можно представить в
виде минимаксной задачи
mi η max {t (β - ^)} + 1. (4.5)
s ρ , q€L
Строго говоря, это утверждение справедливо только в условиях
предположения о том, что размер индексного пространства больше
размера, определенного взаимно простыми компонентами вектора
плана. Практически это условие всегда выполняется.
240
Глава 4
План ? с минимальным временем вычислений может быть найден путем
решения такой минимаксной задачи. В большинстве случаев можно
также перечислить все допустимые планы и найти среди них план с
минимальным временем вычислений.
Схемы с минимальным конвейерным тактом
В случаях когда входные данные имеют большую длину или
являются бесконечными (что характерно для задач обработки сигналов),
хорошим критерием оптимальности часто является конвейерный такт
а. Для данного систолического плана ? и направления проекции 3
ГЗ в случае их взаимно простой формы конвейерный такт может быть
вычислен по формуле
α = ?т3. (4.6)
Для подтверждения правильности выражения (4.6) укажем, что
конвейерный такт равен времени между двумя последовательными
вычислениями для процессора [Rao85]. Для взаимно простого вектора
проекции 3 и точки ~β в индексном пространстве $ и ρ + 2
представляют индексы двух последовательных узлов, которые
проецируются в один и тот же процессор. Поэтому конвейерный такт α равен
разности времен вычислений для этих двух узлов, т.е.
α = Ψ($ + 3) - Г$ = ?т3. (4.7)
Целочисленное программирование для минимизации а. Определение
вектора плана ?, который при заданном векторе проекции 3
минимизирует значение а, можно сформулировать в виде задачи
целочисленного программирования:
Минимизировать ?т2 (4.8)
при ограничениях
> 0 для любого вектора зависимости ?.
Пример 1. Вычисление Г и а. Рассмотрим ГЗ на рис. 4.25 и
предположим, что вектор плана ? = [2 3]. Тогда время вычислений
Τ для этого вектора плана составит
Τ = rnaxj [2 3]ф - Ь + 1.
Отметим, что, как следует из вида ГЗ, максимальная разность для
любых двух точек есть [44] - [11] = [33]. Поэтому
Систолические матричные процессоры
241
Проекция в направлении [1,0]
Рис. 4.25. Иллюстрация к определению времени вычисления.
Направления проекции не влияют на время вычисления.
Τ = [2 3]
И
+ 1=6 + 9 + 1 = 16.
Если в этом примере любые две точки "β и ^ в ГЗ находятся на двух
последовательных равновременных гиперплоскостях, то
[2 3]0 - ft = 1.
Решение для любого целого k имеет вид φ - <f) = [2 - 1] +
Τ
+k [3 - 2] . Действительно, единственой такой точкой в индексном
τ
пространстве является [4 1], т.е. k = 0.
Если вектор проекции 3 = [1 1]; то конвейерный такт может
быть вычислен по формуле α = [2 3][1 1] = 5. Тогда в
соответствии с условием (4.8) для данного фиксированного направления
проекции может быть найден оптимальный вектор плана ? = [1 1], а
оптимальный конвейерный такт равен 2.
Ниже мы рассмотрим возможности оптимизации Г и α на каждом из
трех уже определенных этапов проектирования.
16-Ю28
242
Глава 4
4.4.2. Оптимизация на этапе разработки ГЗ
Многие правила, потенциально полезные для оптимизации ГЗ
приведены в разделе 4.3. Здесь мы используем только один пример,
чтобы показать, как следует использовать эти правила.
Пример 2. ГЗ и систолические структуры для умножения
ленточной матрицы на вектор. Для нахождения структуры с оптимальным
конвейерным тактом необходимо прежде всего получить хороший ГЗ.
Поясним это на примере умножения ленточной матрицы А размером
NxN и с шириной ленты Ρ на вектор b размером Nxl, т.е.
с = А Ь. Ниже приведен пример для N = 7 и Ρ = 4:
А =
Систолическая схема 1. Для этого алгоритма можно получить,
как указывалось в разделе 3.4, ГЗ, представленный на рис. 4.26,α
(для Ρ = 4). В большинстве применений N » Я, поэтому
использовать для вычисления с = А χ b линейный массив размером N
чрезвычайно непрактично. С целью сокращения размера и получения
массива размером Ρ можно использовать диагональное направление
проекции 3 = [1 1]. Для такого направления проекции вектор плана
?, оптимизирующий конвейерный такт, может быть получен решением
задачи целочисленного программирования (выражение (4.8)):
Минимизировать ? j
?T[J] > 0, f[°] > 0 и Г[{] > 0.
χ χ 0 0 0 0 0 "
χ χ χ 0 0 0 0
χ χ χ χ 0 0 0
0 χ χ χ χ 0 0
0 0 χ χ χ χ 0
0 0 0 χ χ χ χ
0 0 0 0 χ χ χ
b =
χ
χ
χ
χ
χ
χ
χ
с ограничением
Оптимальное решение есть ? = [11] и α = 2. Результирующий
систолический массив , показан на рис. 4.26,6.
Систолическая схема 2. Для увеличения скорости конвейера
необходима модификация ГЗ на рис. 4.11. Отметим, что в ГЗ данные Ь
можно пересылать справа налево, изменив прежнее направление
слева на право. В формулировке с однократным присваиванием это
выглядит так:
b(i - 1,/) <— b(iyj) вместо b(i + 1,/)
Ь(Ц)>
Систолические матричные процессоры
243
Вектор
плана =
Направление
проекции = [11)
ъ&*0 -0 Н&-
Рис. 4.26. ГЗ для умножения ленточной матрицы на вектор (а) и
систолический массив, полученный в результате проекции в
направлении [1 1] (б). Ленточная матрица А вводится сверху в
направлении ленты, вектор b загружается слева и результат с выдается из
левого ПЭ.
Новый ГЗ с измененным направлением движения данных показан на
рис. 4.27, а. Отметим, что ребра зависимости [1 0] в исходном ГЗ
τ
заменены на [-1 0] в новом ГЗ. Изменение допустимо, поскольку
b(i,j) фактически являются распространяемыми данными, и поэтому
неважно, как загружаются одни и те же данные - слева направо или
наоборот.
Столь простая модификация на самом деле приводит к
значительным различиям в величине конвейерного такта. Для вектора
проекции 3 = [1 1] вектор оптимального плана ? может быть теперь
получен с помощью новой формулировки задачи целочисленного
программирования:
Минимизировать ? ϊ
16*
244
Глава 4
Направление оптимального
плана: [-1,2] т
^О- '"О. LO*-b5
а35 -... Е45 ■·.. а55-.
Рис. 4.27. Другой ГЗ для умножения ленточной матрицы на вектор и
равновременные гиперплоскости, соответствующие оптимальному
плану (а) и систолический массив с α = 1 (о). Основное отличие -
вектор b загружается справа.
с ограничением
?t[-J]>o, Щ > о „ ?'[{] > о.
Решение дает вектор оптимального плана ?= [-1 2] (рис. 4.27,а),
а оптимальный конвейерный такт α = 1. (Легко убедиться, что
вектор плана является оптимальным и относительно времени вычислений
Т.) Для полученного цектора плана результирующий систолический
массив показан на рис. 4.27,6. Новая версия обеспечивает
скорость передачи, равную одному данному в единицу времени по
каналу, что вдвое превышает скорость в предшествующей схеме.
Подобные улучшения (т.е. уменьшение α до 1) могут быть выполнены и
для систолической схемы умножения ленточной и заполненной матриц
и гексагонального массива умножения двух ленточных матриц.
Систолические матричные процессоры 245
4.4.3. Оптимизация на этапе разработки ГПС
Обсудим теперь выбор векторов проекции и плана. Как
отмечалось выше, размер массива и структура ввода-вывода
результирующего ГПС зависят от вектора проекции, в то время как другие
факторы, Г, α и β, определяются выбранным вектором плана.
Фиксированное направление проекции. Часто оказывается
желательным проецировать в направлении поступления данных, поскольку
такая проекция с большой вероятностью приводит к минимальным
затратам оборудования. В этом смысле направление проекции почти
фиксировано. Конвейерный такт тогда определяется выбором плана.
В этом случае чем выше скорость конвейера, тем больше утилизация
процессора, и скорее всего общее время вычислений также
уменьшится.
Влияние направления проекции на α и β. Во многих случаях
выбор вектора проекции в значительной мере влияет на достижимые
оптимальные значения α и β. В разд. 4.5 мы рассмотрим такое
влияние на примере систолической схемы для решения задачи о
транзитивном замыкании.
Отсутствие влияния направления проекции на величину Г.
Отметим, что время вычислений не зависит от выбранного вектора
проекции. Это можно проиллюстрировать примером умножения матрицы на
вектор АЬ = с. ГЗ и направление плана $mjn = [1 1] с минимальным
временем вычислений, полученным при решении минимаксной
задачи (4.5), показаны на рис. 4.25. Отметим, что схема, соот-
т
ветствующая проекции в направлении [1 0], имеет 4 ПЭ и α = 1, в
то время как схема, соответствующая проекции в направлении
[1 1]т, имеет 7 ПЭ и α = 2. Однако обе схемы дают одинаковое
время вычислений. Обычно направление проекции может быть выбрано
с учетом минимизации размера массива или конвейерного такта.
4.4.4. Оптимизация на этапе систолизации
Как уже говорилось в разд. 4.3, систолизация сечением может
быть использована для преобразования ГПС в систолический массив.
Здесь будут рассмотрены вопросы минимизации конвейерного такта и
общего числа задержек в систолическом массиве. Рассмотрим
также, как может быть использована многоскоростная систолическая
схема для достижения почти оптимального значения конвейерного
такта.
246
Глава 4
Процедура систолизации для достижения оптимальной скорости
конвейера
Мы утверждаем, что массив поддерживает линейную скорость
конвейера, если и только если а остается постоянным относительно М,
где Μ - число ПЭ. Ясно, что если общий коэффициент временного
масштабирования есть α (т.е. D = aD ), то скорость ввода данных
уменьшается в α раз. Соответственно в среднем только один из α
ПЭ может быть активным. Это означает, что возможное ускорение
обработки падает с величины Μ до α" М. (Если а остается
постоянным относительно Af, то массив обеспечивает линейное ускорение.)
Поэтому минимальное значение α крайне желательно.
Время цикла и конвейерный такт. Минимальный конвейерный такт
(коэффициент масштабирования) α ГПС определяется временем цикла
и общим числом задержек в цикле. Лучше всего это объяснить на
примере. Систолизуем ГПС, состоящий из 5 узлов в цикле
(рис. 4.28, а). Прежде всего укажем, что минимальное время для
прохождения данных по циклу равно 5, так как цикл содержит 5
узлов и каждый узел (и ребро) требует 1 единицы времени для
вычислений и передачи данных. Данные х^ (т.е. данные х. после
обхода цикла) должны встретиться с входными данными х„ во входном
узле, так как в ГПС имеются две задержки, которые разделяют
рекурсии. Предположим, что данные поступают в ГПС конвейерно с
тактом а. Это требование может быть записано в виде 2а £ 5 или
(общая задержка в цикле) χα ^ общее число узлов в цикле.
В этом примере минимальное целое число, удовлетворяющее
неравенству, равно 3; это и есть оптимальное значение конвейерного
такта ГПС. Систолизованный ГПС с оптимальным значением α показан
на рис. 4.28,6. Отметим, что в систолический массив (рис,4.28,в)
введена дополнительная чистая задержка для того, чтобы обеспе-
-л\ ~/\ ν\ _х>
у У у у
а бег
Рис. 4.28. Систолизованные ГПС с оптимальным и неоптимальным
значениями а. а - ГПС с 5 узлами; б - систолизованный ГПС с
оптимальным значением α = 3; в - систолический массив с
оптимальным значением а, где большие квадраты обозначают процессоры с
единичным временем обработки, а малые квадраты на ребре - чистую
задержку D\ г - систолизованный массив с α = 4.
Систолические матричные процессоры 247
чить корректную последовательность вычислений. Ясно, что
введение дополнительных чистых задержек увеличивает стоимость
оборудования. Поэтому желательно минимизировать число чистых задержек
в систолическом массиве.
Если масштабировать время произвольно, то α может оказаться
неоправданно большим. Например, систолический массив на
рис. 4.28, г получен систолизацией массива рис. 4.28, а, однако
α = 4 для этого массива не является оптимальным.
Обобщая результат этого примера, легко установить, что каждый
цикл С в ГПС будет определять свой минимальный конвейерный такт,
т.е.
С \DC\
где Тс - общее число узлов в цикле С, Dc - общее число задержек
в С и [х] - наименьшее целое число, большее или равное х.
Тогда оптимальный конвейерный такт всего ГПС
α = max{occ}. (4.9)
Таким образом, общий систолический массив оказывается
синхронизован самым медленным циклом в графе. Так как все циклы должны
удовлетворять конвейерным ограничениям, α из выражения (4.9)
является наименьшим числом, которое может удовлетворить
требования для всех циклов.
Оптимальное значение α в процедуре систолизации. До сих пор
мы использовали теорему 4.1, которая устанавливает временную
локализуемость ГПС. Теперь обратимся к процедуре сечением с
оптимальным α [Kung84b].
Для обеспечения оптимальности процедуры сечением единственная
требуемая модификация заключается в ограничении применения
операции перемещения задержки классом хороших сечений, к которым
относятся так называемые сечения без перемасштабирования
(БПМ-сечения). БПМ-сечение определяется как сечение, в котором
все ребра с направлением, противоположным целевому ребру, имеют
по меньшей мере две (а не одну) задержки. Поэтому оптимальная
процедура сечения может рассматриваться как простая модификация
правил систолизации сечением.
Теорема 4.2. Процедура систолизации сечением достаточна для
преобразования ГПС в систолический массив с оптимальной
производительностью (т.е. с минимальным значением а), если она
состоит в выполнении следующих двух правил.
248
Глава 4
1. Перемещение задержки. Определив соответствующее БПМ-
сечение, применить операцию перемещения задержки по сечению и
локализовать целевое ребро (ребра). Никакое дополнительное
масштабирование времени не требуется.
2. Масштабирование времени. Если не существует БПМ-сечений,
это означает, что текущая скорость слишком большая, и ее надо
уменьшить. Поэтому производятся единичные приращения к значению
α до тех пор, пока не будет найдено БПМ-сечение.
Доказательство. Необходимо показать, что если БПМ-сечения не
существуют, то требуется приращение коэффициента
масштабирования. Предположим, что для данного целевого ребра не существуют
БПМ-сечения. В соответствии с леммой об окрашенной дуге,
существует цикл, который содержит целевое ребро (с нулевой задержкой)
и другие ребра с нулевой или единичной задержкой. Предположим,
что время вычислений в узлах одинаково и равно одной единице
времени. Тогда завершение вычислений по циклу (так, чтобы результат
был доступен для следующей операции в начальном узле) займет
столько времени, сколько ребер содержит цикл. Это означает, что
текущее назначение задержки будет уменьшено, по крайней мере, на
одну единицу времени (потому, что целевое ребро имеет нулевую
задержку). Поэтому необходимо временное перемасштабирование.
С другой стороны, соответствующее временное
перемасштабирование может, конечно, решить проблему синхронизации цикла. Вновь
используем лемму об окрашенной дуге: если не существует более
плохих циклов, содержащих целевое ребро, то должно существовать
БПМ-сечение и, следовательно, может быть применено правило 1 о
перемещении задержки.
Алгоритм сечения с оптимальным значением а. Теорема 4.2
предполагает, что алгоритм должен найти БПМ-сечение. Если такого
сечения не существует, должен быть идентифицирован цикл,
содержащий целевое ребро. Начиная с целевого ребра, переопределим
понятие плохого предшествующего ребра. Будем теперь называть
плохими предшествующими ребрами ребра с одной или нулевой
задержкой (в прежнем определении это были только ребра с нулевой
задержкой). БПМ-сечения не должны содержать ни одного плохого
ребра, поэтому в процедуре поиска БПМ-сечения плохие ребра должны
быть сгруппированы и исключены. Более конкретно, введем понятие
суперузла, охватывающего в кластер плохие предшествующие ребра и
связанные с ними узлы. Пример суперузла показан на рис. 4.29,а.
Ясно, что БПМ-сечения не должны пересекать суперузловой кластер.
Систолические матричные процессоры
249
Рис. 4.29. Иллюстрация локализации сечением с оптимальным
значением а. а - пример суперузла (отмечен жирной линией); б - цикл
найден (отмечен жирными дугами); в - найдено БПМ-сечение
(отмечено штрихами).
Суперузел образуется с помощью следующей процедуры поиска.
Начиная с целевого ребра, суперузел продолжает расширяться
путем просмотра всех плохих предшествующих ребер (ср. рис. 4.7)
до тех пор, пока не возникнет одна из следующих ситуаций:
1) суперузел окружен только приемлемыми ребрами;
2) суперузловой кластер сформирован и содержит конечную
вершину целевого ребра.
В первой ситуации ребра, окружающие суперузел, образуют БПМ-
сечение. В этом случае для систолизации целевого ребра может
быть использовано соответствующее перемещение задержки. Во вто- ·
рой ситуации найден цикл, содержащий только плохие ребра и
целевое ребро, и может быть выполнено соответствующее
перемасштабирование времени. После этого процедура поиска БПМ-сечения для
того же целевого ребра возобновляется.
Описанная процедура повторяется до тех пор, пока не останется
целевых ребер. На рис. 4.29,6, соответствующем второй ситуации,
показан цикл, которым может завершиться процедура поиска. С
другой стороны, в ситуации 1 возможный суперузел (и БПМ-сечение)
будет соответствовать кластеру, окруженному сечением, показанным
штриховой линией на рис. 4.29,е.
Рассмотренные выше правила являются основой для процедуры
сечения с оптимальным значением а. Благодаря простоте алгоритм
250
Глава 4
может оказаться предпочтительным, когда сеть или циклы в сети
имеют небольшой размер. Эффективность алгоритма определяется
тем, что α вычисляется в соответствии с распределением задержек
по циклу (вместо последовательного приращения на единицу). Дру-
гое возможное улучшение состоит в локализации потенциальных
целевых ребер в самом суперузле в дополнение к окружающим его
ребрам. Этот метод, простой для понимания, необязательно
оказывается эффективным. I
Процедура минимизации числа элементов задержки [Leis83a]
Рассмотрим пример, иллюстрирующий неоднозначность общего
числа задержек в систолическом массиве. На рис. 4.30, α представлен
ГПС, состоящий из трех узлов. Для систолизации этого ГПС
требуется коэффициент масштабирования, равный 2; результат показан на
рис. 4.30,6. На рис. 4.30,β и г показаны варианты перемещения
задержки при сечении. Оба систолических массива имеют одно и то
же значение α = 2. Заметим, однако, что общее число задержек на
рис. 4.30, β на единицу больше, чем общее число задержек на
рис. 4.30,г.
Как уже говорилось, желательно минимизировать стоимость
аппаратуры, используя минимальное число задержек в систолическом
массиве при сохранении оптимального значения а. Рассмотрим
процедуру оптимизации общего числа задержек в систолическом массиве.
V5\
\р И VD
Рис. 4.30. Простой пример назначения задержек, а - ГПС с тремя
узлами; б - масштабирование задержек (а = 2); в и г - два
систолических массива с оптимальным а.
Систолические матричные процессоры 251_
Рис. 4.31. Передача задержек через узлы с r(i/)=2 (α) и изменение
задержек на ребре е от узла ν к узлу и (б).
В работе [Leis83a] предложена распространенная схема систоли-
зации (или ресинхронизации синхронной схемы в терминах работы
[Leis83a]), которая основана на перемещении задержки через
узлы .
Пример такого перемещения задержки показан на рис. 4.31, а,
где две задержки перемещены из входящих ребер узла ν в
выходящие. Очевидно, можно определить любое число перемещений задержки
между множеством входящих ребер и множеством выходящих ребер
узла, поскольку они пересекают сечение узла в противоположных
направлениях. Поэтому перемещения задержки по всему ГПС могут
быть определены как целочисленная функция г от множества узлов
ГПС. Функция г узла ν> обозначаемая r(v), указывает, что г
задержек исключаются из входящих ребер узла ν и r(v) задержек
добавляются в выходящие ребра узла υ. Например, для узла υ на
рис. 4.31,α r(v) = 2.
Если определить две функции D и Dn для всех ребер графа, где
0(e) обозначает число задержек на ребре е до перемещения
задержки и D (е) обозначает число задержек на ребре е после
перемещения задержки, то для ребра е из узла ν к узлу и D (е) связана с
0(e) следующим образом (рис. 4.31,6):
Эквивалентность перемещения задержки через узлы и перемещения
задержки при сечении в процедуре систолизации рассматривается в
задаче 11 в конце главы.
252
Глава 4
Dn(e) = D(e) + r(v) - r(u). (Щ
Требование систолической системы означает, что &п(е) - 1 для
всех ребер е в ГПС. Общее число задержек может быть записан но в
виде
5(г) = Σ Dn(e) = Σ [D(e) + г(о) - г(а)] =
ееЕ п е€Е
= К + Σ r(i/)[outdeg(i/) - indeg(t/)], <4л1)
v€V
где indeg(t/) и outdeg(u) обозначают число входящих и выходящих
ребер для узла ν соответственно, а К константа, не зависящая от
r(v). Тогда задача минимизации S(r) может быть сформулирована
следующим образом:
Минимизировать Σ r(v)[outaeg(v) - indeg(u)] (4.12)
v€V
при ограничениях
r(u) - r{v) * D(e) - 1.
Сформулированная таким образом задача оптимизации является
задачей линейного программирования, двойственной задаче о потоке
минимальной стоимости и решаемой за полиномиальное время.
Соотношение между минимальным конвейерным тактом и минимальным
числом элементов задержки
Два фактора оптимизации при ресинхронизации сечением для ГПС
- конвейерный такт и общее число элементов задержки - не могут
быть минимизированы одновременно. Соотношение между этими двумя
оптимизируемыми функциями дложно быть тщательно оценено. Сделаем
это на примере линейного фазового фильтра.
Как отмечалось в разд. 2.3.5, линейный фазовый фильтр
используют часто благодаря его свойству сохранения линейной фазы. На
рис. 4.32, α представлен ГПС для линейного фазового фильтра. В
этом ГПС узлы содержат сумматоры или выполняют операцию
"умножение с накоплением". Поскольку ГПС не содержит циклов, можно
применить процедуру сечения для получения минимального значения
конвейерного такта α = 1. Использованные сечения и
результирующий систолический массив показаны на рис. 4.32,6. Отметим,
что число задержек, соответствующих 1-му, 2-му,..., N-му
каскадам, равны (N)D, (Ν - 1)Д...,1£>. Таким образом, общее числе
Систолические матричные процессоры 253
Детализация описания
Рис. 4.32. Линейный фазовый фильтр (а), систолический массив с
минимальным α (б) и систолический массив с минимальным общим
числом элементов задержки (в).
элементов задержки в этом массиве составляет 0(Ν ), что,
конечно, неприемлемо. Однако можно показать (Задача 9), что не
существует сечений, которые приводили бы к минимальному значению α
при меньшем (по порядку) числе задержек.
Можно реализовать систолическую схему с 0(Ν) элементами
задержки ценой уменьшения скорости конвейера. Такой систолический
массив и соответствующие сечения показаны на рис. 4.32, е.
Отметим, что в новом массиве с 0(Ν) элементами задержки скорость
конвейера уменьшилась в два раза, т.е. α = 2. Это показывает,
что в общем случае конвейерный такт α и число элементов задержки
не могут быть оптимизированы одновременно. Соотношение между
скоростью и затратами аппаратуры зависит от требований
разработки. Например, использование конвейера с чередованием (который
будет рассмотрен ниже в этой главе) может привести для второго
варианта схемы к удвоению степени использования процессоров.
254
Глава 4
Многоскоростная систолическая схема
В систолическом массиве времена передачи и обработки для
различных операций могут иметь большой разброс. В результате в
качестве глобального такта времени выбирается максимальное из этих
значений времени. Ясно, что подобное нежелательно, поскольку мы
стремимся к максимуму производительности. Одно из решений
состоит в допущении выполнения различных операций в массиве с
различной тактовой частотой. Такой тип систолического массива назван
многоскоростным.
Пример 4. Многоскоростной систолический массив для линейного
фазового фильтра. При рассмотрении систолического массива для
линейного фазового фильтра существовала дилемма, связанная с
невозможностью одновременной минимизации α и общего числа
элементов задержки. Однако в случае многоскоростного систолического
массива эта задача разрешима. Прежде всего отметим, что данные,
двигающиеся слева направо или справа налево в верхней части ГПС
(рис. 4.32,а), не изменяют значения, т.е. это пересылаемые
данные. Поэтому необязательно определять время, необходимое для
передачи этих данных, равным времени умножения или сложения.
Обозначим Δ - время передачи пересылаемых данных и Τ - время
выполнения умножения с накоплением или сложения плюс время на
пересылку данных. Будем предполагать, что Τ » Δ. Если заменить
задержку D на рис. 4.32,α величиной Δ + Τ (рис. 4.33,α), то это
эквивалентно операции масштабирования. Переместим теперь
задержку Г в ребра с нижним направлением для горизонтального сечения
(рис. 4.33, а). Результирующий ГПС-массив на рис. 4.33,6
представляет многоскоростной систолический массив. Для
окончательного вида многоскоростного массива можно объединить задержки с
узлами для образования базовых модулей (рис. 4.33,6).
Результирующий многоскоростной систолический массив показан на
рис. 4.33, е. Отметим, что чистая задержка 2Т (изображенная
маленькими квадратами) на верхних ребрах с левым направлением
необходима для обеспечения корректной синхронизации.
Конвейерный такт этого многоскоростного систолического
массива равен Δ + Т. Если длительность такта в исходной односкорост-
ной систолической схеме линейного фазового фильтра равна Г, то
для многоскоростного систолического массива α = ' ί ' « 1.
При этом общее число элементов задержки в массиве остается 0(Ν).
Этот пример показывает, что, используя многоскоростной
систолический массив для линейного фазового фильтра, можно достичь
Систолические матричные процессоры
255
"*( ) ί"*( ] Г*[ ) Г*[ )"*" Детализация описа
Δ-ΗΤ ν*7Δ+Τ V7A4T
СЖХ.
Ι 2T
v
®
~
'
'
φ
V
►
•ΗΊ-
2T
'
•
о
vr
μ
^·
2T
'
'
IP*
<Γ
J
-«
Рис. 4.33. Временное масштабирование D —> Δ + Τ и сечения (а),
результат передачи задержки сечения и объединение задержек с
узлами для образования модулей (б) и многоскоростной
систолический массив для линейного фазового фильтра (в).
почти минимального значения конвейерного такта и минимального
числа элементов задержки. В разд. 5.2 мы покажем, что волновой
массив для линейного фазового фильтра сохраняет этот результат,
так как волновой массив представляет собой версию
многоскоростного систолического массива.
Обращение направления ребер ГПС для оптимальной структуры.
Отметим, что в рассмотренном выше примере связь между
минимальным значением α и минимальным числом элементов задержки
рассматривалась для фиксированного ГПС Однако задача,
рассмотренная для линейного фазового фильтра, может быть решена и с
помощью модификации ГПС (или эквивалентно ГЗ). Иллюстрация
представлена рис. 4.34.
Прежде всего отметим, что верхние ребра с правым направлением
на рис. 4.32,α переносят одни и те же данные, т.е. эти ребра
образуют шину распространения. Поэтому можно изменить
направление этих ребер и пересылать данные справа налево, поскольку
направление распространения не влияет на вычисления. Этот модифи-
256
Глава 4
—V'SD4^~~3D 4X~-3DN^~ °
8Ы»
2DV*V 2D
2DV
Детализация описания
\
W
\
-Ф-
Рис. 4.34. Обращение направления распространения в ГПС линейного
фазового фильтра с указанием сечений (а) и систолический массив
с α = 1 и Ο(Ν) задержками для линейного фазового фильтра (б).
цированный ГПС показан на рис. 4.34, а. Теперь в модифицированном
ГПС циклы отсутствуют. Перемещая одну задержку по сечениям,
показанным на рис. 4.34, а, получил систолизованный ГПС с α = 1 и
общим числом элементов задержки 0(Ν) (рис. 4.34,6).
Из сказанного можно понять, что получение оптимальной
систолической структуры связано со всеми тремя этапами
проектирования. Этот вопрос еще раз рассматривается в разд. 4.5.
4.4.5. Повышение эффективности использования ПЭ
При рассмотрении различных систолических массивов можно было
заметить, что конвейерный такт обычно имеет значения 1, 2 или
3. Когда для разрабатываемого систолического массива α > 1,
скорость поступления входных данных падает в α раз, и поэтому
использование массива составляет всего 1/а. В общем случае имеются
два пути повышения эффективности использования процессоров -
конвейер с чередованием и разделение процессора. Другая причина
неэффективного использования ПЭ состоит в различных затратах
Систолические матричные процессоры 257
времени на выполнение разных операций. Кроме того, используя
многоскоростные систолические массивы, мы показали возможность
уравнивания времен выполнения разных операций за счет усложне-
нйя аппаратуры, выполняющей "длинные" операции.
Конвейер с чередованием в систолических массивах
Если конвейерный такт систолического массива α > 1, то каждый
ПЭ в массиве выполняет одно полезное вычисление каждые α
временных шагов. Можно разбить общую временную диаграмму
систолического массива на α эквивалентных классов по модулю а, т.е. время
/ находится в одном и том же классе с временем /«, если
(/ - /Jrnod а = 0. Поскольку конвейерный такт систолического
массива равен а, то вычисления в каждом из α временных классов
являются независимыми друг от друга. Следовательно,
систолический массив может вычислять α независимых задач в каждый из α
временных классов, чередуя α независимых данных и конвейеризуя
их в массиве [Leise81]. При таком подходе использование ПЭ
становится максимальным (100%). Примером конвейера с чередованием
служит свертка двух входных последовательностей х(п) и р(п) с
окном w(n) на рис. 4.35.
Рис. 4.35. Конвейер с чередованием для свертки двух входных
последовательностей. Отметим, что y=x*vviO = p*O.
Разделение процессора в систолических массивах
В общем случае можно улучшить степень использования
процессоров в систолическом массиве в α раз, где α - конвейерный такт.
Схема соответствующей модификации довольно проста, если
вспомнить, что данные оказываются доступными с интервалом в α единиц
времени и в каждый момент времени будет активным только один из
α последовательных процессорных модулей. Поэтому группа из α
последовательных ПЭ может разделять общее арифметическое
устройство без влияния на производительность [Kung84a]. Рассмотрим
пример. Анализируя кадры работы систолического массива
Х-образного фильтра (схема типа В) на рис. 4.36, можно заметить,
17—1028
258
Глава 4
~γγΞ"
рЕ^тэ
mJ;:
н xk-i г^тнг
г^::
*·| ι
ггтЛ
[} >гт7т|л:: uttttj/_: · 17tt-j.:.,|
Ч-п^Кг}-
rQ~i-
Yi+1 Г^ ■
1 ' '—:—
IE
Д k
теЬГнгЦрЦ
=t3
itE
r*H k'2
я
"tTq]
№
Η kl
g
ΤΠΞΒ
ΰ
Рис. 4.36. Объединение трех ПЭ в макропроцессорный элемент в
режиме разделения времени для систолического массива Х-образного
фильтра (типа Б).
что в каждый момент времени во всех трех ПЭ активным является
только один верхний модуль умнЬжения с накоплением, и то же
верно для аналогичного нижнего модуля. Поэтому, как показано на
рис. 4.36, три ПЭ могут быть объединены в один (макро) ПЭ и
разделять два общих модуля умножения с накоплением (один верхний и
один нижний). Для управления планированием ресурсов может быть
предложен специализированный кольцевой регистр с периодом,
равным а. Формальное математическое описание приведено в разд. 6.4.
Требование одинаковых времен обработки для ПЭ
Выше говорилось, что односкоростной систолический массив не
может быть эффективным, поскольку различные операции требуют для
завершения различного времени, и что для повышения α может быть
использован многоскоростной систолический массив. С другой
стороны, скорость обработки в критических ПЭ (как правило,
граничных ПЭ), часто определяет общее быстродействие. Поэтому
усложнение аппаратуры с целью выравнивания времен работы всех ПЭ в
массиве должно затрагивать именно такие критические ПЭ. Например, в
QR-разложении (разд. 3.4) узким местом в вычислениях оказываются
ПЭ, выполняющие вращение Гивенса. Поэтому для ускорения выполне-
Систолические матричные процессоры 259
нИя вращения Гивенса требуются или быстродействующее устройство
и3влечения квадратного корня или использование алгоритма, не
требующего операций извлечения квадратного корня.
4.5. СИСТОЛИЧЕСКИЕ МАССИВЫ ДЛЯ РЕШЕНИЯ ЗАДАЧ О
ТРАНЗИТИВНОМ ЗАМЫКАНИИ И ЗАДАЧ ДИНАМИЧЕСКОГО
ПРОГРАММИРОВАНИЯ
4.5.1. Метод динамического программирования
Динамическое программирование является эффективным
рекурсивным подходом к решению задач, сравнимым по своей значимости с
методом математической индукции для доказательства теорем. Это
общий метод, применимый во многих ситуациях. Динамическое
программирование является по существу "восходящей" процедурой, в
которой вначале ищутся решения всех подзадач, а затем полученные
результаты используются для решения задачи в целом. Вычисление
делится на этапы, протекающие от малых подзадач к большим.
Промежуточные результаты запоминаются и используются на последующих
этапах. Достоинство метода состоит в том, что для однажды
решенной подзадачи результат запоминается и повторно не вычисляется.
В этом его отличие от "нисходящих" методов типа "разделяй и
властвуй", в которых одни и те же подзадачи могут повторно
решаться в различных частях задачи.
Методы динамического программирования широко используются при
решении оптимизационных задач, в которых должна быть
минимизирована или максимизирована целевая функция в условиях множества
ограничений. Динамическое программирование обычно применимо к
задачам этого класса, если они используют принцип оптимальности.
Проще говоря, общее оптимальное решение может быть
декомпозировано на рекурсивно достижимые оптимальные решения для набора
связанных подзадач. Основной принцип динамического
программирования заключается в следующем [Gondr84].
1. Задача вложима в семейство задач той же природы.
2. Оптимальные решения задач связаны отношением рекурсии.
Ряд алгоритмов, рассматриваемых в этой книге, используют
методы динамического программирования. В алгоритме Флойда решения
задачи о кратчайшем пути решения находятся, начиная с прямых
связей без использования промежуточных узлов (другими словами,
начальное множество допустимых промежуточных узлов является
пустым). Затем узлы начинают последовательно добавляться в
множество допустимых промежуточных узлов. На каждом этапе вычисля-
17*
260
Глава 4
ются кратчайшие пути, использующие множество допустимых промежу^
точных узлов. Окончательный результат достигается, когда ВСе
узлы добавлены к множеству. Другим примером являются алгоритмы
динамического изменения масштаба времени (разд. 8.5). Они
соответствуют задаче нахождения кратчайших путей из одного
источника [Hu82, Aho74].
4.5.2. Оптимальная систолическая структура для решения задач о
транзитивном замыкании и о кратчайшем пути
Ниже мы рассмотрим очень важный тип задач динамического
программирования - задачи о кратчайшем пути (в разд. 4.5.3 будут
рассмотрены алгебраические задачи нахождения путей). Наиболее
известными задачами в этом классе являются задачи о транзитивном
замыкании и о кратчайшем пути в теории графов, исключение Гаус-
са-Жордана в линейной алгебре. Вначале будут представлены
структуры систолических массивов, включая оптимальные относительно
конвейерного и блочного конвейерного такта для задачи о
транзитивном замыкании, а затем будут рассмотрены и другие задачи
этого класса.
Задача о транзитивном замыкании. Ориентированный граф G может
быть представлен как G(VyE), где V - множество вершин и Ε -
множество ребер в графе. Граф G+(V,E+), имеющий то же множество
вершин У, что и С, но в котором ребро из вершины ν к вершине w
существует тогда и только тогда, когда имеется путь (длины 0 или
более) из υ к w в графе G, называется рефлексивным и
транзитивным замыканием графа G, или просто транзитивным замыканием G
[АП074]1.
Для данного ориентированного графа (рис. 4.37), его матрица
смежности А имеет а..- 1, если существует ребро из вершины i к
вершине у или i = /, и а..= 0 в противоположном случае. Задача о
транзитивном замыкании заключается в вычислении матрицы
транзитивного замыкания А+, элементы которой а+.= 1, если существует
путь ν длиной 0 или более из вершины i к вершине /; в остальных
случаях а* = 0.
Отношение R называется рефлексивным, если aRa для каждого а в
V. Отношение R называется транзитивным, когда из aRb и bRc
следует aRc [Оге62].
Систолические матричные процессоры
261
1
1
1
1
1
0
0
1
1
1
1
0
0
0
1
0
1
0
0
0
1
1
1
0
0
0
0
0
1
0
1
1
1
1
1
1
Рис. 4.37. Пример задачи о транзитивном замыкании, а -
ориентированный граф; о - матрица смежности А ориентированного графа;
в - матрица транзитивного замыкания А+.
Задача о кратчайшем пути. Задача о кратчайшем пути для
ориентированного графа состоит в определении длин кратчайших путей
между всеми парами узлов в графе. Например, на рис. 4.38
представлен граф с шестью узлами, для которого элементы матрицы
расстояний А определяются следующим образом:
1. а - расстояние от вершины / до вершины /, если существует
ребро из / к /'.
2. а = со, если не существует ребра, связывающего i и /.
3. а = 0, если / = /.
Задача о кратчайшем пути заключается в вычислении матрицы А+
кратчайших путей, элемент которой at. есть длина кратчайшего
"ути из вершины i к вершине /.
Алгоритм Уошэлла - Флойда
Для данной входной матрицы А хорошо известен последовательный
алгоритм Уошэлла - Флойда нахождения матрицы А+ графа [Aho74].
А =
1 О О О О Г
110 0 0 0
0 0 110 0
0 10 10 0
0 0 10 10
0 0 0 0 0 1
л+ =
262 Глава 4
О б 10 8 32 24
оо 0 4 31 26 18
оо 35 0 27 22 14
оо 8 7 0 29 21
оо 13 12 5 0 26
оо 21 20 13 8 О
Рис. 4.38. Пример задачи о поиске кратчайшего пути, а -
ориентированный граф; о - матрица расстояний А ориентированного графа и
в - матрица кратчайшего пути А+.
For k from 1 to Ν
For i from 1 to iV
For / from 1 to N
Ц π «* */ .
где начальная матрица - X равна А, а выходная (А+) равна X .
Этот алгоритм решает обе задачи - о транзитивном замыкании и
кратчайшем пути. Различие между ними определяется следующим
образом:
1. Для задачи о транзитивном замыкании входная матрица А
является матрицей смежности. Операция + - булева операция ИЛИ,
операция χ - булева операция И. Выходная матрица А+ является
матрицей транзитивного замыкания.
2. Для задачи о кратчайшем пути входная матрица А является
матрицей расстояний. Операция + - это операция определения
минимального элемента, операция χ - операция сложения. Выходная
матрица А+ является матрицей кратчайших путей.
0
оо
оо
оо
оо
оо
6
0
оо
8
оо
оо
оо
4
0
7
оо
оо
8
оо
оо
0
5
00
оо
оо
оо
оо
0
8
оо
00
14
00
оо
0
Систолические матричные процессоры 263
Задачи о транзитивном замыкании и кратчайшем пути на самом
деле принадлежат более общему классу задач - алгебраической
задаче нахождения путей (A3), в который входит и процедура
исключения Гаусса - Жордана для обращения матриц. Определение задачи
дЗ, примеры и алгоритм решения представлены ниже.
формулировка в терминах динамического программирования. Алгоритм
уошэлла - Флойда основан на идеях динамического
программирования. Для пояснения остановимся на алгоритме Уошэлла для задачи о
транзитивном замыкании. Прежде всего отметим, что вычисление а+
укладывается в последовательность следующих N задач. Вначале
определяется, существуют ли пути длиной 0 или более из вершины
/ к вершине / с промежуточными узлами, индексы которых меньше
или равны ky 1 ^ k £ N. Далее, если χ - значение матрицы
транзитивного замыкания для k-и подзадачи, то это значение
непосредственно связано со значением для (k - 1)-й подзадачи следующим
выражением:
yfs· . V ~ 4- V V Υ ~
if 1} ik я/,
которое, собственно, и является формулировкой алгоритма Уошэлла
в терминах динамического программирования.
Кадры. Для иллюстрации алгоритма Уошэлла - Флойда обратимся
прежде всего к кадрам рекурсии матрицы X. Вначале предполагается,
что входная матрица А = X распределена по квадратной матрице
размером Ν χ N. Для задачи о транзитивном замыкании граф и его
матрица смежности А показаны на рис. 4.37. Кадры реализации
алгоритма Уошэлла для нахождения транзитивного замыкания этого
графа показаны на рис. 4.39. Кадры для реализации алгоритма
Флойда решения задачи о кратчайшем пути, представленной на
рис. 4.38, показаны на рис. 4.40. Отметим, что на k-м шаге
рекурсии данные fc-го столбца и k-ft строки, отмеченные на обоих
рисунках штриховыми линиями, используются при вычислении всех
элементов матрицы.
Граф зависимости. Ниже мы получим систолические массивы для
алгоритма Уошэлла - Флойда в контексте только задачи о
транзитивном замыкании. Читатель должен понимать, что результаты
непосредственно применимы и к задаче о кратчайшем пути.
Последовательный алгоритм Уошэлла-Флойда легко может быть
преобразован в форму с однократным присваиванием путем введения
итерации размерностью k:
264
Глава 4
Ж
ш
pV4v
шш
ьщ
к = 2
ш
т&ч
к = 3
к = 4
Шь
ШП'
ш
к = 5
к = б
Рис. 4.39. Кадры реализации алгоритма Уошэлла. Пустая клетка
(/,/') означает, что между узлами i и / нет связи. Узел, имеющий
связь до текущего шага рекурсии, представлен заштрихованной
клеткой, а узел, который получает связь на текущем шаге
рекурсии, представлен "шахматной" клеткой.
ύ-
X
X
*
X
*
-6-
0
X
8
X
X
χ-
4
0
7
χ
χ
«-
χ
χ
0
5
χ
-χ
χ
χ
χ
0
8
Χ"
χ
14
χ
χ
χ
0
"Χ"
χ
χ
χ
χ
6
-ί)
χ
8
χ
χ
10
4-
0
7
χ
χ
8
Χ"
χ
0
5
χ
χ
χ
χ
χ
0
8
χ
χ-
14
χ
χ
0
0
χ
-χ-
X
χ
χ
6
0
χ
8
χ
χ
10
4'
Q-
7
ϊ
χ
8
χ
'Χ
0
5
χ
χ
χ
χ
χ
0
8
24
18
14-
21
χ
0
k= 1
0
χ
χ
-χ
χ
χ
6
0
χ
8-
13
χ
10
4
0
-7-
12
χ
8
χ
χ
0
5
χ
χ
χ
χ
χ-
0
8
24
18
14
21
26
0
0
χ
χ
χ
• χ -
χ
6
0
χ
8
№
21
10
4
0
7
12
20
8
χ
χ
0
5-
13
*
χ
χ
*
d-
8
24
18
14
21
26
0
0
χ
χ
χ
χ
χ-
6
0
35
8
13
21
10
4
0
7
12
20
8
31
27
0
5
13-
32
26
22
29
0
*-
24
18
14
21
26
<Γ
Рис. 4.40. Кадры реализации алгоритма Флойда для поиска
кратчайшего пути. Метка х" указывает, что пути не существует.
Систолические матричные процессоры
265
*(/./.*)
For i,/,fc from 1 to Ν
x(i,j,k - 1) + *(/,Μ - 1) x x(k,jyk - 1).
Эти зависимости могут быть локализованы с помощью введения
распространяемых переменных для строчной переменной г и
столбцовой переменной с на каждом уровне k:
For i,j,k from 1 to i\f
k
c(ij,k)
*(*»/.« ) it / - к # распределение столбца k
c(ij + \tk) if / < k
[ ф\/- 1,*) if / > k * "отроке i
r(i,j,k)
x(i> /,fc - 1) if i = 6
# распределение строки k
r(i + 1,/,Λ) if / < k
[r(i- l.i.k) if / > k # n0CTP°Ke /
x(i,j,k) <— x(i,j,k - 1) + r(ij,k) χ c(ijyk)
# образование k-x связей,
где ввод - x(i,j,k)
а и вывод
x(Q,N).
На рис. 4.41 показан кубический ГЗ для случая N = 4 с
раздельным изображением каждой из ij - плоскостей. Здесь не
показаны, (но должны быть) дополнительные линии зависимости в k-u
направлении от точек (/,/,&) к точкам (/,/,&+ 1). В каждой
плоскости точки, которые служат "источником" значений строки и
столбца, представлены зачерненными узлами.
Ниже мы выполним проецирование ГЗ в нескольких направлениях с
тем, чтобы найти оптимальный систолический массив.
Спиральные и гексагональные систолические массивы
Переиндексация ГЗ. Граф зависимости на рис. 4.41 не является
полностью регулярным. Узлы-источники в ГЗ двигаются из строки
(столбца) k к строке (столбцу) k + 1 от k-Pi плоскости // к
следующей плоскости, и пересылаемые потоки данных проходят в
плоскостях ij в двух противоположных направлениях. Вследствие этих
нерегулярностей систолический план для данного ГЗ отсутствует.
Один из путей решения этой проблемы состоит в переиндексации
узлов ГЗ, преобразующей его в более регулярный ГЗ, возможно, с
266 Глава 4
Рис. 4.41. Граф зависимости для случая N = 4.
систолическими планами. С этой целью следует переиндексировать
узлы в ГЗ так, чтобы все узлы-источники оказались локализованы
в первой строке или первом столбце в каждой плоскости // и
пересылаемые данные проходили только в одном направлении. Этого
можно достичь следующей переиндексацией:
узел(/,/,Л) -> узел((/ - *)т0(Ш+ 1. (/ - *)modA,+ Μ).
Обозначим исходный ГЗ как ГЗ-1, а переиндексированный - ГЗ-2.
В ГЗ-2 указанная переиндексация упорядочивает узлы в любой
плоскости ij так, что узлы-источники всегда оказываются в первой
Систолические матричные процессоры
267
ι
1*
2Т
з Ψ
3 4 J
IT?
>—»ю—·κρ—»ю
А А А
>—кЬ—кЬ—мЬ
All
>—»о—KJ—*ю
к=1
к=2
к= 3
к=4
Рис. 4.42. Дуги зависимости в плоскостях // в ГЗ-2 для случая
N = 4.
строке или в первом столбце. Поскольку данные, проходящие в
плоскостях ij, являются пересылаемыми данными, т.е. они не
изменяют своих значений, дуги зависимости в плоскостях Ц могут
оставаться локальными. Поэтому все четыре плоскости // должны
оставаться теми же и в ГЗ-2 (рис. 4.42). Однако дуги зависимости
между плоскостями ij должны стать усложненными. В исходном ГЗ-1
дуги зависимости из k-Pi плоскости ij в (k + 1)-ю плоскость //
τ
представлены вектором [0 0 1]. В ГЗ-2 эти векторы зависимости
преобразованы следующим образом:
«<* " * " VmodN- <<* " *>тоИЛГ <' " * " ^modAT « " kLoM> ^
Операция по модулю приводит к двум типам дуг зависимости.
τ
1. Первый тип представлен вектором зависимости [-1 -1 1] ,
когда </ - k)moaN* 0 и (/ - k)modN* 0.
Дуги зависимости этого типа являются локальными.
268
Глава 4
Плоскость к = 1
Плоскость к = 2
Рис. 4.43. Локальные и спиральные дуги зависимости между первой
и второй плоскостями // в ГЗ-2. Отметим, что черные узлы
обозначают узлы в плоскости k = 1, а белые узлы - в плоскости k = 2.
2. Другой тип представлен векторами
[(N - 1),- 1,1]Т или'[- 19(N - 1),1]Т или [(N - 1),1]Т,
когда (/- *)modA, = 0 или (/- k)mQaN = 0.
Отметим, что дуги зависимости этого типа являются глобальными.
Они определены как .спиральные дуги.
Теперь мы можем получить более совершенный ГЗ-2. Дуги
зависимости в плоскостях // показаны на рис. 4.42. Два типа дуг
зависимости между любыми двумя смежными плоскостями Ц (в данном
случае первые две плоскости) в ГЗ-2 показаны на рис. 4.43.
Переиндексированный алгоритм с однократным присваиванием.
Итак, было показано влияние переиндексации по модулю на ГЗ.
Соответствующий эффект может быть получен и для алгоритма с
однократным присваиванием. Переиндексированный алгоритм с
однократным присваиванием имеет следующий вид:
Систолические матричные процессоры
269
For i,j,k from 1 to Ν
{x(i AKI+ 1,/ .A,+ \>k - 1), если / = 1
c(iy j - l,fc), если / * k
v modN *'mod# '
r(i - 1, /,£)♦ если /
/e - 1), если / = 1
* k
x(i/hk) <- x(imnriA/+ l./mftriA,+ 1.* - 1) + r(i,j,k) χ ф\/,/г),
'modA/
где ввод и вывод должны быть модифицированы в соответствии с
переиндексацией.
Спиральный ГПС-массив: проекция в k-м направлении. Отметим,
что дуги зависимости в ГЗ-2 инвариантны относительно плоскостей
// Поэтому если спроецировать ГЗ-2 в k-м направлении (направле-
т
ние [0 0 1] и использовать вектор линейного плана в k-м
направлении (т.е. все узлы в плоскости // вычисляются одновременно), то
можем получить регулярно структурированный ГПС. В соответствии с
данной проекцией входная матрица А должна размещаться внутри
V
mm
жадк
11 12 13
- - а οι а
21 β 22 * 23 а 24
- а о, а
31 а 32 "33 а 34
an а
Рис. 4.44. Спиральный ГПС, полученный проекцией в направлении k
из ГЗ-2.
270
Глава 4
массива, т.е. а должны быть в ПЭ(Л/) готовы для вычисления
Практически мы должны загружать матрицу А извне (т.е. из главной
машины) в специальной фазе загрузки. В нашем случае выбран ввод
матрицы А из нижнего правого узла ГПС-массива в диагональном
(северо-западном) направлении (рис. 4.44). Фаза загрузки требует
N временных шагов, чтобы все элементы а., входной матрицы
поступили в ПЭ( £*,/). После этого ГПС-массив готов к вычислениям, т.е.
к фазе выполнения, которая также требует N временных шагов. По
окончании вычислений выходная матрица А+ выдается из левого
верхнего массива (фаза разгрузки).
Удаление спиральных дуг. Так как ГПС на рис. 4.44 имеет
спиральные дуги, он назван спиральным ГПС-массивом. Спиральные
связи потенциально предполагают глобальные соединения при
трассировке СБИС. К счастью, можно этого не делать, так как переменные
χ в k-й строке или k-м столбце k-й плоскости ij в исходном ГЗ-1
не меняют своих значений. Аналогично, переменные χ в первом
столбце или в первой строке во всех плоскостях // в ГЗ-2 не
меняют значений.
Рассмотрим, например, вычисление первых двух плоскостей // в
ГЗ-2. Из исходного алгоритма Уошэлла - Флойда следует
χ(ίΛΛ) = χ(ί,1,0) + *(ί,1,0)χ*(1,1,0),
так как узлы связаны сами с собой, поэтому
*(U,0) = 1.
Таким образом,
*(/,1,1) = *(/,1,0).
Это означает, что изменения не влияют на переменные χ в
первом столбце плоскости ij для k = 1. Аналогично, изменения не
влияют на переменные χ в первой строке плоскости // Для k = \.
Кроме того, отметим, что ф',1,1) = х(/,1,0) - пересылаемые
данные в плоскости // для k = 1. Тогда
х(/,1,0) = ф\1,1) = φ',ΛΜ) = χ(ίΛΛ).
Поэтому исходная глобальная дуга в ГЗ-2, переносящая данные
*(/,1,1) из узла (//1,1) к узлу (ι - 1,W,2), заменена теперь
локальной дугой, переносящей данные c(i,Nt\) из узла (i,N,\) к
узлу (/ - l,yV,2) (выражение (4.13)). Аналогично, исходная
глобальная дуга, переносящая данные *(!,/,!) из узла (!,/,!) к узлу
Систолические матричные процессоры
271
ц •*G——m Плоскость к = 1
—^ -0%г^^шт■■ Плоскость к =2
Рис. 4.45. Удаление спиральных дуг между первыми двумя
плоскостями в ГЗ-2.
(NJ - 1,2), заменена теперь локальной дугой, переносящей данные
r(N,/,l) из узла (#,/,1) к узлу (NJ - 1,2) (отметим, что
r(NtjA) = f(\tjt\) = *(1,/\0) = *(1,/,1)). Укажем также, что
данные *(1,1,1) - константа при вычислении, равная 1. Поэтому
нет необходимости пересылать константу 1 из узла (1,1,1) в узел
(N,N,2) по длинной глобальной дуге. Вместо этого можно локально
сформировать ее в узле (NyN,2), а эту глобальную дугу удалить.
Рассмотренные локальные дуги зависимости между первыми двумя
плоскостями Ц показаны на рис. 4.45.
Приведенные соображения справедливы и для других плоскостей
ί/\ т.е. переменные χ в первой строке или первом столбце k-й
плоскости Ц в ГЗ-2 (или k-й строки или k- го столбца k-vi
плоскости Ц в ГЗ-1) не меняют своих значений. Это следует из
исходного алгоритма Уошэлла - Флойда
x(i,k,k) = x(iykyk - 1) + x(i,k>k - 1) χ x(k,kyk - 1) =
= x(iXk - 1),
x(k,j,k) = x(kjyk - 1) + x{kXk - 1) χ x(k,j,k - 1) =
= x(k,j,k - 1),
так как x(k,kyk - 1) = 1.
Локальный и регулярный граф зависимости ГЗ-3. Следуя той же
аргументации, можно заменить все глобальные дуги в ГЗ-2
272
Глава 4
12 3 4 J
1 2 3 4 J
Плоскость к ~ 1
— Плоскость к == 2
Рис. 4.46. Локализованный ГЗ-3.
а а а а
11 12 13 14
аг. &п а2з а»
— а», а 32 а
31 d32 Λ33 tt34
Рис. 4.47. Локально связанный гексагональный ГПС.
Систолические матричные процессоры
273
л0кальными дугами для вычислений в плоскости Ц. Полученный
локализованный ГЗ обозначен ГЗ-3 и показан на рис. 4.46,
Отметим, что ГЗ-3 также является НИС в k-м направлении.
Гексагональный ГПС-массив. Если теперь спроецировать ГЗ-3
вновь в /г-м направлении, то в результате будет получен локально
связный гексагональный ГПС-массив, показанный на рис. 4.47.
Отметим, что задержки, связанные с исходными спиральными дугами на
рис. 4.44, являются теми же, что и задержки на соответствующих
локальных дугах на рис. 4.47 для обеспечения корректного
планирования. Можно и дальше проводить упрощение гексагонального ГПС-
массива, исключая первую строку и первый столбец ПЭ, которые не
выполняют вычислений. В результате получим массив размером
(N - I)2.
— — а01 — — а.
Рис. 4.48. Гексагональный систолический массив.
Гексагональный систолический массив. Гексагональный
систолический массив образуется путем систолизации сечением [Kung84a]
гексагонального ГПС-массива, показанного на рис. 4.47. Результат
приведен на рис. 4.48. Для этого систолического массива
конвейерный такт α = 3. Входные данные загружаются из юго-восточного
угла массива. Как только данные будут загружены в соответствущие
ПЭ, начинается выполнение алгоритма Уошэлла - Флойда.
Следует отметить, что возможность исключения спиральных свя-
18—1028
274
Глава 4
зей была отмечена еще Л ином и By [Lin85]. Однако в их
предложении требовалось включать дополнительный столбец ПЭ в правой
части схемы и дополнительную строку ПЭ в верхней части схемы.
Гексагональная систолическая схема была также разработана
независимо от других Роутом [Rote85].
Оптимальный ортогональный систолический массив
Хотя систолический массив имеет только локальные связи,
конвейерный такт для него α = 3 и число контактов ввода-вывода
равно AN. Это не очень хорошие показатели. Для того чтобы получить
ГПС с α = 1 и меньшим числом контактов ввода-вывода, мы должны
выбрать альтернативное направление проекции. После тщательных
исследований мы обнаружили, что проекция в направлении i или /
соответствует указанной цели. Кстати, проекции в указанных
направлениях одинаковы в силу симметрии ГЗ-3. Поэтому рассмотрим
проецирование ГЗ-3 в направлении L
Ортогональный систолический массив. Так как ГЗ-3 также
является НИС в направлении /, мы можем проецировать его
непосредственно. Однако трудность возникает при определении допустимого
вектора плана для ГЗ-3. Выше (разд. 4.4.3) было предложено
объединение этапов 2 и 3 систолического проектирования. Обратимся
здесь к этой возможности. Используем алгебраический подход
(разд. 3.3) для определения вектора систолического плана ? и
непосредственно спроецированного систолического массива.
Отметим, что вектор проекции 3 = [1 0 0]7 Прежде всего
перечислим все векторы зависимости в ГЗ-3:
t*1 \ \ *4 Ч =
1 0 -1 -1 о
О 1-1 0-1
0 0 111
Допустимый вектор систолического плана t должен удовлетворять
двум следующим ограничениям:
?т^ > 0 для i = 1,2,3,4,5 и ?ТЭ > 0.
Решение с минимальным временем вычисления (выражение (4.5)) для
t при этих ограничениях имеет вид ? = [1 1 3]. При этом
минимальное время вычислений Τ равно
Систолические матричные процессоры
275
Τ = max{?T(j£ - £)} + 1 = [1 1 3]
Ρ >я
Τ Ν -
\Ν -
[Ν -
η
1
lj
+ 1 = 5Ν
используя указанный вид ?, можно найти матрицу преобразования
Τ =
1 1 3
О 1 О
О 0 1
где Ρ ортогональна 3 и определяет проекцию. Теперь для t можно
найти спроецированное ребро "t = Ρ t в систолическом массиве
\f i i i ί'ι - Ρ ι -ι ο -η
L*1 e2 e3 e4 e5* - |o ο ι ι ij.
Задержки на ребрах D(t ) = t e*l
[D(l\) D(f2) D(f3) D&\) D(f5)] = [11122].
Используя узлы, определенные проекцией в направлении /, а также
ребра и задержки, полученные выше, можно представить
систолический массив в виде показанном на рис. 4.49. Чтобы обеспечить
сначала загрузку данных в узлы, а затем их использование в течение
N тактов, в систолическом массиве необходимо определенное
управление. Его организация рассмотрена в задаче 24.
Оптимальность структуры. Полученный ортогональный
систолический массив является оптимальным для решения задачи о транзитив-
ном замыкании. Массив использует N процессоров и 2N портов
ввода-вывода. Предусматривается блочный конвейерный такт без
чередования, равный N, так что последующие вычисления могут
повторяться через каждые N шагов. (Отметим, что на рис. 4.49 блок
данных {Ь } следует сразу же за блоком данных {а }.) Благодаря
процессу систолизации общее время вычислений равно 5N - 4. Из
графа зависимости (ГЗ-1) исходного "параллелизованного"
алгоритма Уошэлла - Флойда следует, что это действительно оптимальный
результат. Так как должно быть выполнено N вычислений на N2
процессорах, N является минимальным тактом, который обеспечивает
100%-ное использование процессоров при конвейерных вычислениях.
В ГЗ-1 можно найти, что существует направленный путь длиной
5N - 4 в направлении
(1,1,1) -> (#,1,1) -» (Ν,ΝΛ) -> (Ν,Ν,Ν) -> (ί,Ν,Ν) ~> (IXΝ).
18*
276
Глава 4
Период данных, 4 21
равный 1 I
1 Ь
и
τ '«■
Период блока,
равный N
11
12
Рис. 4.49. Оптимальный ортогональный систолический массив.
Этот путь показан на рис. 4.50 жирными дугами. Поэтому любая
систолическая реализация, в которой все входы должны быть
вычислены, по крайней мере, на один шаг раньше, чем они будут
использованы, должна иметь время вычислений, по меньшей мере равное
5Ν - 4. Наконец, заметим, что в течение времени такта N необхо-
Систолические матричные процессоры 277
димы N входных данных и N выходных данных на каждом шаге, и,
следовательно, 2N - это минимальное число портов ввода-вывода,
которое требуется.
4.5.3. Алгебраическая задача нахождения путей
Основные структуры, разработанные в этом разделе для задачи о
транзитивном замыкании, могут быть применены для других задач.
Объясняется это тем, что математическая задача о транзитивном
замыкании является частным случаем общей задачи, известной как
алгебраическая задача нахождения путей (A3). К другим задачам
этого класса относятся задача о кратчайшем пути в теории графов,
задача обращения матрицы в линейной алгебре и порождение
регулярных языков в теории автоматов [Gondr84]. Разработанные здесь
основные структуры могут быть применены к любой из A3.
Ниже кратко сформулирована A3 и приведено множество
рекурсивных уравнений для ее решения с примерами. Более подробные
сведения о систолических массивах для общей A3 можно найти в работах
[Lewis86, Rote85, Rober86], глубокое математическое описание A3
представлено в работах [Lehma77, Mahr84, Gondr84].
Формулировка задачи
Пусть задан взвешенный ориентированный граф G = (V,Etw(e)),
где V - множество вершин, Ε - множество ориентированных ребер и
(Ν,Ν,Ν)
Рис. 4.50. Самый длинный путь в ГЗ-1 алгоритма Уошэлла - Флойда.
278
Глава 4
w(e) - веса ребер. Веса w(e) выбираются из полукольца (или диои-
да) S = {//,+,х,0,1}, где сложение (+) и умножение (х) - замкну-,
тые двоичные ассоциативные операции над множеством элементов Η с
0 и 1 в качестве соответственно нейтрального и единичного
элементов. Сложение является коммутативным, умножение -
дистрибутивным относительно сложения, и элемент 0 является аннулятором,
т.е. а χ 0 = 0 χ а = 0. Кроме того, определена унарная операция
замыкания, обозначаемая а*, т.е.
а*= 1 + а + (α χ а) + (α χ а χ а) + ....
Вес ориентированного пути w(p) определяется как произведение
весов ребер на пути р.
w(p) ξ Π W{e).
Ve€/>
Если перенумеровать вершины графа от 1 до N, то задача
заключается в том, чтобы найти для каждой пары вершин / и /
(1 < /,/ < N) сумму весов всех различных путей из i к /".
Обозначим эту сумму d , тогда d. = Υ w(p) для пути ρ из i в /.
Алгоритм нахождения d формулируется на языке матриц. Определим
здесь А = {аЛ как матрицу смежности графа, где
{w(e),
о,
если е - ребро из i к /
если нет ребра из i к у
Результат вычислений A3 тогда можно представить матрицей
D = {d }. Для графа с N узлами использование рекуррентных урав-
Ц1
6 „Λο«Λ„„«~ ......,*,....^ η _ rN
нений относительно С позволяет вычислить D = С , начиная с
С°= A [Gondr84]:
с\\ = К/1>*х ^/у1 для ' * /·
с{; = с[-*х (*(yV для / * /,
с1 = (с1'*)*
Систолические матричные процессоры 279
Примеры A3
Задача о транзитивном замыкании. Нахождение транзитивного
замыкания G+= (VtE*) ориентированного графа G(VyE) является
частным случаем A3, где веса ребер графа принадлежат полукольцу
51 = {//Ι,νΑΟ,Ι} и #1 = {0,1}· Для каждого ребра в С w(e) = 1,
так что матрица смежности А содержит только нули и единицы. В
этом случае унарная операция * эквивалентна константной операции
1 (т.е. а s 1 у (я А а) ν (α Л а л а) ν···= 1)· Описанные
рекуррентные уравнения вместе с последовательным порядком
упрощаются и сводятся к алгоритму Уошэлла для транзитивного замыкания
[Warsh62].
Задача о кратчайшем пути. Определение длин кратчайших путей
между всеми парами узлов в ориентированном графе является другим
примером A3. В этом случае веса ребер, соответствующие
расстояниям, принадлежат полукольцу S2 = {#2,min,+,oo,0}, где //2 -
множество неотрицательных вещественных чисел, дополненное со,
(Я2 = {[0,оо],со}). Унарная операция * эквивалентна константной
операции 0 (т.е. а*= min(0,α,α + α,α + а + α,...) = 0).
Рекуррентные выражения вместе с последовательным порядком упрощаются
и сводятся к алгоритму Флойда для задачи о кратчайшем пути.
Исключение Гаусса - Жор да на (обращение матрицы). Получение
обращения вещественной матрицы, если оно существует, также можно
рассматривать как частный случай A3. Обращаемая матрица связана
с матрицей смежности А. Ее элементы, соответствующие весам
ребер, принадлежат полукольцу 53 = {#3,+,х,0,1}, где НЪ -
множество вещественных чисел, а + и χ - обычные операции сложения и
умножения. Расширенное замыкание определяется следующим образом:
Г1/(1 - с) для с * 1
[не определено для с = 1
Решение A3 дает (I - А). Незначительные изменения в алгоритме
позволяют вычислять А непосредственно. С учетом этих изменений
рекуррентные уравнения вместе с последовательным порядком
соответствуют алгоритму Гаусса - Жордана (без выбора ведущего
элемента) в линейной алгебре [Rote85].
280
Глава 4
Систолические схемы для A3
Представленные в этом разделе две систолические схемы могут
быть без труда преобразованы для решения A3, если предусмотреть
дополнительные вычисления замыкания. Детали преобразования могут
быть найдены в работе [Lewis86].
4.6. СИСТОЛИЧЕСКИЕ ВЫЧИСЛИТЕЛИ ДЛЯ ИСКУССТВЕННЫХ
НЕЙРОННЫХ СЕТЕЙ
Нейрофизиологами было показано, что мощная параллельная
обработка, выполняемая мозгом человека, определяется глобальной и
густой сетью связи большого числа одинаковых логических
элементов, называемых нейронами. Нейроны связаны друг с другом
переменными воздействиями по сети синапсов [Taked86]. Известные
дискретная модель Хопфилда [НорП82] (разд. 2.5) и непрерывная
модель Хопфилда-Танка (включая предложенные аналоговые нейронные
схемы) [Hopfi84, Hopfi85] в настоящее время получили широкое
распространение при реализации искусственных нейронных сетей
(ИНС). Последние могут быть запрограммированы для
функционирования в виде вычислительных сетей, выполняющих ассоциативный поиск
поиск или решающих оптимизационные задачи. Было предложено
несколько подходов, использующих глобальную связность потока
оптических сигналов [Farha85, Mada85, Eichm85].
И. аналоговые нейронные схемы, и оптические нейронные сети не
свободны от таких недостатков, как низкая точность, трудность
модификации синаптических воздействий, сходимость к локальным
оптимумам и глобальная связность. Для преодоления этих
недостатков была предложена для ИНС локально связная систолическая
архитектура [Kung87b].
4.6.1. Модели Хопфилда и Хопфилда-Танка
Исходная модель Хопфилда. Как отмечалось в разд. 2.5,
исходная модель Хопфилда использует пороговые нейроны с двумя
состояниями. (Состояния обычно обозначаются 0 и 1). В этой дискретной
модели каждый нейрон i получает входные токи ТУ. от нейрона /
и ток смещения 1{ (рис. 4.51, a) [Hopfi82, Taked86].
Функционирование нейрона i может быть описано следующим образом:
Систолические матричные процессоры 281
υμ) - Σ W> + /, ^
Vfk + 1) = sterfl//*)].
где step[jc] - единичная ступенчатая функция, которая принимает
значение 1 для χ £ 0 и 0 для χ < 0. N - число нейронов и 7\ -
элементы матрицы связей, представляющие синаптические
воздействия по нейронным соединениям (с Г = 0). Входы U
ограничиваются по порогу усилителем (нейроном), а выход V может
возвращаться на вход любого другого усилителя и модифицировать его
состояние. Переходы в пространстве состояний постепенно сходятся
к множеству устойчивых фиксированных точек (разд. 2.5).
Модель Хопфилда-Танка. Для имитации непрерывной функции
отклика реальных нейронов и моделирования накапливаемой временной
задержки, обусловленной электрической емкостью реального
нейрона, Хопфилд и Танк предложили непрерывную модель, которая может
быть приближенно описана следующими динамическими уравнениями
[Hopfi84, Hopfi85, Taked86]:
υ μ) - и μ - ΐ) = ΣΤ.γμ) + /., (4.15)
ν μ + ΐ) = g[υμ)l (4.16)
где g[x] - нелинейная функция, например,
g[x] = (1/2)[1 + tg(x/x0)l (4.17)
которая приближается к единичной ступенчатой функции при
стремлении *0 к 0 (рис. 4.51,6). Правая часть уравнения (4.15) может
рассматриваться как новый источник возбуждения, который
осуществляет "модификацию" состояния, как показано в левой части
уравнения.
Для обеих моделей функция энергии [Hopfi82, Hopfi84]
вычисляется по формуле
Ε = (1/2) Σ Σ ТУу - Σ ψ, ■ (4.18)
Глава 4
Вход
/
\
/
\
/
\
—<
Т32 I /
Синаптические \
воздействия|
\
Пороговый
усилитель
Vi
V2
\7 V \7
Уз
V4
i
Рис. 4.51. Упрощенная блок-схема модели Хопфилда (а). В
дискретной модели усилители действуют как ограничители с резким порогом
ограничения, а в непрерывной модели динамически обрабатывают
функцию g£Ku). Типичная функция V = gfiU), значение λ
определяет пороговое усиление (б).
Систолические матричные процессоры
283
Хопфилд показал, что если Τ = 7\., то нейроны в непрерывной
модели всегда изменяют свои состояния таким образом (задача 25),
что функция энергии уменьшается [НорП84].
Матричная формулировка. Модель Хопфилда может быть
сформулирована как задача последовательного умножения матрицы на вектор
с некоторыми заранее определенными пороговыми операциями
[Farhe85]. Например, уравнения (4.15) и (4.16) могут быть
представлены в матричной форме
u(k) = Tv(k) + i + u(k - 1),
v(k + 1) = G[u(k)l
(4.19)
где G[x] - функция, определяющая нелинейное пороговое поведение
каждого элемента вектора *, а используемые векторы и матрицы
имеют вид
и = [uvu2 ujl
" = \-VVV2 ^]Т
i = [/г/2...../^]Т
Τ =
ντ τ τ
τ τ τ
:2\ .22: '.2Ν
Τ Τ τ
• Ν\ ιΝ2"1 ΝΝ·
(4.20)
Пример 1. Решение задачи восстановления изображения
Искусственные нейронные сети были успешно применены для задач
первичной обработки изображений [Koch86]. Ниже рассмотрен пример
восстановления изображения с целью показать, как прикладная
задача отображается в ИНС. Рассмотрим вектор наблюдаемого
ухудшенного изображения g, который может быть описан формулой
g=Hf + n,
(4.21)
284
Глава 4
где Η - известная матрица размытости. Статистические свойств^
вектора шума η также заранее известны. Таким образом, чтобы
восстановить изображение, необходимо исключить влияние линейного
механизма размывания и аддитивного шума на вектор изображения /.
Самый простой метод - решить задачу наименьших квадратов
(гл. 2), т.е. надо найти оценку /, которая минимизирует ошибку
общей оценки
min (g - Hj)\g - Щ). (4.22)
Однако во многих случаях известна априорная информация об
изображении (например, сглаженность, распределение яркости). Для
того чтобы оцененное решение также отражало эту информацию,
следует модифицировать формулировку задачи минимальных квадратов
min(g - Щ)\ - Щ) + *(WnTm). (4.23)
где W - матрица, представляющая взвешенную яркость для общей
меры гладкости изображения, а γ - соответствующий параметр
регуляризации.
В формулировке регуляризованной задачи восстановления
изображения в терминах ИНС основным является получение функции
энергии, так, чтобы самый нижний энергетический уровень
соответствовал наилучшему восстановлению изображения. Как только определена
функция энергии, могут быть получены синаптические воздействия и
вход. Пусть каждый пиксел изображения /. соответствует состоянию
нейрона V(i), тогда функция энергии определяется выражением
(4.23). Сравнивая выражения (4.18) и (4.23), можно получить
соответствующие матрицу Τ и вектор / (задача 26)
Τ = -2(НТН + γΨτΨ) ,
После определения Г и / ИНС может быть запрограмирована для
решения задачи восстановления изображения.
4.6.2. Систолическая конструкция с использованием каскадного ГЗ
Использование каскадного ГЗ. Как показано в разд. 3.5,
систолическая схема последовательного умножения матрицы на вектор
может быть получена из каскадного ГЗ с нелинейным присваиванием.
ГЗ для уравнений (4.19) показан на рис. 4.52. С помощью того же
Систолические матричные процессоры
285
? j
IiUi(o) I2U2(0) I3U3(o)
Рис. 4.52. ГЗ для модели Хопфилда, сформулированной в виде
последовательного умножения матрицы на вектор.
ι Ь Ь 11 12 I з 11 1г Ь
0 *^^С
о_——^^теГ тэг
Ίίι Έ2 Тзз
Tl2 ^З^^^^^^Г
[^^^ЪГ Έ*
П&1 Έ2 Т33
[??^^2 Тгэ
\%ι Ти^^Т^
Ь|| ^2 Т33
^^\ · ·
Vi
Рис. 4.53, Систолический массив для модели Хопфилда,
сформулированной в виде последовательного умножения матрицы на вектор.
286
Глава 4
i j
t
1U1<°>
I Vl<'>
i2uj(0) ι,υ3(0)
I 4(0
v3(D
-**-
4-
Ъ
. T}2
Л
PL
. T23
(f- T13
Τβ2
~Y
Ύ
U1(D f ^^U2 (О f ^\{\) \S
• · ·
• · ·
Рис. 4.54. Модифицированный ГЗ для модели Хопфилда,
сформулированной в виде последовательного умножения матрицы на вектор.
нелинейного присваивания можно получить локально связный
систолический массив с двунаправленными связями. В этой систолической
архитектуре требуются некоторые интеллектуальные переключатели,
способные изменять операции каждого ПЭ в различные интервалы
времени (задача 27). Однако, как видно из рис. 4.53, некоторые
Τ необходимо повторно хранить в множестве ПЭ, что делает
конструкцию не совсем пригодной для адаптивной модификации Τ .
Использование модифицированного каскадного ГЗ. Изучая ГЗ,
приведенный на рис. 4.52, можно заметить, что многие
нежелательные его свойства связаны с тем, что направление ввода состояния
нейронов V^k) ортогонально направлению вывода усиленных по
порогу состояний нейронов V t(k + 1). Данные элементов Т.. можно
переупорядочить таким образом, чтобы направление ввода V (k)
стало параллельным направлению вывода V.(k + 1) (рис. 4.54). В
Систолические матричные процессоры
287
Ъ
Ъ
|т»
Vi
Т22
Т23
Ъ
|V2 J
τ
Тз1
%2
рис. 4.55. Кольцевой систолический массив для модели Хопфилда,
сформулированной в виде последовательного умножения матрицы на
вектор.
этом ГЗ 1-й столбец массива данных Т.. циклически сдвинут на
(/-1) позиций, i = 1,2,..., N. Данный ГЗ не является полностью
локализованным, так как имеются глобальные спиральные дуги
связи. Однако направление ввода (сверху) и направление вывода
(снизу) параллельны. Достоинство подобной организации состоит в том,
что при организации каскада из множества таких ГЗ вводы и выводы
данных могут могут быть идеально согласованы.
Кольцевой массив для ИНС. Для размещения сверху вниз
каскадного ГЗ проекцию можно выбрать в вертикальном направлении, что
приведет к кольцевой архитектуре массива (рис. 4.55) . В
И НС-реализации каждый ПЭ, например ί-й ПЭ, трактуется как
нейрон, и в нем запоминаются синаптические воздействия
(7^,7^,..., 7\,у). На k-н итерации ПЭ выполняет следующие
операции:
1. Каждый из выходов нейронов циклически проходит по
кольцевому массиву и будет проходить через ί-й ПЭ один раз в течение N
тактов.
2. При прохождении V. через /-й ПЭ он умножается на Т.., и
результат добавляется к сумме UJk - 1) и /. (в соответствии с
уравнением (4.15)).
3. После всех N тактов вычисление U (k) завершается
готовностью для порогового усиления.
4. После операций порогового усиления ПЭ посылает усиленный
выход нейрона V (k + 1) к соседнему слева ПЭ.
Описанная процедура повторяется до тех пор, пока не будет
Та же архитектура была предложена ранее Портером [Porte86] для
последовательного умножения матрицы на вектор при решении
уравнений в пространстве дискретных состояний.
288
Глава 4
достигнута сходимость. При реализации большого числа нейронов
возникает проблема использования длинного скрученного провода
которая может быть разрешена введением специальной двумерной
схемы размещения ПЭ [Kung87b] (задача 29).
Преимущества систолической ИНС. Достоинства рассмотренной
систолической архитектуры для ИНС состоят в следующем.
• Конвейерный такт α = 1, что приводит к 100%-ному
использованию процессоров во время итерации.
• В каждом ПЭ запоминаются только N синаптических воздействий
Т... Это приводит к упрощению модификации синаптических
воздействий и становится возможной процедура "обучения".
• В такой архитектуре параметры усиления можно легко
подстраивать в процессе итераций. (Было установлено, что если параметр
регулирования усиления сигмоидного отклика в нейроне можно
динамически изменить, это ускорит сходимость и увеличит
производительность [НорП83].)
• По сравнению с аналоговой RC-нейронной схемой и оптическими
нейронными сетями цифровая реализация может обеспечить более
высокую точность.
4.6.3. Использование ИНС для решения комбинаторных
оптимизационных задач
Непрерывные ИНС Хопфилда и Танка были использованы для поиска
решений некоторых комбинаторных оптимизационных задач - задачи о
коммивояжере [Hopfi85], задач линейного программирования
[Tank86], задачи Хичкока [Taked86].
Многие комбинаторные оптимизационные задачи могут быть
сформулированы в виде задач линейного программирования, которые
включают манипулирование функцией стоимости с учетом выполнения
некоторых ограничений в виде линейных равенств и неравенств,
содержащих вещественные переменные [Rumel86]. В некоторых
частных случаях переменные могут быть ограничены только двумя
значениями 0 и 1. В этом случае говорят о задаче 0-1
программирования. Примером задачи 0-1 программирования [Papod83] является
задача о совершенном согласовании, которую предлагается
рассмотреть.
Пример 2. Задача о совершенном согласовании
В задаче о совершенном согласовании имеются два равномощных
множества узлов S. и S«. Каждый из узлов в S. должен быть согла-
Систолические матричные процессоры 289
сован с одним (и только с одним) узлом в S2, и наоборот.
Согласование может быть представлено матрицей связей [х ], где
х. = 1 означает, что узел i в S. согласован с узлом / в S-
Каждой связи присваивается соответствующий вес ш... Задача о
совершенном согласовании формулируется так: для заданной матрицы
весов [w ] найти матрицу связей [х ] (х . = 0 или 1), которая
минимизирует следующую функцию стоимости:
jv« (4·25)
при ограничениях
Σ х„ =1, i = 1,2 я, (4.26)
/ '
Σ хп =1, у = 1,2 п. (4.27)
ι
'/
Отметим, что в выражениях (4.26) и (4.27) [х ] является
матрицей перестановок.
При использовании ИНС для решения задачи о совершенном
согласовании прежде всего необходимо описать сеть функцией энергии
так, чтобы нижний энергетический уровень соответствовал
наилучшему согласованию. Пусть χ представлено состоянием нейрона V .
(с двойным индексом), т.е. V = χ , тогда функция энергии,
которая должна быть минимизирована, имеет следующий вид:
Ε = А/2 ς wn νη +Β/2Σ Σ Σ νη νη
(4.28)
С/2
Σ Σ Σ νη vi2 1 + D/2(EEVrt/1-«)2,
/1 Π Й*Л α/1 ί2· Л /1/1 α/1
где Ау Ву С и D - соответствующие (положительные) весовые
константы, которые должны быть определены.
Обоснуем использование представленного вида функции. Первый
член соответствует минимизированной функции стоимости,
определенной выражением (4.25). Второй член равен нулю тогда и только
тогда, когда самое большее в одной позиции каждой строки матрицы
[χ.λ имеется 1. Третий член равен нулю тогда и только тогда,
когда самое большее в одной позиции каждого столбца матрицы
[*.·] имеется 1. Четвертый член равен нулю тогда и только тогда,
когда η позиций в матрице [*.·] содержат 1. Второй и четвертый
члены совместно представляют ограничение, определенное выражени-
19—1028
290
Глава 4
ем (4.26). Третий и четвертый члены совместно представляют огра^.
ничение, определенное в выражении (4.27). Действие функции
энергии рассмотрено ниже.
Нахождение синаптических воздействий и входов. Если состояния
нейронов имеют двойные индексы, функция энергии в определении
(4.18) может быть записана в следующем виде:
ε = -(1/2) Σ Σ Σ Σ τη , β №νΆ /а 2-
» η (4·29>
"1=1 fi./wvw ·
Сравнивая выражения (4.28) и (4.29), можно получить синапти-
ческие воздействия Гд н й -2 и входные воздействия /д .j
Γίΐ,/ι,«2./2 = _saaa(1 " δ/ι,/2) " са/1,/г) " D·
где δ.. = 1, если / = /, и 0 в противном случае.
Теперь, используя указанные значения Τ и / , ИНС может
быть запрограммирована для поиска оптимального решения.
Формулировка оптимизационной задачи с подобными ограничениями может
быть распространена на более общий случай согласования графов,
например, согласование двудольного графа, где допускается
согласование между двумя множествами узлов разного размера [Papad83].
Замечание. Хотя ограничения введены в выражение (4.28),
состояние, соответствующее глобальному минимуму, не обязательно
удовлетворяет этим ограничениям. Для того чтобы ИНС сходилась к
допустимому состоянию (т.е. дискретные V.. и [*..] - матрица
перестановок), В, С н D должны быть выбраны достаточно большими
по сравнению с А (задача 31). Это должно гарантировать, что
низкий энергетический уровень сети действительно будет
соответствовать решениям, близким к допустимым. Однако, даже если В, С и D
достаточно большие, ИНС может попасть в устойчивый локальный
минимум. (Эти соображения приводят к использованию модельного
отжига и закалки, которые рассмотрены ниже.)
4.6.4. Схемы поиска глобального оптимума
Из предыдущих примеров следует, что при использовании
рассматриваемых ИНС для поиска глобального оптимума и допустимого
решения существуют две основные трудности. Одна из них - сходи^
Систолические матричные процессоры 291
мость к локальному минимуму. Вторая связана с тем, что прямое
мИнимизирующее решение может не удовлетворять данным жестким
ограничениям. Следовательно, это уже не полностью
удовлетворительные результаты, и они остаются важным объектом дальнейших
исследований. Ниже рассматриваются два многообещающих, но еще
неустановившихся подхода к преодолению этих проблем.
Введение модельного отжига в ИНС. Во многих оптимизационных
задачах минимизация заданной функции энергии достаточна для
получения корректного решения. Однако процесс минимизации в
непрерывной ИНС иногда сходится к локальному, а не к глобальному
минимуму. Для устранения этой трудности в модель ИНС вводится
модельный отжиг [Ackle85].
При соответствующей подстановке параметра регулирования
усиления xQ в выражение (4.17) для непрерывной модели с параметром
управления температурой Τ и при ограничении реакции нейрона
дискретными значениями 0 и 1 со стохастическим механизмом принятия
решения модифицированная версия модели Хопфилда практически
приобретает вид машины Больцмана [Ackle85], рассмотренной в
разд. 2.5 (задача 30). Детерминированная операция порогового
усиления в непрерывной модели Хопфилда заменяется здесь
дискретным стохастическим механизмом принятия решения, при котором сеть
постепенно достигает глобального оптимума.
Введение закалки в ИНС. Во многих комбинаторных
оптимизационных задачах вводятся жесткие ограничения на пространство
решений, при которых минимизация функции стоимости оказывается
недостаточной. Для достижения приемлемого решения был предложен
метод, названный закалкой [Kung87b]. При постепенном уменьшении
отношения взвешенных параметров между функцией стоимости и
жесткими ограничениями в процессе итерации влияние жестких
ограничений усиливается (т.е. происходит закалка).
Систолическая структура для ИНС, реализующей отжиг методом
закалки. В процессе поиска методы модельного отжига и закалки
могут быть объединены. Такой объединенный метод называется отжи-
гом методом закалки и предполагает динамические изменения синап-
гических воздействий и параметров регулировки усиления.
Систолическую ИНС можно легко адаптировать к методу отжига закалкой
(задача 32). Закалка может быть введена в систолическую ИНС
путем разрешения ПЭ производить модификацию значений Т.. и /., а
модельный отжиг - путем адаптивного изменения функции порогового
Усиления в соответствии с падением "температуры". Оба метода
адаптации можно вводить одновременно в динамике работы ИНС. Ме-
1<).
292
Глава 4
(Ro,%)
(0,0) R
Рис. 4.56. Возможный план отжига методом закалки, где TQ
представляет начальную температуру отжига, a R~ - начальное
отношение взвешенных параметров закалки.
тод представляется многообещающим (хотя и требует еще
исследований) с точки зрения сходимости к глобальному оптимуму в
условиях введения в комбинаторную оптимизационную задачу жестких
ограничений, когда отношение взвешенных параметров и температура
достигают чрезвычайно малых значений (рис. 4.56).
4.7. ЗАКЛЮЧЕНИЕ
Основной принцип систолической разработки заключается в
достижении массового параллелизма при минимальных затратах на
связь. Свойства модульности, регулярности и локальности связей
делают систолические структуры доступными для реализации на
СБИС. Однако их применение ограничено специальным классом
алгоритмов, использующих регулярные и локальные структуры данных,
которые естественным образом соответствуют систолическим
структурам. В настоящее время большое внимание исследователей
привлекают прямые методы отображения алгоритмов в систолические
массивы. В этой главе представлена процедура ресинхронизации сечением
для преобразования вычислительных ГПС-сетей в синхронные
систолические массивы. Такая процедура соответствует этапу реализации
(этап 3) в систематической методологии отображения,
представленной в гл. 3. Для получения оптимальных систолических структур
критическим является разработка ГЗ и выбор метода проецирования,
которые в значительной степени определяют характеристики
результирующих систолических вычислителей.
Хотя систолические структуры обычно считаются
специализированными системами, часто в проектах предполагается некоторая
Систолические матричные процессоры 293
сТепень гибкости. С этой точки зрения представляются важными две
конструкции - программируемая систолическая и реконфигурируемая
систолическая конструкция. В первом случае высокая степень
гибкости может быть достигнута за счет программируемости ПЭ.
Уровень программируемости будет зависеть от прикладных задач. Во
втором случае типичным подходом является чередование ПЭ
переключательными структурами. Такая схема широко распространена при
создании отказоустойчивых массивов (гл. 6). Примечательным
примером является конфигурируемая высокопараллельная ЭВМ CHiP
[Snyde82]. В последнее время в некоторых исследованиях
используется возможность усиления массивов ПЭ динамическими
коммуникационными сетями, что создает большие возможности для
реконфигурации, а
Следует напомнить о том, что сбалансированный проект должен
гарантировать достаточно высокую производительность устройств
ввода-вывода, непрерывно поставляющих данные для скоростной
матричной обработки. Этот сложный вопрос реализации, занимающий
многих исследователей, нельзя обойти при разработке реальной
системы. Имеется множество и других технических проблем. К ним
относятся (но не исчерпывают их) интерфейс между основной
машиной и массивами, схемы распределения синхроимпульсов,
разбиение, отказоустойчивость, программное обеспечение (гл. 6). Для
сравнения некоторые примеры реализации систолических процессоров
на кристалле и систолических матричных схем приведены в гл. 7.
4.8. ЗАДАЧИ
1. Деление многочленов. Пусть даны многочлены f(x) = апхп +
+αη_χχη~λ +... + aQ и g(x) = bmxm+ bm^xm~K...+ bQ, и
предположим, что η ^ m. Тогда существуют единственное частное q(x) и
остаток r(x)t такие, что f(x) = g(x)q(x) + г(х), где степень
г(х) меньше степени g(x).
а) Получите ГЗ алгоритма вычисления q(x) и г(х) по входам
f(x) и g(x).
б) Найдите по меньшей мере три систолических массива
проецированием данного ГЗ. Попытайтесь сравнить эти массивы в терминах
конвейерного такта, времени вычисления, числа ПЭ и т.д.
2. Обратная подстановка. Система линейных уравнений Ах = 6,
если А верхняя или нижняя треугольная матрица, может быть быстро
решена методом обратной подстановки. Предположим, что А - верх-
294
Глава 4
няя треугольная матрица размером η χ я, a b и * - векторы
размером /ixl. Неизвестные χ отыскиваются с помощью следующей
процедуры:
Ь
χ = Ζ
η а
пп
х. = Аг-\Ь, - Σ апх\ Для / = л - 1,л - 2,...,2,1.
а) Представьте этот алгоритм в форме с однократным
присваиванием.
б) Получите ГЗ.
в) Получите три ГПС-массива с помощью проекции.
η) Преобразуйте ГПС-массивы в систолические массивы,
прибегнув к систолизации сечением. Сравните эти систолические
массивы.
3. Систолические массивы для дискретного преобразования Фурье
(ДПФ). Пусть {х(п)уп = 0,l,...,Af - 1} - последовательность
конечной длины. ДПФ последовательности х(п) определяется
следующим образом:
X(k) =Nlx(n)Wnk , (4.31)
• n = 0
где k = 0,1,2,...,Ν - 1 и WN = е"/27Г/л^.
Завершите трехэтапную разработку (ГЗ —> ГПС —» систолический
массив) для ДПФ. Обоснуйте, почему ваш систолический проект
оказался "хорошим".
4. Решение системы линейных уравнений. Нами были разработаны
параллельные алгоритмы для LU-разложения и обратной подстановки.
Используйте их для решения системы Ах = Ь, где А - матрица
размером η χ n, а χ и b - векторы размером η χ \. Получите ГПС и
систолический массив для этого решателя линейных систем.
Указание (шаг 1а). Когда А разлагается на матрицы L и U,
Λ -1
(шаг 16). b также может быть преобразован в b = L b добавлением
еще одного столбца к массиву LU (рис. 4.57). L. распространяется
в блок Шив блок bb. (шаг 2). При выполнении обратной
подстановки могут потребоваться стеки для преобразования
последовательности данных.
5. QR-разложение ленточной матрицы. Нам известно, что
квадратный массив Ш может быть использован для ленточных матриц.
Имея ленточную матрицу размером 100 χ 100 с верхней шириной лен-
Систолические матричные процессоры
295
Блок обратной
подстановки
Стек
, I
Блок Л
вычисления b b
Рис. 4.57. Решение системы линейных уравнений с использованием
LU-разложения и обратной подстановки.
ты ρ = 4 и нижней шириной ленты q = 4, покажите, что минимальный
массив ПЭ (т.е. массив с минимальным числом ПЭ) для
QR-разложения этой матрицы имеет размер 4x7.
6. Проецирование ГЗ в линейный массив. Пусть линейный массив,
для ГЗ, показанного на рис.4.58, размещен вдоль оси /;
использованный план также показан на рисунке.
τ
а) Если направление проекции [1 1] , найдите для этого
массива конвейерный такт а.
Рис. 4.58. ГЗ: направление проекции и конвейерный такт.
Блок
LU-разложения
296
Глава 4
б) Если направление проекции [1 2]т, найдите новый конвейера
ный такт а.
в) При важности таких характеристик, как скорость и время
вычисления, является ли конвейерный такт хорошей мерой
производительности?
7. Систолические массивы для LU-разложения. Два варианта ГПС-
τ
массивов, полученные проекцией в направлениях [111] и
[1 0 0] , рассмотрены в разд. 3.4, где также представлены
соответствующие систолические массивы. Можно непосредственно
отобразить ГЗ в эти два варианта систолических массив, изменяя
направление плана. Найдите систолический план для Ш-разложения и
получите отображения для обоих систолических массивов.
8. Две версии LU-разложения. Для Ш-разложения
рассматривались два различных массива - один квадратный (η χ л), а другой -
треугольный (примерно η χ п/2). Пусть даны 10 матриц размером
η χ η (предположим, что η = 5). Сравните затраты времени,
необходимые каждому массиву для выполнения разложения.
9. Систолизация сечением для линейного фазового фильтра. Для
ГПС линейного фазового фильтра на рис. 4.32, α покажите, что не
существует сечения, которое позволило бы получить систолический
массив с α = 1 и общим числом элементов задержки Ο(Ν).
10. Примеры неконвейеризуемого ГПС. Для большинства
вычислительных моделей коэффициент масштабирования α = 1,2,3. Например,
в систолических массивах для АРБУ-фильтра и Х-образного фильтра
(схема типа Α) α = 2, а для Х-образного фильтра (схема типа В)
α = 3 независимо от значения М. То же справедливо и для
большинства двумерных графов, например для ГПС умножения матриц,
LU-разложения. Однако существуют ГПС, которые, будучи
локализованными, приводят к непостоянному значению а. Поэтому
соответствующие массивы не могут обеспечить ускорения Ο(Λί). В качестве
примера регулярного, но неконвейеризуемого ГПС рассмотрим ГПС на
рис. 4.59, впервые появившийся в работах [Dewil83, Jogod83].
Рис. 4.59. Пример неконвейеризуемого ГПС
Систолические матричные процессоры 297
фтметим, что для него не существует простых однородных сечений,
реализующих преобразование.
а) Систолизуйте этот ГПС неоднородными сечениями и определите
значение α для полученного систолического массива.
б) Если ГПС расширен до Μ каскадов (2М узлов), найдите
значение α для этого ГПС после систолизации. Является ли такой ГПС
конвейеризуемым?
11. Эквивалентность перемещения задержек между узлами и при
обычном сечении. Покажите, что любое перемещение задержки при
сечении может быть заменено последовательностью перемещений
задержек между узлами.
Указание. Рассмотрите разбиение узлов в сечении. Пусть
имеются два разбиения узлов А и В. Предположим, что k задержек
исключены из всех ребер, приходящих из узла А. Начните с этих ребер,
продвигаясь к их предшествующим узлам. Примените узловое сечение
вокруг этих узлов с перемещением k задержек. Повторите ту же
процедуру для ребер, приходящих в эти узлы. В конечном итоге эта
процедура будет завершена.(Вы должны рассмотреть все возможные
условия завершения.) Такая же процедура может быть применена к
разбиению В.
12. Сравнение систолизации сечением с ресинхронизацией. Мы
показали эквивалентность перемещения задержек между узлами и
перемещения задержки при обычном сечении.
а) Систолизуйте ГПС на рис. 4.60 без временного
масштабирования с помощью только перемещения задержек между узлами.
б) Группируя узлы с одними и теми же перемещениями задержки,
найдите соответствующие перемещения задержки при сечении.
13. Сечение и основные петли. Древовидный подграф Τ ГПС G
может быть определен следующим образом: 1) он не содержит циклов;
2) является связным графом; 3) содержит все узлы G. Дуги в Τ
называются ветвями, а дуги в С, не включенные в Г, называются
связями. Основная петля (ОП) - это любой замкнутый путь в С,
который не проходит через какой-либо узел более одного раза и
замыкает множество ветвей одной связью. Отметим, что отдельная
о -о ^сг
рис. 4.60. ГПС.
298
Глава 4
Y(n)
Задержка цикла EDCR ^ 7.
Задержка цикла ABCDEfI
Рис. 4.61. Ветви, связи и основные петли.
связь может замыкать более одной ОП. Каждой ОП должно быть
назначено произвольное направление, и с каждой ОП может быть
связана задержка петли. Для ребра задержки, если направление ребра
и петли совпадают, величина задержки добавляется к
накапливающейся сумме для этой петли. Если направления противоположные, то
величина задержки вычитается из суммы. Эти понятия
иллюстрируются рис. 4.61. Минимальное множество основных петель для ГПС
должно включать все ребра.
Приведем полезую теорему.
Теорема. Задержки могут вводиться или удаляться в любом месте
графа G, но таким образом, чтобы задержка петли сохранялась
постоянной для каждой петли в минимальном множестве.
а) Покажите, что после подходящего временного масштабирования
ГПС может быть ресинхронизован с использованием приведенной
теоремы для получения систолического массива.
б) Определите другое дерево в примере на рис. 4.61 и
повторите процедуру ресинхронизации.
Читатель должен заметить, что существует двойственность между
сечениями и основными петлями. Тем самым если получен двойствен- *
ный граф G, то основная петля в G является основным сечением в
С, и наоборот.
14. Неоднородные сечения. В разд. 4.3.3 было показано, что
систолизация однородным сечением эквивалентна вращению
гиперплоскостей в ГЗ. На самом деле, можно показать, что процедура
сечения более гибка. Сечения в систолизации ГПС не должны быть
однородными. Отметим, что неоднородные сечения для получения
систолического массива с оптимальной конвейерной скоростью не
Систолические матричные процессоры
299
рис. 4.62. ГПС-массив для иллюстрации использования неоднородных
сечений.
следует получать с помощью других методов однородного
отображения, таких, как методы Молдована и Куинтона. Покажите, что для
систолизации ГПС (рис. 4.62) (который может решать задачу о
транзитивном замыкании) с обеспечением минимального значения α
сечения являются неоднородными.
15. Свойства взаимной простоты.
а) Докажите, что компоненты вектора ? линейного плана
где ~t - любая точка в индексном пространстве L, должны быть
взаимно простыми, т.е. НОД{$.} = 1, чтобы получить множество
последовательных целых чисел.
б) Докажите, что для допустимости проекции 3, т.е. чтобы
каждая точка ? в индексном пространстве имела процессор,
индексированный 3 ?, компоненты вектора 3 должны быть взаимно простыми.
16. Уменьшение значения α с помощью четно-нечетного
расщепления. Было показано, что многие линейные систолические массивы
имеют α = 2, из-за двунаправленности потока данных, как,
например, систолический массив для свертки на рис. 4.20,6. Имеется
другой путь улучшения использования ПЭ: группирование ПЭ с
четными номерами, с одной стороны, и ПЭ с нечетными номерами, с
другой стороны, с последующей их связью. При этом значение α
может быть уменьшено до 1. Покажите как работает этот метод
[Cheng86].
17. Систолический массив на разрядном уравне для умножения
матриц. Покажите, что систолический массив на разрядном уровне
для вычисления скалярного произведения на рис. 4.23. а, может
быть также использован для умножения матриц.
300
Глава 4
18. Систолический массив для задач димамического
программирования [Chen86]. Многие задачи динамического программирования,
связанные с минимизацией некоторой функции стоимости ф'.у),
могут быть сформулированы в следущем виде:
с(Ц)
|*s > 0 —» min{F(c(itk),c(kJ)))}, где F - некоторая
i<k<l функция,
= 0 —» с i для некоторой отдельной стоимости,
где 5 = / - i - 1, i и / - целые числа, 0 < i < j ^ η для
некоторой константы п.
а) Постройте ГЗ для этого алгоритма. Отметим, что ГЗ может не
быть локальным, т.е. необязательно все дуги зависимости являются
локальными.
б) Локализацией ГЗ и выбором соответствующих проекции и плана
получите систолический массив размером п(п - 1)/2.
19. Кадры алгоритма Гуибаса. Первый систолический алгоритм
для задачи о транзитивном замыкании был предложен Гуибасом и др.
[Guiba79], хотя он и далек от оптимального с точки зрения
времени вычисления или конвейерного такта. Алгоритм Гуибаса состоит
из нескольких проходов, включающих булевы операции типа
матричного умножения. Входные матрицы Л и Л, где вначале А - А. Массив
содержит Ν χ N ПЭ. Обозначим значения, помещенные в ПЭ(/,/),
через Ь... На каждом проходе алгоритма процессор (/,/) выполняет
следующие шаги.
1) Булево матричное умножение Ь.. = Ь.. + (а.г а' ), т.е.
если а.,, и а' равны 1, то Ь.. устанавливается равным 1, в
противном случае Ь.. остается без изменения.
2) Одностороннее обновление данных. При t = k (k-n шаг
рекурсии) α., будет обновляться в ячейке (i,k)
aik *~ aik + Bik »
и новое значение а. будет переслано всем ячейкам, находящимся
справа, т.е. ячейкам (/,/) для всех / > k. (Отсюда термин - од-
носторонее обновление). Аналогично, при t = k а' будет
обновляться в ячейке (&,/).
Три прохода. Систолический алгоритм Гуибаса состоит из трех
одинаковых проходов. После завершения первого прохода и
достижения данными самых правых (или самых нижних) ячеек данные
немедленно возвращаются в левые (или верхние) стеки с тем, чтобы
начать следующий проход или быть готовым к нему. Отметим, что
для реализации этих возвратов необходимы циклические связи. По
Систолические матричные процессоры 301
окончании трех проходов в массиве значения Ь.. заменятся
результатом а* . Отметим, что в схеме требуются глобальные связи.
Используя понятие кадров из разд. 4.5, постройте кадры
первого прохода ГПС-массива (в котором предполагается распространение
значения) алгоритма Гуибаса для графа, показанного на рис. 4.37,
20. а) Первый проход алгоритма Гуибаса. Из кадра для
последней задачи должно быть ясно, что хотя узлы 5 и 6 связаны после
первого прохода, узлы 5 и 1 оказываются после первого прохода не
связаны. Объясните почему.
б) Второй проход алгоритма Гуибаса. Как показывают кадры,
один проход не может завершить алгоритм Гуибаса. Продолжая
строить кадры для узла 6, покажите, что в этом случае достаточно
двух проходов.
21. Проверка алгоритма Гуибаса. Покажите, что для вычисления
транзитивного замыкания любого ориентированного графа требуются
три прохода алгоритма Гуибаса.
τ
22. Проекция ГЗ в направлении [1 1 1] для задачи
транзитивного замыкания.
а) Получите ГПС, проецируя ГЗ-1 (рис. 4.41) в направлении
[1 1 1]т
б) Как следует модифицировать этот ГПС, чтобы он превратился
в гексагональный ГПС на рис. 4.47?
23. Проверка оптимальности массива для задачи транзитивного
замыкания. Выше было показано, что для вычисления транзитивного
замыкания графа с N узлами оптимальный систолический массив
требует 5^-4 шагов. Подтвердите это утверждение, моделируя
действие такого систолического массива. Отметим, что время
вычисления Τ равно
Τ = Gentime(jt(W,jV,jV)) - Gentime(*(l, 1,1)) + 1,
где Gentime(*(/,/,fc)) - время, требуемое для порождения (/,/,£)·
24. Управление загрузкой данных. Обращаясь к ортогональному
систолическому массиву на рис. 4.49, отметим, что первая строка
вводимой матрицы первой загружается в первый ряд ПЭ массива и
остается там, чтобы быть использованной повторно в следующие N
тактов. Аналогичные действия (с другими данными) происходят в
других ПЭ. Опишите простой способ управления работой ПЭ в
массиве для корректного выполнения вычислений, описанных ГЗ-3.
25. Подтверждение сходимости модели Хопфилда. В предположении
Τ = Т.. и Τ = 0 покажите, что используя дискретную модель
302
Глава 4
Хопфилда, описанную уравнениями (4.14), нейроны будут всегда
изменять свои состояния таким образом, чтобы минимизировать
функцию энергии, определенную уравнением (4.18).
26. Нахождение синаптических воздействий и входов. Покажите,
что подходящими матричными преобразованиями и сравнением
уравнений (4.18) и (4.23) можно представить соответствующую матрицу
синаптических воздействий Τ и вектор входа / для данной задачи в
виде уравнений (4.24).
27. Переключение операций систолического массива. Как было
показано в разд. 4.6.2, систолический массив на рис. 4.53,
основанный на стандартном каскадном ГЗ, требует стратегии
интеллектуального управления переключением ПЭ на выполнение различных
операций. Опишите все различные операции, выполняемые этим
массивом, и предложите стратегию управления переключением ПЭ на
выполнение таких операций.
28. Цилиндрический систолический массив. Идея
переупорядочения массива данных в ГЗ для задач последовательного умножения
матрицы на вектор и получения кольцевой матричной архитектуры
легко может быть распространена на последовательное умножение
матриц в задачах оценивания и управления [Porte86]. В результате
будет получен двумерный цилиндрический систолический массив.
Опишите модифицированный каскадный ГЗ и результирующий
систолический массив для следующей задачи последовательного умножения
матриц:
d(k + 1) = Ad(k),
где А - матрица 4 χ 4 и d - вектор длиной 4.
29. Двумерное размещение одномерного кольцевого массива. В
большинстве случаев ИНС будет состоять из большого числа простых
ПЭ и это приводит к появлению длинного скрученного провода. Для
решения этой проблемы можно использовать двумерное размещение
Ν χ N ПЭ (при четном N). Опишите конфигурацию связей в таком
двумерном размещении.
30. Применение модельного отжига в модели Хопфилда. Если в
уравнении (4.17) параметр регулировки усиления xQ заменить на 7\
a tgh(x) - на функцию экспоненты, то какой станет операция
порогового усиления?
Сравните этот результат со стохастическим определением машины
Больцмана [Ackle85], приведенным в разд. 2.5. Покажите, что
такие изменения превращают модель Хопфилда в машину Больцмана.
31. Процедуры отжига закалкой. Когда взвешенное отношение
Систолические матричные процессоры
303
между функцией стоимости и жесткими ограничениями становится
очень малым, решение должно быть усилено, чтобы удовлетворять
жестким ограничениям. Предположим, что два множества узлов
размером 3 согласованы с весовой матрицей W, равной
W
А 6 7
5 3 6
2 7 4
Найдите состояния решения ν = [V..], itj = 1,2,3, которые
минимизируют квадратичную функцию энергии, представленную уравнением
(4.29). Τ и i могут быть получены при использовании уравнения
(4.30) для следующих весовых констант:
а)Л = 1иЯ = С=/)=1.
б) А = 1 и В = С = D = 50.
в)Л = 1иЯ=С=£ = 1000.
Указание. Функция энергии, выраженная уравнением (4.18),
может быть также представлена в следующей матричной форме:
Ε = -ί/2ντΤν - iTv.
32. Объединение методов закалки и модельного отжига в
систолической ИНС. Введение модельного отжига в систолическую ИНС
предполагает итерационное изменение функции порогового усиления
g(\U). Закалка в систолическую ИНС вводится возможностью ПЭ
обновлять значения Т.. и /...
а) Покажите, что в примере совершенного согласования
обновленные значения Т^ ., ^ Jk + 1) и /1 , могут быть записаны
в виде
ГЛ.Л.Й.У2<Л + λ> 7,Л.Л./2,/2<Л) + т^)51^ЛГ/1,/1,й,/2 ·
7/ι./ι<* + х> 7л.л(Л) + rn(k)s2(k)Un п ,
где маскирующая функция m(k) = 1 или 0 и s^k), s2(k) -
соответствующие коэффициенты масштабирования, например s(k) = 2 ^ \
где <r(k) - неубывающая последовательность целых чисел, и
Δ7λ/1,/2,/2 = " ΔΜ/ι,/2<1 " 6fl.fl) "
" Δ«,ι,/2(1 -δα/2)"
- AD,
Δ/., м = LDn - -^-w м.
304
Глава 4
Рис. 4.63. ГПС-массив для иллюстрации использования допустимых
сечений.
б) Операция закалки и операция отжига могут быть выполнены в
процессе "работы" ИНС. Предложите стратегию для реализации этих
модификаций, которая не замедляет работу систолического массива.
33. Допустимые сечения. Граф на рис. 4.63 является ГПС с 4
узлами. Определите все возможные сечения и охарактеризуйте их
кака допустимые и недопустимые. Используя три процедуры систоли-
зации сечением, основанные на трех различных последовательностях
сечений, найдите три различных систолических массива с
оптимальным значением а. Поясните, что такое полностью оптимальный сис-
толизованный граф. Каковы его конвейерный такт и скорость
конвейера?
34. Задача о кратчайшем маршруте. Во многих приложениях
необходимо знать не только расстояние кратчайшего пути между любой
парой узлов в графе, но также и действительно кратчайший маршрут
(т.е. сам путь) между любой парой узлов в графе. Модифицируйте
алгоритм и систолический массив разд. 4.5.2 и получите
оптимальный систолический массив для вычисления кратчайшего расстояния и
маршрута между любой парой узлов в ориентированном графе.
Глава 5. ВОЛНОВЫЕ МАТРИЧНЫЕ
ПРОЦЕССОРЫ
5.1. ВВЕДЕНИЕ
В гл. 4 говорилось о том, что систолические массивы хорошо
приспособлены для СБИС-реализации вычислительно емких алгоритмов
обработки сигналов и изображений. Они обладают такими
достоинствами, как модульность, регулярность, локальные межсоединения,
высокая степень конвейерной мультиобработки и непрерывный поток
данных между ПЭ. Недостаток систолических массивов состоит в
глобальном управлении их функционированием с помощью потактовой
синхронизации. В аппаратурной реализации глобальная
синхронизация приводит к проблемам расфазировки синхронизирующих
импульсов, отказоустойчивости и пиковой мощности. Простое решение этих
проблем в матричных процессорах состоит в применении принципа
вычислений с управлением потоком данных, что и является основной
темой данной главы.
В отличие от фоннеймановской машины, традиционной ЭВМ с
хранимой программой, которая основана на потоке управления (т.е.
команды выполняются в соответствии с потоком управления,
задаваемым программой), ЭВМ с управлением потоком данных для запуска
команды на исполнение используют поток данных. Другими словами,
в машинах с управлением потоком данных команда ставится в
очередь на выполнение только после того, как получены все
активизирующие ее операнды. Результат выполнения команды в свою очередь
продвигается дальше и используется другими командами. Такой
подход исключает необходимость в глобальном управлении и глобальной
синхронизации. Благодаря этому для матричной обработки можно
использовать подход, основанный на управлении данными и
автосинхронизации. При этом четко отслеживаются зависимости данных, так
как выполнение команд зависит от доступности их операндов. Кроме
того, этот подход заменяет требование корректной синхронизации
требованием корректного порядка следования.
Работа универсальной ЭВМ, управляемой потоком данных, часто
сопряжена с большим объемом управляемых данных и ресурсов, для
чего требуется мощная управляющая система. По этой причине
современные ЭВМ с управлением потоком данных недостаточно
эффективны. Как показано в предыдущих главах, большинству алгоритмов
присущи свойства модульности и локальности^ которые легко могут
быть использованы. Соответствующее отображение этих свойств в
20—1028
306
Глава 5
мультипроцессорные системы с управлением потоком данных может
упростить проблемы обмена и конфликтов при обращении к памяти в
универсальных ЭВМ подобного типа. Это соображение приводит к
идее волнового матричного процессора.
5.2. ОБЩИЕ ПРЕДСТАВЛЕНИЯ О ВОЛНОВЫХ
МАТРИЧНЫХ ПРОЦЕССОРАХ
5.2.1. Синхронные и асинхронные матричные процессоры
Структуры матричных процессоров можно разбить на две основные
группы: синхронные и асинхронные. При увеличении размеров матриц
и тактовой частоты синхронные структуры, основанные на
глобальной синхронизации, становятся менее эффективными, что приводит к
необходимости использовать другие возможные схемы синхронизации.
Несколько схем синхронизации (представляющих переход от
синхронных структур к асинхронным) могут быть проиллюстрированы на
примере кольцевого матричного процессора [Dolec84]. В кольцевом
матричном процессоре использовано последовательное соединение
узловых процессоров, т.е. выход процессора / соединяется с
входом процессора /+1 и т.д., а выход процессора η соединен со
входом первого узлового процессора, как показано на рис.5.1, а. В
обычной конфигурации один узловой процессор используется для
операций ввода-вывода, а центральный тактовый генератор - для
синхронной передачи данных по кольцу (например, кольцевой
систолический процессор). Как уже говорилось выше, в больших
(длинных) матричных процессорах расфазировка синхронизирующих
импульсов может быть значительной. Одной из схем, снижающей эффект
расфазировки, служит схема с трансляцией синхроимпульсов,
которая показана на рис 5.1,6. В этой сети каждый процессорный
элемент (ПЭ) использует синхроимпульсы, поступающие от левого ПЭ, и
генерирует новый синхроимпульс для передачи правому ПЭ. Таким
образом, передача данных ресинхронизирована с помощью
синхроимпульсов в каждом ПЭ. К сожалению, такую схему нельзя
использовать в более сложных структурах матричных процессоров, таких,
как двумерный матричный процессор.
Добавление пакетов команд и данных в кольцевой процессор
(рис. 5.1,в) позволяет каждому ПЭ ш связываться со всеми другими
ПЭ в сети при отсутствии прямых каналов связи. Команда - это
процессорная операция высокого уровня (такая, как "загрузить
программу" или "прочесть данные из шины"), адресованная одному
Волновые матричные процессоры
307
конкретному ПЭ или подсистеме ПЭ. Каждый процессор читает
входные сообщения, передавая дальше только те из них, адреса
назначения которых отличаются от его собственного адреса. Таким
образом, при использовании механизма сообщений отпадает надобность в
шине. Если каждый процессор отправляет сообщения только
соседнему с ним процессору, полоса пропускания по шине не растет.
В кольцевом процессоре может быть также использована и
асинхронная схема синхронизации, что порождает асинхронную структуру
передачи данных (рис. 5.1,г). В этой структуре каждый ПЭ имеет
двунаправленный буфер, независимое состояние и управляющие
флажки для подтверждения связи со смежными элементами. Эта структура
устраняет синхронизацию между элементами, допускает применение
локально-синхронизируемых ПЭ с различной тактовой частотой и
позволяет для разных ПЭ использовать кристаллы СБИС разных се-
^-""ΊΠ
ПЭ]
h
ПЭ
w
\
ПЭ
\
ЭЬ-^
/
Центральный 1
тактовый г
генератор |
/
1 Г
, \
1Э1^
J
V
ПЭ
W
ПЭ
ч
Синхр.
ч\
ПЭ
JL.
пэ[
J^
I,
г Ρ
ПЭ
\дресг
оман;
1
Ί
г ,j_^
ΪΓ
нпэ
Ίί
пэ
»
ПЭ
Ld
ПЭ
ПЭ
ПЭ
ПЭ
ПЭ
\
ПЭ
τ
j
Рис. 5.1. Синхронный кольцевой массив (а), кольцевой массив с
транслирующимся тактом (б), кольцевой массив с транслирующимся
тактом, управляемый пакетами команд и данных (в), и асинхронный
кольцевой массив (г) (из работы [Dolec84]).
2(μ
308
Глава 5
мейств. Единственное требование - наличие общей структуры интерн
фейса в виде кольцевой шины. Такая структура может рассматрц^
ваться как волновой кольцевой матричный процессор.
Идея управления потоком данных (т.е. идея асинхронной переда-.
чи данных) была поддержана для использования в больших матрицах
процессоров, что привело к разработке волновых матричных
процессоров (ВМП) [Kung82a]. В этом подходе поступление данных от
соседних процессоров интерпретируется как сигнал к изменению
состояния и активации новых действий. Такой принцип управления
данными напоминает распространение волнового фронта. Он определяет
распределенную и глобально асинхронную структуру матричной
процессорной системы, реализация которой наилучшим образом
согласуется с технологией СБИС.
5.2.2. Определение волновых матричных процессоров
Определение, Волновой матричный процессор представляет собой
вычислительную сеть, обладающую следующими свойствами:
1. Автосинхронные вычисления, управляемые данными. Глобальная
синхронизация не требуется, так как вычисления - автосинхронны.
2. Регулярность, модульность и локальные межсоединения.
Матричный процессор должен содержать модульные процессорные
элементы с регулярными и (пространственно) локальными межсоединениями.
Кроме того, вычислительная сеть может быть неограниченно
расширяема.
3. Возможность программирования на волновом языке или путем
задания графа потока данных (ГПД). Волновые матрицы могут быть
реализованы в виде специализированных или программируемых
процессоров, однако последние более предпочтительны. Использование
волновых алгоритмов вычислений может упростить программирование
матричных процессоров.
4. Конвейер с линейным ростом ускорения. Волновой процессор
должен обеспечивать линейный рост ускорения, т.е. достигать
ускорения О(М), где Λί - число ПЭ.
Отметим, что основное свойство, отличающее волновой
процессор от систолического процессора - свойство управляемости
данными, т.е. в волновом процессоре отсутствует глобальная
синхронизация. В волновой архитектуре передача информации между ПЭ
производится на основе взаимодействия ПЭ с его непосредственными
соседями. Всякий раз, когда данные оказываются доступны,
передающий ПЭ информирует об этом принимающий ПЭ, который принимает
Волновые матричные процессоры 309
данные, когда они ему требуются. Затем принимающий ПЭ посылает
отправителю подтверждение о получении данных. Эта схема может
быть реализована с помощью простого протокола подтверждения свя-
зй [Kung82a, Kung82b], который гарантирует, что вычислительные
волновые фронты следуют в правильной последовательности и не
приводят к разрушениям других фронтов.
Существует простой способ сравнения волнового процессора с
его систолическим аналогом:
Волновой процессор = Систолический процессор + вычисления,
управляемые потоком данных.
Другими словами, волновая обработка использует локальность
потока данных и потока управления, присущую многим алгоритмам
обработки сигналов. Поскольку нет необходимости синхронизации
работы всего процессора, волновой процессор представляет собой
архитектурно-расширяемую структуру. Волновой матричный процессор
обладает большинством достоинств систолического процессора,
такими, как обширная конвейеризация и многопроцессорная обработка,
регулярность и модульность. Кроме того, он обладает возможностью
асинхронной обработки, основанной на управлении данными и
присущей ЭВМ с управлением потоком данных, и может, следовательно,
упростить серьезную проблему неопределенности синхронизации в
матричных процессорах на СБИС.
5.2.3. Волновой матричный процессор и другие матричные
архитектуры
Ниже приводится сравнение волновых матричных процессоров с
систолическими процессорами, SIMD-процессорами и MIMD-мультипро-
цессорами. Полное и объективное сравнение не всегда возможно,
поскольку существуют сложные взаимосвязи между многочисленными
критериями, такими, как программируемость, модульность,
синхронизация и взаимодействие процессоров. Для выделения характерных
отличий этих архитектур предлагается классификация, показанная
на рис. 5.2. Отметим, что систолический процессор имеет
локальные коды команд, а внешние данные прокачиваются через массив
параллельно с обработкой. Волновые и SIMD-процессоры
представляют относительно более сложные классы. SIMD-процессор имеет
управляющие шины (командные шины) и шины данных (вместо локальных
кодов команд, применяемых в систолических процессорах). Волновые
процессоры обеспечивают также возможность обработки, основанной
310
Глава 5
Глобально
синхронизируемые
Управляемые
данными
Данные поступают
через граничные ПЭ
ν. Данные предварительно
$ШШр^* загружаются по шине
данных
-^. Ввод-вывод
данных
("Зашитое" локальное
управление
(например, MWAP))
Схема
синхронизации
Рис. 5.2. Классификация машин SIMD-, MIMD-, систолических и
волновых процессоров.
на управлении данными. MIMD-мультипроцессоры обладают всеми
свойствами, упоминавшимися выше, и дополнительным свойством -
общей памятью. Ниже приводится более детальное сравнение.
MIMD-мультипроцессоры и мультипроцессоры с управлением потоком
данных
Для реализации на СБИС более привлекательны асинхронное
распределенное управление и локальная связь (как для управления,
так и для данных). В отличие от MIMD-процессоров волновые
процессоры используют локальную связь, локальное хранение команд и
управление, основанное на потоке данных, что делает их
пригодными для изгтовления на СБИС и реализации большого числа
алгоритмов, обладающих локальностью и рекурсивностью. Преимущества для
специального класса приложений сводятся к легкости
программирования, функциональной модульности и последовательному сокращению
стоимости проектирования. Текущие исследования связаны с поиском
оптимального компромисса между специализацией волновых
процессоров и универсальностью MIMD-структур.
Мультипроцессор с управлением потоком данных и волновой
процессор обладают свойствами автосинхронизации и выполнения
вычислений, управляемых потоком данных. Основной принцип волновой
архитектуры состоит в том, что каждый ПЭ ждет прибытия исходного
Волновые матричные процессоры 311_
волнового фронта, затем выполняет необходимые вычисления и после
этого действует как вторичный источник новых волновых фронтов.
Это эквивалентно основной идее машин с управлением потоком
данных, т.е. поступление данных активизирует каждый ПЭ, который
затем посылает соответствующие данные следующему ПЭ.
Следовательно, волновой матричный процессор можно рассматривать как
массив из однородных процессорных элементов с управлением
потоком данных.
И волновой процессор, и мультипроцессор с управлением потоком
данных имеют общее принципиальное свойство: они являются
глобально асинхронными, т.е. планирование и синхронизация не
централизованы, а распределены, что способствует эффективному
распараллеливанию на микроуровне. Поскольку обе эти архитектуры
основаны на языках программирования, они поддерживают отображение
прикладных алгоритмов непосредственно на мультипроцессор
способом, обеспечивающим высокую производительность.
Сравнение с систолическими процессорами
Систолические и волновые процессоры имеют много общего, в
частности использование большого числа модульных и локально
связанных процессоров, обеспечивающих массовую конвейерную и
параллельную обработку. Различия заключаются в схемном исполнении
(например, в устройствах тактового генератора и буферов),
возможностях архитектурного расширения, эффективности конвейера,
программируемости на языке высокого уровня и способности
справляться с временной неопределенностью в отказоустойчивых схемах.
Синхронизация. Схема синхронизации является критическим
фактором для матричных систем большого объема, так как при
глобальной синхронизации часто случается расфазировка синхронизирующих
импульсов. Временная задержка синхронизации в систолических
процессорах происходит главным образом из-за расфазировки
синхроимпульсов, которая в сильной степени зависит от размеров
систолической матрицы. С другой стороны, в волновом процессоре,
управляемом данными, глобальная синхронизация не требуется и
достаточно только локальной. Однако асинхронной модели, управляемой
данными, присущи фиксированная временная задержка и
дополнительные аппаратные затраты на квитирование установления связи.
Скорость обработки и степень конвейеризации. Вычисления,
управляемые данными, в волновом процессоре можно ускорить за счет
конвейеризуемости. Это особенно полезно в том случае, когда от-
312
Глава 5
дельные ПЭ характеризуются различными временами обработки. Как
показано на рис. 4.28, оптимальная систолическая схема требует
среднее значение конвейерного такта а=3. Вследствие асинхронной
обработки в волновых вычислениях, средний конвейерный такт для
той же сети будет составлять а=2,5. Кроме того, во многих
задачах время вычислений зависит от поступления данных. В синхронном
процессоре должен быть выбран "наихудший" такт, тогда как
асинхронная обработка позволяет выполнить то же вычисление за
меньшее время. Эта возможность очень важна, например во многих
операциях с разреженными матрицами. В среде обработки, зависимой от
данных, обычное умножение матриц требует намного меньше времени,
чем умножение на регулярной решетке. Поэтому для увеличения
скорости вычислений могут быть применены методы волновой обработки
[Melhe86]. Моделирование решения задачи минимизации рекурсивным
методом наименьших квадратов показало, что волновой процессор
способен работать почти в два раза быстрее, чем глобально
синхронизируемый систолический процессор [Вгоот85].
Программируемость. Программирование волновых процессоров
означает определение последовательности операций для каждого ПЭ.
Каждая операция включает следующие спецификации:
• тип вычисления (сложение, умножение, деление, и т.д.);
• входной канал данных (например, север, юг, восток, запад
или внутренний регистр);
• выходной канал данных.
Отметим, что при программировании систолических процессоров с
фиксированными соединениями требуются дополнительные
спецификации планирования операций, поскольку необходима корректная
синхронизация. Этого, однако, не требуется при программировании
волновых процессоров благодаря принципу их работы с управлением
данными. В этом смысле программирование волновых процессоров
легче, чем систолических. Программирование волнового процессора
может быть легко осуществлено на основе описания вычислительных
структур в виде графа потока данных и использования подходящих
языков, таких, как Матричный Язык Потока Данных (Matrix Data
Flow Language - MDFL) и Оккам.
Отказоустойчивость. В то время как для линейных систолических
процессоров известно множество отказоустойчивых схем [HTKun83],
двумерные систолические процессоры в общем непригодны для
реализации отказоустойчивости, поскольку они требуют глобального
прерывания работы всех ПЭ в случае появления любой ошибки.
Известно, что некоторые приемы обеспечения отказоустойчивости (возвра-
Волновые матричные процессоры 313
щение, приостановка выполнения и т.д.) легче осуществить в
архитектуре потока данных, чем в любых других мультипроцессорах
[Denni80]. Поскольку волновые процессоры используют свойство
управляемости данными, они обеспечивают те же достоинства и при
устранении временной неопределенности в отказоустойчивой среде,
где действующие пути связи меняются из-за необходимого обхода
отказавших ПЭ. При обнаружении отказа благодаря свойству
управляемости данными дальнейшее распространение волнового фронта
может быть автоматически приостановлено (гл. 6).
Пиковая мощность и качество источника питания. В больших
матричных процессорных системах часто нецелесообразно
синхронизировать пересылку данных между большим числом ПЭ, так как передача
между этими ПЭ происходит одновременно. Это может привести к
проблемам наводки помех в шинах питания из-за больших токов
перегрузки, вызванных одновременной запиткой или изменением
состояния компонентов процессора (например, буферов). С этой точки
зрения волновые процессоры более пригодны для реализации
крупномасштабных систем.
Систолический или волновой процессор? Выбор между
систолическим и волновым процессором зависит от нескольких важных
факторов, таких, как (глобальная) синхронизация, программируемость,
сложность аппаратуры, возможность расширения, отказоустойчивость
и тестируемость. Окончательный выбор между двумя матричными
процессорами зависит от специфики предполагаемых применений. В
общем случае систолический процессор полезен тогда, когда ПЭ
представляют собой исключительно простые модули, так как аппаратура
установления связи в волновом матричном процессоре будет
составлять заметную долю для таких применений. С другой стороны,
волновой процессор лучше применять в тех случаях, когда модули ПЭ
являются более сложными (например, устройство умножения и
сложения с плавающей запятой), когда синхронизация большого
матричного процессора становится неэффективной или когда существенна
надежность (например, отказоустойчивость) вычислительной среды.
5.3. ОТОБРАЖЕНИЕ АЛГОРИТМОВ НА
ВОЛНОВЫЕ ПРОЦЕССОРЫ
Существуют три подхода при формировании волновых процессоров:
1. Трассировка вычислительных волновых фронтов и их
"прокачка" через матрицу процессоров.
2. Отображение ГЗ непосредственно на волновой процессор (или
ГПД).
314
Глава 5
3. Преобразование матричного процессора, описанного ГПС, в
волновой процессор (ГПД) с помощью соответствующего
представления нескольких ключевых элементов аппаратуры с управлением
потоком данных.
5.3.1. Понятие вычислительных волновых фронтов
Понятие вычислительных волновых фронтов предлагает очень
простой способ разработки вычисления волнового фронта, который
состоит из трех шагов:
1. Разбить алгоритм на упорядоченную последовательность
рекурсий.
2. Отобразить рекурсии на соответствующие вычислительные
волновые фронты в процессоре.
3. Последовательно "прокачать" волновые фронты через матрицу
процессоров.
Пример 1. Волновая обработка для умножения матриц
Понятие вычислительных волновых фронтов может быть лучше
всего проиллюстрировано на примере алгоритма умножения матриц
С=АхВ. Топология алгоритма умножения матриц может быть
естественно отображена на квадратный ортогональный волновой матричный
процессор размером NxN, как это показано на рис 5.3.
Вычислительная <:еть служит средством для распространения волн (данных).
Рассмотрим более подробно вычислительный волновой фронт для
первой рекурсии умножения матриц. Предположим, что регистры всех
ПЭ вначале установлены в нуль:
С(^= 0 для всех (/,/).
Элементы матрицы А записаны в модулях памяти, находящихся на
рисунке слева (в столбцах), а элементы матрицы В - в модулях
памяти, находящихся сверху (в строках). Процесс начинается в ПЭ
(1,1), который вычисляет:
С<}> = С<°> + оп * *„. (5.1)
Затем вычислительная активность распространяется к соседним
ПЭ (1,2) и (2,1), которые вычисляют
сп = ci? + аи * *и· <5·2>
C*l = С2Х + «21 * *1Г <5·3>
Волновые матричные процессоры
315
МОДУЛИ ПАМЯТИ
ПРОГРАММА
ПАМЯТЬ
1+Δ+Τ
' /1+ Δ
ФРОНТ 1
1+2Δ+Τ
/ ,1+2Δ
* "5
1+3Δ+Τ
/ ,,1+3Δ
ФРОНТ 2
/\ / /
1+4Δ+Τ
\' 1+4Δ
фронт з' /\ / /
F-
Μ »■
1+5Δ+Τ
/
k/ 1+5Δ
/ / ι Τ+6Δ+Τ
/ / \/ 1+6Δ
/
ЛтГ /^
1+7Δ+Τ
ΙΑ 1+7Δ
ФРОНТ 4 У / / / / '
' ФРОНТ 5 ' ФРОНТ 6 ' ФРОНТ 7 '
Первая волная
Вторая волна
Δ = Время передачи данных
Τ = Время выполнения арифметических операций
Рис. 5.3. Выполнение на волновом процессоре операции умножения
матриц. В этом примере волновой процессор состоит из ΝχΝ
процессорных элементов с регулярными и локальными межсоединениями.
Показаны первые 4x4 процессорных элемента. Вычислительная сеть
служит носителем распространения волн (данных). Следовательно,
аппаратура поддерживает конвейеризацию вычислительных фронтов,
скорость которой зависит от доступности ресурсов и данных,
определяемой обычно с помощью протокола подтверждения связи
([Kung82a]). Средний интервал времени Τ между двумя различными
волновыми фронтами определяется доступностью операндов и
операторов.
Следующий фронт активности затронет ПЭ (3,1), ПЭ (2,2) и ПЭ
(1,3). Активизируя таким образом ПЭ, волновой фронт вычислений
продвигается к выходу процессора. Этот вычислительный волновой
фронт похож на оптический волновой фронт (оба подчиняются прин-
316
Глава 5
ципу Гюйгенса ), поскольку каждый процессорный элемент, действуя
как вторичный источник, ответствен за распространение волнового
фронта. Следует отметить, что распространение волны означает
локализованный поток данных. Как только волновой фронт охватит
все клетки, первая рекурсия заканчивается. В процессе
распространения первой волны параллельно может может выполняться
идентичная вторая рекурсия путем запуска в конвейере второго
волнового фронта непосредственно после первого. Например, ПЭ (1,1)
вычисляет
С*? = С<;> + в12 * Ь21 = ап » Ь„ + а,2 * Ьи. (5.4)
Аналогично, каждый ПЭ (/',/) будет вычислять (от k=\ до N)
4?-*(ιΓΙ) + β«·νβΜ.ι»1/ +
+ αί2* b2/+-+ei* *bki И ТД·
(5.5)
В волновых вычислениях пригоден метод конвейеризации, потому
что волновые фронты двух последовательных рекурсий никогда не
пересекаются. Процессоры, вычисляющие рекурсии, в любой заданный
момент времени различны, поэтому какие-либо конфликты исключены.
Отметим, что последовательная конвейеризация волновых
фронтов привносит дополнительные возможности параллелизма. Различные
роли конвейера и параллельных вычислений также становятся
очевидными, если тщательно проследить, как параллельно работающие
вычислительные волновые фронты последовательно "прокачиваются"
через матричный процессор. В общем случае активность
параллельных" вычислений всегда охватывает ПЭ одного и того же фронта,
тогда как конвейерная активность перпендикулярна фронтам. На
примере волновых вычислений на рис. 5.3 можно заметить, что
недиагональные ПЭ действуют параллельно, так как каждый ПЭ
обрабатывает информацию независимо. С другой стороны, конвейерная
обработка имеет место в диагональном направлении, в котором
прокачивается волновой фронт.
Принцип Гюйгенса устанавливает, что каждая точка волнового
фронта может рассматриваться как новый источник "вторичного"
сферического возмущения. Тогда волновой фронт в любой
последующий момент времени может быть найден построением "оболочки*
вторичных волн [Goodm68]. Следовательно, два фронта никогда не
пересекаются.
j Волновые матричные процессоры 317
5.3.2. Отображение ГЗ на волновые процессоры. Модель ГПД
Важно формализовать и систематизировать разработку волновых
процессоров непосредственно по описаниям алгоритмов. Ниже в
качестве формальной абстрактной модели ВМП предлагается граф
потока данных (ГПД) и обсуждается способ отображения ГЗ на ГПД.
Модель ГПД
ГПД представляет собой взвешенный ориентированный граф
ГПД = [N,A,D(a)9(Ha)rtn)l (5.6)
в котором вершины из N моделируют вычисление, а дуги из А
моделируют асинхронную связь. Каждой вершине η приписан
неотрицательный вес τ(η), представляющий время ее вычисления. С каждой
дугой связана очередь, длина которой представлена положительным
о
целым весом Q(a) .
Каждая дуга связана также с неотрицательным целым весом D(a)f
представляющим начальное число маркеров данных на дуге
(начальное состояние). Состояние ГПД представлено распределением
маркеров по его дугам. Эти маркеры представляют значения данных
- начальные значения или промежуточные результаты. При анализе
вычислительного поведения ГПД нет необходимости рассматривать
фактические значения данных· (фактические значения определяют
конечный результат вычисления, а не то, как оно было выполнено).
Каждая дуга может содержать неотрицательное число маркеров,
меньшее или равное длине ее очереди. Эти маркеры могут
рассматриваться как частичное заполнение очереди дуги, при этом часть
очереди остается пустой. Каждый пустой элемент очереди
называется пробелом. Поэтому каждая дуга связывается также с
неотрицательным целым весом 5(a), представляющим начальное число
пробелов на дуге. Очевидно, что
Q(a) = D{a) + 5(a), (5.7)
Для ознакомления с терминологией теории графов см. разд. 3.2.
о
Использование очередей - один из методов реализации
асинхронной связи в волновом процессоре. Очередь является механизмом для
записи и считывания данных и может быть реализована программным
или аппаратным способом.
318
Глава 5
Рис. 5.4. ГПД перед запуском п~ (а) и после запуска л3 (б).
следовательно, начальное состояние ГПД может быть представлено
распределением маркеров или пробелов на его дугах.
На рис. 5.4 показан пример ГПД. Вершины изображены кружками,
а дуги - стрелками. Время вычисления вершины τ(/ι) записано
внутри кружка. Размер очереди на дуге Q(a) представлен поперечными
штрихами. Число маркеров на дуге D(a) представлено точками в
местах пересечения штрихов с дугой. Тогда пробелы на дуге
соответствуют штрихам без точек.
Состояние ГПД в любой момент времени представлено
распределением маркеров (или пробелов) на его дугах. Поскольку размер
очереди фиксирован, уравнение (5.7) должно быть справедливо не
только для начального состояния при t = О, но и в любой момент
времени t :
Q(a) = D\a) + S\a). (5.8)
Изменения состояния происходят путем "запуска"
разблокированных вершин. Вершина разблокирована, когда все входящие дуги
содержат положительное число маркеров и все исходящие дуги
содержат положительное число пробелов. Вершина запускается после
разблокирования на время ее вычисления. Это означает, что маркеры
на входящих дугах и пробелы на исходящих дугах фиксируются на
время цикла вычисления. Новое состояние, возникшее после запуска
вершины, образуется путем удаления одного маркера (или
добавления одного пробела) из каждой входящей дуги запущенной вершины и
Мы используем D (а) и S(a) для обозначения числа маркеров и
пробелов на дуге а в момент времени /. Они принимают начальные
значения в момент времени t = О, которые обозначаются как
D(a) ξ D°(a) и S(a) = S°(a).
Волновые матричные процессоры 319
добавления одного маркера (или удаления одного пробела) в каждую
исходящую дугу. Благодаря условию разблокирования вершины
уравнение (5.8) справедливо для всех состояний. Кроме того,
предполагается, что каждая вершина не работает по конвейерному
принципу, так что новый цикл вычислений не может начаться до
завершения предыдущего цикла (другими словами, вершина не может быть
повторно разблокирована до тех пор, пока она работает после
первого запуска).
Это правило запуска проиллюстрировано на рис. 5.4. На
рис. 5.4,α вершина ηχ заблокирована, так как дуга а. не содержит
маркеров. Вершина я2 заблокирована, потому что дуга а2 не
содержит пробелов. Вершина п~ разблокирована и может быть запущена
через 3 единицы времени. Рис. 5.4,6 показывает состояние ГПД
после запуска вершины п~. Отметим, что время, в течение которого
маркер находится на дуге, не зависит явным образом от длины
очереди дуги, а зависит от общего характера потока данных.
Отображение графа зависимости (ГЗ) на графы потока данных (ГПД)
Волновой матричный процессор для выполнения алгоритма можно
получить прямым отображением ГЗ на ГПД. Предполагается, что ГПД
представляет собой программируемый волновой процессор и каждая
дуга имеет очередь (буфер типа FIFO), длина которой достаточна
для реализации заданных алгоритмов.
Для инвариантных относительно сдвига ГЗ некоторые граничные
вершины ГЗ могут иметь иную структуру зависимости (например,
меньшее число дуг), чем внутренние вершины. Для рассматриваемого
отображения необходимо усилить однородность путем присваивания
некоторых начальных данных (обычно таких констант, как нуль)
граничным вершинам с тем, чтобы все вершины имели одинаковые
дуги зависимости (рис. 5.5,6). В дальнейшем обсуждении все
входные данные, поступающие на граничные вершины, будут называться
входными маркерами данных.
Для инвариантных относительно сдвига ГЗ и данного направления
проекции. 3 ГПД можно получить способом, сходным с отображением
ГПС, но при этом элементы задержки необходимо заменить
начальными маркерами (D(a)). Каждый входной маркер в ГЗ отображается в
начальный маркер на соответствующей дуге в ГПД. Пример
отображения ГЗ в ГПД (вместе с его начальными маркерами) показан на рис.
5.5,6.
320
Глава 5
Рис. 5.5. Отображение ГЗ в систолический процессор (а) и
отображение ГЗ в ГПД (волновой процессор) (б).
В отличие от систолического отображения (показанного на рис.
5.5, а), отображение в ГПД не требует никакого планирующего
вектора ?, поскольку природа управления потоком данных в волновом
процессоре устраняет необходимость задания точной синхронизации.
Другими словами, работа волнового процессора зависит только от
структуры зависимости данных и доступности начальных маркеров.
Более того, основываясь на принципе управления потоком данных,
можно утверждать, что оптимальное (в соответствии с ГЗ)
планирование будет выполняться автоматически.
Действительно, допустим, что каждая вершина ГЗ назначена
определенному ПЭ, в этом случае будет достигнуто минимальное время
вычислений.. Предположим, что направление проекции 3 выбрано так,
что существует строгая зависимость между вершинами, которые
отображены в один и тот же ПЭ. Тогда последовательное вычисление
этих вершин одним ПЭ не должно вызывать дополнительного снижения
скорости вычислений, так что результирующий ГПД может выполнять
те же вычисления за минимальное время. Это наблюдение основывает
простое правило выбора направления проекции 2 (в
действительности, это правило полезно и для систолического отображения).
Если целевой функцией, которая должна быть минимизирована,
является конвейерный такт, то выбор 3 требует иных правил,
основанных на минимизации разницы времен для двух последовательных
вершин ГЗ, назначенных одному ПЭ.
В предыдущих обсуждениях предполагалось, что очереди в волно-
Волновые матричные процессоры 321
вых процессорах (или в ГПД) имеют размер, достаточный для
реализуемых алгоритмов. Недостаточный размер очереди часто приводит к
дополнительному замедлению вычисления. Поэтому естественно
задать следующий вопрос: каков минимальный размер очереди для
каждой дуги ГПД, при котором может быть достигнуто минимальное
время вычислений? Более детальное обсуждение представлено в разд.
5.4 и в задачах 6 и 7.
5.3.3. Получение ГПД из ГПС
Как указывалось выше, ГПС представляет собой распространенное
средство описания рекурсивных параллельных алгоритмов,
используемых в цифровой обработке сигналов. Ниже рассматриваются вопросы
эквивалентного преобразования ГПС в ГПД. Эквивалентное
преобразование ГПС в ГПД определяет следующая теорема:
Теорема 5.1. За исключением тупиковых ситуаций (когда нет
вершин, которые могли быть запущены), вычисление любого ГПС
может быть эквивалентно выполнено автосинхронизированной ЭВМ с
управлением потоком данных и с топологически идентичным ГПД.
Число начальных маркеров, размещенных на каждой дуге ГПД, равно
числу задержек на соответствующей дуге ГПС.
Доказательство. Необходимо проверить, что глобальная
синхронизация в ГПС может быть заменена соответствующей очередностью
маркеров в ГПД. Отметим, что передача маркеров при этом
"синхронизирована" процессорной вершиной. Когда речь идет об одной
вершине, это гарантирует, что относительное время между маркерами,
полученными вершиной, то же, что и в ГПС. По индукции это
утверждение может быть распространено для обоснования корректности
очередности во всей сети.
Замечание. В рассмотренном преобразовании, поскольку речь
идет только о функциональной корректности, приемлем любой размер
очереди, больший или равный числу начальных маркеров. Обсуждение
пропускной способности полученного ГПД приводится в разд. 5.4.
Для удобства назовем это преобразование эквивалентным
преобразованием ГПС/ГПД. Оно способствует созданию теоретических
основ волновых процессоров и пониманию методов программирования.
Значения D в ГПС обеспечивают правильное размещение начальных
условий в соответствующем волновом процессоре. Распределение
начальных маркеров играет принципиально важную роль в
обеспечении правильной очередности в вычислительной сети, управляемой
потоком данных. Установление начального состояния является не-
21 — 1028
322
Глава 5
посредственным: для каждой задержки в ГПС существует начальный
маркер (рассматриваемый как начальное значение), назначенный
соответс i вующей дуге ГПД. Отметим также, что в любую дугу может
быть вставлена очередь произвольной длины без нарушения
законности эквивалентного преобразования. Правда, это может вызвать
тупиковую ситуацию и повлиять на пропускную способность.
Пример 2. Разработка ГПД для линейного фазового фильтра.
Чтобы проиллюстрировать роль начальных маркеров и корректность
очередности, гарантируемую отношением эквивалентности, обсудим
эквивалентное преобразование ГПС/ГПД на примере линейного фазового
фильтра. Линейные фазовые фильтры обладают двумя основными
свойствами: они имеют симметричную импульсную функцию отклика, т.е.
h(n)=h(N-\-n)> и не вносят фазового искажения в сигнал. На рис.
5.6,α показан ГПС, который благодаря симметрии позволяет „ вдвое
сократить число устройств умножения. Эквивалентным
преобразованием ГПС/ГПД получен ГПД, приведенный на рис. 5.6,6. Чтобы
обеспечить правильный порядок следования данных, данные w должны
распространяться в два раза медленнее данных v.
Рассмотрим начальные условия в примере линейного фазового
фильтра, показанного на рис. 5.6, е. Заметим, что на каждой дуге
данных ν размещен один начальный маркер с нулевым значением, два
начальных маркера с нулевым значением размещены на каждой дуге
данных w. Первый маркер с нулевым значением на дуге данных ν
начинает продвижение по запросу суммирующей вершины ν, чтобы
встретиться с маркером ν, поступающим из верхней вершины. После
завершения операции путь свободен для отсылки следующего маркера
ν из ПЭ, находящегося справа. Для суммирующей вершины w ситуация
сходна, однако используется только маркер с нулевым значением и
данные w по-прежнему отстают на один маркер для встречи с
данными χ в суммирующей вершине. Необходимо ждать до тех пор, пока
данные ν и второй маркер с нулевым значением встретятся в
расположенной ниже суммирующей вершине. Это объясняет, почему
распространение w происходит медленнее, чем ν (что является
необходимым для обеспечения правильного порядка следования данных).
Как показывает пример, реализация линейного фазового фильтра
на волновом процессоре требует только Ο(Ν) очередей и имеет
наибольшую доступную скорость (вновь предполагается, что время
пересылки данных Δ намного меньше времени арифметического
вычисления Т). Результат находится в согласии с определенной
производительностью многоскоростного систолического процессора для
линейного фазового фильтра (разд. 4.3). Общее число очередей в вол но-
Волновые матричные процессоры 323
Рис. 5.6. ГПС для линейных фазовых фильтров (а), модель
управления данными (ГПД) для линейного фазового фильтра (б) и начальное
условие линейного фазового фильтра (г). Пустой буфер обозначен
штрихом на дуге, а заполненный - штрихом с точкой на нем.
Расположение и распределение начальных маркеров данных чрезвычайно
важно для обеспечения правильного порядка следования данных.
вом процессоре минимально, хотя это не является очевидным.
Возникает вопрос: как произвести распределения минимальных очередей
для достижения наибольшей конвейерной скорости для других,
значительно более сложных структур? Он будет рассмотрен ниже в
разд. 5.4.
5.4. ВРЕМЕННОЙ АНАЛИЗ И ОПТИМАЛЬНОЕ РАСПРЕДЕЛЕНИЕ
ОЧЕРЕДЕЙ
Ниже модель ГПД используется для анализа и оценки
производительности асинхронных волновых процессоров. Показано, что
оптимальная производительность и распределения минимальных очередей
определены структурой ГПД и состоянием его начальных маркеров.
Эти задачи рассмотрены сначала для общего случая, а затем для
случая регулярных волновых матричных процессоров. Для сравнения
представлен другой подход к проблеме оптимального распределения
очередей, основанной на временном анализе с помощью графа
зависимостей.
21'
324
Глава 5
Графы вычислений и сети Петри. Временной анализ проводился
для многих моделей параллельных вычислений. Ниже модель ГПД
сравнивается с другими важными моделями графов вычислений. Пер^
вой из использованных моделей был граф вычислений (ГВ),
предложенный Карпом и Миллером [Кагр76]. Как и ГПД, ГВ - это
ориентированный граф, в котором вершины представляют вычисления, а дуги
- связи. На каждой дуге имеется очередь типа FIFO, длина которой
не ограничивается. Используя эту модель, Карп и Миллер [Кагрбб]
доказали, что результаты ГВ не зависят от времени выполнения
операций, получили верхние оценки для длин очередей, необходимых
для каждой дуги, и изучили тупиковые свойства графов вычислений.
Обычные графы вычислений не моделируют время вычислений и
поэтому не могут быть использованы при анализе
производительности. Во многом основываясь на модели ГВ, Райтер [Reite68] включил
в исходную модель время вычислений для дуг. Эта модель получила
название временного графа вычислений (ВГВ). Мурата и Онага
[Murat77] добавили ограничения на длину очередей, или по их
терминологии емкостные ограничения, получив еще одну версию модели
ГВ. Тани и Мурата [Tani78] привели затем модель Райтера к виду
так называемых временных емкостных графов вычислений (ВЕГВ)>
которые во многом схожи с моделью ГПД.
Моделирование вычислений без ветвлений с помощью ГПД может
рассматриваться как подкласс сетей Петри [Peter81], называемый
помеченными сетями Петри, или просто помеченными графами (ПГ).
Коммонер и другие [Commo71] использовали помеченные графы для
изучения пространственных ограничений в системах. Они
продемонстрировали сохранность маркеров в цикле и показали, что
тупиковая ситуация может быть исключена только в том случае, если нет
пустых циклов. Рамчандани [Ramch73] предложил независимую
обработку синхронизированных сетей Петри.
5.4.1. Временной анализ ГПД
Начнем с простого примера ГПД. На рис. 5.7 изображены два
ГПД, различающиеся только длиной очереди на одной нижней дуге
аг ГПД на рис. 5.7,а, имеющий только один пробел на нижней
дуге, может запускаться на тактах 1, 6, И,..., что приводит к
скорости работы, равной 1/5 (после запуска необходимо ждать,
пока очистится а^). Однако ГПД на рис. 5.7,6, имеющий два
пробела на а у может запускаться на тактах 1, 3, 6, 8, И, 13,...,
что дает среднюю скорость работы 2/5. На рис. 5.7, β показан та-
Волновые матричные процессоры 325
—а>
—*Ф
Рис. 5.7. ГПД с одним пробелом на а1 (а), ГПД с двумя пробелами
на а* (б) и ГПД с пробелом и маркером на а* (в).
кой же ГПД, в котором на нижней дуге имеются один пробел и один
маркер. Этот ГПД может запускаться на тактах 1, 6, И,... , что
дает ту же среднюю скорость работы, что и ГПД на рис. 5.7, а.
Из этого примера видно, что размеры очередей и распределение
маркеров по дугам играют важную роль в определении средней
скорости запуска (или ее обратной величины - конвейерного такта)
вершин ГПД. Конвейерный такт вершины ГПД - это среднее время
между последовательными запусками. В этом разделе предлагается
полный временной анализ для общих (циклических и ациклических)
сетей ГПД. При этом поставлены две проблемы:
1. Анализ. Задан ГПД с определенными начальными маркерами и
пробелами на дугах. Является ли он свободным от тупиковых
ситуаций? Какова средняя длительность конвейерного такта?
2. Синтез. Задана желаемая (достижимая) длительность
конвейерного такта. Как могут быть распределены минимальные очереди
по дугам ГПД, чтобы обеспечить требуемую скорость?
326
Глава 5
ГПД был разработан в виде подходящей модели для приближенного
представления аппаратных реализаций. Недостаток этого подхода
состоит в том, что в эту модель были добавлены различные понятия
моделирования. Для исследования и совершенствования свойств ГПД
легче рассматривать более простую модель - временной помеченный
граф (ВПГ). По существу ГПД являются моделями описания машин с
управлением потоком данных, тогда как ВПГ - моделями, более
удобными для теоретического анализа. Как будет показано, любой
ГПД может быть эквивалентно представлен большим (и,
следовательно, топологически более сложным) ВПГ, что позволяет развить
полезные свойства в более простой области ВПГ, а затем перенести
их на ГПД Для обоснования этого перехода начнем с рассмотрения
двойственности маркеров и пробелов в ГПД.
Двойственность маркеров и пробелов
На рис. 5.8, α представлен цикл с множеством пробелов и только
с одним маркером. Поскольку любой запуск в этом цикле будет
создавать и уничтожать маркер, легко видеть, что в этом цикле
всегда будет только один маркер.
Свойство 1. Число маркеров в каждом цикле ГПД остается
постоянным.
Маркер может повторно проходить цикл при серии запусков
вершин цикла. Каждый обход цикла занимает время т(с), которое
представляет собой сумму времен вычисления всех вершин цикла.
Конвейерный такт α равен т(с) , а средняя скорость запуска каждой
вершины в цикле - 1/т(с). Однако, если добавить в цикл еще один
маркер, то за то же время пройдут весь цикл не только первый, но
и второй маркер. Таким образом, такт станет в два раза меньше,
т.е. т(с)/2 в предположении что т(с)/2^тахл€ τ(/ι). Обобщение
этого факта приводит к свойству 2.
Свойство 2. Для любого цикла с ГПД конвейерный такт ос(с)будет
удовлетворять условию:
«(О * -Щ. (5.9)
где D(c) - число маркеров в цикле.
При дальнейшем добавлении маркеров в цикл можно заметить, что
такт будет уменьшаться, но затем начнет увеличиваться. Чтобы
понять, почему это происходит, необходимо изучить роль, которую
играют пробелы.
На рис. 5.8,6 приведен цикл со множеством маркеров и только с
Волновые матричные процессоры 327
Рис. 5.8. Цикл с одним маркером (а) и цикл с одним пробелом (б).
одним пробелом. Так как для запуска вершины требуется по крайней
мере один пробел на всех исходящих дугах, то легко видеть, что
одновременно может быть запущена только одна вершина. При каждом
запуске вершины один пробел создается и один пробел
уничтожается. Эта ситуация аналогична ситуации с маркерами и приводит к
свойству 3.
Свойство 3. Число пробелов в каждом цикле ГПД остается
постоянным.
Итак, в примере пробел проходит (в обратном направлении) весь
цикл за время т(с) - конвейерный такт. По аналогии, если
добавить в цикл еще один пробел, такт станет равным т(с)/2.
Следовательно, справедливо свойство 4.
Свойство 4. Для любого цикла с ГПД конвейерный такт сс(с)
удовлетворяет следующему условию:
τ (с)
«W ' Т(сГ· <5Л°)
где S(c) - число пробелов в цикле.
На рис. 5.9 показан ГПД, состоящий из одного элементарного
неориентированного цикла. Заметим, что при каждом запуске
вершины п. уничтожается маркер на дуге aQ и создается пробел на дуге
ас Аналогично, создается пробел на ас и уничтожается маркер на
а Обобщение этих фактов приводит к свойству 5.
Свойство 5. Для любого неориентированного цикла у в ГПД
328
Глава 5
Рис. 5.9. Элементарный неориентированный цикл ГПД.
^с(у)^сс(у)^йс(у)^С(1у1
(5.11)
DcCM+sky)mDccM+s№
где D*c(y) - число маркеров и S*c(y) - число пробелов на дугах у,
направленных по часовой стрелке в момент времени t. Dijy) и
Sijy) определяются аналогично для дуг, направленных против
часовой стрелки (и в соответствии с введенными выше обозначениями
/)£(*/), £>*сс(у), S^y) и S*cc(y) представляют собой начальные
значения в момент времени *=0).
Это означает, что для неориентированного цикла сумма маркеров
на дугах в одном направлении и пробелов на дугах в
противоположном направлении остается постоянной, т.е
DSc(y) ξ Dc(y) + SccQ,)f
DScc(y) ξ Dcc(y) + Sc(y).
Из этого примера видно, что маркеры и пробелы играют при
запуске вершин сходную роль. Они представляют собой "ресурсы",
которые должны быть использованы вершинами для запуска. При этом
проявляется отношение двойственности, которое аналогично
двойственности электронов и дырок в полупроводниках. Если говорить
более точно, пробел в одном направлении играет ту же роль, что
маркер в противоположном направлении.
Временные помеченные графы (ВПГ)
Рассмотрев двойственность маркеров и .пробелов, можно
представить ГПД в более простой форме - в виде ВПГ.
Модель ВПГ. ВПГ - это (взвешенный, ориентированный) граф
ВПГ ξ [Ν,Α,Σ)(α),τ(η)1 (5.13)
эквивалентный ГПД, в котором все очереди на дугах имеют беско-
Волновые матричные процессоры 329
печную длину (Va € A: Q(a)=oo). Для разблокирования вершины ВПГ
требуется только положительное число маркеров на каждой из ее
входящих дуг. Условия на исходящих дугах на разблокирование не
влияют. Как и в ГПД, вершина η запускается после разблокирования
на время вычисления τ(η). Новое состояние после запуска вершины
получается путем удаления маркера с каждой входящей дуги и
добавления маркера на каждую исходящую дугу. Как и для случая ГПД
непосредственно проверяется правильность свойства 6.
Свойство 6. Число маркеров в каждом цикле ВПГ остается
постоянным.
На рис. 5.10 приведен пример ВПГ. Точки на дугах означают
маркеры. На рис. 5.10,а вершины п^н я3 разблокированы, а вершина
п.- нет. Запуск вершины «2 приводит к новому состоянию,
показанному на рис 5.10,6.
Рис. 5.10. ВПГ перед запуском вершины /ζ« (а) и после запуска
вершины л2
Моделирование ГПД с помощью ВПГ. Для данного графа потока
данных ГПД s [W,>4,Z)(a),Q(a),T(n)] эквивалентный временной
помеченный граф есть
ВПГ ξ [Ν,Α,Κ(α),τ(η)1 (5.14)
Если определить дугу, обратную дуге а = i а >/, как а = j а >/ и
Л = (а) - множество обратных дуг, то:
А = А υ Л. (5.15)
Каждая дуга ГПД будет представлена в эквивалентном ВПГ двумя
дугами - одной в исходном и другой в обратном направлениях.
Начальные маркеры в эквивалентном ВПГ определены следующим
образом: для каждой дуги a € Л,
330
Глава 5
Рис. 5.11. ГПД (а) и эквивалентный ему ВПГ (б).
если α € Л, то К(а) s D(a),
(5.16)
если α € Л, то К(а) ξ Q(a)-D(a)
По существу число начальных маркеров на дугах ВПГ,
соответствующих прямым (исходным) дугам ГПД, равно числу маркеров ГПД.
Число дуг ВПГ, соответствующих добавленным (обратным) дугам, равно
числу пробелов соответствующего ГПД. Если дуга ВПГ соответствует
как прямой, так и обратной дуге, то минимальное число маркеров
на ней равно двум.
На рис. 5.11 показаны ГПД и эквивалентный ему ВПГ.
Дополнительные обратные дуги в ВПГ изображены штриховыми линиями. Можно
заметить, что пробелы в ГПД смоделированы в ВПГ с помощью
дополнительных маркеров. ВПГ более удобен для точного анализа,
поскольку здесь имеется только один класс ресурсов, а не два. Легко
видеть, что действие этого ВПГ совпадает с действием исходного
ГПД.
Свойство 7. Конвейерный такт α (или средняя
производительность) для ГПД и эквивалентного ему ВПГ совпадают.
Конвейерный такт ВПГ
Свойство 8. Конвейерный такт α сильно связного ВПГ равен
α = max(x(«),-£j£j-)f (5.17)
где η € Ny с - элементарный цикл в ВПГ, т(с) - сумма времен
выполнения вершин в цикле (т/(с)=£ /- τ(/ι')), а К(с) - число
маркеров в цикле (К(с)=%а,есК(а')).
Формально это свойство может быть получено из нескольких
доказательств, приведенных в различных публикациях. Самая ранняя
версия этого результата может быть найдена в работе [Reite68] в
терминах графов вычислений. Другое доказательство приведено в
Волновые матричные процессоры 331
работе [Ramam80] в терминах помеченных графов сетей Петри. Для
интуитивного понимания сути этого результата проведем следующие
наблюдения.
Рассмотрим один элементарный цикл с в ВПГ, действующий
независимо от остальной части графа. Если этот цикл содержит только
один маркер, его конвейерный такт а(с) есть сумма времен
выполнения вершин т(с). Если в цикл добавить еще один маркер, такт
уменьшится в два раза. Такт может быть уменьшен и далее путем
добавления большего числа маркеров до тех пор, пока не будет
достигнут некоторый предел. Все вершины цикла запускаются с
одной и той же средней скоростью и поэтому все имеют один и тот же
конвейерный такт. Таким образом, для этого изолированного цикла
α-га.х(««).-$§)-). (5.18)
Если этот элементарный цикл оказывается не изолированным от
остальной части ВПГ, его вершины могут входить также и в другие
циклы. Вершины тогда могут не запускаться со средней скоростью,
определенной уравнением (5.18), но они не могут запускаться с
более высокой скоростью. Поэтому конвейерный такт данной вершины
не может быть меньше, чем конвейерные такты циклов, которым она
принадлежит:
α(/ι) £ max а(с). (5.19)
с :пес
Все вершины сильно связного ВПГ находятся в общем цикле. Поэтому
все вершины ВПГ запускаются с одной и той же средней скоростью,
и, таким образом, все вершины работают с одним и тем же
конвейерным тактом. Следовательно, определяющим будет самый длительный
такт.
Чтобы понять, почему в уравнении (5.17) рассмотрены только
элементарные циклы, рассмотрим рис. 5.12. На нем представлены
два элементарных цикла, обозначенные сМп.а^п^а^п^ и
с2=(п2а2п„а.п2). Неэлементарным циклом, содержащим с^ и с2,
является цикл с^п^а^а^п^а^п^а^п^. Легко видеть, что
Рис. 5.12. Элементарные циклы и сложные циклы в ВПГ.
332
Глава 5
τ(οΑ) = τ(Λι)+τ(η2). К(с,) = /C(at )+/((α3),
т(с2) = т(л2)+т(л3). К(с2) = /С(а2)+/С(а4),
(5.20)
т(с3) = τ(Λ1)+τ(Λ2)+τ(η3)+τ(«4) = т(сх)+т(с2),
К(с3) = /С(а1КК(а2)+/С(а3)^(а4) = #C(ct)+K(c2), <521)
τ(^) т(с2) τ^) τ^) + т(с2)
если 7^У " Wj> т0 7^7 ~ К(ех) + К(с2)
т(с2) т^,) т(с2) τ^) + т(с2)
если 7ф^У * 7фГ^ т0 7^7 " К(су) + К(с2)
(5.22)
В любом случае
тахОЦ),^^)] £ а(с3). (5.23)
Замечание. Свойство 8 было получено несколькими
исследователями. Райтер [Reite68], используя ВГВ, нашел границу
максимальной средней пропускной способности а:
а * max τ^> , (5.24)
с К(с)
где с - цикл в ВГВ, т(с) - сумма времен вычислений на дугах в с,
а К(с) - число маркеров в с. Кроме того, Райтер показал, что для
достижения этой границы может быть найдено регулярное
расписание, в котором каждая вершина запускается с тактом а.
Используя метод, сходный с ВПГ, Тани и Мурата [Tani78]
показали, что любой ВЕГВ может быть смоделирован при помощи ВГВ с
дополнительными обратными дугами. Используя ВГВ, эквивалентный
ВЕГВ , они применили более ранний результат Райтера для
вычисления максимальной производительности. Рамамурти и Хо изучали
модель сети Петри, эквивалентную модели ВПГ. При помощи этой
модели они заново получили результат Райтера (в уравнении (5.24)) с
другим доказательством, основанным на теории графов [Ramam80].
5.1.4 Конвейерный такт ГПД
Свойство 9. Конвейерный такт α связного ГПД с заранее
назначенным числом начальных маркеров и пробелов равен
α = max ίτ(η),τ(')+τ(Π,-^^-, τ("> 1, (5.25)
λ, α,у L Q(a) DSc(y) DScc{yY
где η € Ν, а = i—-—»/ € А, а у - элементарный неориентированный
цикл в ГПД.
Волновые матричные процессоры 333
Из уравнения (5.12) следует, что DSc(y) - сумма маркеров в
направлении по часовой стрелке и пробелов в направлении против
часовой стрелки. Свойство 9 может быть получено из ВПГ,
эквивалентного ГПД. Каждый неориентированный цикл у в ГПД в
эквивалентном ему ВПГ с тем же набором вершин порождает два цикла, сс
и ссс, по одному в каждом направлении. Ясно, что
К(сс) = DSc(y)t К(ссс) = DScc(y). (5.26)
Все элементарные циклы в ВПГ представлены как элементарные
неориентированные циклы ГПД, кроме циклов длиной 2, содержащих
прямую и обратную ей дуги. Отсюда следует дополнительный член
{T(i)+T(j)}/Q(A).
Анализ тупиковых ситуаций
Обсуждение тупиковых ситуаций может быть проведено с
привлечением свойства 9. Из него следует, что ГПД не будет свободен от
тупиков, если и только если существует конечное решение α для
уравнения (5.25). Конечное решение для α существует тогда и
только тогда, когда для каждого неориентированного цикла у
DSc(y) * О и DSCQ(y) * 0. (5.27)
Или, другими словами, эквивалентный ВПГ не должен содержать
пустых циклов. Пример тупика приведен на рис. 5.13.
14
ό-ню
OtznO
a 6
Рис. 5.13. ГПД с тупиковой ситуацией (а) и эквивалентный ему
ВПГ (б).
5.4.2. Оптимизация производительности ГПД
Общие вопросы
Для понимания задач оптимизации производительности ГПД
полезно остановиться на некоторых моментах. Во-первых, распределение
начальных маркеров определяет как функциональные возможности,
так и производительность ГПД. Два топологически эквивалентных
334
Глава 5
ГПД с различными распределениями начальных маркеров представляют
различные алгоритмы. Поэтому для повышения производительности
распределение начальных маркеров не может быть произвольно
изменено. В действительности распределение начальных маркеров
является основным ограничением производительности ГПД.
Вместе с тем распределение пробелов не влияет на
функциональные возможности ГПД, а влияет только на их производительность.
Поэтому при оптимизации ГПД распределение начальных маркеров
должно рассматриваться как свойство алгоритма, а распределение
пробелов может варьироваться при проектировании.
При анализе, когда размер очереди и начальные условия
фиксированы, маркеры и пробелы могут обрабатываться так, как это было
сделано в ВПГ, эквивалентных ГПД. При синтезе, однако, где
желательно определить размеры очередей в заданных начальных условиях
и времена вычислений, между маркерами и пробелами должно быть
установлено различие. Маркеры являются фиксированными
ограничениями, представляющими начальные условия алгоритма, тогда как
пробелы являются свободными переменными, представляющими
начальный избыточный размер очереди, встраиваемой в систему.
Свойство 9 определяет конвейерный такт ГПД, когда заданы
распределение начальных маркеров и число очередей на дугах. В
следующем разделе рассматривается двойственная проблема назначения
очередей минимальной длины на дуги ГПД при требовании достижения
максимальной производительности (минимальной длительности такта
или α ).
5.4.3. Оптимальный конвейерный такт а*
Свойство 10. Минимальный (или оптимальный) достижимый
конвейерный такт а* для ГПД с распределением начальных маркеров и
неопределенными длинами очередей равен
а* = max(T(n),-gf§)-). (5.28)
где η € N, с - элементарный цикл в ГПД и D(c) - число маркеров в
цикле. Это свойство может быть получено установкой Q(a) = со для
всех дуг. Тогда ГПД превратится^ в ВПГ, и свойство 10 следует из
свойства 8.
Свойство 11. Для поддержания заданной скорости конвейерной
обработки а* распределение очередей в ГПД должно удовлетворять
следующим условиям:
Волновые матричные процессоры 335
Vy: Sc(y) * IM- Dcc(y),
*У*ссМ * ^ ~ °с(У)>
Ma: S(a) * lli^LLLL· - /)(а), {529]
а
Va: S(a) ζ max(l-Z)( α),0),
где a = ί——-»/' € Л и у - элементарный неориентированный цикл в ГПД.
Эти неравенства непосредственно следуют из свойства 9 и
уравнения (5.7). Они справедливы фактически для любой желаемой
длительности конвейерного такта α £ α*.
Пример 1. Оптимальный конвейерный такт для Х-образного фильтра.
ГПД, реализующий Х-образный фильтр, приведен на рис. 5.14, а,
где представлены начальные маркеры, размеры очередей и времена
выполнения операций в вершинах. Применим сначала свойство 8 для
определения конвейерного такта ВПГ, эквивалентного данному ГПД,
который показан на рис. 5.14,6. Цикл ВПГ, имеющий максимальный
такт а, изображен на рис. 5.14, е. Из этого цикла получаем а=11.
Применяя свойство 10, находим, что оптимальный конвейерный
такт α =5,5. Это можно получить при рассмотрении ограничивающего
цикла ГПД, показанного на рис. 5.14, г. На рис. 5.14,д
представлено распределение очередей, которое удовлетворяет всем
ограничениям свойства 11 и поэтому будет обеспечивать оптимальный
такт, равный 5,5.
Простое минимальное распределение очередей. Распределение
очередей минимальной длины по дугам для обеспечения оптимального
конвейерного такта может быть сформулировано как задача
целочисленного программирования. По-существу требуется минимизировать
функцию стоимости %Q(a)- Поскольку начальные маркеры
фиксированы, можно записать функцию стоимости в терминах начальных
пробелов. Тогда формулировка задачи примет вид:
Минимизировать J]S(a) (5.30)
а€А
в соответствии с ограничениями в уравнении (5.29).
Функция стоимости и ограничения представляют собой линейные
комбинации распределения начальных пробелов. Однако число
начальных пробелов на каждой дуге должно быть целым. Таким
образом, задача сводится к задаче целочисленного программирования.
336
Глава 5
Рис. 5.14. ГПД Х-образного фильтра (а), ВПГ Х-образного фильтра
(б), цикл ВПГ с максимальным^ тактом (в), ограничивающий цикл ГПД
(г) и ГПД, обеспечивающий α (д).
Подходы и алгоритмы для решения задач этого класса могут быть
найдены в работе [Leis83a].
Приближенное решение задачи минимального распределения
очередей с помощью линейного программирования. Вместо поставленной
задачи целочисленного программирования можно обратиться к
линейному программированию, которое обеспечит достаточное, хотя,
возможно, и не минимальное, распределение очередей. При этом
исключается ограничение, что S(a) должны быть целыми, и задача
решается для S (а) с использованием функции стоимости в уравнении
(5.30) с ограничениями из уравнения (5.29). Это соответствует
задаче линейного программирования. Фактические целые значения,
которые должны быть использованы для 5(a), находятся путем
округления S (а) до следующего целого числа:
S(a)= Г* e„,(a)l. (5.31)
Волновые матричные процессоры 337
5.4.4. Временной анализ регулярных волновых процессоров
регулярные ГПД
Все предыдущие методы были связаны с анализом и оптимизацией
произвольных ГПД. Если ГПД - регулярный граф, то затраты на
применение этих результатов могут быть значительно сокращены. Ниже
показано, как применить полученные результаты в случае, когда
ГПД представляет собой полностью регулярный граф, или волновой
матричный процессор.
Для полного описания регулярного графа расположим его в
конечномерном индексном пространстве, где каждая вершина графа
находится в индексной точке. Для л-мерного индексного
пространства определим индексный вектор как упорядоченное множество
индексных координат:
i = {irir-,in}. (5.32)
Вершина тогда может быть описана ее положением в индексном
пространстве. Регулярный ГПД (РГПД) имеет следующие свойства:
1. Определен над конечной смежной областью индексного
пространства.
2. Имеет функционально идентичные вершины (с одним и тем же
значением т(п)) в каждой индексной точке в этой области.
3. В каждой вершине множество дуг, для которых вершина
является конечной точкой, имеет свои начальные точки с одинаковыми
относительными смещениями. Это означает, что если существует
дуга из а в 6, то будет существовать дуга из каждой точки а+х в
каждую точку Ь+х.
4. Для каждой вершины соответствующие дуги имеют
соответствующие свойства (как D(a), так и Q(a)).
РГПД может быть полностью описан матрицей и двумя векторами.
Матрица смещений А определяет (относительные) начальные точки
дуг, входящих в вершину, и содержит только целые числа. Для
гс-мерного индексного пространства каждая дуга определена
гс-мерным вектором
а/ = <απ·αΰ <У· <5·33)
Если каждая вершина имеет m входящих дуг, то А представляет
собой матрицу размером mxn с целыми значениями:
А = [ara2 ат]. (5.34)
^2 —102S
338
Глава 5
Поскольку предполагается, что РГПД - связный граф, ранг матрицы
А не может быть меньше п.
Маркёры, пробелы и длины очередей на каждой дуге определены
л-мерными векторами с неотрицательными целыми элементами:
dT = [D(ai),D(a2),...,D(am)],
sr = [S(ai),S(a2),...,S(aJ], (5.35)
ЧТ = [Q(at),Q(a2) Q(aJ].
Оптимальный конвейерный, такт РГПД (α*)
Любой путь может быть представлен как m-мерный вектор с
неотрицательными целыми элементами
РТ = [PVP2 Pml (5·36)
где ρ - число случаев пересечения а.. Конечная точка пути ρ
относительно начальной точки вычисляется по формуле
'кон - АР' <5·37>
Поскольку любой цикл должен заканчиваться там, где он начался,
он может быть представлен вектором пути с, который является
правым нулевым вектором матрицы А с неотрицательными целыми
элементами:
Ас = 0. (5.38)
Суммы времен вычисления вершин, маркеров и пробелов в цикле
представляются следующим образом:
т(с) = сг1, £>(с) = crd, 5(c) = crs. (5.39)
Тогда максимальная конвейерная скорость может быть вычислена
по формуле
а* = max
Vd
(5.40)
при следующих ограничениях: с - правый нулевой вектор матрицы А,
т.е. ас = 0, с * 0 и с имеет только неотрицательные целые
элементы.
^____ Волновые матричные процессоры 339
Коэффициент, который должен быть максимизирован, не зависит
от величины с. Без учета условий целочисленности ограничения
образуют выпуклое множество, содержащее пересечение правого
нулевого пространства матрицы А и замкнутых полупространств
неотрицательных ограничений. Функция стоимости является выпуклой
(над множеством ограничений), так что ее максимум должен лежать
на границе множества ограничений. Эта задача является примером
класса задач нелинейного выпуклого программирования с линейными
дробными целевыми функциями [Mital76]. Подобные задачи могут
быть решены симплекс-методами. Добавление целочисленных
ограничений к задаче делает ее решение сходным с целочисленным
программированием.
Заметим, что размерность этой задачи намного меньше, чем
размерность общей задачи в свойстве 10. Здесь размер задачи -
константа, не зависящая от размера графа, тогда как размер общей
задачи пропорционален числу элементарных циклов в графе.
Конвейерный такт фиксированного РГПД
Конвейерная скорость ГПД с фиксированными маркерами и
пробелами (или очередями) может быть найдена таким же способом.
Определим сначала ВПГ, эквивалентный РГПД. Регулярный ВПГ (РВПГ)
может быть описан матрицей связи, представляющей дуги
Α ξ [А|-А], (5.41)
и вектором, представляющим маркеры:
кт ξ [d^s7]. (5.42)
Конвейерный такт находится по формуле
α = max
с
Vk
(5.43)
при следующих ограничениях: с - ненулевой вектор с
неотрицательными целыми маркерами и Ас = 0.
5.4.5. РГПД с минимальными очередями
Обобщая сказанное выше, отметим, что
[cTd\cTs]\
α * [c'XKdVf ■ (544)
22 -
340
Глава 5
Для определения распределения минимального числа пробелов,
сохраняющего а* (без перераспределения маркеров), поставим
следующую задачу:
τ
Минимизировать s 1 (5.45)
при ограничениях: s имеет неотрицательные целые элементы и
Ψа £^-c5d <5·46)
τ τ τ
для каждого с =[с*.|с] * 0 с неотрицательными целыми
маркерами, такими, что Ас = 0.
5.5. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ДЛЯ
ВОЛНОВЫХ ПРОЦЕССОРОВ
5.5.1. Параллелизм и связь
Существуют два фундаментальных понятия в волновой обработке -
параллелизм и связь. Понятия параллельных процессов и понятия
канала были введены в работе Ч.Хоара [Ноаге78] как параллельные
команды и команды ввода-вывода. Изучение модулей и процессов
проводилось также в работах [Parna72, Horni73]. Формальную
модель модулей и процессов представляют абстрактные машины
[Dijks68], математические основы которых даны в работе
[Сгете78]. Алгебраическая спецификация призвана выразить модули
в терминах параметризованных абстрактных типов данных. Некоторые
аспекты связи без буферов и потока данных обсуждались в работах
[Ноаге78, Denni79]. Введение понятия состояния привело к
вычислительным концепциям пространств данных [Сгете76] и аппликатив-
ных систем перехода состояний [Backu78]. Другим СБИС-
представлением, основанным на модели перехода состояний,
является CRYSTAL [Chen85a].
Параллелизм и конвейеризация. Параллелизм обычно достигается
разбиением задачи на независимые подзадачи или на
конвейеризованные подзадачи. Как показано в разд. 1.1 (рис. 1.4),
параллелизм в систолических/волновых процессорах получен из конвейерной
и/или параллельной обработки.
Обычные языки программирования для мультипроцессорных систем
Волновые матричные процессоры 341_
описывают только глобальный параллелизм при обработке данных.
Они не могут описывать параллельные пересылки данных, которые
встречаются в среде конвейерной обработки. Системы на СБИС
содержат огромное число ПЭ, и прямая пересылка данных между ПЭ
увеличивает скорость и облегчает проблему хранения данных путем
сокращения числа операций считывания из памяти и записи в
память. Критическим в языках для СБИС является способ выражения
свойств конвейеризации и потока данных. Поэтому предпочтительнее
использовать итеративные или рекурсивные представления и
функциональные выражения.
Связь. На уровне выполнения отдельных операций пересылки,
управляемые потоком данных, являются подходящей моделью для
операций ввода-вывода в ПЭ при реализации алгоритмов с локальной
синхронизацией; синхронизированный порт ПЭ в любой момент
времени имеет состояние готов к чтению или готов к записи. В первом
случае (при записи данных в порт) пересылка задерживается до
тех пор, пока партнер по связи в одном из своих обращений не
прочтет текущее содержимое порта. Во втором случае происходит
противоположное действие. В результате ПЭ производит пересылку
только в том случае, когда готовы все его порты ввода и вывода.
Отметим, что в этом режиме обмена нет очередности передачи
данных. Отметим также, что этот простой протокол легко реализуется
аппаратно.
Здесь умышленно игнорируется точная фиксация моментов времени
появления событий. Выгода состоит в том, что аргументация при
разработке упрощается и может быть применена к физическим и
вычислительным системам любой скорости и производительности.
В случаях когда время ответа является критическим, эти идеи
могут быть учтены независимо от логической правильности
разработки. Независимость от времени - решающее условие успеха языков
программирования высокого уровня. Поэтому для программирования
крупномасштабных систем более предпочтительной представляется
гибкая асинхронная схема [Kung82a, Kung82b].
5.5.2. Методы программирования волновых процессоров
Новые языки программирования необходимы для обеспечения
разработки и программирования систем, содержащих большое число
микрокомпьютеров. Понятие волнового фронта может облегчить описание
параллельных и конвейерных алгоритмов и значительно уменьшить
342
Глава 5
сложность параллельного программирования. Основываясь на идеях
трассировки вычислительных волновых фронтов и моделях ГПД, можно
разработать языки высокого уровня для прддержки матричных
процессоров. Они должны описывать параллельную пересылку данных и
выполнение параллельных программ, обладая следующими свойствами:
1) реализация вычислительных волновых фронтов; 2) возможность
асинхронного выполнения; 3) нотация высокого уровня; 4)
унификация средств выражения, имитационного моделирования и разработки
алгоритмов.
Ниже для иллюстрации основных идей волнового программирования
используется MDFL (Matrix Data Flow Language - Матричный Язык
Потока Данных) - экспериментальный язык, предложенный в работе
[Kung82b]. В разд. 5.5.3 описывается язык фирмы INMOS - Оккам,
который может быть непосредственно использован для
программирования волновых процессоров, сконструированных из коммерчески
доступных транспьютерных кристаллов. Основные свойства
транспьютеров обсуждены ниже.
Глобальное и локальное волновое программирование. Достоинство
волнового языка состоит в том, что программист получает
возможность адресоваться ко всему фронту процессоров, а не к
отдельному процессору. В действительности существуют два подхода к
программированию волновых матричных процессоров - глобальный и
локальный. Глобальная волновая программа описывает алгоритм с
точки зрения волнового фронта, проходящего через все процессоры.
Локальная волновая программа описывает операции отдельного
процессора с учетом возможностей обработки серии волновых фронтов.
Реализация программы на такой системе требует преобразования с
помощью препроцессора глобального волнового описания на высоком
уровне в набор программ (или микроинструкции) на низком уровне
для отдельных процессоров.
Неизменность пространства и времени. При допущении
регулярности и рекурсивности типичными являются два программных
свойства.
1. Неизменность пространства. Задача, выполненная волновым
фронтом на определенном процессоре, должна быть идентичной или
подобной во всех фронтах. Например, ниже приведена глобальная
пространственная конструкция повторения на языке MDFL.
Часть набора команд глобального языка MDFL приведена в табл.
5.1 на стр. 360.
Волновые матричные процессоры 343
WHILE WAVEFRONT IN ARRAY DO
BEGIN <ЗАДАЧАТ> END
Задача Τ повторяется во всех фронтах.
2. Неизменность времени. Рекурсии для всех последовательных
волновых фронтов идентичны или подобны. Конструкция повторения
во времени имеет следующий вид:
REPEAT
<ОДНА РЕКУРСИЯ>
UNTIL TERMINATED
Поскольку волновые фронты никогда не пересекаются, в таком
виде можно выполнить конвейеризацию последовательных волновых
фронтов.
Межпроцессорная связь. ПЭ соединяются в матрице таким
образом, что для моделирования волнового фронта они связаны с
ортогонально смежными процессорами. Поскольку процессор управляется
потоком данных, программное обеспечение должно позволять каждому
ПЭ выполнять операцию FETCH (выборка из буфера) между каждым
последовательным набором вычислений. Каждый процессор может
передавать данные (операция FLOW) своему ортогонально соединенному
соседу только тогда, когда прочтено предыдущее значение в буфере
связи. Принцип волнового фронта гарантирует невозможность
пересечения двух волновых фронтов. Это в свою очередь обеспечивает
свойство асинхронного ожидания, которое является существенным
для решения проблем глобальной синхронизации, произвольных
задержек связи и других флуктуации в процессе вычислений.
Пример 1. Волновое программирование умножения матриц. Ниже
приведен пример глобальной MDFL-программы для умножения матриц
на ВМП (рис.5.3), иллюстрирующий простоту описания.
Размер волнового процессора: NxN
Вычисление: С=АхВ
k-й волновой фронт: С\ ·' = Су-~ ' + ai$k\
*=1,2,...,ЛГ
Начальное состояние: матрица А записана в память в левом
модуле памяти (МП) по строкам. Матрица В
записана в верхнем МП по столбцам,
(рис. 5.3).
Конечное состояние: результат находится в регистрах С
процессорных элементов.
344
Глава 5
BEGIN
SET COUNT Ν;
REPEAT;
WHILE WAVEFRONT IN ARRAY DO
BEGIN
FETCH A, LEFT;
FETCH A, UP;
FLOW A, RIGHT;
FLOW B.DOWN;
(Вычисление C:=C+AxB)
MULTA,B,D;
ADD C,D, C;
END;
DECREMENT COUNT;
UNTIL TERMINATED;
ENDPROGRAM.
Для того чтобы продемонстрировать гибкость волнового
программирования, рассмотрим умножение ленточной матрицы A(NxN) с
шириной ленты Ρ на прямоугольную матрицу B(NxQ) (см. разд.
4.4.2). Для этого требуется лишь незначительная модификация
приведенной выше программы. Во-первых, данные в модулях памяти для
матрицы А должны быть смещены в направлении ленты. Основная
модификация в распространении волнового фронта состоит в том, что
перед вычислением внешних произведений частичные суммы должны
быть сдвинуты вверх (из-за того, что входная матрица А загружена
в смещенном виде). Поэтому программа остается почти прежней, за
исключением двух дополнительных команд, производящих сдвиг
частичных сумм вверх (эти команды заключены в прямоугольные
скобки). Ниже приведена модифицированная программа.
BEGIN
SET COUNT Ν;
REPEAT;
WHILE WAVEFRONT IN ARRAY DO
BEGIN
[FETCH C,DOWN;]
FETCH A, LEFT;
FETCH A, UP;
FLOW A, RIGHT;
FLOW B, DOWN;
Волновые матричные процессоры
345
(Вычисление С:=С+АхВ)
MULT А, В, D;
ADD C.D, С;
[FLOW C,UP;]
END;
DECREMENT COUNT;
UNTIL TERMINATED;
ENDPROGRAM.
Пример 2. Отображение ГПД в волновую программу. Другой подход
к программированию волновых процессоров основан на описании
ГПС/ГПД. Большинство одномерных и двумерных цифровых фильтров
задаются вначале в виде ГПС/ГПД. Поэтому желательно иметь
простой механизм для преобразования представления в виде ГПС/ГПД в
программы для матричного процессора. Для иллюстрации простоты
программирования, основанного на представлении в виде ГПД, ниже
приведем программу на языке MDFL, реализующую линейный фазовый
фильтр (см. рис. 5.6) .
BEGIN
SET COUNT Ν;
REPEAT;
WHILE WAVEFRONT IN ARRAY DO
BEGIN
FETCH X, LEFT;
FLOW X, RIGHT;
TRANSFER W2 TO Wl;
FLOW Wl, LEFT;
FETCH W2, RIGHT
(Вычисление V: =(Ψχ +X)xh(k))
ADDW1,X,U;
MULT U,h(k),V;
FETCH Y, RIGHT;
(Вычисление Y:=Y+V)
ADD Y,V,Y;
Отметим, что сепараторы в ГПД реализованы добавлением всего
трех строк в программу (внутренняя регистровая передача), а не
добавлением отдельного буферного регистра, внешнего по отношению
к ПЭ.
346
Глава 5
FLOW Υ, LEFT;
END;
DECREMENT COUNT;
UNTIL TERMINATED;
ENDPROGRAM.
5.5.3. Язык программирования Оккам
Язык MDFL может рассматриваться как хороший экспериментальный
язык для волнового программирования. Для практической разработки
волновых процессоров желательно иметь язык программирования,
поддерживаемый коммерческой фирмой и оснащенный широко
распространенным системным программным обеспечением. Такими
достоинствами обладает язык программирования Оккам. Во многих отношениях
Оккам весьма схож с языком MDFL, и поэтому между этими языками
возможна прямая трансляция.
Язык программирования Оккам [Wils83, Мау84] и транспьютеры
фирмы Inmos Ltd. связаны с достаточно общей моделью вычислений,
основанной на понятии процесса, которая естественным образом
включает как последовательную, так и параллельную обработку.
Используемая в Оккаме модель двойственна модели CSP
(communicating sequential processes - взаимодействие
последовательных процессов), разработанной Ч.Хоаром [Ноаге78]. Язык Оккам
основан на моделях связи и параллелизма. Он описывает структуру
систем из соединенных микрокомпьютеров и может быть использован
для программирования отдельных компьютеров. Кроме того, Оккам
представляет собой формализм для проектирования систем. Его
формальная семантика позволяет рассматривать программу как набор
команд или предикатов. Его семантика предусматривает множество
правил для преобразования программ [Pount86].
Основные конструкции языка Оккам
Язык Оккам используется для описания транспьютерных систем, а
также систем, построенных на базе заказных схем. Его можно
использовать и как язык спецификации работы цифровых устройств.
Алгоритм обработки сигналов можно представить программой на
Оккаме, которая доступна для выполнения и отладки на одном
процессоре. После проверки правильности работы алгоритма, программа в
дальнейшем дорабатывается для эффективной работы в
предполагаемом схемном исполнении.
В язык Оккам включены два фундаментальных понятия: процесс
___ Волновые матричные процессоры 347
(PROC) и канал (CHAN). Процесс - это оператор или группа
операторов или даже группа процессов. Для компилятора с Оккама группа
строк программы, начинающихся с одной позиции, находится на
одном программном уровне и рассматривается как одна конструкция,
называемая процессом. Канал - это основной элемент связи,
позволяющий двум процессам связываться друг с другом. В отличие от
параллелизма на микроуровне в машинах с управлением потоком
данных параллелизм Оккама находится на процедурном уровне, что
привлекает разработчиков систем.
Процесс означает независимое и автономное вычисление в том
смысле, что обладает своими собственными программой и данными,
однако он способен связываться с другими текущими процессами
путем посылки сообщений по явно определенным каналам. В общем
случае сам процесс может содержать некоторое число процессов,
которые группируются в множества, называемые конструкциями.
В основе такой иерархической структуры лежат три примитивных
процесса:
• Присваивание, которое меняет значение переменной, например
а:=Ь+с.
• Ввод, который получает значение из канала и присваивает его
переменной, например chanl ? а.
• Вывод, который передает значение в канал, например
chan2 ! b+c.
Основными конструкциями языка Оккам являются:
• Последовательная конструкция (SEQ). Составляющие процессы
выполняются один за другим.
• Параллельная конструкция (PAR). Все составляющие процессы
выполняются вместе.
• Конструкция альтернативного выбора (ALT). Выполняется
первый из составляющих процессов, готовый к связи.
• Условная конструкция. Может быть выполнен не более чем один
из составляющих процессов .
В соответствии с принципами, лежащими в основе разработки
транспьютера, Оккам естественно описывает параллельную систему
как совокупность независимых процессов, которые используют
локально определенные переменные и могут связываться только по
объявленным каналам. Взаимодействие по каналам в Оккаме точно
отображает связь по каналам транспьютера. В частности,
существует протокол подтверждения связи, который разрешает обмен
данными только в том случае, когда и отправитель, и получатель
сообщили о своей готовности к связи друг с другом. В результате
348
Глава 5
устанавливается порядок связи, хотя в Оккаме нет понятия
глобального времени и все параллельные процессы выполняются
асинхронно.
Например, чтение из канала и запись в канал представляются в
Оккаме как
chanl ? χ
chan2 ! χ
Процесс, который читает из канала и пишет результат в
другой канал, используя промежуточную переменную х, записывается
следующим образом:
VAR х:
SEQ
chan.in ? χ
chan.out ! χ .
Все процессы, расположенные с отступом справа от SEQ,
выполняются последовательно в том порядке, в котором они
записаны. Ниже приведен пример использования конструкции PAR, которая
означает, что процессы, расположенные с отступом от нее, должны
быть выполнены параллельно. Этот пример выполняет процесс
"подсчета голосов", который заключается в чтении (параллельно) из
каналов for (за) и against (против):
VAR for-vote, against-vote:
PAR
For ? for-vote
Against ? against-vote
Помимо конструкций SEQ и PAR существует еще одна полезная
конструкция для реализации повторений - ALT. Пример ее
использования:
ALT ι = [О FOR 100]
inp[7] ? χ
oup ! χ:
Этот процесс будет читать первую доступную переменную из
массива каналов inp[/] и передавать ее в канал oup.
Достоинства языка Оккам
Язык Оккам обладает следующими достоинствами:
1. Простота и краткость. Несколько примитивных процессов
могут быть объединены последовательным (SEQ), параллельным (PAR)
Волновые матричные процессоры 349
и/или мультиплексным (ALT) способами для создания новых мощных
управляющих структур.
2. В язык встроена возможность синхронизации параллельных
процессов путем поддержки понятия канала. Канал Оккама
обеспечивает непосредственную возможность работы в реальном времени и
позволяет обойтись без явных семафорных операций, механизмов
очередей процессов, планировщика и обслуживания прерываний -
всего того, что часто требуется в других параллельных языках
программирования.
3. Возможность использования как языка описания систем,
построенных из большого числа параллельно функционирующих
компонентов.
4. Оккам поддерживает иерархическую структуру и поэтому
пригоден на различных уровнях. Он позволяет программисту описывать
именованные процессы, которые могут быть использованы в
программе как любые другие процессы. Именованные процессы можно
скомпилировать как отдельные программные объекты и загрузить в
указанные узлы транспьютерного массива.
5. Язык Оккам устроен так, чтобы логика его работы была бы
одной и той же при работе как на одном, так и на нескольких
процессорах. Поэтому разрабатываемые на Оккаме программы могут быть
проверены исполнением на обычной фоннеймановской ЭВМ. Компилятор
с Оккама реализует разделение времени, поэтому все параллельные
процессы получают доступ к процессору. После начальной стадии
разработки программа может быть дополнена необходимыми
конструкциями для того, чтобы описать способ ее загрузки в конкретную
транспьютерную сеть и расположение именованных процессов в
локальной памяти узлов этой сети.
6. Система программирования на Оккаме обеспечивает:
поддерживающую и "чуткую" к пользователю среду; экранный редактор,
который позволяет работать с так называемыми "складками" (folding
editor) и упрощает работу с компилятором и синтаксическим
анализатором; возможность оценки производительности, требуемой памяти
и скорости выполнения (для транспьютера); структурное
редактирование; средства кросс-компиляции.
7. Пригоден для программирования волновых процессоров и
имитационного моделирования всех типов волновых вычислений.
Новая версия языка Оккам (Оккам-2) содержит некоторые
полезные средства, которые недоступны в начальной версии, такие,
например, как типы данных, возможность использования многомерных
массивов и структур данных, вводимых пользователем. Желательно,
350
Глава 5
чтобы некоторые общеупотребительные и часто используемые
процессы были включены в язык в виде встроенных макрокоманд.
Использование Оккама для программирования волновых матричных
процессоров
Отметим, что связь с помощью каналов, описанная в Оккаме, в
основном такая же, как и протокол связи, предусмотренный для
волновых матричных процессоров. Транспьютерные сети,
программируемые на Оккаме, могут вполне естественно рассматриваться как
волновые процессоры при условии, что они имеют достаточно
простой поток данных. Требования к связи при программировании
матричных процессоров часто меняются в зависимости от приложений и
включают такие вопросы, как стратегия буферизации и управление
потоком. Поскольку каналы в Оккаме не имеют буферов, нельзя
достичь максимальной пропускной способности из-за несогласованности
моментов передачи и приема. Эту проблему можно решить введением
между двумя соединенными процессорами FIFO-буфера, который будет
отфильтровывать выбросы в скорости передачи данных. Некоторые
стратегии решения этой проблемы были предложены в работе
[Kung86b].
Отметим также, что Оккам очень удобен для программирования
волновых процессоров и имитационного моделирования всех типов
волновых вычислений. Система программирования на Оккаме может
быть использована для разработки полной библиотеки программ,
реализующих все алгоритмы для параллельных вычислений на
систолических и волновых процессорах.
Примеры программирования на Оккаме
Ниже на простых примерах иллюстрируются принципы
конвейеризации, параллелизма и локальности, которые присущи языку Оккам и
используются при написании программ для более сложных алгоритмов
обработки сигналов [Тау1о84]. Некоторые ключевые слова языка
Оккам приведены в табл. 5.2 в конце главы.
Пример 3. Программирование на Оккаме FIFO-буфера.
FIFO-буфер, состоящий из η элементов, может рассматриваться как цепочка
из соединенных друг с другом ячеек памяти (рис. 5.15). Программа
на Оккаме, реализующая такую структуру, имеет следующий вид:
Волновые матричные процессоры
351
о(0]
сЦ]
. с[п-1]
^Н
Рис. 5.15. FIFO-буферы: все ячейки памяти получают данные из
соответствующих левых каналов и посылают ранее записанные данные
в соответствующие правые каналы.
CHAN с[л+1]:
PAR / = [О FOR η]
WHILE TRUE
VAR χ:
SEQ
cM?*
c[M]! x:
Каждый раз когда требуется ввод данных, весь процесс
дублируется. Можно дать имя этому процессу и затем вызывать его при
необходимости. Для этого предыдущий процесс должен быть изменен
следующим образом:
PROC buffer(CHAN c.in,c.out)=
CHAN с[л-2]:
WHILE TRUE
PAR
VAR x:
SEQ
с in? χ
c[0] ! χ
PAR /=[0 FOR n-2]
VAR x:
SEQ
VAR x:
SEQ
cM?*
c[/+l]! χ
VAR x:
SEQ
c[n-2] ? χ
с out! x:
Чтобы вызвать этот процесс, необходимо только написать
следующий оператор:
352
Глава 5
buffer(cl,c2)t
где cl и с2 - заранее определенные каналы.
Пример 4. Чтение сигналов синхронизации. В определенных
ситуациях необходимо только знать, когда можно считать вход
независимо от его значения. Рассмотрим ситуацию, когда требуется
копировать данные из одного канала в другой до тех пор, пока не
поступит управляющий сигнал останова. Пусть имеются три канала -
cl, с2 и stop. Данные читаются из канала cl и выводятся в канал
с2 до тех пор, пока в канал stop не поступит сигнал; в этом
случае он будет прочтен.
Эти действия производит следующая простая программа:
VAR running:
SEQ
running :=TRUE
WHILE running
VAR x:
ALT
stop ? ANY — проверка поступления
— стоп-сигнала
running := FALSE
cl ? χ — иначе чтение и вывод переменной χ
с2! χ:
Пример 5. Программирование на Оккаме для процессора,
реализующего Х-образный фильтр. В этом примере [Ghamp85] показано,
как представить с помощью систолической и волновой программ один
и тот же алгоритм. Представление в виде ГПС Х-образного фильтра
л-го порядка дано на рис. 5.16.
Вход
Процессор 0 Вход ,
Процессор 1
_
Z-1
V
Wyf Xz
Выход 1
Выход 2
Процессор η - 1
Вход 2
Рис. 5.16. Х-образный фильтр /г-го порядка.
Программа на Оккаме, которая реализует один модуль фильтра,
имеет следующий вид:
Волновые матричные процессоры 353
PROC latt(VALUE k,CHAN in.l,in.2,out.l,out.2) =
VAR w,x,y,z:
WHILE TRUE
SEQ
in.l?x
y:=x+(w*k)
out.l ! у
z:=w+(x*k)
PAR
in.2 ? w
out.2 ! z:
Отметим, что после того, как старое значение w использовано
для вычисления у и г, новое значение w считывается из канала
in.2. Этим способом можно имитировать задержку. Основная
программа, из которой вызывается процесс latt, имеет вид:
VAR input, output, α, output, b:
CHAN top[n+l]fbottom[n+l]:
PAR
WHILE TRUE
PAR
top[0]! input
bottomfO]! input
top[/i] ? output, a
bottom[/i] ? output, b
PAR i = [0 FOR n]
latt(k[/],top[i],bottom[i],top[M],bottom[M]):
Процесс latt будет выполнен параллельно η раз. Поскольку
между каналами связи применен протокол подтверждения связи, эта
программа в действительности реализует ВМП. Это также видно из
самой программы. Сначала данные читаются через канал in.\. Затем
они должны быть модифицированы перед тем, как будут
перенаправлены в следующий модуль через канал out.l. Следовательно, в
процессе наблюдается асинхронная пульсация.
Пример 6. Программирование на Оккаме операции умножения
матриц. Здесь Оккам используется для разработки и моделирования
Двумерного волнового процессора для умножения матриц. Обратимся
к рис. 5.3, вычислительная сеть служит средством распространения
волн данных, которое может быть реализовано при помощи каналов
Оккама.
■^—1028
354
Глава 5
Одна матрица поступает в процессор слева (по столбцам), а
другая - сверху (по строкам). По мере того как значения данных
продвигаются вниз и вправо, они перемножаются и накапливаются.
После того как все элементы матриц пройдут через процессор,
каждый ПЭ будет содержать элементы конечной матрицы. Все ПЭ
выполняют одну и ту же задачу - чтение данных, их перемножение,
накопление и дальнейшую передачу данных вниз и вправо.
Программа на Оккаме, реализующая процесс умножения для
каждого ПЭ, имеет вид:
— Программа для ПЭ
PROC mult(CHAN up, down, left, right)=
VAR acc,ayb:
SEQ
acc:=0
SEQ i=[0 FOR n]
SEQ
PAR
up ? a
left ? b
acc:=acc+a*b
PAR*
down ! a
right ! b:
Далее надо установить связи между смежными ПЭ, а затем
вызвать процесс mult пхп раз. Ниже приведена главная программа,
описывающая работу всего процессора.
— Главная программа
CHAN vertical[«*(/i+l)]:
CHAN horizontal[/i*(rt+l)]:
PAR ί=[0 FOR n]
PAR /=[0 FOR n]
mult(vertical[(rt*i)+/],
vertical[(/i*/)+/+l],
horizontal[(/i*/)+/]f
horizontal[(/z*(M))+/]):
Волновые матричные процессоры
355
5.6. ПРОЕКТИРОВАНИЕ АППАРАТНОГО ОБЕСПЕЧЕНИЯ
Этот раздел посвящен аппаратной реализации ПЭ и протоколов
подтверждения связи волновых матричных процессоров.
5.6.1. Проектирование ПЭ для волнового матричного процессора
Программируемый волновой процессор должен выполнять полный
набор команд волнового языка. Каждый ПЭ содержит полный набор
схем, аппаратно поддерживающих язык. Однако в классе алгоритмов,
ориентированных на выполнение на ВМП, существует более тонкое
подразделение на области применения, что может привести к
значительному упрощению структуры и большой экономии при аппаратной
реализации. Предпочтительно, чтобы области применения волновых
процессоров были ограничены. При этом специализация ПЭ
производится путем удаления ненужных аппаратных узлов и расширения
функций других аппаратных компонентов. Определенный выигрыш
состоит в уменьшении площади, занимаемой ПЭ (т.е. в увеличении
числа ПЭ, которые могут быть размещены на кристалле) и в увеличении
скорости и пропускной способности как ПЭ, так и всего волнового
процессора.
Основными характеристиками для использования ВМП в цифровой
обработке сигналов являются соответствующая длина слова, быстрое
умножение и накопление, высокоскоростное ОЗУ и возможность
быстрого обращения к таблице коэффициентов. Для поддержки названных
операций должен быть разработан ПЭ с соответствующими функцио-
Блок
памяти
[Абсолютный]
загрузчик...
Пользовательская
программа
Устройство
(управления!
АЛУ I « » | ФС |
БПП
РК - регистр команд
ФС — флажки статуса
БПП - Буфер
программной памяти
для загрузки
Шины
; управления
Блок
регистров
Ввод—вывод
данных
Мультиплексоры
и буферы
» Двунаправленные
-шины данных
Рис. 5.17. Блок-схема функционального уровня ПЭ волнового
матричного процессора.
356
Глава 5
нальными возможностями. Как показано на рис. 5.17, ПЭ состоит из
четырех основных частей: арифметико-логического устройства
(АЛУ), запоминающего устройства, устройства управления и
устройства ввода-вы вода.
1. Арифметико-логическое устройство (АЛУ). Поскольку от
волнового матричного процессора требуется высокая
производительность, АЛУ должно с высокой скоростью выполнять часто
встречающиеся операции. АЛУ с фиксированной запятой дешевле, однако
устройство вычисления с плавающей запятой обеспечивает более
высокую точность и динамический диапазон, что часто требуется во
многих задачах цифровой обработки сигналов.
2. Запоминающее устройство. В настоящее время предпочитают
создавать отдельно память для программ и память для данных. Хотя
память на кристалле имеет ограниченную емкость, она обеспечивает
большую скорость обработки.
3. Устройство управления. Существуют два подхода к
проектированию устройства управления. В первом применяется компьютер с
сокращенным набором команд (RISC-компьютер), который использует
небольшой набор простых команд и имеет простое устройство
управления с высокой тактовой частотой. Во втором применяется
компьютер с полным набором команд (CISC-компьютер), который использует
большой и полный набор команд и позволяет записывать сложные
задачи небольшим числом команд. В современных тенденциях
реализации СБИС отдается предпочтение использованию первого подхода.
4. Устройство ввода-вывода. ПЭ должен параллельно с
обработкой выполнять передачу данных в четырех направлениях
прямоугольной сетки. Передача данных управляется контроллерами ввода-
вывода, по одному на каждое из четырех направлений, которые
осуществляют функции подтверждения двустороннего установления
связи.
5.6.2. Асинхронные протоколы связи
Одним из самых важных свойств, отличающих волновой процессор
от других матричных процессоров, является то, что работа каждого
ПЭ управляется потоком данных. Чтобы обеспечить корректную
очередность ПЭ и передачу данных между ними, для синхронизации
применяются протоколы подтверждения связи. В общем случае
существуют две схемы асинхронной связи: схема одностороннего управления
и схема двустороннего управления. В схеме одностороннего
управления отправитель передает данные, не ожидая сигнала подтвержде-
Волновые матричные процессоры
357
Данные
СК1
У//////////////Ц///////у///////Щ о ofe>
DR-
Ш
пЫ
P0R1
Qh
DU1
DS1
CLK1
P0R2
DS2
Л
D Q
\ки
СК2
DU2
Q
DA
DP
DE
ПЭ1
ПЭ2
Рис. 5.18a. Схема подтверждения связи, устойчивая к
кратковременным импульсным помехам. DE: Разрешение (Enable); DR: Данные
готовы (Data Ready); DA: Данные доступны (Data Available); DP:
Данные обработаны (Data Processed); DS: Данные посланы (Data
Sent); DU: Данные использованы (Data Used); POR: Цепь сброса
(Power On Reset).
ния от получателя. Ее можно применять только при наличии буферов
большого объема. Для волнового матричного процессора более
предпочтительна схема двустороннего управления, обычно известная как
подтверждение связи. На рис. 5.18, α показана предлагаемая схема
подтверждения. Ее можно рассматривать как улучшенную версию пре
дыдущей разработки [Kung82a]. Новая схема более надежна, так как
триггеры управляются внутренним тактовым генератором и
оказываются менее чувствительны к кратковременным импульсным помехам,
возникающим в каналах связи (см. задачу 15). Временная диаграмма
этой схемы показана на рис. 5.18,6. В ней использованы два
запускаемых по переднему фронту Ж-триггера, два запускаемых по
заднему фронту D-триггера и два вентиля AND. Ниже кратко
изложены основные операции и протоколы, выполняемые в течение одного
процесса подтверждения связи.
1. Когда DE=1, СК1=снижается; тогда DR=1 (для одного такта),
данные находятся в шине.
358
Глава 5
Η Временные затраты I
-на подтверждение—»J
связи |
СК1
СК2 Г"
DE
=DS1
DR
-η
DS2
DA
= DU2
DP
DU1
гт
Ι ι
| ι
ι Ι
ι
ι
ι Ι
ι
Ι Ι
Τ_π
Ι
Ι
Рис. 5.186. Временная диаграмма работы схемы рис. 5.18, а.
2. Когда DR=1, 011=1,СК1=возрастает; тогда DS=1, DE=0.
3. Когда DS=1, Q^=l, СК2=снижается; тогда DS2=1.
4. Когда DS2=1, DP=0, СК2=возрастает; тогда DA=1, DU2=0,
данные фиксированы в ПЭ2.
5. Когда DA=1, СК2=снижается; тогда DP=1 (для одного такта),
данные использованы.
6. Когда DS2=1, DP=1, СК2=возрастает; тогда DA=0, DU2=1.
7. Когда DU2=1, СК1=снижается; тогда DU1=1.
8. Когда DU1=1, DR=0, СК1=возрастает; DS1=0, DE=1.
Если определить затраты на подтверждение связи равными
временному интервалу между передними фронтами флагов DR и DP, то
Волновые матричные процессоры 359
этот временной интервал будет определен несколькими факторами
задержки - временем задержки триггера cL временем задержки
распространения d , расфазировкой СК1 и СК2 и задержками,
вызванными срабатыванием флага DP после установки флага DA в высокий
логический уровень. В среднем эти затраты составляют менее трех
тактов, и в большинстве случаев во время подтверждения связи оба
ПЭ будут продолжать свои вычисления. Для крупных ПЭ такие
затраты времени являются допустимыми.
Схема поблочного подтверждения связи. Одним из методов
сокращения затрат на подтверждение связи является использование схемы
поблочного подтверждения связи, при которой блок данных может
быть передан и получен за один сеанс подтверждения связи.
Успешная работа этой схемы основана на предположении, что тактовая
частота и фаза передающего ПЭ остаются стабильными в течение
периода передачи блока данных. Она пригодна для связи между
системами, работающими практически с одной и той же частотой.
Двухуровневая конвейеризация и подтверждение связи. Во многих
случаях для увеличения скорости работы требуется внутренняя
конвейеризация АЛУ процессорных элементов. При этом схема
подтверждения связи участвующих ПЭ такая же, как и прежде. Однако
из-за возможного прерывания потока данных на входе конвейера ПЭ
должен записывать время, когда данные вводятся в конвейер и
когда из конвейера поступают результаты. Если данные в конвейер не
поступают, результаты на его выходе не нужны. Простой способ
реализации этой схемы состоит в использовании однобитового
сдвигового регистра той же длины, что и конвейер в ПЭ. При
поступлении в конвейер допустимых (недопустимых) данных в сдвиговый
регистр вводится 1(0). Эта 1 (или 0) сдвигается в регистре по
мере продвижения данных в конвейере. Когда данные появляются на
выходе конвейера, 1 (или 0) оказывается на выходе сдвигового
регистра и управляет пропусканием выходных данных. Таким
образом, ПЭ может выбирать (только) правильные обработанные данные.
5.7. ЗАКЛЮЧЕНИЕ
В данной главе рассмотрена волновая архитектура, которая
исключает требования глобального управления и глобальной
синхронизации, присущие систолическим процессорам. Предполагается
подход, основанный на управлении данными и автосинхронизации, для
четкого оперирования зависимостями данных при вычислениях на
матричных процессорах. Мощность и гибкость волновых матричных
360
Глава 5
процессоров лучше всего может быть продемонстрирована на задачах
из очень широкой области их применения, включающей спектральный
анализ, адаптивную матричную обработку, машинное зрение и
обработку изображений, обработку сейсмических и медицинских
сигналов, решение дифференциальных уравнений с частными производными
и многие другие задачи. Кроме того, ценой дополнительных затрат
на связь метод волновой обработки (в отличие от метода
систолической обработки) может оказаться предпочтительнее для
реализации алгоритмов с глобальной связью или вычислительных сетей с
относительно нерегулярными соединениями.
В качестве формальной абстрактной модели волновых
вычислительных сетей предложен ГПД, который может быть получен из ГЗ
назначением вектора проекции и использованием для планирования
принципа управления данными. Получение ГПД из ГПС также
непосредственно следует из метода эквивалентного преобразования. Был
проведен основанный на ГПД анализ синхронизации и восстановления
синхронизации, который привел к нескольким алгоритмам
размещения очередей для оптимизации производительности. Фактически
используемые методы анализа очень близки подходу, применяемому при
анализе асинхронных вычислительных сетей с помощью
синхронизированных сетей Петри. Синхронизированная сеть Петри, по-видимому,
представляет собой перспективную методологию. В этой главе
проиллюстрированы возможные приложения для параллельных волновых
вычислений.
Для выбора между синхронными и асинхронными схемами были бы
полезны некоторые основополагающие принципы. Синхронные схемы
(например, систолический процессор) предпочтительны, когда для
данной степени интеграции тактирование оказывается более
осуществимым и примитивы ПЭ достаточно просты. Однако при росте
уровня интеграции синхронизация большого матричного процессора
станет крайне сложной. С другой стороны, в асинхронных схемах
(например, волновом процессоре) требуются аппаратные и временные
затраты для обеспечения интерфейса подтверждения связи между ПЭ.
Однако для ПЭ с более сложными функциональными возможностями
величина затрат становится относительно небольшой.
Распространенной схемой сокращения затрат на передачу данных является
схема поблочного подтверждения связи. Дальнейшее снижение затрат
может быть достигнуто при использовании вычислительной сети,
разбитой на множество блоков из ПЭ, которая синхронизируется
внутри блока, но глобально является асинхронной.
Волновые матричные процессоры 361
Таблица 5.1. Система команд (глобального) языка MDFL
Команды пересылки данных
FLOW <ИСХОДНЫЙ РЕГИСТР>,<НАПРАВЛЕНИЕ>;
FETCH <РЕГИСТР НАЗНАЧЕНИЯ^ <НАПРАВЛЕНИЕ>;
READ;
Команды, поддерживающие выполнение рекурсий
REPEAT... UNTIL TERMINATED;
WHILE WAVEFRONT IN ARRAY DO
BEGIN ... END;
SET COUNT <ЧИСЛО ВОЛНОВЫХ ФРОНТОВ>;
DECREMENT COUNT;
ENDPROGRAM.
Команды условных переходов
IF EQUAL THEN <ОПЕРАТОР>;
IF NOT-EQUAL THEN <ОПЕРАТОР>;
IF GREATER THEN <ОПЕРАТОР>;
IF LESS-THAN THEN <ОПЕРАТОР>;
IF <НАПРАВЛЕНИЕ> DISABLED THEN <ОПЕРАТОР>;
CASE KIND=
(1,1):<ОПЕРАТОР>;
(1,*):<ОПЕРАТОР>;
(*,1):<ОПЕРАТОР>;
ΙΝΤ:<ΟΠΕΡΑΤΟΡ>;
ENDCASE;
Внутренние команды процессора
TSR<MCT04HHK>,<nPHEMHHK>;
ADD<HCT04HHK#l>,<HCT04HHK#2>,<nPHEMHHK>;
SUB<HCT04HHK#l>,<HCT04HHK#2>,<nPHEMHHK>;
MULT<HCT04HHK#l>,<HCT04HHK#2>,<nPHEMHMK>;
01У<ИСТОЧНИК#Ь,<ИСТОЧНИК#2>,<ПРИЕМНИК>;
SORT<HCT04HHK>,<nPMEMHHK>;
СМР<ИСТОЧНИК#Ь,<ИСТОЧНИК#2>;
TST<MCT04HHK>;
STORE;
NOP;
RESET;
DISABLE SELF;
BEGIN ... END;
362
Глава 5
Таблица 5.2. Некоторые ключевые слова языка Оккам
Ключевое Определение Комментарии
слово
SEQ SEQ {база FOR количество} Последовательно
pi выполняются процессы
р2 pi, р2,...
PAR PAR {база FOR количество}
Pi
Р2
Параллельно
выполняются процессы pi, р2,...
ALT ALT {база FOR количество}
Pi
Р2
Одновременная проверка
всех процессов
pi, р2,...для
выделения первого из
выполнимых процессов
WHILE WHILE <условие>
процесс
IF IF <условие>
процесс
VAR VAR имя1,имя2...
VAR имя[размер]:
Переменная может быть
простой или массивом
переменных
CHAN CHAN имя1,имя2,...:
CHAN имя[размер]:
PROC PROC имя(<параметры>)
подпроцесс pi
подпроцесс р2
Волновые матричные процессоры
363
5.8. ЗАДАЧИ
1. Сравнение систолического и волнового процессоров. Сравните
систолический и волновой процессоры с точки зрения:
а) сложности аппаратуры;
б) быстродействия;
в) программной гибкости;
г) отказоустойчивости.
2. Некоторые свойства помеченного графа. Модель ВПГ весьма
сходна с моделью помеченных графов в теории сетей Петри;
единственное отличие состоит в том, что обычно помеченный граф не
определяет времена выполнения операций в вершинах. Докажите
следующие результаты для помеченного графа [Commo71]:
а) Сумма маркеров в ориентированном цикле после запусков не
меняется.
б) В помеченном графе отсутствуют тупики тогда и только
тогда, когда число маркеров каждого ориентированного цикла
положительно.
в) Помеченный граф называется надежным, если нет дуги, на
которой более одного маркера и нет последовательности запусков,
оставляющей два или более маркера на одной дуге. Докажите, что
помеченный граф не имеет тупиков и является надежным тогда и
только тогда, когда каждая дуга в графе находится в
ориентированном цикле с числом маркеров, равным 1.
3. Распределение очередей для линейного фазового фильтра.
Распределение очередей для линейного фазового фильтра (рис.
5.6, в) является минимальным, если Δ намного меньше Τ (сравните с
многоскоростным линейным фазовым систолическим процессором в
гл. 4). Полагая Δ = |г, покажите, что распределение очередей
действительно является минимальным.
4. Минимальное распределение очередей с перераспределением
начальных маркеров. В некоторых случаях можно заметить, что
часть длины очереди дуги, используемая для размещения начальных
маркеров, после этапа инициализации никогда больше не
используется в дальнейших вычислениях. В этих случаях вычисления после
инициализации может поддерживать очередь меньшей длины.
Использование этой меньшей длины требует перераспределения начальных
маркеров так, чтобы все они помещались в сокращенных очередях
дуг. Покажите, что это перераспределение может быть
сформулировано аналогично предложенной формулировке задачи целочисленного
программирования и может быть включено в задачу целочисленного
364
Глава 5
•"•О ·
JL JL JL jL Направление
• -*>0-*KZ)"'*"C)'"*v} пР°ек1*ии
Рис. 5.19. Инвариантный относительно сдвига ГЗ с направлением
проекции
программирования большего размера для решения проблемы
минимального распределения очередей [Kung86b].
5. Граничные условия ГЗ. Для ГЗ, показанного на рис. 5.19,
получите ГПС- и ГПД-матричные процессоры, применив систолическое
и ГПД- отображения соответственно вдоль заданного направления
проекции. Покажите, что для обеспечения корректности вычисления
необходимо обратить внимание на граничные условия ГЗ, т.е. в
течение определенного времени некоторые ПЭ должны оставаться
неактивными.
6. Минимальное распределение очередей для ГЗУ инвариантного
относительно сдвига. Предположим, что ГЗ - инвариантный
относительно сдвига с одним и тем же временем вычисления вершины.
Тогда ГЗ может быть спланирован априори и может быть определено
минимальное время вычисления.
а) Покажите, что все вершины ГЗ находятся на критическом
пути,' т.е. нет вершины, которая может быть перепланирована без
увеличения минимального времени вычисления.
б) Предположим, что дуга а ГЗ спроецирована вдоль 2 в дугу
а7. Для определения минимального требуемого размера очереди для
а' отметим следующее: 1) спланированное время завершения t, для
начального узла а показывает, когда выходные данные вершины
произведены (или размещены) в а', 2) спланированное время
завершения /2 для конечного узла дуги а показывает, когда данные
получены из а7, 3) время вычисления вершины есть т. Покажите, что
*2~*ι+τ представляет время, в течение которого маркер данных
находится на а7 и на ее двух конечных вершинах.
в) Покажите, что размер очереди дуги a7, Q, может быть
вычислен по формуле
•да.
Волновые матричные процессоры
365
где ΓΊ означает функцию предела, а α - конвейерный такт, т.е.
период времени между поступлениями в вершину а' двух
последовательных данных. Если длина очереди волнового процессора меньше,
чем минимально требуемый размер, то общая скорость процессора
будет падать.
г) Предположим, что время вычисления вершины τ нормализовано
(т.е. τ=1). Если ГЗ отображен в ГПС вдоль 3, покажите, что число
задержек на дуге а' будет D'^t^-t.. Это может привести к
заключению, что размер очереди ГПД может быть определен
соответствующим ему ГПС. Проверьте, что размер очереди для а' может быть
определен, как
7. Отображение определенного инвариантного относительно
сдвига ГЗ на ГПД. Определенный инвариантный относительно сдвига ГЗ
показан на рис. 5.20, где число в каждой вершине показывает
требуемое время вычисления для вершины.
а) Получите структурно инвариантный относительно времени ГПД
из ГЗ. Предполагается, что размер очереди в ГПД бесконечно
большой.
б) Какое планирование определяет ГПД?
в) Каков минимальный размер очереди, при котором достигается
минимальное время вычисления? (Указание: Для некоторых вершин
ГПД вместо раннего времени завершения может быть использовано
позднее время завершения (разд. 3.4.6)..
г) Как систематически получить минимальное распределение
очередей для общего двумерного определенного инвариантного относи-
Направление
проекции
Рис. 5.20. Определенный инвариантный относительно сдвига ГЗ, в
узлах которого показано время выполнения.
366
Глава 5
тельно сдвига ГЗ? Для Af-мерных определенных инвариантных
относительно сдвига ГЗ?
8. Программирование параллельного алгоритма.
а) Запрограммируйте задачу транзитивного замыкания из гл. 4
на языке MDFL. Предположите, что матрица А поступает слева и
сверху.
б) Повторите пункт а) с условием, что матрица А поступает в
диагональном направлении.
в) Повторите пункт а), используя язык Оккам.
г) Повторите пункт б), используя язык Оккам.
9. Языки, ориентированные на архитектуру. Операция каждого ПЭ
систолического матричного процессора синхронизируется глобальным
тактовым генератором, тогда как волновые матричные процессоры
являются асинхронными. Волновой принцип позволяет также
накапливать данные, если доступны очередь или память. Предложите
подходящий механизм связи, используя соответствующий язык для каждой
архитектуры. Обсудите такие вопросы программирования, как
проблемы состязаний, затрат на согласование, тупиковых ситуаций и т.д.
10. Задана нахождения кратчайшего пути. Разработайте матричный
процессор и напишите для него программу на Оккаме для задачи
нахождения кратчайшего пут-и в неориентированном графе G, в
котором с каждой дугой е связан неотрицательный вес с(е).
11. LU-разложение. Запрограммируйте матричный процессор на
СБИС на языке MDFL для решения задачи Ш-разложения.
Указание: Могут быть обсуждены две версии Ш-разложения; одна
- версия на сеточном матричном процессоре, другая - на
треугольном процессоре.
12. Применение языка Оккам для программирования систолических
и волновых процессоров. Обсудите и сравните приемы
программирования на языке Оккам для систолических (синхронных) и волновых
(асинхронных) матричных процессоров.
13. Решение теплицевых систем.
а) Запрограммируйте на языке Оккам алгоритм Левинсона.
б) Запрограммируйте на языке Оккам алгоритм Шура.
в) Сравните и обсудите результаты а) и б).
14. Протоколы подтверждения связи. Существуют два типа схем
асинхронной связи [Hayes78]:
• Одностороннее управление. Синхронизирующие импульсы
подаются только одним из двух связывающихся устройств.
• Двунаправленное, или взаимное управление. Оба устройства
генерируют синхроимпульсы.
Волновые матричные процессоры 367
Данные
Данные готовы I
a
Шина данных
Данные готовы
Подтверждение
получения данных
б
Рис. 5.21. Протокол с односторонним управлением (а), протокол
подтверждения связи с двунаправленным управлением (б).
На рис. 5.21 приведены временные диаграммы начального
состояния этих двух схем.
а) Сравните достоинства и недостатки этих схем.
б) Какая из схем предпочтительна для ВМП? Почему?
15. Схема подтверждения связи без защиты от импульсных помех.
На рис. 5.22 приведена простая схема подтверждения связи,
аналогичная схеме, приведенной на рис. 5.18. Эта схема чувствительна
к импульсным помехам, которые часто возникают в больших
матричных процессорах, когда все ПЭ активны. Нарисуйте временную
диаграмму этой схемы и найдите, в какой ситуации эта схема не будет
работать.
Указание: Упрощенные операции могут буть изложены в следующих
шагах:
а) Когда D£=l, CKUвозрастает; тогда DR=\, данные находятся в
шине.
б) Когда D/?=l, Ш=1,С/(1=снижается; тогда DS=1, D£=0, данные
фиксированы в ПЭ2.
в) Когда Z)S=1, DP=0, С/С2=снижается; тогда DA=\,DU=Q.
г) Когда Ζλ4=1, С/С2=возрастает; тогда £>Р=1, данные
используются.
д) Когда DS=1, /)Я=1, С/С2=снижается; тогда DA=Q,DU=\.
е) Когда Ш=1, Я=0, (Ж1=снижается; тогда Z)S=0,D£=1.
16. Различные схемы вызова. Самым простым сигнальным событием,
которое может быть использовано для сравнения автосинхронизиро-
ванных сигнальных преобразований является переход. Обычно
используются два типа перехода [Seitz80]:
368
Глава 5
Данные
СК1 φ
ПЭ1
D Q
clk|
CK2 φ
К Q
ПЭ2
Рис. 5.22. Простая схема подтверждения связи, не обладающая
устойчивостью к кратковременным импульсным помехам.
Шина данных
Данные готовы
Подтверждение
получения данных
^E^rj
Шина данных
Данные готовы
Подтверждение
получения данных
Рис. 5.23. Двухтактный вызов (а) и четырехтактный вызов (б).
• Двухтактный вызов (без возврата к нулю non-return-to-zero,
NRZ).
• Четырехтактный вызов (с возвратом к нулю return-to-zero,
RZ).
Два типа вызова на двустороннем подтверждении связи в
предыдущей задаче, показаны на рис. 5.23.
Сравните относительные достоинства и недостатки этих двух
типов автосинхронизированного вызова.
Волновые матричные процессоры
369
17. Поблочное подтверждение связи. Одним из аргументов против
использования подтверждения связи при каждой передаче данных
является то, что время связи становится сравнимым с временем
вычисления, что не очень эффективно. Решение этой проблемы
состоит в передаче за один акт подтверждения связи не одного слова,
а блока слов. Удачно ли это решение? В чем состоят его
достоинства и недостатки?
18. Нерегулярные волновые матричные процессоры для умножение
разреженных матриц. Операции с разреженными матрицами включают
много ненужных вычислений над нулевыми элементами. Одним из
способов ускорения вычислений является применение ассоциативного
систолического процессора, в котором в вычислениях используются
только ненулевые элементы [Charn86]. Другим способом является
использование волнового матричного процессора, который допускает
нерегулярные волновые фронты, соответствующие вычислениям
ненулевых элементов [Melhe86]. Сравните эти два метода.
24—1028
Глава 6. РАЗРАБОТКА СИСТЕМ И ПРОГРАММНОГО
ОБЕСПЕЧЕНИЯ
6.1. ВВЕДЕНИЕ
В предыдущих главах рассмотрены проблемы разработки и анализа
ПЭ матричных процессоров. Ниже мы попытаемся ответить на
следующий важный вопрос: как объединить эти матричные процессоры в
одну большую вычислительную систему}
Матричный процессор можно использовать как ускоритель,
присоединенный к совместимой ведущей ЭВМ, или как самостоятельную
ЭВМ, оснащенную управляющим процессором. В общем случае в
большой системе, состоящей из матричных процессоров, необходимо
максимизировать следующие эксплуатационные показатели: эффективную
организацию системы, гибкость разбиения задач,
отказоустойчивость, повышающую надежность системы, программную поддержку.
Ниже перечислены свойства матричной процессорной системы:
1. Высокая скорость вычислений. Система должна обеспечивать
такую скорость вычислений, которая по крайней мере удовлетворяет
требованиям обработки в реальном времени.
2. Показатель "Стоимость-эффективность". Стоимость аппаратуры
зависит не только от количества использованных ее компонентов,
но также и от числа типов использованных модулей. Поэтому
матричный процессор должен использовать как можно меньшее число
типов ПЭ и приспосабливать для каждого ПЭ программу,
соответствующую выполняемой задаче.
3. Гибкость. Матричная процессорная система должна быть в
полной мере программируемой и перестраиваемой, чтобы
удовлетворять требованиям широкой области применений. Например, важно
обеспечить аппаратную и/или программную поддержку эффективной
схемы разбиения, осуществляющей декомпозицию больших задач на
меньшие подзадачи, решаемые на матричном процессоре.
4. Надежность. Современные матричные процессоры
изготавливаются на СБИС, и поэтому дополнительное внимание должно быть
уделено обеспечению приемлемой надежности системы. В матричном
процессоре на СБИС неизбежно будет происходить сбой или отказ
одного или нескольких ПЭ. Поэтому отказоустойчивость - существенный
фактор живучести высокопараллельной матричной процессорной
системы.
5. Программная поддержка. Для удобства пользования матричной
вычислительной системой необходимо развивать согласованные мето-
Разработка систем и программного обеспечения 371.
ды программирования для разработки как самой системы, так и
набора пакетов прикладных программ.
При разработке матричных процессоров должны быть рассмотрены
также проблемы реализации как на уровне ПЭ, так и на системном
уровне. На системном уровне основными компонентами матричной
процессорной системы являются: ведущая ЭВМ и/или устройство
управления матричным процессором (вместе с возможными устройствами
ввода-вывода); устройство сопряжения; сети обмена (на уровне
сети между ПЭ и/или на уровне обмена ПЭ с памятью); матрицы ПЭ.
Важным вопросом в разработке матричных процессорных систем
является согласование алгоритмов со структурой матричной
системы. По существу проблема согласования для конкретной сети
матричного процессора состоит в программировании множества
алгоритмов так, чтобы они могли быть эффективно выполнены на этом
процессоре. Если топология сети обмена фиксирована, для
согласования структуры алгоритмов с сетью должны быть применены некоторые
методы преобразования. Когда фиксирован размер матричного
процессора или локальной памяти, главное в проблеме согласования -
задача разбиения. Схема разбиения позволяет расчленять большую
задачу на несколько меньших подзадач, решать каждую из них на
данном матричном процессоре и затем, объединяя решения подзадач,
получить общее решение. Систематическая методология разбиения
обсуждается в разд. 6.3.
Для повышения надежности системы в разд. 6.4 представлена
разработка отказоустойчивого матричного процессора, основанная
на алгоритме распределенной реконфигурации. В этом же разделе
излагается алгоритмический подход к обеспечению
отказоустойчивости, основанный на кодировании входных данных некоторым кодом,
исправляющим или обнаруживающим ошибки. При анализе
отказоустойчивости оказалось весьма полезным представление алгоритма в виде
графа зависимостей.
Часто меняющиеся условия применения требуют создания
программируемых матричных процессорных систем. Параллельное
программирование существенно сложнее, чем обычные методы
программирования. Вместо того чтобы заниматься выбором традиционного языка,
целесообразнее использовать новые системы обозначений или языки,
более пригодные для матричных процессоров. Кроме того, может
быть развита методология иерархического проектирования,
основанная на идее матричного компилятора, отображающего спецификации
высокого уровня в определенный архитектурный проект.
372
Глава 6
6.2. ОРГАНИЗАЦИЯ СИСТЕМЫ
На рис. 6.1 изображена возможная конфигурация матричной
процессорной системы, которая состоит из следующих основных
компонентов:
• Ведущая ЭВМ и/или устройство управления матричным
процессором (УУМП).
• Устройство сопряжения.
• Матрица (матрицы) ПЭ (процессорный массив).
• Сеть (сети) обмена.
Ниже приводятся общие соображения об этих компонентах, а
примеры практических разработок и более подробное изучение сетей
обмена представлены в гл. 7.
Устройство
ввода—вывода!
Ведущая
ЭВМ
Буферы I
£3
Устройство сопряжения
хтхт
t ¥
Устройство
управления
матричным
процессором
О
Г 1
Массив процессоров
1 1-1
Рис. 6.1. Матричная процессорная система, состоящая из ведущей
ЭВМ/УУМП, системы сопряжения, сетей обмена и процессорного
массива.
Разработка систем и программного обеспечения 373
6.2.1. Ведущая ЭВМ и устройство управления матричным процессором
Ведущая ЭВМ должна обеспечивать системное управление и
управление данными, устанавливать программу, которая управляет всеми
устройствами системы, и генерировать коды глобального управления
и объектные коды для ПЭ.
Ведущая ЭВМ может быть выбрана из широкого диапазона машин,
охватывающего существенно различные уровни вычислительной
мощности. Это может быть микроЭВМ, рабочая станция, мини-ЭВМ,
большая ЭВМ или суперЭВМ. Выбор будет зависеть от предназначаемых
применений. Для разработчика системы важно заранее определить
тип ведущей ЭВМ, совместимой с высокоскоростными матричными
процессорными устройствами.
Устройство управления матричным процессором (УУМП). Ведущая
ЭВМ генерирует управляющие коды для координации действия всех
устройств системы. УУМП выдает команды на выполнение
перегруппировки данных и организацию траффика с тем, чтобы параллельно
обрабатываемые задачи своевременно назначались на
соответствующие модули матричного процессора. Управление очередностью
выполнения команд определяет последовательность операций.
Форматирование данных/управление памятью. Данные могут быть
представлены в виде чисел с плавающей или фиксированной запятой,
поразрядно-последовательной или параллельной формой или в
нечисловом виде. Форматы данных могут быть различными для различных
матричных процессорных устройств, поэтому часто требуются
преобразования форматов, которые выполняются обычно ведущей ЭВМ.
Управление памятью реализуется либо программистом, либо
системным контроллером. Системное управление памятью является более
надежным и гарантирует невозможность нежелательного
вмешательства, однако эффективность размещения данных при этом довольно
низка. Простым и полезным методом представляется управление
памятью, основанной на динамическом создании стеков.
Операционная система. Для того чтобы предоставить
пользователю полноценную программную среду, необходимы следующие
возможности: поддержка работы с дисковой памятью и ввода-вывода на
терминальные устройства, управление ресурсами (ЦП, процессорными
элементами, памятью, устройствами ввода-вывода), защита от
несанкционированного доступа, реализация многопользовательского и
многозадачного режимов, управление виртуальной памятью. Эти
средства существуют в большинстве традиционных операционных
систем (например, в ОС UNIX).
374
Глава 6
Матричная процессорная система по структуре обычно
асимметрична (связь по типу "ведущий-ведомый"), т.е. матричные
процессоры управляются ведущей ЭВМ и не предназначены для выполнения
присущих ей задач. Это упрощает разработку операционной системы,
так как ведущая ЭВМ может рассматривать матричные процессоры как
специальный ресурс. Обычную операционную систему снабжают
дополнительной программой - драйвером для матричных процессоров,
который способен работать с ними как с единым целым (для
распределения задач матричным процессорам) и как с набором процессоров
(для загрузки программ и данных в отдельные процессорные
элементы). Информация для выполнения этих задач предоставляется
языковым компилятором, который выполняет анализ зависимостей.
Для специализированной матричной процессорной системы
реального времени ОС общего назначения не требуется, так как система
выполняет одну функцию продолжительное время и любое изменение
функции (перепрограммирование) можно выполнить в автономном
режиме. Однако может оказаться полезным наличие ядра ОС. Другими
словами, существует необходимость в некоторых системных
программах на ведущей ЭВМ или УУМП, которые будут обрабатывать внешние
прерывания, обслуживать устройства ввода-вывода и связь между
матричными процессорами и ведущей ЭВМ, осуществлять защиту от
ошибок и предоставлять некоторые средства системного
программирования, облегчающие перепрограммирование ( например,
перепрограммирование сетей обмена, загрузка программ и управление
вводом-выводом). Разработка программ осуществляется на отдельной
системе разработки, которая имеет средства ОС общего назначения
и некоторые дополнительные возможности для автономного
имитационного моделирования, отладки и последующей загрузки конечной
программы в матричный процессор. В среде системы специального
назначения (например, системы дистанционного управления)
требуются следующие программные средства:
1. Разработка программного обеспечения. Основные средства,
существующие в обычных ОС (например, редакторы, файловая
система) и дополнительные средства для поддержки согласованного
отображения алгоритмов на матричные процессоры (например,
специализированные языки высокого уровня, программы проектирования).
2. Тестирование и отладка. Имитатор разрабатываемой
архитектуры матричного процессора.
3. Загрузка программ. Средства программирования ПЗУ для
существующих систем или интерфейс для управления САПР заказных или
полузаказных схем.
Разработка систем и программного обеспечения 375
4. Поддержка исполнения. Библиотека подпрограмм для поддержки
взаимодействия ПЭ между собой и ведущей ЭВМ, реализация основных
управляющих функций и обслуживания глобальных ресурсов, таких,
как память и внешние устройства ввода-вывода.
В этом случае видно, что функциональность системных программ
при исполнении ограничена, но поскольку речь идет о системе
реального времени, важна скорость их работы, что определяет выбор
быстродействующей ведущей ЭВМ и необходимость оптимизированного
кодирования системных программ.
6.2.2. Устройство сопряжения
Поскольку матричный процессор подключается к ведущей ЭВМ,
важным моментом является разработка устройства сопряжения (УС),
которое функционирует под управлением контроллера, реализующего
планирующую программу. УС, связанное с ведущей ЭВМ шиной или
каналами прямого доступа в память, выполняет функции загрузки,
откачки и буферизации данных матричного процессора (используя,
например, кэш-память или стеки специального назначения),
управления прерываниями и форматирования данных.
Прямой доступ в память. Для поддержки связи с большой
пропускной способностью ( требуемой при высокоскоростной
обработке) при передаче команд и данных между ведущей ЭВМ и матричными
процессорами могут быть использованы каналы прямого доступа в
память (ПДП). При ПДП устройство сопряжения связывается
непосредственно с памятью, не затрагивая внутренние регистры
компьютера. Программы для матричных процессоров, а также исходные и
обрабатываемые данные загружаются в матричные процессоры и
откачиваются из них через высокоскоростные каналы ПДП. Для некоторых
применений могут быть подключены дополнительные устройства
ввода-вывода, удовлетворяющие требованиям большой пропускной
способности [Ногп86].
Устройство памяти. Устройство сопряжения должно обеспечивать
адекватную аппаратную поддержку для многих обыкновенных операций
управления данными. Другими важными задачами для разработчика
систем являются обслуживание блоков данных и обеспечение того,
чтобы устройство памяти (буфер) могло согласовывать низкую
скорость системного ввода-вывода с высокой скоростью работы
матричных процессоров. Устройства памяти должны быть тщательно
разработаны, чтобы соответствовать большой производительности
процессорной матрицы. Должна быть также рассмотрена возможность введе-
376
Глава 6
ния кэш-памяти. В среде параллельной обработки общая основная
память разделяется на несколько независимых модулей памяти и
адреса распределяются по этим модулям. Такая схема, называемая
расслоением, разрешает некоторые конфликты, допуская
параллельные обращения более чем к одному модулю. Для доступности
матричных данных желательно иметь память, из которой можно производить
выборку как по строкам, так и по столбцам. Это требование
встречается во многих применениях, таких, как транспонирование
матриц, сортировка (например, обобщенная битонная сортировка), или
решение дифференциальных уравнений в частных производных. В
некоторых задачах обработки изображений желательны возможности
переупорядочения данных, выполняемого устройством сопряжения.
Например, в параллельном процессоре МРР фирмы Goodyear
применяется подобное устройство секционированной памяти [Batch80].
Разбиение. Часто необходимо разделить большую задачу на нес-,
колько меньших подзадач, назначить подзадачи на подходящие
матричные процессоры и объединить все результаты. Программируемые
интерфейсы играют основную роль в обеспечении временного
рабочего пространства в памяти и согласовании пропускной способности
памяти с загрузкой матричного процессора.
6.2.3. Массивы ПЭ
Массив ПЭ содержит некоторое число процессорных элементов с
локальной памятью. В большинстве существующих матричных
процессорных систем (например, систолические, волновые, и SIMD-мат-
ричные процессоры) ПЭ выполняют одни и те же вычисления и
связаны между собой регулярным образом, допускающим наращивание. Эти
схемы предназначены для реализации большого класса регулярных и
рекурсивных алгоритмов в таких областях, как обработка сигналов
и изображений с использованием локальных/глобальных операций.
Важной особенностью при проектировании матричных систем
является наличие локальной памяти в каждом ПЭ, обеспечивающей
локальную гибкость. Хотя память в кристалле имеет меньший объем,
чем внешняя память, она позволяет более интенсивно производить
одновременные операции ввода-вывода и обработки. В том случае
когда емкость локальной памяти ПЭ достаточна, она может
эффективно использоваться для реализации следующих возможностей:
1. Множественное хранение программ позволяет матричному
процессору выполнять различные функции без перезагрузки программ.
2. Временное хранение данных. Когда это возможно, выгодно
Разработка систем и программного обеспечения 377
сохранять некоторые данные в ПЭ для последующих вычислений. Это
может сократить время обмена и предотвратить "связывание" шин
интерфейса.
На рис. 6.1 изображен для простоты только один матричный
процессор (во многих приложениях достаточно одного программируемого
матричного процессора). Однако идея организации сети из
множества матричных процессоров расширяет сферу применения, особенно в
тех случаях, когда большинство матричных процессоров должны
работать согласованно при решении сложных задач с высокой
производительностью.
6.2.4. Сети обмена
Сети обмена между ПЭ могут существенно расширить область
применений и увеличить производительность матричных процессоров.
Связь в матричном процессоре. В массиве ПЭ для обеспечения
прямой, глобальной и высокоскоростной связи могут быть
использованы структурные сети. Для реализации таких сетей обмена
существуют два способа. Первый тип конфигурации (рис. 6.2, а), в
котором сеть используется для поддержки прямой связи между ПЭ,
соответствует ситуации, когда число ПЭ равно числу блоков памяти.
Каждый ПЭ постоянно соединен с одним (и только с одним) блоком
памяти. Для выполнения вычислений с одними и теми же данными в
различных ПЭ такая структура весьма эффективна, так как операции
с памятью не участвуют в передаче данных между ПЭ. Такое решение
выбрано в большинстве используемых или проектируемых матричных
ЭВМ [Lenfa78].
Второй тип конфигурации часто используется, когда число
блоков памяти и число ПЭ не совпадает. Обычно число блоков памяти
оказывается больше числа ПЭ (например, в алгоритмах обработки
матриц). Рис. 6.2,6 иллюстрирует такую конфигурацию, где сеть
обмена используется для соединения блоков памяти с ПЭ.
Связь между матричными процессорами. В случае когда в
матричной процессорной системе имеется много матричных процессоров
(или кластеров из процессорных элементов), часто узкое место
возникает тогда, когда ведущая ЭВМ пытается организовать обмен
данными между всеми матричными процессорами. С этой целью между
блоками глобальной и локальной памяти вводится глобальная шина
или сеть обмена. Вместе с тем для связи в матричном процессоре
сохраняется локальная сеть обмена (рис. 6.2, в).
378
Глава 6
пэ
пэ
Блоки памяти
ПЭ
ПЭ
Сеть обмена
Сеть обмена
ПЭ | | ПЭ | ПЭ | | ПЭ
б
Рис. 6.2. Три различные конфигурации сетей обмена (СО) в
матричной процессорной системе, а -связь внутри массива между ПЭ; б -
связь внутри массива между ПЭ и блоками памяти; в - связь между
массивами - между массивом и блоками глобальной памяти (УУМП
здесь не показано).
Конфигурация, показанная на рис. 6.2, в, представляет собой
иерархическую версию конфигурации, приведенной на рис. 6.2,6. В
каждом подмассиве (кластере) для обеспечения внутренней связи
используется локальная сеть обмена, соединяющая блоки быстрой
локальной памяти и массив ПЭ. Для обеспечения взаимодействия
между матричными процессорами используется глобальная сеть
обмена, которая соединяется с локальной памятью через локальное
устройство управления. Такая структура определяет также возможность
доступа к общим данным [Gajsk83]. Было бы желательно
использовать глобальную сеть обмена для обеспечения связи как в
матричном процессоре, так и между матричными процессорами. Для этого
сеть обмена должна обладать некоторыми возможностями разбиения
[FengSl].
Разработка систем и программного обеспечения 379
6.3. СОГЛАСОВАНИЕ АЛГОРИТМОВ С МАТРИЧНЫМИ
ПРОЦЕССОРАМИ
В главе 3 обсуждалось отображение алгоритма на проблемно-
ориентированный матричный процессор. Ниже рассматривается
следующая тема: как разработать проблемно-ориентированный матричный
процессор, чтобы обеспечить наилучшее отражение структуры данных
реализуемого алгоритма. Попробуем ответить на близкий вопрос:
каково множество алгоритмов, наиболее пригодных для архитектуры
специализированного матричного процессора? Эта задача называется
задачей согласования в условиях, когда основные параметры
матричного процессора (число ПЭ, каналы связи или размер памяти)
предполагаются заданными. Другими словами, согласование - это в
основном отображение с ограничениями. Если введены ограничения
на каналы связи, то для согласования алгоритма с архитектурой
потребуются некоторые методы преобразования. Когда же имеются
ограничения на число ПЭ или на размер памяти, задача
согласования сводится к разбиению.
6.3.1. Согласование алгоритмов с матричными процессорами
фиксированной структуры
Для иллюстрации общей методологии согласования алгоритмов с
определенными структурами рассмотрим два примера: первый -
согласование регулярных массивов с сеточными матричными
процессорами; второй - согласование сеточных алгоритмов со структурами
типа гиперкуб.
Согласование регулярных массивов с сеточными матричными
процессорами
Сначала рассмотрим случай, когда целевой матричный процессор
является линейным или сеточным процессором с одним
двунаправленным каналом связи между соседними ПЭ. Этот матричный процессор
может непосредственно предоставлять один канал связи в любом
направлении между соседними ПЭ. Однако многие алгоритмы,
представленные в виде графа потока сигналов (ГПС), используют более
одного канала связи для каждой вершины. Чтобы реализовать такие
ГПС на сеточном или линейном матричном процессоре, каналы связи
должны быть разделены во времени, что позволит реализовать все
связи в исходном алгоритме. Поэтому основная проблема состоит в
380
Глава 6
определении подходящей схемы разделения времени для каналов
связи. Рассмотрим вначале несколько примеров, иллюстрирующих схему
разделения времени.
Пример 1. Разделение времени для каналов
Предположим, что разрабатывается простой линейный матричный
процессор с одним однонаправленным каналом и ГПС, который должен
быть реализован, представляет собой линейный массив с двумя
дугами (рис. 6.3,а). Отметим, что, поскольку за один период
рекурсии D через единственный канал должны быть переданы две порции
данных, можно разделить период рекурсии D на два меньших цикла,
т.е. Ζ)=2τ (где каждый меньший цикл используется для одной
передачи данных). Тогда можно перераспределить время задержки 2τ на
нижней дуге ГПС так, как показано на рис. 6.3,6. Заметим, что
в б
Рис. 6.3. ГПС с двумя дугами (а) и схема разделения времени ГПС
(б). Квадрат на дуге обозначает временную задержку τ.
верхняя дуга массива имеет нулевую задержку, а нижняя дуга имеет
задержку τ (обозначенную маленьким квадратом) в начальной
вершине дуги и задержку τ в конечной вершине дуги. Разделение времени
в этом примере является непосредственным. Данные по верхней дуге
передаются при /=0, а данные по нижней дуге задерживаются на
время τ перед передачей в канал. Это означает, что данные по
верхней дуге могут быть посланы в первый цикл, а данные по
второй дуге - во второй цикл. Поэтому между этими двумя событиями
не будет конфликта по времени.
Пример 2. От гексагональных массивов к сеточным структурам
матричных процессоров
Массив с гексагональным ГПС, приведенный на рис.6.4,а, имеет
соседние восточную и южную дуги (представленные векторами [1 0]
и [0 1]) и юго-восточную (диагональную) дугу (представленную
вектором [1 1]). Чтобы отобразить этот ГПС на сеточный матричный
процессор, юго-восточная дуга должна быть разбита на восточную и
южную дуги (рис.6.4,б). Поэтому каждая южная или восточная дуга
Разработка систем и программного обеспечения 381
Рис. 6.4. ГПС с двумя соседними дугами и одной диагональной
дугой (а). Разбиение диагональной дуги путем деления на восточную
и южную дуги (б) и разделение времени ГПС (в), показанного на
рис. а.
должна использовать разделение времени, чтобы выполнить две
передачи данных в один период рекурсии D. Это потребует Ζ)=2τ. Как
показано на рис 6.4,в, разделение времени в массиве с данным ГПС
может быть получено тем же способом, что и в первом примере.
(Проверьте, что в этой схеме не будет конфликта по времени).
Пример 3. Более общий случай
Более сложный пример ГПС приведен на рис. 6.5, а, где кроме
дуг, представленных векторами [1 0] и [0 1], введена дуга,
представленная вектором [2 1]. При разделении дуги [2 1] на две
восточные и одну южную дуги, восточный канал должен производить
2 + 1 = 3 пересылки, а южный канал - 1 + 1 = 2 пересылки данных
за один период рекурсии. Для этого потребуется D = 3τ. Чтобы
перераспределить время задержки 3τ по дугам, изобразим сначала все
преобразованные дуги на ГПС так, как показано на рис. 6.5,6.
Некоторые дуги сетки (например, 6, 7 и 8) не имеют задержек.
Дуга 1 является начальной дугой связи [2 1]. Можно установить
задержку τ в ее начальной вершине. Поскольку дуга 4 также
является начальной дугой для связи [2 1], которая уже имеет задержку
τ в своей начальной вершине, задержка τ требуется в начальной
вершине дуги 2, так что суммарная задержка в начале дуги 2
составит 2τ. Таким образом, конфликта по времени ни по дуге 8
(которая имеет нулевую задержку), ни по дуге 4 (которая имеет
382
Глава 6
Ν ρ—Η Ьг—Η
tr Η bz *ι Ι- *ι
Ь—Η Β—Η Ь—Η
ρ—Η Ρ—Η Ρ—Η
R—Η ρ—Η Β—Η
Ρ—Η ο—4 Ρ—4
Рис. 6.5. ГПС с двумя соседними дугами и дугой [2 1] (а),
разделение времени в ГПС (б), показанного на рис. а, и систолический
массив (в), имеющий ГПС, показанный на рис. б, где большими
квадратами обозначены ПЭ с любым временем вычисления (например,
Зт).
задержку τ) не будет. Еще одна задержка τ устанавливается в
конце дуги 5, чтобы исключить конфликт по времени с дугой 6.
Теперь можно перейти к общему случаю разделения времени при
согласовании ГПС-описания массива с сеточным матричным
процессором. Предположим , что существуют W дуг данных, представленных
дугами [х ,у.] в ГПС-описании массива. Для упрощения предположим,
что χ ^0 и 1/2=0 для всех / (случай обратных направлений (*,<0
и у .<0) может быть рассмотрен аналогично). Вначале потребуем,
чтобы любая дуга в ГПС, кроме дуг [1 0] и [0 1], имела бы по
крайней мере одну задержку (D). Это условие всегда может быть
удовлетворено соответствующим установлением задержек в ГПС.
После изменения направления этих дуг путем разделения их на
восточные ([1 0]) или южные ([0 1]) дуги, ПЭ должен обслуживать -^=Σ^/
дуг данных по восточному каналу и Υ=Σ/ί// дуг данных по южному
каналу за один период рекурсии ГПС. Поэтому для пересылки всех
данных требуется пересчет D=Zt (Z=max{X,Y}) для всех задержек.
Распределение времени задержки Ζτ по каждой из несеточных дуг
может быть выполнено по методу, аналогичному использованному в
Разработка систем и программного обеспечения 383
примере 3. Основная стратегия заключается в предотвращении
конфликтов по времени и достижении регулярного распределения
задержек. Само распределение предлагается выполнить в Задаче 10 (в
конце главы).
Систолизация ГПС с временным разделением. Рассмотрим задачу
систолизации ГПС с временным разделением. Отметим, что скорость
массива, описанного ГПС, определяется временем пересылок,
которое составляет Ζτ в каждом периоде рекурсии. Время вычисления
для ПЭ фактически может быть любым, например τ, 2τ,..., и т.д.,
по выбору разработчика. Однако, поскольку пересылка данных
занимает Ζτ, желательно время вычисления выбрать таким же, т.е.
Zt=D. В этом случае задержка на передачу, равная Ζτ, будет
поглощена временем вычисления в каждой вершине.
Пример 4. Систолизация ГПС с временным разделением
Для систолизации ГПС с временным разделением из примера 3
установим задержку на пересылку равной 3τ во всех дугах ГПС.
Вычислительные вершины поглотят добавленную задержку в 3τ.
Полученный систолический вычислитель показан на рис. 6.5, в, на
котором большой квадрат обозначает ПЭ с временем вычисления 3τ, а
маленький квадрат - задержку связи τ.
Согласование сеточных алгоритмов со структурами типа гиперкуб
η-Куб - это гиперкуб, содержащий 2п вершин. Вершины л-куба
могут быть помечены двоичными /ι-разрядными индексами от 0 до
2 . По определению гиперсети два процессора непосредственно
связаны тогда и только тогда, когда двоичные представления их
индексов отличаются в одном разряде. Например, если я=3, то 8
вершин могут быть представлены как вершины трехмерного куба
(рис. 6.6). Чтобы показать, как вложить сетку в гиперкуб,
рассмотрим двумерную сетку размером 8x4 (представленную на рис 6.7)
и проверим, как она может быть вложена в 5-куб (отметим, что
2 =32). Каждая вершина сетки помечается 5-разрядным
представлением (^1^о^зс1с2^ с использованием 3-разрядного кода ' Грэя
(fcj&g&g) для разметки в горизонтальном направлении и 2-
разрядного кода Грэя (с^с2) для разметки в вертикальном
направлении [Chan86]. Благодаря кодированию с помощью кода Грэя
соответствующие индексы между любыми двумя соседними вершинами в
сетке различаются только в одном разряде. По определению
гиперсети ее соответствующие узлы соединены таким же образом. Следо-
384 Глава 6
Рис. 6.6. Трехмерное изображение гиперкуба.
000 001 011 010 110 111 101 100
Рис. 6.7. Двумерный код Грея для сетки размером 8x4.
вательно, вложение этой сетки размером 8x4 в 5-куб завершено.
Аналогичным способом любой алгоритм, выполнимый на сетке, может
быть легко согласован (и выполнен) с архитектурой компьютера
типа гиперкуб.
Итак, сеточный алгоритм (любой размерности) может быть вложен
в гиперкуб [Chan86]. Комбинируя этот результат с предыдущим
наблюдением (любой локальный ГПС (или ГЗ) может быть согласован с
сеточным матричным процессором), можно прийти к выводу, что
любой локальный ГПС (или ГЗ) может быть согласован с матричным
процессором, построенным по архитектуре гиперкуба.
6.3.2. Разбиение
Проблема разбиения состоит в основном в отображении
вычислений задачи большего размера в матричный процессор меньшего
размера. Для многих практических разработок - это основное
требование, так как независимо от доступности того или иного
специализированного процессора всегда найдутся вычисления, слишком
большие для него [Не11е84]. Этой проблеме посвящено несколько работ
[Hwang82, Helle84, Rao85, Moldo86, Kisha86, Horik87]. В общем
Разработка систем и программного обеспечения 385
случае схема отображения (включая распределение вершин и
планирование) намного сложнее, чем методы регулярной проекции,
обсужденные в предыдущих главах. При разработке схемы разбиения
должны быть учтены следующие факторы [Moldo86]:
1. Минимальное суммарное время вычислений.
2. Минимальные затраты на управление.
3. Компромисс между внешними связями и локальной памятью.
Необходимо определить, с какой момент времени и в каком ПЭ
происходит вычисление каждой вершины ГЗ. Для систематического
отображения ГЗ на систолический/волновой массив ГЗ разбивается
регулярным образом на множество блоков, каждый из которых
содержит кластер вершин ГЗ. Для удобства представления мы используем
следующие математические обозначения. Предположим, что Af-мерный
ГЗ (линейно) спроецирован на (ЛМ)-мерный ГПС-массив размером
L^xL^x.^xL^y ГПС разбивается на Λ^χΛ^χ.,.χΛί.^ блоков, где
каждый блок имеет размер Z^xZ^x...xZ^_y Очевидно, что для
/=1,2,...,#-1 Z.-L./M.. Рассмотрим в качестве простого примера
вычисление на линейном матричном процессоре, состоящем из трех
ПЭ, произведения матрицы на вектор АЬ=с, где матрица А имеет
размер 6x6, а векторы b и с - размер 6x1. ГЗ для этой задачи
приведен на рис. 6.8, а. Два способа разбиения на блоки также
показаны на рис. 6.8,6, где Lj=6, Ait=3, и Ζ .=2, и на рис. 6.8, в,
где Lt=6, Aij=2 и Zj=3.
Для отображения разбиения ГЗ на матричный процессор
существуют два метода - локально последовательный глобально параллельный
(ЛПосГПар) и локально параллельный глобально последовательный
(ЛПарГПос).
1. Схема ЛПосГПар. По этой схеме один блок отображается в
один ПЭ. Таким образом, число блоков равно числу ПЭ в матричном
процессоре, т.е. размер матричного процессора равен произведению
M1xALx...xAf„ г Каждый ПЭ последовательно выполняет вычисления
всех вершин соответствующего блока. Для хранения данных,
относящихся к вершинам блока, в каждом ПЭ требуется локальная
память размером cxZ^xZ^x...xZ^_v где с - небольшая константа
(чаще всего 1, 2 или 3), определяемая зависимостями данных.
Поскольку локальная память имеет достаточно большой размер для
рассматриваемых вычислений, подход ЛПосГПар весьма привлекателен.
Схема ЛПосГПар для примера умножения матрицы на вектор приведена
на рис. 6.8,6. Число блоков Λί. равно 3 - размеру матричного
процессора. Размер локальной памяти равен Ζ.=2.
25—1028
386
Глава 6
Рис. 6.8. ГЗ операции умножения матрицы на вектор (α), ГЗ,
разбитый на три блока (б), и ГЗ, разбитый на два блока (в).
2. Схема ЛПарГПос. В этой схеме размер блока выбирается в
соответствии с размером матричного процессора, т.е. один блок
может быть отображен на один матричный процессор. Все вершины
одного блока обрабатываются одновременно, т.е. локально
параллельно. Блоки данных для вершин последовательно один за другим
загружаются в матричный процессор, т.е. глобально
последовательно. Отсюда и название - ЛПарГПос. В этой схеме размер локальной
памяти ПЭ может быть постоянным, не зависящим от объема
вычислений. Все промежуточные данные могут храниться в некоторых
буферах вне матричного процессора. Обычно для эффективного хранения
и циркуляции промежуточных данных достаточно использование
простых FIFO-буферов. В приведенном выше примере умножения матрицы
на вектор, реализованном по схеме ЛПарГПос, ГЗ разбит на два
блока, как это показано на рис. 6.8, в, где размер блока
согласован с размером матричного процессора, т.е. Z*=3.
Разработка систем и программного обеспечения 387
Стратегии планирования для схемы ЛПосГПар
Предыдущее обсуждение касалось только схемы назначения
вершин, т.е. пространственного отображения ГЗ на матричный
процессор. Планирование, т.е. распределение вычислений по времени, мы
опишем ниже.
Принцип линейного планирования. Для данного N-мерного ГЗ и
направления проекции 3 по методу алгебраического отображения
(гл. 3) существует соответствующая матрица Р. Пусть
ΡΎ=[Ρ^Ρ^...Ρ^^] - множество независимых векторов, каждый из
которых ортогонален 3. Это множество векторов определяет
(ЛМ)-мерное пространство ГПС. С точки зрения разделения
процессора (см. разд. 4.4) существуют Ζ^χΖ^χ...χΖ^_χ вершин в каждом
блоке ГПС, которые разделяют один ПЭ. Выбирается приемлемый
(т.е. достаточно медленный) линейный план так, чтобы в любой
момент времени существовал самое большее один активный ПЭ в
каждом блоке. Эту задачу формально можно изложить следующим
образом:
Найти планирующий вектор ?, который минимизирует
α = (?т2)
и удовлетворяет следующим ограничениям:
1. ?Т? > 0 для всех дуг зависимостей е.
2. Для всех целочисленных векторов т, которые удовлетворяют
условию ? й = 0 (т.е. in лежит в равновременной гиперплоскости),
Т->
существует такое /, что \Р.пг\ £ Ζ..
Отметим, что в схеме ЛПосГПар минимальное значение α часто
определено числом вершин в ГПС, разделяющих процессор, т.е. α =
ΖχχΖ2χ...χΖΝγ
Так как в решении s его элементы должны быть достаточно
малыми, обычно можно получить решение путем перечисления ? и т, т.е.
можно проверить, удовлетворяются ли ограничения для различных ?.
Рассмотрим теперь два примера.
Пример 5. Планирование по схеме ЛПосГПар для одномерного
матричного процессора
В предыдущей задаче умножения матрицы на вектор:
Нижняя граница а, очевидно, Ζ .=2. Таким образом, если вектор
[1 2] использован для ? , то можно считать, что он удовлетворяет
25*
388
Глава 6
Рис. β.9. Разбиение по методу ЛПосГПар операции умножения
матрицы на вектор.
всем ограничениям и конечное значение а, равное 2, является ми
нимальным. Результат ЛПосГПар-разбиения с использованием
линейного планирования приведен на рис. 6.9.
Пример 6. Планирование по схеме ЛПосГПар для двумерного
матричного процессора
Трехмерный ГЗ для умножения матриц размером 9x9 содержит три
дуги зависимостей:
*.-
Γ1Ί
0
1р.
. ** =
ГО]
1
pj
Если [0 0 1] - выбранное направление проекции, окончательный
размер массива составляет 9x9, и процессорное пространство может
быть определено двумя векторами:
Γ1Ί
0
0
и Р2 =
ГО]
1
od
Если используется матричный процессор размером 3x3, то
Zt=Z2=3. Очевидно, что нижняя граница α составляет ΖχχΖ2=9. Та-
Разработка систем и программного обеспечения
389
.ь --ь --ь
23 22 21
_Ь --b --t>
16 15 14
13 12
"32 - -
а22 " -
а12 - '"
-
-
■"
-
-
"
а
31
"21
а
11
-
-
"
aci
а
51
а41
%
а
81
а
71
Рис. 6.10. Планирование по методу ЛПосГПар трехмерного ГЗ для
операции умножения матриц размера 9x9 (показан только один слой
ГЗ) (а) и схема ввода данных для массива размером 3x3 (б).
ким образом, могут быть перечислены и проверены относительно
второго ограничения различные планирующие векторы ? в форме
0^9] ($t>0 и 52>0). Можно показать, что ? = [1 3 9] является
хорошим выбором. На рис. 6.10 показаны выбранное планирование и
схема входных данных для матричного процессора размером 3x3.
390
Глава 6
Обсуждение стратегий планирования для схемы ЛПарГПос
Как и в схеме планирования для метода ЛПосГПар, основное пра-
вило состоит в выборе (глобального) планирующего вектора ?,
который не нарушает зависимости по данным. В качестве примера на
рис. 6.11 показан результат планирования по схеме ЛПарГПос для
задачи умножения матрицы на вектор, где для хранения
промежуточных данных используется FIFO-буфер.
Достоинства этого примера состоят в том, что блоки могут
выполняться один за другим в естественном порядке. Однако такое
простое упорядочение возможно только тогда, когда в выбранных
блоках нет обратных зависимостей по данным. В общем случае такое
свойство может и не существовать. Например, блоки, показанные на
рис. 6.12, обладают обратными зависимостями по данным. Таким
образом, при выборе блоков надо принимать во внимание
зависимости по данным. Процедура выбора блоков описана в работе
[Moldo86], где N-мерный ГЗ разбивается на блоки с помощью ΛΜ
множеств параллельных гиперплоскостей. Каждое множество
гиперплоскостей может быть представлено вектор-нормалью ?.
(ί=1,2,...,ΛΜ) к гиперплоскостям. Таким образом, проблема
назначения вершин состоит в нахождении ΛΜ линейно независимых век-
Рис. 6.11. Разбиение по методу ЛПарГПос операции умножения
матрицы на вектор.
Разработка систем и программного обеспечения 391
Рис. 6.12. Разбиение ГЗ с обратной зависимостью по данным.
торов {Р.}, для которых не существует обратных зависимостей по
данным. Или эквивалентно, для i = 1,2,...,ΛΜ
Ρ xt > О для всех дуг зависимости t.
Так как эти ЛМ векторов охватывают процессорное
пространство, они ортогональны к направлению проекции 3. Таким образом,
направление проекции может быть определено с помощью N-1
векторов из процессорного пространства. Кроме того, {?,?.,
i = 1,2,...,ΛΜ} должны быть линейно независимы (иначе некоторые
вершины в равновременной гиперплоскости будут назначены одному и
тому же ПЭ, что неприемлемо).
В общем случае схема ЛПарГПос состоит в нахождении N линейно
независимых векторов {?,?., /= 1,2,...,ΛΜ}, которые
оптимизируют искомую объектную функцию, например а, и в то же время
удовлетворяют следующим условиям:
1. Отсутствие обратной зависимости по данным
PTxt > 0.
ι
2. Причинностное ограничение
rt > о.
При использовании схемы ЛПарГПос требуются FIFO-буферы для
возврата выходных значений в процессор. Однако некоторые
выходные данные могут иметь те же значения, что и входные (например,
когда переменная является транзитной), и в этом случае
FIFO-буферы не требуются. Таким образом, свойство транзитных
переменных должно быть использовано для сокращения числа
FIFO-буферов в схемах ЛПарГПос. На рис. 6.13 приведен пример
матричного процессора размером 3x3 для умножения матриц
размером 9x9 без использования FIFO-буферов.
392
Глава 6
bbbbb bbbb
91 81 71 61 51 41 31 21 11
bbbbb bbbb
92 82 72 62 52 42 32 22 12
bbbbb bbbb
93 83 73 63 53 43 33 23 13
"11
»19
a
18
V
a
16
a
15
&л
14
*13
a
12
a
11
21
Λ29
28
a27
26
25
24
Λ23
22
21
"31
•39
a
38
a37
a„„
36
a
35
a
34
a
33
a„„
32
a
31
Рис. 6.13. Матричный процессор размером 3x3 для умножения матриц
размером 9x9 без использования FIFO-буферов.
Другие методики разбиения
Выше разбиение рассматривалось как отображение ГЗ на
матричный процессор. Во многих случаях сначала выводится систолический
или ГПС-массив, а затем уже производится разбиение
непосредственно этого массива. К счастью, схемы ЛПарГПос и ЛПосГПар
применимы и на этом этапе. Вновь должна быть разработана стратегия
планирования.
Для различных задач существуют некоторые другие методы
разбиения. Ограничимся лишь одним примером, основанным на
алгебраическом разбиении. Так, двумерная свертка может быть выражена
суммой произведений нескольких пар одномерных сверток. Основная
идея состоит в разложении двумерного кадра (матрицы) на сумму
матриц с единичным рангом при помощи алгоритма сингулярного
разложения. Двумерный кадр свертки с единичным рангом может быть
затем разложен на две последовательные одномерные свертки.
Поэтому исходная двумерная свертка может быть заменена
последовательностью одномерных сверток, а для выполнения одномерной
свертки требуется небольшое число ПЭ. Если двумерный кадр имеет
небольшой ранг, то потребуется меньше вычислений. Детали этого
подхода обсуждаются в гл. 8.
Разработка систем и программного обеспечения 393
6.4. ОТКАЗОУСТОЙЧИВОСТЬ МАТРИЧНЫХ ПРОЦЕССОРОВ
НА СБИС
Аппаратная реализация систолических и волновых процессоров
насыщенна и очень сложна. Поэтому отказы ПЭ в таких
крупноразмерных процессорных матрицах практически неизбежны, и
обеспечение отказоустойчивости должно быть неотъемлемой частью
разработки матричных процессоров, особенно для применений в реальном
времени.
6.4.1. Обеспечение отказоустойчивости при изготовлении, на этапе
компиляции и во время работы
В литературе рассматриваются несколько разновидностей
отказоустойчивости. Во-первых, для того чтобы обеспечить приемлемый
выход годных в условиях дефектов изготовления,
отказоустойчивость (ОУ) в некоторой форме должна быть введена на этапе
изготовления компонентов СБИС-процессора. Во-вторых, в случае если
отказы возникли после того, как процессорная матрица установлена
в систему, в приемлемое время можно провести ее перенастройку. В
этом случае говорят об обеспечении ОУ с помощью компиляции. И
наконец, третий вид отказоустойчивости необходим, чтобы
устранять отказы, возникающие в процессе функционирования
вычислителя, и позволить тем самым системе функционировать непрерывно.
Практические приемы обеспечения отказоустойчивости следующие:
аппаратная избыточность, временная избыточность и
алгоритмические подходы, основанные на методе контрольных сумм
[HTKun83, КННиа84].
Для описания перечисленных задач обеспечения ОУ можно
использовать трехуровневую модель, представленную на рис. 6.14. Первый
уровень - это реальный массив, размещенный на кристалле или
кремниевой пластине, который может иметь некоторые дефекты
производства. Второй уровень - физический массив, который по
предположению свободен от дефектов изготовления и включает некоторые
резервные ПЭ. На третьем уровне - логический массив, который
представляет собой требуемую структуру, непосредственно
соответствующую алгоритму.
В соответствии с рис. 6.14 ОУ при изготовлении - это по
существу метод создания физического массива из реального массива,
в то время как ОУ в процессе компиляции и работы - это
построение логического массива из физического. Рассматриваемая в данном
394
Глава 6
Реальный
массив
I
(1)
Физический
массив
t<2)(3)
Логический
массив
ПЮУпри
изготовлении
(2)ОУ при
компиляции
(3)ОУ в процессе
работы
Рис. 6.14. Трехуровневая модель общего описания
отказоустойчивости процессорных матриц.
Бракованный
•. · пэ
Реальный массив
Модуль распространения
сигналов на кремниевой
» пластине
Отказоустойчивость,
при изготовлении
Волновой
процессор
обработки
сигналов
Резервный ПЭ
Упрощенная
сеточная
модель
Отказоустойчивость
во время работы
Рис. 6.15. Определение логического, физического и реального
массивов.
разделе схема поддержания ОУ в процессе функционирования
приведена в терминах трехуровневой модели на рис. 6.15. Отметим, что
данная схема, применяемая к физическому массиву, может быть
скомбинирована с большинством схем обеспечения ОУ при
изготовлении. Объяснения даются по ходу изложения.
Отказоустойчивость при изготовлении
Цель ОУ при изготовлении - избавиться от неисправностей схемы
после ее изготовления, добиваясь приемлемого выхода годных.
Основной метод состоит в том, чтобы восстановить работающий
физический массив заданного размера по реальному массиву с
избыточным числом компонентов. Если число исправных ПЭ меньше размера
массива, кремниевую пластину (или кристалл) следует забраковать.
Разработка систем и программного обеспечения
395
£сли же имеется достаточное число работающих ПЭ, то следует
провести реконфигурацию для образования требуемой структуры.
Интеграция в масштабе пластины. Современная технология
позволяет реализовать отказоустойчивый систолический или волновой
процессор на кремниевой пластине. При выборе подходящих методов
обеспечения отказоустойчивости необходимо использовать свойства
регулярности и модульности систолических и волновых архитектур.
Достоинства и недостатки систолических и волновых архитектур и
технологии их изготовления на пластине с точки зрения ОУ
представлены в табл. 6.1.
Таблица 6.1. Совместимость систолических/волновых матричных
процессоров с технологией интеграции в масштабе пластины.
Преимущества
Недостатки
Систолическая/волновая
архитектура
Изготовление
на пластине
• Однородная и модульная
структура
• Включение резервных ПЭ
экономически осуществимо
• Повышенная скорость
• Меньше влияние шума
• Смешанная вентильная
и проводная
организация динамических
межсоединений
• Более короткие связи
между \\Э
• Меньше энергетические
затраты
t Меньше размер
контактной площадки
• Использование
резервных ПЭ
ограничено из-за
локальности связей
• Сложность тепло-
отвода
• Низкий выход
годных и трудоемкое
тестирование
(для монолитной
технологии)
Методы реструктуризации. Поскольку основной недостаток
кремниевой технологии интеграции на пластине - весьма низкий выход
годных, для повышения последнего необходимы избыточность и пере-
страиваемость. Для реструктуризации матричных процессоров на
кремниевой пластине предложены следующие методы [Мооге86]:
• Методы металлизации. Нанесение рисунка разводки
производится лишь после проверки кремниевой пластины, чтобы связать только
работающие клетки.
• Лазерное прожигание. Лазер используется для прожигания
плавких соединений или создания связей.
• Электрическое прожигание. Для построения или разрыва связей
по цепи пропускается сильный ток.
396
Глава 6
• Методы перепрограммирования. Проектирование схем,
допускающих выбор работоспособных фрагментов.
• Методы коммутации. Выбор подходящей топологии связей по
переключательным функциям встроенных переключателей.
• Методы гибридной компоновки. Создание индивидуальных связей
в процессе компоновки кристаллов.
Для гибкой маршрутизации данных можно использовать
программируемые переключатели, которые дают возможность связывать
исправные процессоры и обходить отказавшие. Присущая переключательным
схемам гибкость обеспечивает не только отказоустойчивость во
время работы, но и большие возможности реконфигурации для
многопроцессорных систем. Примером широкого использования коммутации
является параллельная ЭВМ с перестраиваемой архитектурой CHiP
[Hedlu82].
Отказоустойчивость на этапе компиляции
Схема реконфигурации при обеспечении ОУ на этапе компиляции
сходна с программно поддержанным обеспечением ОУ при
изготовлении, за исключением различия в технологии и способах
тестирования. Методы обеспечения ОУ при изготовлении могут использоваться
с меньшими требованиями для ОУ при компиляции, но не наоборот.
Кроме того, характер использования рассматриваемых процессоров
требует обеспечения отказоустойчивости в реальном времени.
Поэтому основное внимание будет уделено методам достижения
отказоустойчивости в процессе функционирования.
Отказоустойчивость во время работы
Главная цель состоит в том, чтобы гарантировать непрерывность
функционирования крупного матричного процессора во время его
работы. Обеспечение отказоустойчивости на этом этапе включает
тестирование, реконфигурацию и перезапуск. При разработке
отказоустойчивых устройств ставятся следующие задачи: 1)
использовать регулярность и локальность, присущую матричным процессорам,
и принцип управления потоком данных в ВМП; 2) выявить
структурные особенности матричных алгоритмов; 3) минимизировать затраты
времени на реализацию отказоустойчивой работы.
Сравнение архитектурного и алгоритмического подходов
Существуют два типа подходов к обеспечению ОУ во время
работы - архитектурный и алгоритмический. Архитектурные подходы яв-
Разработка систем и программного обеспечения 397
яются алгоритмически независимыми. Ограничимся случаем фиксиро-
ванного размера процессорных массивов. Так, с помощью переключа-
телей можно произвести реконфигурацию массива таким образом,
чТо, несмотря на отказ некоторых ПЭ, размер массива сохранится,
другой архитектурный подход состоит в маскировании отказов, т.е.
немедленном восстановлении работоспособности устройства, при
котором возникновение отказа не замечается. Этот способ
эффективен для достижения динамической ОУ и может быть реализован с
помощью трехкратной аппаратурной избыточности или в общем случае
N-кратной избыточности. (В задаче 15 обсуждается схема
маскирования отказов с трехкратной избыточностью).
С другой стороны, алгоритмические подходы к ОУ используют
некоторые алгебраические свойства, присущие многим приложениям
ЦОС. Популярным подходом, например, является обеспечение ОУ на
основе кодирования данных: вычисляются проверочные суммы,
позволяющие восстановить правильный результат при неисправном
процессорном элементе. Можно одновременно перестраивать структуру
процессорного массива и алгоритм так, чтобы задача оказалась
выполнимой на массиве меньшего размера. Этот подход позволяет строить
вычислительные структуры с амортизацией отказов [Fort85b].
Перемежающиеся неисправности. Важным в обеспечении ОУ в
процессе работы является устранение перемежающихся неисправностей.
Известно, что частота возникновения перемежающихся
неисправностей, вызванных главным образом временными изменениями условий
функционирования, в десятки раз превышают частоту постоянных
неисправностей [Siewi82]. Поскольку продолжительность
перемежающихся неисправностей - величина случайная, некоторые из них
можно трактовать как постоянные и использовать повторное
выполнение. Однако схема реконфигурации, предлагаемая в этом
разделе, специально предназначена для обработки перемежающихся
неисправностей. Вообще говоря, восстановление работы при
перемежающихся неисправностях значительно повышает надежность всей
системы.
При возникновении перемежающихся неисправностей ПЭ
превращается в элемент связи и переходит в пассивное состояние. В этом
состоянии ПЭ производит самотестирование, непрерывно оценивая
свое состояние. После исчезновения перемежающихся неисправностей
пассивный ПЭ реактивируется и немедленно создает прерывание.
Схема реактивизации восстанавливает неисправный ПЭ и превращает
его в активный ПЭ.
398
Глава 6
6.4.2. Архитектурный подход к ОУ в процессе работы
Обычно обеспечение ОУ включает обнаружение ошибки,
реконфигурацию и восстановление. Обнаружение ошибки (проверка
исправности) выполняется одновременно во всех ПЭ с помощью некоторых
самотестирующих цепей, например с помощью дублирования
арифметических и логических устройств с цепями сравнения. Реконфигурация
позволяет заменить неисправные элементы резервными
работоспособными элементами и перестроить цепи для образования новой
процессорной матрицы. Поскольку обнаружение ошибок происходит
одновременно, проблема возвращения к ранее выполненным вычислениям не
возникает. Для систолических и волновых процессоров
предпочтителен принцип распределенной ОУ по отдельным ПЭ. Несколько разных
способов реконфигурации можно найти в работах [Когеп81, Rosbe83,
Sami83, Hedlu82].
Сравнение волновых и систолических массивов. С точки зрения
ОУ волновые процессоры имеют некоторые преимущества перед
систолическими процессорами: 1) перемежающиеся неисправности
восстановимы, поскольку перераспределение вычислений касается двух
соседних ПЭ; 2) потенциальные трудности, связанные с адаптивно
меняющимся планированием работы ПЭ, легко преодолимы,
поскольку волновой процессор требует лишь правильной последовательное-
о о
о
о о
о
о о
о о о о о о
о
О /ЛУ, о о о о о о
DlD-θ-α
о /& о о о о о
РЕ
oSEp
о
Состояние а Состояние b
'°DID°D°D
; Горизонтальный
канал
о о χΑγ. о о о о о о I
//// Состояние с Состояние d
Вертикальный канал
Рис. 6.16. Сеточная модель матричного процессора на СБИС и
функции переключательных элементов.
Разработка систем и программного обеспечения 399
тИ? а не точной временной диаграммы. Более подробное сравнение
систолических и волновых процессоров содержится в задаче 22.
В общем случае глобальное управление в большей мере
соответствует систолической организации, а локальное управление -
волновой. В качестве иллюстрации расмотрим следующий пример.
Пример 1. Отказоустойчивость для линейных массивов
Процесс реконфигурации проиллюстрируем примером линейного
массива. На рис. 6.17 приведен линейный массив, состоящий из 6
ПЭ, в котором крайний правый является резервным. На этом массиве
можно реализовать одну из двух стратегий управления
реконфигурацией - глобальную или локальную. При возникновении
неисправности, например, в ПЭ2 в случае глобального управления происходит
мгновенное оповещение остальных ПЭ и временная приостановка
функционирования.
Резервный ПЭ
EKD-EHZHZbD
Рис. 6.17. Линейный массив с одним резервным ПЭ.
Затем производится реконфигурация массива таким образом, что
ПЭ/+1 выполняет функцию, первоначально выполнявшуюся ПЭ.,
/ = 2,...,5. Отметим, что ПЭ2 теперь трактуется просто как
соединяющий элемент с некоторой задержкой или без нее . Временная
диаграмма для синхронного и реконфигурируемого линейного массива
с глобальным управлением показана на рис. 6.18, а. При
использовании других схем планирования временные диаграммы могут менять-
с я. В устройстве же с локальным управлением информация о
неисправности ПЭ передается от ПЭ к ПЭ, и переназначение функций для
разных ПЭ происходит в разные моменты времени. Этот подход
иллюстрируется рис. 6.18,6, на котором представлена временная
диаграмма для устройства с локальным управлением.
Если не ввести задержку в ПЭ2, то появление длинной связи меж-
ДУ ПЭ. и ПЭ« приведет к увеличению такта работы системы.
Установка же подходящей задержки в ПЭ2 позволяет сохранить время
такта таким же, что и в системе со связью только между соседними
ПЭ [HTKun84].
400
Глава 6
Начальное распределение
&■
.Θ;:
-Θ-
Θ·
в-
Начальное распределение
2
•0-
2 w
з
.0.
3
-е-
3
•0-
3 4 5
О 0 0—
Неисправность
3 4 5
&:::-В:::::::&.:::
>w Новый план
4 /ь Резерв
0^-0 0-
> Новое назначение
* 5 Резерв
-0 0 в-
4 5 Резерв
-0 0
ΟΙ 2 3 4 5
'0 0 -Θ- 0 0""
+ Новое назначение
1 2
•θ -Θ::·
3
1
-Θ-
3
-0"
1
3
•0-
3 4 5
•0 0 0-
·.. « Новый план
1 3 4
-0 0 0..
4
"0-
4
.0.,
1 3 4
-0 0 β"
4
-0-
5 *
'0..
5
•0-
5
-0-
·.. 5
Резерв
■■G- &■
Резерв
-е-
Начальный план
Начальный план
Рис. 6.18. Временная диаграмма для синхронного и реконфигуриру-
емого линейного массива с глобальным (а) и локальным управлением
(б).
Модель переключения. Для рассмотрения ОУ двумерных
процессорных массивов полезна сеточная модель переключения. Отображение
решеток переключателей в матричную структуру было предложено и
использовано в системе CHiP [Hedlu82]. Присущая переключателям
гибкость не только позволяет повысить устойчивость к отказам, но
и поддерживает широкий диапазон схем межпроцессорной коммутации
для реконфигурации многопроцессорной системы. Распространенная
сеточная модель (рис. 6.16) состоит из процессорных элементов и
переключателей и отвечает следующим предположениям:
1. Переключатели и линии связи являются безотказными. Это
допущение принято многими исследователями и оправдано
значительно меньшей аппаратной сложностью этих элементов по сравнению с
ПЭ.
2. В каждом ПЭ можно выделить вычислительный блок,
коммуникационный блок и блок реконфигурации. Вычислительный блок
выполняет все вычислительные операции, коммуникационный блок отвечает
за связи между ПЭ, а блок реконфигурации используется для
обнаружения неисправности, реконфигурации и управления
переключателями. Предполагается, что коммуникационный блок и блок
реконфигурации также безотказны. Это означает, что отказавшие ПЭ могут
Разработка систем и программного обеспечения
401
заполнять функции связи, т.е. процессорные элементы превращаются
в соединительные элементы [Sami86].
Однотрактовый переключатель. Тракт означает одну линию связи
в каждом направлении переключения. Возможности реконфигурации
меняются в зависимости от числа трактов, обеспечиваемых
переключателем между двумя соседними ПЭ. Переключательные функции одно-
трактового переключателя показаны на рис. 6.16. Его простота не
только приводит к экономичной реализации, но и делает
предположение о безотказности переключателей более реалистичным.
Поскольку по предположению интенсивность отказов -ПЭ мала, модель с
однотрактовыми переключателями является достаточной.
Теоремы о перестраиваемости и о пути восстановления
Проблема реконфигурации матричных процессоров подразде
ляется на две задачи: 1) размещение и 2) маршрутизация.
1. Размещение. Размещение определяется отображением f(·),
которое переводит все ПЭ логического массива L (размером Μ χ Λί)
в исправные ПЭ физического массива Ρ (размером Ν χ Ν)
(рис. 6.19). Более точно, для каждого ПЭ(*\/) € L найдется
работоспособный ПЭ в позиции (*(*,/), «/(*,/)) € Ρ физической
плоскости, такой, что логический ПЭ(/,/) отображается в физический ПЭ
(*(ч). y(i,i)).
2. Маршрутизация. Маршрутизация определяется вдоль всех
горизонтальных и вертикальных соединений физического процессорного
массива, где горизонтальным соединением называется путь,
соединяющий ПЭ(*(/,/), (/(/,/)) и U3(x(iJ + 1), #(/,/ + 1)), а
вертикальным соединением - путь, соединяющий ПЭ(*(/,/), «/(*,/)) и
ПЭ(*(/ + 1,/), y(i + 1,/)).
И наоборот, картина горизонтальных и вертикальных соединений
есть не что иное, как схема маршрутизации, которая определяет
Размещение
Логическая плоскость
Физическая плоскость
Рис. 6.19. Связь между логическим и физическим процессорными
массивами.
26—102S
402
Глава 6
число трактов, необходимых для реконфигурации. На рис. 6.20
изображен пример размещения и маршрутизации для случая N = 5.
Видно, что данная схема реконфигурации требует двух трактов.
Рассмотрим ОУ в процессе работы на примере однотрактовой
переключательной модели. Поскольку возможности выбора маршрута в
однотрактовой модели ограничены, для успешной реконфигурации
размещение должно удолетворять определенным условиям. Эти
условия устанавливаются в двух теоремах - теореме о перестраиваемос-
ти и теореме о пути восстановления. Теорема о перестраиваемости
содержит необходимые и достаточные условия размещения,
гарантирующие успешную реконфигурацию в рамках однотрактовой модели.
Теорема о перестраиваемости. Пусть задан физический массив
размером NxN и логический массив размером (N-\)x(N-\).
Успешная реконфигурация в рамках однотрактовой модели
осуществима тогда и только тогда, когда для всех ПЭ (/,/), (/,/ + 1),
(/+1,/), (/j./j), ('о·/^)* лежащих в логической плоскости L,
удовлетворяются следующие условия размещения:
1. *(*,/) <*(* + 1,/).
2. у(Ц)<у{Ц + \).
3. Если x(iyjJ = x(iTi2) и l/g-^l >1,
то \y(i2,j2)-y(ivjj\ >1. β
4. Если y(ivij = y(iri2) и \i2-ix\>\,
то \x(irj2)~x(ivjj\ >1.
Доказательство. Связь между логическим и физическим
массивами, задаваемая условиями 1 и 3, показана на рис. 6.21. Условия 2
и 4 - симметричные версии условий 1 и 2.
Необходимость доказывается в работе [Kung86d]. Доказательство
достаточности во многом основано на следующих конструктивных
процедурах маршрутизации:
1. Построение горизонтальных соединений. В табл.6.2
перечислены все допустимые ситуации, отвечающие условиям теоремы
(доказательство содержится в работе [Kung86d], см. также
задачу 19). Соответствующие схемы горизонтальных соединений
показаны на рис. 6.22.
2. Построение вертикальных соединений. Подобным образом
симметрично к горизонтальным строятся и вертикальные соединения.
3. Рассматривая варианты на рис. 6.22 и принимая во внимание
то, что горизонтальные пути сохраняют порядок следования, можно
заключить, что никакие два горизонтальных соединения не могут
одновременно пересекать один и тот же вертикальный сегмент кана-
Разработка систем и программного обеспечения
403
И И И 0 и и
рд] pTj J2^J |mJ [2jJ [г7]
|з,1 | [з,2 J |з,3 | |з,4 I |з,5 | |з,0 |
ED 0 ED ED И ED
|5Д J |5,2 J |s,3 | [5,4 | |5,5 | [5,0 |
0,1 0,2 0,3 0,4 0,5 0,0
1Д
ι ^
1,2
2,1 К
3,1
Θ
ГТ1
2,2
С
1,4
ED гу*\—hH
1,5
2,4
4,1
а
3,3
|р| | ЧзТрр^ц
3,2 К/ |4>0 I ч |о,Ь
4,2
5,1 5,2
2,5
Й
3,5
4 3,4
4,3 4,4 4»5
5,3
5,4
i—'
5,5
$£-\-J
Рис. 6.20. Пример непосредственной реконфигурации, а -
распределение неисправных ПЭ; о - окончательное размещение
(переименование) и реконфигурация с помощью двухтрактовой схемы
маршрутизации (из работы [Sami83]).
404
Глава 6
Логическая плоскость
ί *
i+r
'
1
D = l
1 I
Условие 1
•
1
i
D>1
r %
Физическая плоскость
1
1 _
\°ΐ
' t
m γ
Λ A
!D'>lT
Условие 3 χ I
Рис. 6.21. Иллюстрация условий 1 и 3 теоремы о перестраиваемости.
ла. Аналогично, не могут перекрываться и два вертикальных
соединения. Тем самым доказательство достаточных условий для одно-
трактовой реконфигурации завершено.
Путь восстановления. Поскольку выполняется принцип
локальности связей, проще всего заменить неисправный ПЭ соседним
исправным ПЭ. Этот соседний ПЭ в свою очередь заменяется следующим по
очереди ПЭ и т.д. В конце концов, будет задействован резервный
ПЭ. Другими словами, процесс переназначения состоит из
последовательности "локальных переназначений", которая определяет путь
восстановления (рис. 6.23). Для выбора путей восстановления
(определяющих соответствующее размещение) при однотрактовой
схеме маршрутизации полезна следующая теорема.
Теорема о пути восстановления. Пусть задан физический массив
размером Ν χ #, охватывающий логический массив размером
Таблица 6.2. Все возможные ситуации, отвечающие четырем условиям
теоремы о перестраиваемости. (Схемы А, В,..., Η отражены на
рис. 6.22.)
£/(/,/+1) = £/(/,/) + 1
ι/(*,/+1) = */(/,/)+ 2
*(/.
=дс(
/+1)=
Ц)
А
D
*<(.
=*(,
/+!)=
'./И
В
E.F
*(Ч+1)=
=*(<'./>!
С
G.H
Разработка систем и программного обеспечения 40_5
0<Х2 οΓ° ""Τ-π
Н>
<Н
D
D
□
Рис. 6.22. Набор конфигураций горизонтальных соединений,
удовлетворяющих условиям 1-4 теоремы о перестраиваемости.
(N -1) χ (N -1). Если размещение строится по путям
восстановления, которые являются отрезками прямых и не пересекаются, то
восстановление возможно в рамках однотрактовой модели
маршрутизации.
Доказательство теоремы оставляем читателю в качестве
упражнения (задача 20). Поскольку переключатели, расположенные "в
углах" процессорного массива в данной схеме реконфигурации не
используются, может быть принята упрощенная сеточная модель
(рис. 6.24), в которой каждый процессорный элемент окружают
четыре переключателя, обозначенные SE^, SE5, SE£ и SE^. Отметим,
что и теорема о перестраиваемости, и теорема о пути
восстановления остаются справедливыми для упрощенной сеточной модели.
Приводимый ниже алгоритм реконфигурации основан именно на этой
упрощенной модели.
Алгоритм реконфигурации для случая глобального управления
Теорема о пути восстановления лежит в основе алгоритма
реконфигурации СОРЕ (Compensation Path Encode), который включает
СОРЕ-алгоритм размещения и СОРЕ-алгоритм маршрутизации.
406
Глава 6
1,1
2,1
ЗД
Г\
5,1
1,2
Л °
2,2
Ϊ43,2
Η 4,1 J 4,2 J
5,2
Гп
J 1,0 |^ J 1,3 Ц—|l,4 Г*-4
I 2,3 V
φ
\ 3,3 [
4,3
5,3
2,4
7"
3,4
4,4
TTTT
л
5,4
5,5
1,5
2,5
3,0 !«■
3,5
FQM3—El
■&
Ш □
Рис. 6.23. Совокупность непересекающихся путей восстановления и
соответствующая однотрактовая схема маршрутизации.
СОРЕ-алгоритм размещения. Метод размещения СОРЕ состоит из
схемы деактивации и схемы реактивации. Программа деактивации
запускается в момент обнаружения неисправного ПЭ, а программа
реактивации выполняется после восстановления неисправного ПЭ.
1. Схема деактивации. Неисправный ПЭ выполняет следующие действия:
1) Генерирует запрос на прерывание и передает свои физические
координаты и направление выбранного пути восстановления.
2) Передает необработанные входные данные выбранному в
качестве замены соседнему ПЭ.
3) Превращается в элемент связи и переходит в пассивное состояние.
Остальные ПЭ выполняют следующие операции:
1) Получают сигнал прерывания и информацию, отправленную
неисправным ПЭ; обновляют текущее состояние размещения (см.
рис. 6.26, а) и отрабатывают алгоритм маршрутизации, основанный
на состоянии маршрутизации (объясняется ниже).
2) Каждый ПЭ нового пути восстановления сбрасывает выходные
Разработка систем и программного обеспечения 407
Рис. 6.24. Упрощенная сеточная модель матричного процессора на СБИС.
значения и передает необработанные входные значения следующему
ПЭ на этом пути.
2. Схема реактивации. Неисправный ПЭ, находясь в пассивном
состоянии, периодически проверяет свое состояние. Реактивация
пассивного ПЭ заключается в уничтожении образованного при'
деактивации пути восстановления, которое возвращает ПЭ в резервную
строку либо столбец. Для реактивации перемежающихся
неисправностей предлагается диаграмма переходов состояний размещения ПЭ
(см. рис. 6.26,6).
Обновление состояния размещения. Принятая стратегия
размещения основана на теореме о пути восстановления. Для того чтобы
гарантировать выполнение условия о непересечении путей
восстановления, с каждым ПЭ связывается состояние размещения. Всего
возможны пять различных состояний размещения:
1. HV: разрешается провести вертикальный и горизонтальный
пути восстановления .
2. HV: разрешается провести только горизонтальный путь
восстановления.
Когда ПЭ, пребывающий в этом состоянии, становится
неисправным, выбирается кратчайший путь восстановления с целью
уменьшения вероятности пересечения с другими возможными впоследствии
путями восстановления.
408
Глава 6
3. HV: разрешается провести только вертикальный путь
восстановления.
4. HV: запрещается проводить какой-либо путь восстановления.
5. FAIL: Система объявляется неработоспособной при переходе
любого ПЭ в это состояние.
Первоначально все ПЭ находятся в состоянии HV, и все
логические координаты ПЭ совпадают с их физическими координатами. При
возникновении неисправности блок реконфигурации неисправного ПЭ
генерирует прерывание и вырабатывает новый путь восстановления.
Кроме того, неисправный ПЭ передает всем ПЭ свои координаты и
направление выбранного пути восстановления, т.е. ту информацию,
которая необходима (и достаточна) для обновления остальными ПЭ
своих состояний размещения. Разумеется, схема обновления зависит
и от координат самого ПЭ, как это показано на рис. 6.25.
Диаграмма переходов состояний размещения приведена на рис. 6.26,а.
1. Условие А: ПЭ лежит на пути восстановления.
2. Условие В: ПЭ расположен между (*(*,/), 1) и (*(/,/),«/(/,/) - 1).
3. Условие С: ПЭ принадлежит прямоугольнику (1, (/(*",/)), (1,W-1),
W«\/)-i,^/)).W/./)-i.^-i).
4. Условие D: остальные расположения.
Аналогично задаются правила для вертикальных путей восстановления.
Алгоритм маршрутизации. Маршрутизация задается установкой
положения переключателей (SE). Различают два типа
переключателей: переключатель первого типа SW1 находится между двумя
соседними по вертикали ПЭ (т.е. SE^ и SE5 ), и переключатель второго
типа SW2 находится между двумя соседними по горизонтали ПЭ (т.е.
SEf и SE^). Для переключателей типа SW1 есть только три
состояния - это схемы а, с и d (см. рис. 6.16). Переключатели типа SW2
также имеют три состояния Ь, с и d.
Далее остановимся на управлении переключателем типа SW1, ко-
Путь восстановления
D
х \
Рис. 6.25. Условия обновления для ПЭ в зависимости от его
положения относительно нового горизонтального пути восстановления.
Разработка систем и программного обеспечения
409
6 -*4HV)^.
VW
Состояние
неисправности
Рис. 6.26. Диаграмма перехода состояний отдельного ПЭ (а) и
модифицированная диаграмма перехода состояний ПЭ со способностью к
реактивации (б).
торый должен настраиваться каждый раз в соответствии с вновь
определяемым горизонтальным путем восстановления. Управление
переключателем определяется состояниями маршрутизации двух
соседних к нему по вертикали ПЭ . Это состояние, задаваемое двумя
битами, как показано в табл. 6.3, будем называть состоянием
горизонтальной маршрутизации (СГМ). Отметим, что, поскольку пути
восстановления не пересекаются, состояния СГМ^ и СГМ«
(рис. 6.27) дают достаточную для определения состояния
переключателя информацию об относительном сдвиге логических индексов.
Следовательно, состояние переключателя выражается как простая
функция состояний СГМд, и СГМ5 (см. таблицу истинности на
Таблица 6.3. Определение состояний горизонтальной маршрутизации
(СГМ). Аналогично определяются и состояния вертикальной
маршрутизации (СВМ).
00 ПЭ исправен и не лежит на горизонтальном пути
восстановления
01 ПЭ исправен и лежит на горизонтальном пути
восстановления
10 ПЭ неисправен и лежит на горизонтальном пути
восстановления
И ПЭ неисправен и лежит на вертикальном пути
восстановления
Поскольку соответствие между логическими и физическими
координатами меняется только для ПЭ, расположенных на новом пути
восстановления, состояния меняют только те переключатели, которые
расположены по обе стороны этого пути.
410
Глава 6
1 HRSN
00
00
00
00
01
01
01
I oi
HRS5
00
01
10
11
00
01
10
11
SWT]
a
с
с
a
d
a
d
d
HRSN
10
10
10
10
11
11
11
1 n
HRS5
00
01
10
11
00
01
10
11
"swi|
d
с |
χ 1
d
a |
с |
с I
χ ]
Рис. 6.27. Состояние переключателя SW1 - функция СГМ^ и СГМ^.
Здесь SW1 = SE^ южного ПЭ и SW1 = SES северного ПЭ. Заметим, что
состояние переключателя SW2 является также функцией СВМ и СВМ^.
Величина χ означает произвольное состояние.
рис. 6.27). Аналогично, переключатели типа SW2 могут управляться
состояниями вертикальной маршрутизации (СВМ) двух соседних ПЭ по
горизонтали (задача 21). Отметим, что подобную переключательную
схему можно использовать и для процесса реактивации процессорных
элементов.
Алгоритм реконфигурации для случая локального управления
Осуществление рассмотренного алгоритма реконфигурации требует
глобальной связи для мгновенной передачи сигнала прерывания и
координат неисправного ПЭ всем ПЭ массива. Для устранения этой
трудности предлагается устройство, основанное исключительно на
локальном управлении. Для передачи данных и управляющих сигналов
здесь используются только локальные связи. Предлагаемое
устройство основано на стандартном асинхронном протоколе
взаимодействия (см. разд. 5.6.2) .
Опишем его схему. Без потери общности можно предположить,
что резервные ПЭ расположены в крайнем правом столбце или нижней
строке. При возникновении неисправности выбор между
горизонтальным и вертикальным путем восстановления зависит от текущего
состояния размещения неисправного ПЭ. Для удобства обозначим ПЭ,
Аналогичную схему локального управления можно применить и в
синхронной системе с дополнительной регулировкой периода
тактовых импульсов (задача 22).
Разработка систем и программного обеспечения
411
^7
пэ
i
(Гь
V
пэ
i+l
0\
"V
пэ
i+2
J\
пъ 1 1
i+a| J
D
□
Рис. 6.28. Отказавший ПЭ и соответствующий горизонтальный путь
восстановления.
расположенные на (горизонтальном) пути восстановления, через
ПЭГ ПЭ/+1, ПЭ/+2, ПЭ/+3 и т.д. (рис. 6.28), где ПЭ, -
неисправный ПЭ. Возможны следующие две ситуации:
1. Для / = i,i +1,/ + 2,... в отсутствие другого пути
восстановления ПЭ. инициирует прерывание ПЭ. у переназначает свою
работу на ПЭ/ + 1 и изменяет свои состояния СВМ и СГМ (табл. 6.3),
тем самым изменяя состояния соседних переключателей (рис. 6.27).
2. Если, через ПЭ. (/= /+1,/ + 2,...) уже проходит путь
восстановления, т.е. появляются два перекрывающихся пути
восстановления, один из этих двух путей должен быть аннулирован (и
заменен по возможности другим путем восстановления). Эта
процедура называется коррекцией пути и зависит от физического
расположения ПЭ.. Возможны два варианта: 1) если ПЭ. расположен в
верхнем треугольнике логического массива, то вместо пути,
приходящего слева, создается вертикальный путь компенсации; 2) если
ПЭ. расположен в нижнем треугольнике логического массива, то
вместо пути, идущего сверху, строится горизонтальный путь
восстановления. Поскольку глобальные связи отсутствуют,
аннулирование старого пути и построение нового должны выполняться
локально. Например, если горизонтальный путь восстановления нужно
заменить вертикальным, процесс аннулирования затрагивает ПЭ·,
затем ПЭ, „ ПЭ._2 и т.д. После достижения ПЭ. t последний
инициирует создание вертикального пути восстановления,
начинающегося из ПЭ., и изменяет состояния (СГМ и СВМ) ПЭ..
На рис. 6.29 приведена блок-схема алгоритма реконфигурации с
локальной организацией управления, которая гарантирует
выполнение следующих двух свойств: 1) правильность маршрутизации и 2)
пересылку данных после осуществления маршрутизации. Основываясь
на этом, можно утверждать, что ПЭ, которые не лежат ни на одном
из путей восстановления, будут обрабатывать корректные данные в
412
Глава 6
случае их доступности. Подобным образом ПЭ, находящиеся на пути
восстановления, также дают правильные результаты. Кроме того,
они решают дополнительную задачу по пересылке заданий другим ПЭ.
Отметим, что процесс реактивации также можно включить в новую
схему (рис. 6.29). В случае восстановления неисправного ПЭ он
генерирует прерывание соседних ПЭ, возвращает свое
первоначальное задание, изменяет состояния (включая состояние размещения,
СГМ и СВМ), затем продолжает выполнение неоконченного задания.
По сравнению с принципом глобального управления локальное
управление имеет следующие преимущества и недостатки:
• Преимущества.
1. Отсутствие необходимости в глобальных связях значительно
уменьшает стоимость реализации.
2. В то время как алгоритм реконфигурации с глобальным управ-
Начать)
Флаг
Вычисления
Реактивация
Да
Действие
неисправного ПЭ
, Возникновение"
h неисправности
Восстановление
после
неисправности 1
1 Реконфигурация 1
работоспособного
|| ПЭ1 |
'
Реконфигурация
(работоспособного!
ПЭ2
'
г
Рис. 6.29. Блок-схема алгоритма реконфигурации с локальным
управлением.
Разработка систем и программного обеспечения
413
лением при одновременном возникновении нескольких неисправностей
испытывает определенные трудности, алгоритм с локальным
управлением легко решает эту задачу.
• Недостатки.
1. Более сложный процесс управления.
2. Поскольку каждый ПЭ должен иметь возможность хранения двух
множеств - данных и заданий (в зависимости от степени
однородности массива), необходимо наличие локальной памяти большей
емкости.
Использование однотрактовых переключателей совместно со схемой
разбиения
Для очень больших массивов надежность системы быстро
снижается из-за ограниченной способности к реконфигурации в рамках
модели с однотрактовыми переключателями. Однако надежность можно
значительно повысить с помощью разбиения большого массива на
несколько меньших (например, 4x4) и распределенной установки
переключателей и резервных ПЭ в подмассивах, конечно, ценой
увеличения числа резервных ПЭ (рис. 6.30).
- Без избыточности
Надежность
• С избыточностью
х: Подразбиение и
каскадирование
JIJI
4x4 8x8 12x12 16x16 Размер массива
Рис. 6.30. Зависимость надежности массива процессоров от его
Размера для случаев отсутствия избыточности, с избыточностью
(резервные элементы по правой и нижней кромке процессорного
массива) и при разбиении на подмассивы 4x4. Надежность одного ПЭ
с дублированием равна 0,99.
414
Глава 6
β.4.3. Кодирование с помощью взвешенных проверочных сумм
В работе [КННиа84] разработан подход к ОУ, основанный на ко-
дированиии данных. Данные на входе алгоритма кодируются на
системном уровне с помощью некоторого кода с исправлением или
обнаружением ошибки. Вычислительные подзадачи данного алгоритма
должны быть соответствующим образом распределены между
процессорами, чтобы любая неисправность ПЭ затрагивала лишь часть
данных, в которых можно было бы обнаружить и/или исправить ошибку
соответствующим кодом. Известно, что значительная часть вычислен
ний в задачах обработки сигналов и изображений в реальном
времени сводится к общему набору базовых матричных операций, таких,
как сложение матриц, умножение матриц, LU-разложение,
транспонирование, умножение матрицы на константу. Поскольку для этих
операций свойство сохранения взвешенных проверочных сумм (ВПС)
выполняется, кодирование с помощью метода ВПС является эффективным
способом кодирования, позволяющим реализовывать отказоустойчивые
матричные операции.
Метод взвешенных проверочных сумм
При работе с матричными процессорами можно предположить, что
за очень короткий период вычислений может выйти из строя не
более чем один ПЭ. Поэтому если периодическая проверка результатов
вычислений позволяет исправить ошибку, вызванную неисправным
ПЭ, до того, как она распространится на другие вычисления, то
можно получать верные результаты. Метод ВПС [Jou86] используется
для того, чтобы придать отказоустойчивость определенным
операциям матричного типа, выполняемым на матричном процессоре. Если на
входе алгоритма закодировать данные, а на выходе проверить
результат вычислений, можно определить, произошла ли ошибка в
вычислениях, и если произошла, то исправить ее. Для этой цели
можно использовать простые свойства проверочных сумм.
Проиллюстрируем сказанное на примере умножения матрицы на вектор.
Умножение матрицы на вектор. Предположим, выполняется
умножение матрицы на вектор Ах = Ь, где А - матрица размером η χ /ι, χ
и b - η χ 1-векторы. С помощью метода ВПС эти вычисления можно
сделать отказоустойчивыми.
Сначала определим две вектор-строки W1 и W2:
W1 = (1 1 ...1) и W2 = (1 2 22 ... 2η_1).
Если WS1 = W1 * А и WS2 = W2 * А, где * - операция умножения
матриц, и расширить А, добавив две строки WS1 и WS2, то
Разработка систем и программного обеспечения 415
Г А "
WS1
IWS2
* χ =
" b 1
R1
R2j
Свойство сохранения проверочной суммы. Цель добавления двух
строк взвешенных проверочных сумм WS1 и WS2 к матрице А состоит
в том, чтобы обнаружить и исправить ошибочный элемент
результирующего вектора Ь. Идея рассматриваемого метода состоит в том,
что свойство проверки сохраняется при операции умножения. Более
строго,
#1 = WS1 * χ = (W1 А) * χ = W1 * (А * х) = W1 * b = С\ ,
где две проверочные суммы для b могут быть вычислены как
С\ = W1 * Ь. Поэтому предполагается, что R\ равно С\ и,
аналогично, #2 равно С2 (= W2*b).
В общем случае операцию * можно заменить некоторым другим
линейным оператором, так что проверочное свойство взвешенных
сумм сохранится. Можно показать, что все пять упомянутых
матричных операций - сложение, умножение, умножение на константу,
транспонирование и LU-разложение - сохраняют взвешенные
проверочные суммы. Доказательства читатель может провести сам.
Процедура исправления одиночной ошибки
Пусть вектор проверочных сумм (b^ b^... bn WS\ WSi) , где
WS\ и WS2 - проверочные суммы для вектора b = (b. b2...bn) ,
получен в результате некоторого процесса вычислений, который
сохраняет взвешенные проверочные суммы так же, как вектор-результат
в предыдущем примере умножения матрицы на вектор. Если данный
вектор содержит только один ошибочный элемент, такая ошибка
может быть исправлена. Определим два синдрома следующим образом:
Si = £ Ь - WS\, S\ = Σ (2M6J - WS2.
/И ' /=1 '
Процедура исправления одиночной ошибки задается следующим
образом: если (S1 * 0) и (S2 * О)1 , тогда S2/S1=2M , и элемент
Ь. - ошибочный. Правильное значение Ь. должно быть b.-S\.
Числовой пример показан на рис. 6.31.
В противном случае предполагается, что ошибки не произошло.
416
Глава 6
Предположим, ошибка здесь
1 2 3 14
2
5
16 2 2
& о i«t
3 4*8
О 3*4
3
2
4
3
31
37
39^
29
В2
BnCi
[ш ι"ΐ.А. [9 1112 13 ] [l36 ]
[1248 ].а= [33 56 39 42 ] [493]ВПС2
S Вектор-синдром
1111
12 4 8
-1 О
О -1
•
31
39К
_29
=
_0&
[136]
[493]
Результат
Рис. 6.31. Иллюстрация метода ВПС на примере умножения матрицы
на вектор.
Систолический вычислитель первого типа. Рассмотренная схема
обеспечения отказоустойчивости на основе проверочных сумм может
быть применена к СБИС-процессорам, например к систолическим
вычислителям. Рассмотрим пример умножения матрицы на вектор. Граф
зависимостей данных для этой задачи и систолический
вычислитель, полученный проецированием графа в горизонтальном
направлении, показаны на рис. 6.32. Если вектор-результат содержит
только один неверный элемент, метод взвешенных сумм может
обнаружить и исправить ошибку. Далее, заметим, что все операции,
связанные с вычислением одного элемента результирующего вектора
(т.е. скалярного произведения двух векторов) выполняются на
одном ПЭ, следовательно, несмотря на то что ПЭ выдал сразу
несколько ошибочных промежуточных результатов (закрашенные кружочки
на рис. 6.32) в процессе умножения матрицы на вектор,
результирующий вектор будет содержать только один неверный элемент.
Следовательно, схема, построенная на вычислении взвешенных сумм,
применима в этом случае без всяких изменений. После того как
получен вектор-результат, для вычисления взвешенной проверочной
Разработка систем и программного обеспечения 417
х1 х2 хз
61 *62 "63 64
Временно
D неисправный ПЭ
D
Граф зависимостей Направление Систолический вычислитель
проецирования
Рис. 6.32. Граф зависимостей и систолический вычислитель первого
типа для умножения матрицы на вектор. Закрашенные вершины
соответствуют неправильно выполненным операциям. Данные, которые
перемещаются в вертикальном направлении, являются транзитными
(разд. 3.2) и поэтому не искажаются в неисправных вершинах.
суммы можно использовать два л-входовых сумматора. Операцию
умножения двух матриц можно представить в виде нескольких
независимых умножений матрицы на вектор и реализовать по аналогичной
отказоустойчивой схеме.
Несмотря на то что ВПС для матричных операций дают
возможность обнаружения и исправления некоторых ошибок, неисправный ПЭ
может исказить более одного элемента результирующего вектора. С
практической точки зрения продолжительность перемежающейся
неисправности должна быть достаточно малой по сравнению с тактом
работы процессора, чтобы ошибки, вызванные неисправным
процессором, затронули только один элемент данных. Однако возможно
нарушение такой ситуации, например, при возникновении ошибок,
вызванных гамма-излучением. Хотя линейный систолический вычислитель
на рис. 6.32 и может справиться с этой задачей, в других
случаях многократная ошибка ПЭ может привести к катастрофическим
последствиям. Пример такой ситуации описывается ниже.
Систолический вычислитель второго типа. Во многих приложениях
матрица А часто имеет прямоугольную форму с числом строк,
существенно большим, чем число столбцов. Характерный пример дают
27—1028
418
Глава 6
матрицы, возникающие в задачах фильтрации, вычислений свертки и
корреляции. Граф зависимостей на рис. 6.32 показывает, что в этом
случае горизонтальный способ проецирования потребует большого
числа ПЭ. С другой стороны, если избрать вертикальное
направление проецирования, то размер массива существенно уменьшится. В
прежних предположениях об одиночном и кратковременном характере
неисправности рассматриваемый систолический вычислитель может
оставаться работоспособным при использовании прежних процедур
обнаружения и исправления ошибок. Из рис. 6.33 видно, что если
перемежающаяся неисправность захватывает два такта работы
процессора, то ПЭ выдаст две последовательные ошибки. На рисунке
соответствующие вершины графа зависимостей закрашены.
Соответственно результирующий вектор на выходе будет содержать два
последовательных ошибочных элемента. В этом случае схема со
взвешенными проверочными суммами уже не справедлива. Для обнаружения и
исправления подобных многократных ошибок предлагается новая
схема кодирования.
Метод взвешенных проверочных сумм для двойных смежных ошибок
Определим вектор-строку W3 следующим образом:
W3 = (1 (-2)1 (-2)2... (-2)""1)
и WS3 = W3 * а, где а - вектор-столбец.
ь, ь, ь, ь4
Граф
, зависимостей
Направление
проецирования
V ^^^ристолический
Рис. 6.33. Граф зависимостей и систолический вычислитель второго
типа для умножения матрицы на вектор. Закрашены неисправные
вершины. Данные, которые перемещаются в вертикальном направлении,
являются транзитными и поэтому не искажаются в неисправных
вершинах.
Разработка систем и программного обеспечения. 419
Процедура исправления ошибки. Пусть вектор (b^ b^.b WS\ WS2
№53), где WS1 WS2 и WS3 - взвешенные проверочные суммы для век-
τ
тора b = (b^>2...bn) , получается в результате некоторого
вычисления, сохраняющего взвешенные проверочные суммы. Тогда можно
исправить два последовательных ошибочных элемента указанного
вектора. Для этого определим три синдрома:
51 = Σ Ь, - WS1 ,
52 = Σ (2'"4 ,) - WS2 ,
53 = Σ [(-2) *~ХЬЛ - WS3.
Пусть две ошибки δ* и ду расположены в позициях / и / + 1
данного вектора.
Процедура исправления двух смежных ошибок состоит в
следующем: если S1 * О, это означает, что обнаружена ошибка .
Определить позицию / и значения δ* и ду можно из следующих уравнений :
/ = log0( 3S2 + S3 ) ~ !» если / " нечетно,
2 51
или
j = log0( 3S2 " S3 ) - 1, если / - четно,
2 51
и
δ* = 2 51 - 2"/+152,
ду = 2"/+152 - 51.
Как только определены позиции ошибок, ошибки δ* и ду могут
быть исправлены. Обоснование этих результатов предлагается про-
Если 51 = 0, считается, что ошибки нет, независимо от значений
52 и 53. Возможно, но маловероятно, что δ* = -ду. В этом случае
предлагаемая процедура исправления не может восстановить
правильные значения.
2
Если результат взятия логарифма не является целым числом,
скорее всего произошло более двух ошибок одновременно, либо ошибки
не являются смежными.
420
Глава 6
вести читателю в качестве упражнения. Процедуры обнаружения и
исправления ошибки включают суммирование столбца данных, что
может быть реализовано в конвейерном режиме.
6.4.4. Отказоустойчивость на основе временной избыточности
Вместо аппаратной избыточности для достижения ОУ может быть
также использована временная избыточность. Ниже обсуждаются два
способа использования временной избыточности: 1) обнаружение и
исправление ошибок, основанное на чередовании графов зависимости
данных; 2) амортизация отказов, основанная на алгоритмах
разбиения ЛПосГПар или ЛПарГПос.
Отказоустойчивость на основе чередования графов зависимости
Одно из основных предположений архитектурного подхода к ОУ
состоит в том, что каждый ПЭ может некоторым способом выполнять
самопроверку. Поэтому неисправность, возникшая в процессе
вычислений, диагностируется прежде, чем неисправный ПЭ выдаст свои,
возможно, неверные результаты. В этом случае необходимости в
возврате нет, поскольку предполагается, что период действия
ошибки минимален. Можно реализовать такую схему путем
дублирования обрабатывающего блока каждого ПЭ, тогда каждая операция
выполняется независимо на двух обрабатывающих блоках каждого ПЭ и
результаты сравниваются. Несоответствие означает, что возникла
неисправность. Основной недостаток такой схемы состоит в том,
что практически удваивается оборудование.
Альтернативный подход состоит в использовании для обнаружения
и исправления ошибок временной избыточности вместо дублирования
ПЭ. Идея заключается в том, чтобы выполнять одни и те же
вычисления дважды на двух смежных ПЭ в два разных, но достаточно
близких момента времени, а результаты затем сравнивать. Если они
совпадут, неисправностей не было. В противном случае для
исправления ошибки необходим возврат назад. Наиболее существенное
преимущество временной избыточности по сравнению с дублированием
ПЭ заключается в ограниченном росте площади кристалла, что в
свою очередь ведет к снижению стоимости и более высокому выходу
годных. Очевидный недостаток такого подхода состоит в затратах
времени, определяемых общим замедлением работы и необходимостью
возвратов при появлении неисправностей.
Пример на рис. 6.34 иллюстрирует эту идею. На рис. 6.34, α
Разработка систем и программного обеспечения 421.
представлен граф зависимостей для задачи умножения матрицы
размером 4 χ 4 на вектор. Предположим, что для проецирования на
t=2
f -MlJ
t»6
a^e-θ-θ
-ϊ£>—
t-12
θ^^θ-θ-θ
Рис. 6.34. Граф зависимости данных для умножения матрицы на
вектор (а) и то же самое для временной избыточности с чередованием.
422
Глава 6
одномерную структуру используется направление ? = [1,1] . Если
отказов не происходит, совокупная плановая задержка устройства
составляет 7 единиц времени (2л -1 - для матрицы размером
η χ я), что является минимально возможным для данного графа
зависимостей. На рис. 6.34,6 исходный граф зависимостей
перемежается со своей копией, сдвинутой на одну позицию вправо.
Видно, что вычисление 1, которое выполняется на крайнем левом ПЭ в
плановый момент времени t = 1, повторяется на соседнем справа
ПЭ, и результаты сравниваются в момент времени / = 3.
Дополнительное оборудование по сравнению со схемой 6.34, а минимально
(всего один добавочный ПЭ), однако новая совокупная плановая
задержка составляет при безошибочных вычислениях 12 единиц
времени (Зя для η χ л-матрицы). Поскольку имеет место чередование
одного и того же графа зависимостей во времени и в пространстве,
такой подход к достижению отказоустойчивости можно назвать
временной избыточностью с чередованием. Следует отметить, что
помимо предложенного возможны и другие способы чередования. Этот
факт можно использовать для построения оптимальных устройств.
Рассмотрим теперь вычисление х, производимое на ПЭ. в момент
времени t = tQ (рис. 6.35). Это же вычисление повторяется на ПЭ
двумя тактами позже в момент времени t = tQ+ 2, после чего
результаты сравниваются. Предположим, что зафиксировано
несоответствие двух результатов, т.е. неисправность возникла либо в ПЭ.,
либо в ПЭ. + 1. В случае волнового процессора ПЭ.- прерывает
работу двух соседних ПЭ, после чего начинается локализованный
возврат. До тех пор пока процедура возврата успешно не завершится,
соседние элементы не выдают результатов. Путь возврата отмечен
на рис. 6.35 штриховой линией. Он может быть реализован с
помощью локальных связей между неисправным ПЭ и его соседями.
Однако в систолическом процессоре ПЭ.+1 перед возвратом должен
остановить функционирование всех, в том числе несоседних ПЭ, а
затем перезапустить их, что требует наличия глобальных связей.
Для поддержания этого механизма каждый ПЭ должен иметь небольшую
локальную память, где будут храниться входные данные,
использовавшиеся в последней операции. Если неисправное состояние
сохраняется, может быть запущен новый возврат по тому же пути.
Минимальные временные затраты на возврат составляют 3 плановые
единицы времени (штриховые линии на рис. 6.35). Если после
некоторого заранее заданного числа возвратов неисправность не
устраняется, она классифицируется как регулярная и это означает, что в ПЭ^
существует отказ . (задача 28). В этом случае для замены
Разработка систем и программного обеспечения 423
Рис. 6.35. Локализованный возврат в схеме временной избыточности
с чередованием.
неисправного ПЭ можно использовать алгоритм реконфигурации,
подобный тому, что предложен в разд. 6.4.2. Таким образом, можно
устранять многократные одновременно возникшие неисправности.
Итак, схема временной избыточности с чередованием
представляет эффективный способ восстановления в случае перемежающихся
неисправностей и может быть легко интегрирована в структурные
схемы обеспечения ОУ для устранения регулярных неисправностей.
Амортизация отказов: разбиение алгоритма для достижения
отказоустойчивости
Важной идеей для матричных процессоров с возможностями
реконфигурации является амортизация отказов, которая для обеспечения
ОУ вместо пространственной или аппаратной избыточности
использует временную избыточность. Неисправные ПЭ сразу после
обнаружения отключаются, а оставшиеся работоспособные ПЭ образуют новый
массив меньшего размера. Алгоритм, выполнявшийся на
первоначальной конфигурации, необходимо заново отобразить на новый массив
процессоров. Отсюда ясно, почему методы разбиения алгоритма
могут быть использованы для обеспечения ОУ с амортизацией отказов.
424
Глава 6
Заметим, что, поскольку имеются две схемы разбиения
алгоритма - ЛПосГПар и ЛПарГПос, возможны и два соответствующих метода
амортизации отказов. Вспомним, что схема разбиения ЛПарГПос
приводит к построению вычислителя с циклическими связями.
Предложенная в работе [Fort85b] архитектура призвана поддерживать
схему ЛПарГПос на основе использования решетки переключателей, так
что при возникновении неисправности отключается целиком строка
и/или столбец процессорной матрицы. Для схемы ЛПарГПос
продолжение работы возможно только в случае, если исходное направление
проецирования (или исходный матричный алгоритм) не имеет
обратных зависимостей данных. Если же исходное назначение не
удовлетворяет данному требованию, то для схемы ЛПарГПос необходимо
найти соответствующее направление проецирования, что может привести
к значительному увеличению времени вычислений [Fort85b]. Короче
говоря, если имеются обратные зависимости данных, то более
приемлема схема ЛПосГПар. Подробности изложены в работе [Fort85b].
При реализации схемы ЛПосГПар потребуется локальная память
большего размера для размещения дополнительных вершин графа
зависимостей, назначенных на ПЭ при возникновении неисправности.
При использовании схемы ЛПосГПар функционирование после
реконфигурации всегда возможно (независимо от наличия обратных
зависимостей данных), поскольку вычисления неисправного ПЭ
перераспределяются на соседние с ним ПЭ. Поскольку волновые процессоры
допускают локальное перераспределение неисправных ПЭ, они имеют
преимущество перед систолическими процессорами в случае
использования локального управления.
Амортизацию отказов можно рассматривать как "урезанное"
назначение вершин графа зависимостей, где ограничивается число
доступных ПЭ. В работе [Мооге87] Форте предложил "оптимальный"
метод ОУ на основе схемы нелинейного назначения, в которой каждому
исправному ПЭ назначается на каждом временном шаге одна вершина.
Оптимальность понимается в том смысле, что все исправные ПЭ
сохраняются занятыми. Трудность реализации такой схемы заключается
в большой сложности организации управления.
6.5. ЯЗЫКИ ПРОГРАММИРОВАНИЯ ДЛЯ
МАТРИЧНЫХ ПРОЦЕССОРОВ
В настоящее время матричные процессоры на СБИС могут быть
проблемно-ориентированными или программируемыми. Программируемые
матричные процессоры часто более привлекательны из-за возможное-
Разработка систем и программного обеспечения 425
ти их применения в различных приложениях. Однако
программирование для матричных процессоров требует внимания к нескольким
одновременно происходящим событиям. Оно является более сложным,
чем обычное последовательное программирование. Для получения
полноценных программных средств для матричных процессоров
необходимо разработать следующее:
1. Новые нотации или языки, ориентированные на матричные
процессоры (вместо использования общепринятых языков).
2. Согласованные методы для программирования или разработки
матричных процессоров.
3. Набор пакетов прикладных программ для программируемых
матричных процессоров.
6.5.1. Разработка программного и аппаратного обеспечения
С развитием технологии СБИС граница между программным и
аппаратным обеспечением становится все более размытой. Поэтому для
достижения высокой производительности программное и аппаратное
обеспечение должны быть скоординированы. Отметим, что для
матричных процессоров языки программирования (для разработки
программного обеспечения) и языки проектирования (для разработки
аппаратного обеспечения) имеют много общего в теоретической
основе (рис. 6.36).
Архитектура - это описание взаимодействия между компонентами,
обслуживаемыми на различных уровнях организации. Вычислительная
система обычно содержит много архитектурных уровней и типов. В
этом разделе обсуждаются проектные решения для разработки
предложенных архитектур матричной вычислительной системы. Различные
архитектурные уровни, показанные на рис. 6.36, определяются
следующим образом:
1. Уровень архитектуры системы определяет, как выглядит
система для пользователей и прикладных программистов, и включает
характеристики языков, интерфейс пользователя и операционную
систему.
2. Уровень архитектуры матричного процессора определяет
межсоединения различных матричных процессоров и функциональные
возможности входящих в них процессоров.
3. Уровень архитектуры ПЭ определяет аппаратные модули для
узлов ПЭ. Он включает реализацию инструкций (механизмы вызова,
дешифрирования и выполнения) и интерфейс между отдельными
блоками (например, ширину шины, длину очереди).
426
Глава 6
Уровень
архитектурной
абстракции
^ Сложность
системы
команд
Уровень
матричного
процессора
Уровень ПЭ
Проект 1 Проект 2 Пространство проектов
Рис. 6.36. Области программного .и аппаратного обеспечения.
4. Уровень архитектуры блоков определяет структуру отдельных
блоков (например, устройства умножения, устройства сложения или
памяти).
Необходимо отметить, что на всех архитектурных уровнях,
исключая уровень блоков, должна быть определена модель выполнения
( например, модель потока управления или потока данных).
Необязательно, чтобы все уровни использовали одну и ту же модель
выполнения. Например, на системном уровне можно использовать
модель потока данных, позволяющую пользователю рассматривать
систему как набор процессов и процессоров, которые управляются
готовностью данных, в то время как на последующих уровнях может
быть выбрана модель потока управления, т.е. ПЭ, например, могут
быть обычными фоннеймановскими процессорами (например, Motorola
68000). С другой стороны, системный уровень может иметь модель
выполнения типа потока управления (программируемую, например, на
Фортране), а следующие уровни - модель вычислений типа потока
данных, где в качестве ПЭ используются, например, кристаллы
потока данных типа NEC μΡΌ728\.
Разработка систем и программного обеспечения 427
Рис. 6.36 иллюстрирует гибкость системы относительно этих
архитектурных уровней. Вертикальная ось представляет сложность
информации, обрабатываемой в узлах. Здесь узел может
представлять всю систему, один матричный процессор, отдельный ПЭ или
одиночный основной блок (ОБ). Кроме того, эта ось определяет
уровень абстракции - от высокого (или очень абстрактного)
уровня до низкого (или очень конкретного) уровня. Четыре кривые,
определяющие сложность системы, матричного процессора, ПЭ и ОБ
соответственно представлены только в относительном масштабе.
Горизонтальная ось, с другой стороны, описывает различные
проекты систем (например, проект 1, проект2 и т.д.).
Дополнительно можно ввести еще один виртуальный архитектурный
уровень - архитектуру системы команд. Вспомним, что язык
программирования в основном определяет виртуальную машину,
(виртуальные) блоки которой зависят от выбранной системы команд.
Гибкость программирования может быть оценена в понятиях
дробления системы команд. Для удобства назовем этот уровень уровнем
команд. Он определяет систему команд каждого ПЭ, типы
используемых данных и примитивы связи между процессорами. Кроме того,
существуют различные степени гибкости, соответствующие различным
системным проектам, хотя невозможно строго упорядочить различия
между ними. В общем случае гибкость системы (или
программирования), как это изображено на рис. 6.36, уменьшается слева направо
в пространстве проектных решений. Более точно, соответствующее
дробление системы команд укрупняется от ОБ к ПЭ, далее к
матричному процессору и в конечном счете к системным узлам (чем
крупнее системы команд, тем менее гибкой будет система). Здесь мы
рассмотрели два противоположных примера. Первый, находящийся в
левой части рис. 6.36 и представляющий разработку полностью
заказной СБИС, может удовлетворить почти всем условиям,
определенным пользователем, но требует очень много усилий и времени для
реализации. Второй пример, расположенный в правой части рис.
6.36, представляет собой систему "под ключ". Она очень проста,
но обладает малой гибкостью.
Из рис. 6.36 также видно, что пространство проектных
решений/программирования может быть разделено на зоны
программного и аппаратного обеспечения. Первая зона, находящаяся выше
уровня системы команд, представляет пространство программного
обеспечения (отметим, что это пространство в свою очередь может
быть разделено на три части - системное программное обеспечение,
программное обеспечение матричных процессоров и (локальное)
428
Глава 6
программное обеспечен-ие для ПЭ, разделенные соответственно
кривыми уровней матричного процессора и ПЭ). Вторая зона,
расположенная ниже уровня команд, представляет пространство аппаратного
обеспечения. В этом пространстве имеется специальная зона,
представляющая пространство программно-аппаратного обеспечения
(firmware). Здесь предполагается, что коды, определяющие систему
команд в терминах ОБ, должны быть полупостоянными, например
микропрограммные коды в ПЗУ.
Разработчик может проектировать систему с вариантами
возможностей, "обменивая" программное обеспечение на аппаратное, и
наоборот. Это означает, что если имеются средства, которые
переводят один архитектурный уровень на другой с корректно
определенными средствами описания архитектуры, то разработка
аппаратного обеспечения и методы программирования для большинства из
реализуемых процессов являются в сильной степени
взаимозаменяемыми. Например, анализ алгоритмов для разработки программного
обеспечения (и языка программирования) вдоль линии А на рис.
6.36 может быть применен для разработки программно-аппаратного
или аппаратного обеспечения вдоль линии В. Это наблюдение
приводит к фундаментальному понятию методологии иерархической
разработки, основанной на систематическом отображении между всеми
архитектурными уровнями. Более подробно об этом сказано при
обсуждении средств САПР для матричных процессоров в разд.6.6.
6.5.2. Факторы разработки языка
Разработка программного обеспечения требует языковых средств
для выражения алгоритма на языке высокого уровня и компиляции
языка в объектный код, предназначенный для исполнения на целевой
машине [Hockn83]. Ниже перечислены основные факторы, влияющие на
разработку языка и компилятора:
1. Диапазон применения. Должен включать все интересующие
области, например обработку сигналов или изображений, выполнение
научных расчетов.
2. Легкость программирования. Выбранный язык программирования
должен обеспечить легкость выражения решения задач. Это приводит
к идее языков высокого уровня. Язык программирования должен
способствовать выражению параллелизма и выделению его из доступного
представления. Для этого компилятор должен выполнять анализ
зависимостей данных, чтобы определить, какие части алгоритма могут
быть выполнены независимо от других. Он должен предоставлять
Разработка систем и программного обеспечения 429
недвусмысленную помощь программисту в описании его задач,
разработке, реализации, верификации и оценке сложных компьютерных
систем.
3. Эффективность выполнения. Для эффективной реализации
алгоритма на матричном процессоре необходимо максимально
использовать параллелизм. Алгоритм должен быть эффективным с точки
зрения трансляции, выполнения и обменов процессора с памятью.
Следовательно, в разработке программного обеспечения должны быть
отражены свойства аппаратного обеспечения.
Согласование. Для достижения оптимального компромисса три
перечисленных фактора должны быть соответствующим образом
согласованы. Например, если в системе обработки изображений в
реальном времени требуется высокая производительность, то фактор
эффективности может стать преобладающим (путем использования мик-
ропрограммируемых или специализированных процессоров) в ущерб
двум другим оставшимся факторам (область применения и простота
программирования).
С точки зрения простоты программирования, с другой стороны,
подходящий язык должен позволять программисту сосредоточиться на
решении задачи, не задумываясь об архитектуре основной машины и
ее внутреннем представлении. Это означает, что требование
управляющей информации, в которой нуждается язык (и которая не
является на самом деле частью исходного алгоритма) должно быть
сведено к минимуму. Однако иногда "интеллекта" компилятора может не
хватить для оптимального отображения алгоритма на требуемую
архитектуру, и в этом случае программист должен будет вмешаться в
явное управление размещением процессов на процессорах. Это
обстоятельство противоречит предыдущим требованиям, поскольку для
того чтобы обеспечить оптимальное использование архитектуры,
программист должен знать все ее детали и использовать это знание
при написании программ, которые явно управляют аппаратурой. В то
же время программистом должно быть выполнено распределение
памяти с целью минимизации задержек при пересылке данных, что также
входит в противоречие с предыдущими требованиями.
Для разрешения этих конфликтов вводится понятие
промежуточного представления, которое является результатом работы
компилятора с языка высокого уровня и устанавливает интерфейс между
программистом и архитектурой, отделяющий программиста от
утомительных операций управления аппаратурой.
Промежуточное представление намного проще представления на
языке высокого уровня и содержит примитивы для явного выражения
430
Глава 6
параллелизма и управления взаимодействием. Эти примитивы
позволяют программисту или оптимизирующему компилятору произвести
сопряжение представления алгоритма с основной архитектурой.
Целостный подход к алгоритмическим нотациям СБИС. Успешность
разработки языка и компилятора для матричных процессоров в
сильной степени зависит от комплексного подхода, включающего анализ
алгоритмов, выделение параллелизма, архитектуру процессоров,
функциональные и структурные примитивы. Поиск алгоритмической
нотации, адекватной алгоритмам на СБИС, представляет собой
интересную область в ислледовании языков программирования. Можно ли
писать программы на языке, который предоставляет полные (явные
или неявные) описания пространственно-временной работы матричных
процессоров на СБИС?
6.5.3. Классы языков высокого уровня
Полное описание языков, которые могут быть использованы для
программирования матричных процессоров, выходит за рамки данной
книги. Здесь мы лишь кратко обсуждим достоинства и недостатки
некоторых классов языков. Языки для матричного процессора могут
быть подразделены на три класса:
Класс /. Традиционные фоннеймановские процедурные языки
(возможно, с мощным оптимизирующим и векторизующим компилятором).
Класс 2. Языки фоннеймановского типа, дополненные примитивами
синхронизации и взаимодействия.
Класс 3. Параллельные языки, облегчающие выражение
параллельных алгоритмов и автоматически выполняющие анализ зависимостей.
Языки класса 1. Обычные процедурные языки (например, Фортран)
соответствуют модели вычислений, которая предложена фон Нейманом
и сосредоточена вокруг оператора присваивания и связанного с ним
состояния процессора. На таких языках очень трудно выразить
параллелизм, так как они и не разрабатывались для этой цели. Одна
из возможностей для выполнения анализа зависимостей
оптимизирующим компилятором состоит в представлении алгоритмов на языке с
однократным присваиванием. Это означает, однако, что программист
становится ответственным за преобразование алгоритма с
внутренним параллелизмом в последовательную форму, а это делает
программирование весьма трудным занятием. Поскольку языки этого
класса не помогают программисту в представлении параллельных
алгоритмов, они не удовлетворяют требованиям простоты
программирования. Кроме того, векторизация и оптимизация чрезвычайно зат-
Разработка систем и программного обеспечения 431
руднены, так как исходное представление программы не может
предоставить много информации для извлечения параллелизма.
С появлением мощных конвейерных процессоров (например,
Сгау-1, Cray Х-МР и FPS API20В), были разработаны несколько
векторизаторов, оптимизирующих компиляторов или препроцессоров. К
их числу следует отнести: векторизатор МСА, разработанный фирмой
Massachusetts Computer Associates, компилятор с Фортрана фирмы
Cray Research, компилятор с Фортрана для ЭВМ TI ASC,
векторизатор для машины Burroughs BSP, компилятор с Фортрана для ЭВМ
Cyber 205, векторизаторы для векторных суперкомпьютеров Fujitsu и
Hitachi и компилятор Parafrase для проекта Cedar [Kuck80].
Векторизующий компилятор обрабатывает исходный код, написанный на
последовательном языке и, где это возможно, генерирует
параллельные машинные команды. Иногда может компилироваться более
компактная промежуточная форма, такая, например, как
представление исходной программы в виде орграфа для компьютера Advanced
Scientific Computer (ASC NX) фирмы Texas Instruments.
Пример 1. Умножение матриц на языке типа Фортран
На последовательном языке (класса 1) существует стандартный
способ записи умножения матриц:
For / from 1 to Ν*
For / from 1 to N2
For k from 1 to N~
c(ij,k) = c(ij,k-i) + a(i,k)b(kj)
В форме с однократным присваиванием этот алгоритм будет
записан так:
For i from 1 to Ν*
For / from 1 to N2
For k from 1 to N~
a(i,j,k) = α(ι\/-1,Λ)
b(ij,k) = b(i-l,j,k)
c(i,j,k) = c(iJtk-\) + a(iyjyk)b(iyj,k)
Это преобразование не является тривиальным, так как оно
включает анализ зависимостей для определения индексов каждого
выражения.
432
Глава 6
Языки класса 2. Этот класс содержит такие языки, которые
позволяют представить алгоритм в виде набора взаимодействующих
последовательных процессов (Communicating Sequential Processes
CSP), например, Ада, Оккам. Языки этого класса обладают
некоторыми достоинствами и недостатками языков предыдущего класса. Для
описания алгоритмов на таком языке требуется, чтобы программист
определил, какие части алгоритма могут быть выполнены
параллельно, а затем, используя примитивы языка, организовал
взаимодействие и синхронизацию взаимодействующих процессов, которые
реализуют процедуры алгоритма. Такой подход существенно повышает
эффективность использования машины, так как программист
непосредственно размещает процессы по процессорам и организует их
взаимодействие. Однако это может оказаться неприемлемым для больших
задач.
Пример 2. Умножение матриц на языке Оккам
Оккам - простой, но мощный язык, основанный на идеях,
разработанных в языке CSP [Ноаге78]. В качестве примера мы рассмотрим
алгоритм умножения матриц (примитивы языка Оккам обсуждались в
разд. 5.5). Умножение матриц на Оккаме разделено на две части.
Первая часть - это программа для узла, вторая - основная
программа, которая увязывает процессы в узлах, формируя массив.
Текст программы приведен в разд. 5.5 в примере 6. Из это примера
видно, что для представления алгоритма на Оккаме, программистом
прежде должен быть произведен анализ зависимостей.
Языки класса 3. Этот класс языков разработан в меньшей
степени, чем предыдущие классы. В результате исследований, однако,
были созданы языки, которые могут быть с успехом использованы
для программирования матричных процессоров. Представление всех
языков подобного типа выходит за рамки этой книги. Мы рассмотрим
подкласс аппликативных или функциональных языков, которые имеют
свойства, близкие к нашим требованиям (например, диалекты Лиспа,
SISAL [Sked85b], FP, FFP, Paralfl [Hud86]). В основе
функциональных языков лежит идея о том, что операторы присваивания
представляют собой искусственный продукт фоннеймановской модели
вычисления, а математическое определение алгоритмов - набор
функций, которые должны быть вычислены. Не прибегая к оператору
присваивания и упрощая запись функций и описания их вычисления,
были созданы очень простые, изящные и выразительные языки. Так
как для этих языков не существует понятия состояния процессора,
Разработка систем и программного обеспечения 433
то выполняется свойство Черча-Россера [0*Don85]. Это свойство
заключается в том, что порядок выполнения функций не имеет
значения (при соблюдении ограничений зависимости), и программа
всегда выдает один и тот же результат (если она завершается).
Это свойство позволяет компилятору генерировать код, выполнение
которого связано только с ограничениями зависимости. Таким
образом, функциональные языки удовлетворяют требованию простоты
программирования и требованию универсальности применения.
Возможны проблемы с вычислением функций, обусловленные самой
природой этих языков. Например, иногда большая часть архитектуры
скрыта от программиста, так что он не может оптимизировать свой
алгоритм для матричного процессора. Эта проблема была решена
введением языков с однократным присваиванием (например, SISAL
[Sked85b]) или примитивов взаимодействия (например, Paralfl
[Hud86]). Другой способ, допускающий вмешательство программиста,
состоит во введении промежуточного языка, обрабатываемого
компилятором высокого уровня, и использовании оптимизатора для
генерации выполняемого машинного кода. Наиболее удобная
промежуточная форма для этих языков - представление ГЗ на графовом языке
(IF1 для языка SISAL) или языке класса 2 (например, Оккаме). На
этом пути сохраняются достоинства языков обоих классов, т.е.
сохраняются высокий уровень, функциональная форма
функционального языка для начального описания алгоритма и детальное описание
взаимодействия и синхронизации на языках класса 2.
Пример 3. Умножение матриц на языке SISAL
SISAL (Streams and Iterations in a Single Assignment
Language - Потоки и итерации в языке с однократным присваиванием) -
аппликативный язык, который затем компилируется в язык IF1,
представляющий его промежуточную форму. Прежде чем рассматривать
пример, опишем свойства языка, которые будут нами использованы.
SISAL имеет две формы цикла for - форма с произведением и
форма без произведения. Последняя эквивалентна общепринятой
форме цикла for относительно генерируемых границ индексов. Форма с
произведением в свою очередь имеет две формы - перекрестную
(cross form) и точечную (dot form). Первая форма производит все
пары индексов (декартово произведение), тогда как вторая - пары
индексов, которые должны быть сгенерированы при вычислении
скалярного произведения. Другое свойство, которое необходимо отме-
28— 102S
434
Глава 6
тить, - редукционная операция "значение суммы" (value of sum).
Результатом этой операции является скалярное значение, равное
сумме значений всех переменных, следующих за ключевым словом
sum.
type One Dim = array[ integer];
type TwoDim = array[OneDim];
function MxM (A,B:TwoDim;M,N,L:integer
returns TwoDim)
for / in 1,M cross / in 1,L
S:=
for К in 1,N
R:=A[i,k]*B[k,j]
returns value of sum R
end for
returns array of S
end for
end function %MxM
Эта программа генерирует все пары элементов вдоль направлений
i и /, вычисляет произведения и суммирует частичные произведения
вдоль направления к. Пример показывает, как легко представить
алгоритм на языке SISAL. На рис. 6.37 показан в графической
форме выход компилятора (реальный код на языке IF1 в целях
экономии не приведен).
Вершины ГенераторГраниц вместе с вершинамии ЭлементА
генерируют элементы матрицы, которые перемножаются, а затем
суммируются, образуя конечный результат. Граф IF1 состоит из двух графов
- графа структуры программы (ГСП), который, очень полезен при
размещении и разбиении, и собственно ГЗ, который содержит листья
ГСП вместе с соединяющими их дугами. Граф на рис. 6.37 не
полностью соответствует принятой здесь форме ГПЗ, но при небольшой
доработке, расширяющей вершины ГенераторГраниц и ЭлементА, можно
прийти к требуемому представлению.
Пример 4. Умножение матриц на языке FP
Алгоритм умножения матриц можно кратко и просто записать на
языке FP [Backu78]. До представления программы опишем некоторые
используемые примитивы и обозначения.
Разработка систем и программного обеспечения
435
ДляВсех
ГенераторГраниц!
ЭлементА!
j ГенераторГраниц 2
iff ГенераторГраниц 3
блока
ДляВсех
\к ДляВсех
^Узел блока
^ОСлияниеА
%
"•""■■•"••АСлияниеА
S
^""•"sA Редукция
\ \ \ ^(ТЭлементА2 Г(ЭлементАЗ V ЭлементА4 >f
Рис. 6.37. Умножение матриц на языке IF1.
Буквами f,gth обозначаются функции, <х> - аргумент, который
может быть скаляром или вектором, обозначенным <х* χ^.,.,χ >,
или матрицей, которая может быть описана как вектор, состоящий
из вектор-строк. Матрица порядка 2 записывается «хи,х*2>
<JC21,JC22>>* Символы f:<x> означают, что функция / применена к
аргументу х. Следующие функции представляют собой некоторые
примитивы языка:
distr:«xvx2>...txn>ty> —><*Γι/>,<*2, (/>,.. .,<*n,t/>>
distl:<xv<yvyr...,yn»-><xty]>t...1<x,yn>
trans:«xv...,xn>t<yv..,yn»^>«xvyx>,...,<xnyyn»
/f-<xvx2 v~*':<*r':<*2 1<χη>-·>
af:<xvx2 xn>-^<f:xtf:xr...tf:xn>
[f*g]'<x>-*<f'x>g'x>
f og:<x>^f:(g:<x>)
l:<xvxr.. ,*„>->*!
436
Глава 6
Используя их, можно приступить к записи программы на языке
FP. Сначала определим операцию скалярного произведения:
del IP = (/+) © (αχ) о trans,
которая означает, что если функция IP применена к «χ^...,χη>,
<Уу->У »» то сначала будет выполнена операция trans,
образующая пары элементов «ХуУ^>, ...,<*η,ι/η». Все пары
перемножаются, образуя вектор частичных произведений <z.,...,z^>, а затем
рекурсивно применяется оператор +, т.е. +:<z1,+:<z2,...,+:<zn_1,
ζ >...>, выдающий результат скалярного произведения. Программа
перемножения матриц имеет следующий вид:
def ММ = ααΙΡ ° adistr о distl о [1, trans о 2].
На словах это эквивалентно тому, что сначала надо
транспонировать вторую матрицу, затем сформировать пары "строка-столбец",
и, наконец, применить операцию скалярного произведения ко всем
парам.
Приведенная выше программа может быть легко преобразована в
ГЗ, если интерпретировать операторы distr и distl как операторы
распространения. В такой интерпретации операция distr о distl
образует декартово произведение векторов строк и столбцов. ГЗ
показан на рис. 6.38.
6.5.4. Промежуточное представление
Компилятор языка высокого уровня производит анализ
зависимостей и генерирует список функций, которые должны быть вычислены в
некотором порядке для получения верного результата. Порядок
вычислений определен ГЗ, вершины которого представляют функции, а
ребра - взаимозависимости между функциями. Следующим шагом
является построение ГПС с помощью проецирования ГЗ и планирующей
функции, а затем восстановления синхронизации для получения
систолического или волнового матричного процессора. После этого
можно произвести генерацию кода для ПЭ матричного процессора и
назначить блоки кода процессорным элементам. Построение
систолического или волнового матричного процессора выполняется
независимо от процесса генерации кода, поскольку его можно получить с
помощью геометрических операций над ГЗ без каких-либо обращений
к реальной функции узлов этого процессора. Кроме того, генерация
кода связана только с функцией узлов систолического или
волнового матричного процессора.
Разработка систем и программного обеспечения 437
Матрица В Столбцы матрицы В
Строки
—\ Трехмерный
-/ гз
Операция Distr Операция Distl Операция Trans
Рис. 6.38. ГЗ операции умножения матриц.
Из приведенных выше соображений следует, что необходимо
представление, которое адекватно описывает положение вершины в графе
и ребра, которые связаны с ней, и в то же время описывает
функцию вершины, т.е. представление, которое состоит из двух
частей - информации о графе и информации о функциях.
В большинстве случаев знаний о вычислительных ресурсах
(например, о размере матричного процессора) недостаточно для
решения задачи, и необходимо произвести некоторое группирование
операций. Эти группы должны постоянно назначаться различным ПЭ.
Для выполнения автоматического размещения необходима некоторая
управляющая информация, извлеченная из управляющей структуры
программы. Например, все операции цикла for над массивом данных
могут быть назначены одному процессору, и если процессор может
хранить все необходимые данные, то затраты на межпроцессорный
обмен сократятся. Для облегчения процесса размещения следует
образовать Граф Структуры Программы, описывающий различные
блоки, в которые могут быть сгруппированы функции. Вершины самого
нижнего уровня графа структуры вместе с их связями представляют
собой вершины ГЗ. Вершины более высокого уровня описывают все
подфункции, а вершины самого высшего уровня представляют
алгоритм. Такой граф позволяет выбрать дробность представления
алгоритма, чтобы можно было легко обнаружить, какие операции следует
сгруппировать (рис. 6.37).
Таким образом, представление должно иметь следующую форму:
438
Глава 6
Информация о структуре программы
информация о ГЗ
процедура вершины
Процедуры, работающие с этим представлением, используют
только соответствующие данные. Пригодными языками для такого
представления являются IF1 и Оккам. Опишем кратко, как можно
использовать для указанных целей каждое представление.
IF1. IF1 представляет собой промежуточное представление для
языка SISAL и используется для представления графа структуры и
ГЗ. Информация о структуре содержится в составных вершинах, а
информация о зависимостях - в простых вершинах. Полное описание
языка выходит за рамки данной книги. Дадим только характерный
пример семантики этого языка.
Графы в языке IF1. Этот язык основан на ациклических графах.
Граф состоит из четырех компонентов - вершин, ребер, типов и
границ графа. Вершины обозначают операции, такие, как умножение
и сложение; ребра представляют значения, которые пересылаются
между вершинами (зависимости); типы могут быть связаны или с
ребрами или с функциями для описания типов данных, требуемых для
отдельной операции. Границы графов окружают группы вершин и
ребер и несут структурную информацию.
Вершины могут быть простыми или составными. Простые вершины
имеют следующую форму: N метка операция, где операция - строка в
коде ASCII, представляющая целое число, связанное с функцией
вершины. Например, операция (a+b)xb будет представлена
последовательностью вершин и ребер, приведенных в табл. 6.4.
Составные вершины содержат подграфы и связи между подграфами.
Общий вид составной вершины:
{
G ... подграф О
G ... подграф 1
G ... подграф η
} метка Код-операции ассоциативный-список
Разработка систем и программного обеспечения
439
Таблица 6.4. Операция умножения (а + b) χ 5 на языке IF1
Исходный Исходный Конечный Конечный Тип Комментарий
узел порт узел порт
N
0
0
4
N
5
4
1
2
1
5
1
Сложение
4
4
5
Умножение
5
0
1
2
1
2
1
Целое
Целое
Целое
Целое
Целое
Узел 1,
вычисляющий
имя а
имя b
имя
Узел 2,
вычисляющий
х5
значение 5
имя
Ассоциативный список перечисляет связи между подграфами,
определенные семантикой составной вершины. Например, вершина цикла
for имеет четыре подграфа: Инициализация, Тест, Тело и
Результат. Ассоциативный список для этой составной вершины выглядит
так:
4 <иниц><проверка><тело><результат>.
Первое поле - число подграфов, следующие четыре поля
заполнены целыми числами, которые указывают на подграфы цикла (т.е.
входные ребра).
Границы графа обозначают функции и могут быть глобальными,
локальными или импортируемыми. Локальные границы начинаются с
буквы G, глобальные с буквы X, а импортируемые (из других единиц
компиляции) - с буквы I.
Генерация кода. Выше было описано, как язык IF1 представляет
управление и ГЗ. Чтобы это представление было полезным,
необходимо преобразовать его в машинно-зависимую форму,
соответствующую рассматриваемой архитектуре. В этом разделе для иллюстрации
приведем две архитектуры - транспьютер фирмы INMOS и кристалл
потока данных μΡ07281 фирмы NEC
Пример 5. Генерация кода для транспьютера
Данный процессор разработан для непосредственного выполнения
программ на языке Оккам. Для этого достаточно перевести
промежуточное представление на Оккам, что можно сделать легко, если
440
Глава 6
назначить канал Оккама каждому ребру ГЗ, а последовательный
процесс - функции вершины. Предыдущий простой пример вычисления
выражения (а+Ь)х5 будет представлен на Оккаме следующим образом:
PAR
SEQ
PAR
chanOl ? а
chan02 ? b
SEQ
chan41 ! (a+b)
SEQ
PAR
chan41 ? ζ
SEQ
chanlO ! zx5
Пример 6. Генерация кода для процессора μΡϋ7281
Кристалл фирмы NEC имеет архитектуру потока данных (описание
приведено в гл. 7). Его язык ассемблера ориентирован на графы,
поскольку он имеет примитивы для описания вершин и ребер графа
потока данных. Программа для вычисления (а+Ь)х5 выглядит
следующим образом:
LINK
LINK
LINK
LINK
LINK
LABEL
cOl =
c02 =
c41 =
c51 =
FLABEL
ADDQ
ADDQ
MULQ
OUTQ
FUNCTION LABEL OPCODE FLOW
FUNCTION ADDQ = ADD QUE(?)
FUNCTION MULQ = MUL QUE(QA)
FUNCTION OUTQ = OUT1 QUE(?)
MEMORY QA = AREA(5)
Точки входа LINK представляют ребра графа, точки входа
FUNCTION описывают функции вершин. Поле FLOW описывает очереди
для каждой вершины. Знак вопроса в примитиве QUE означает, что
эти очереди не инициализированы. Область памяти QA содержит
число 5.
Разработка систем и программного обеспечения
441
6.5.5. Программная среда
Среда структурного программирования
Чтобы помочь программисту решить сложные вопросы в
программировании матричного процессора, предлагается структура
программных систем для матричных процессоров (рис. 6.39). В этой
программной системе алгоритм выражается на функциональном языке
(например, на SISAL), а его компилятор производит ГЗ в виде
промежуточного представления, которое затем может быть
преобразовано (например, путем проецирования или восстановления
синхронизации) в ГПС или систолическую форму. Иногда он может быть
непосредственно выполнен в целях отладки или отображен в программу,
которая моделирует целевую архитектуру.
Программная поддержка отладки и моделирования. Отладка
параллельной программы на машинном уровне невозможна из-за
существования множества взаимодействующих процессов. Было бы удобно
иметь отладчик программ на уровне исходного языка или на уровне
промежуточного представления. Отладчик на уровне исходного языка
(Рекурсивный алгоритм)
1
~^У Функциональный Л,„А1 , Л
.^у язык (например, SISAL) J
с
1
Промежуточное представление Л
(например, IF1) J
[Отображение на систолические/волновые
матричные процессоры
■(Отладчик) (Имитатор) (Генератор кода)
Выполнение)
Рис. 6.39. Структура программных средств для матричных процессоров.
442
Глава 6
для языков класса 1 реализовать чрезвычайно сложно. Языки класса
2 могут быть использованы, однако не только для описания ГЗ , но
и для его исполнения, что означает возможность иметь очень
хорошие отладчики на промежуточном уровне. Языки класса 3 имеют
слишком высокий уровень, чтобы быть полезными для отладки,
однако они могут быть использованы для верификации программ, так
как последние могут выполняться и на последовательной, и на
параллельной машине с гарантией совпадения результатов (в силу
свойства Черча-Россера). Таким образом, можно заключить, что
наилучшим выбором для представления и отладки на промежуточном
уровне является язык класса 2.
Подобные аргументы приводят к такому же выводу и в отношении
моделирования, цель которого - прогноз выполнения алгоритма на
реальной машине. Вместо выполнения алгоритма на машине на
последовательной (ведущей) машине моделируется ее архитектура.
Наиболее естественный путь представления машинных операций -
использование языков класса 2, поскольку они обладают примитивами,
имеющими однозначное соответствие с блоками машины (например,
FIFO-буферы —» очереди, процессоры —> процессы).
Извлечение параллелизма и разбиение
Для упрощения разработки компилятора важно выявить
родственные свойства языков различных классов, особенно те, что связаны
с извлечением параллелизма и легкостью разбиения.
Извлечение параллелизма. Распараллеливать программы,
написанные на языках класса 1, нелегко, так как в исходной программе
информации недостаточно. Много усилий было приложено к
разработке распараллеливающих компиляторов, особенно для Фортрана
(например, компилятор Paraphrase). Проблемы для языков класса 1
усугубляются еще и тем, что векторизирующие компиляторы не
производят граф зависимостей, из которого можно извлечь максимум
параллелизма. Языки класса 2 могут выражать весь доступный
параллелизм, так что они не требуют распараллеливания, но анализ
параллелизма должен производить программист. Языки класса 3
специально разработаны для выражения параллельных алгоритмов и
построения ГЗ с максимальным параллелизмом.
Простота разбиения. Разбиение и отображение алгоритмов на
конкретную архитектуру могут быть существенно упрощены
генерированием ГЗ. Для назначения процессов процессорам могут быть
использованы языки класса 2, однако за разбиение ответственность
Разработка систем и программного обеспечения 443
несет программист. Языки класса 3 имеют в этой области
определенное преимущество, поскольку они предназначены для
генерирования ГЗ.
6.6. САПР ДЛЯ МАТРИЧНЫХ ПРОЦЕССОРОВ
Для упрощения согласования и отображения алгоритмов на
матричные процессоры необходимо разработать набор интегрированных
пакетов программ проектирования. Входными данными такой системы
проектирования могут служить рекурсивные алгоритмы, выходом -
кристаллы СБИС. Этот тип интегрированных средств САПР может быть
назван матричным компилятором. Полный матричный компилятор
высокого уровня еще предстоит разработать, хотя некоторые кремниевые
компиляторы специального назначения уже существуют, такие,
например, как FIRST [Denye85], Lager [Rabae86] и CATHEDRAL
[Jain86]. Все эти кремниевые компиляторы предназначены для
использования в специальной прикладной области и реализации
специальных архитектур, и, что важнее всего, работают со
структурированным входом. Применяя структурированный компилятор,
пользователь управляет формированием и соединением реальных аппаратных
блоков. Матричный компилятор, о котором идет речь, должен быть
по уровню выше и переводить заданное пользователем описание
поведения системы в аппаратную структуру [Denye86].
В общем случае компилировать аппаратуру непосредственно по
описанию поведения сложно. Однако, поскольку большинство
алгоритмов ЦОС по природе являются регулярными и рекурсивными, их
можно эффективно отобразить в систолические или волновые
матричные процессоры, используя каноническую и обобщенную методологию
отображения (которая обсуждалась в гл. 3). Поэтому разработка
матричного компилятора для систолических или волновых
процессоров является многообещающей и реалистичной.
6.6.1. Характеристики системы матричного компилятора
Требования к средствам разработки и моделирования системы
Требования к матричному компилятору для систолических или
волновых матричных процессоров состоят в следующем:
1. Дружественный интерфейс, основанный на графике.
2. Вход, описывающий поведение на языке высокого уровня.
3. Интерактивное взаимодействие с пользователями.
444
Глава 6
4. Иерархическая итерационная методология нисходящего или
восходящего проектирования.
5. Согласованная база данных для различных уровней.
6. Многоуровневое и смешанное моделирование.
7. Верифицируемые уровни и конечный результат.
Нисходящее иерархическое проектирование. Матричный компилятор
можно разделить на три уровня (рис. 6.40). Входом для матричного
уровня является описание поведения (например, в виде рекурсивных
алгоритмов), а выходом - матричный процессор, соответствующий
алгоритму. Входом процессорного уровня являются функциональные
возможности процессорного элемента и связи ПЭ на матричном
уровне, выходом - компоновка таких компонентов, как шины данных и
управляющие цепи, которые представляют собой вход
реализационного уровня. Выходом реализационного уровня является размещение
элементов. Отметим, что между этапами проектирования существует
обратная связь, позволяющая итерационно проводить модификации
проекта. Большинство из разрабатываемых программных систем не
будут "полностью автоматизированы". Вместо этого более удобными
и эффективными являются "интерактивные" подходы к
проектированию, основанные на дружественном к пользователю интерфейсе.
Возможно, что для этой цели окажется полезной методология
экспертных систем.
Рекурсивный алгоритм
■
>—
Матричный уровень
У
_
'
Процессорный уровень
1
_
1
Уровень реализации
>'
В производство
Рис. 6.40. Нисходящее иерархическое проектирование
систолических/волновых матричных процессоров.
Разработка систем и программного обеспечения
445
САПР матричного уровня
На матричном уровне процесс проектирования состоит в
преобразовании алгоритма (математического описания разработки) в
архитектуру (физическое описание разработки). Эта работа
сосредоточивается на анализе алгоритмов в целях отображения в
архитектуру, извлечении параллелизма и проектировании архитектуры.
Методологии канонического и обобщенного отображений, обсужденные в
гл. 3-5, обеспечивают теоретическую^ основу для программной
реализации. Средства проектирования на матричном уровне схематично
представлены на рис. 6.41 и содержат следующие ключевые
компоненты:
Фортран
Рекурсивный
алгоритм
Другие
спецификации
N
САПР
Имитатор
Рис. 6.41. Проекты САПР для проектирования на матричном уровне.
446
Глава 6
• Отображение ГЗ на систолические процессоры. Методология
отображения может быть применена к ГЗ с целью получения
"оптимальной" систолической разработки (разд. 4.4).
• Отображение ГЗ на волновые процессоры. Формальные методы
для отображения ГЗ на волновой процессор с максимальной
пропускной способностью и минимальными очередями обсуждались в гл. 5.
• Проекция и многократная проекция. N-мерный ГЗ может быть
спроецирован на (ЛМ)-мерный матричный процессор. Проецирование
можно продолжать и далее с целью уменьшить размер процессора.
Подходящие линейные проекции и линейные планы должны быть
выбраны пользователем.
• Разбиение. При разбиении проектировщик выбирает схему
ЛПосГПар или ЛПарГПос (разд. 6.3.2), а затем определяет
назначение процессоров и планирование.
• Другие поддерживающие программные пакеты. Могут быть
использованы пакеты для организации обмена данными, ввода-вывода,
сетевой работы.
САПР процессорного уровня
Перспективные системы матричных компиляторов должны быть
ориентированными на широкий диапазон архитектур процессоров, по
крайней мере на следующие процессоры и устройства [Denye86]:
• Процессоры с информационным каналом (например, процессор с
разрядно-модульной организацией AMD 2901).
• Процессоры с ускоренным информационным каналом (например,
устройство умножения).
t Алгоритмические процессоры (например, последовательный
процессор БПФ).
• Устройства с произвольной логикой или конечные автоматы
(например, сумматор по модулю 2 или счетчик).
Описание САПР процессорного уровня приведено на рис. 6.42.
САПР на уровне реализации
Существуют три подхода при изготовлении кристаллов - заказные
схемы, стандартные ячейки и вентильные матрицы. Для матричных
компиляторов наиболее подходящим является путь использования
стандартных ячеек. Вместе с функциями, описанными
соответствующим образом на более высоком уровне, уровень реализации состоит
из следующих шагов:
Разработка систем и программного обеспечения
447
Устройства с
произвольной
логикой/
конечные
автоматы
Рис. 6.42. Компилятор для проектирования на процессороном уровне
(из работы [Denye86]).
1. Логический синтез. Служит для реализации множества булевых
выражений или представлений конечного автомата. Библиотека
стандартных ячеек является основной для разработки блоков.
2. Разметка кристалла, анализ соединений, разбиение и
размещение [Dunlo85, Cheng84, Kirkp83, Goto81, Breue77].
3. Глобальная и детальная маршрутизация [Ting83, [Yoshi82,
Burst83, Hsu83, Ragha83]. После маршрутизации генерируется
полная топология схемы.
4. Верификация разработки. Выбор схемы, верификация топологии
относительно схемотехнического решения, анализ синхронизации.
Хотя существует несколько пакетов программ, которые могут
поддерживать каждый из перечисленных шагов, желательно все же
иметь интегрированную среду проектирования, позволяющую
выполнять работу автоматически. Фактически четыре шага процесса
реализации тесно связаны друг с другом. Естественно, что результат
одного шага влияет не только на последующие, но и на
предшествующие ему шаги. Итерационный подход к проектированию (нисходящий
и восходящий) имеет решающее значение [Ни85]. Схема
итерационного проектирования должна быть применена на всех трех уровнях
матричного компилятора.
6. в.2. Пример проектирования систолического процессора для
преобразования Ада мара
Удобство средств поддержки разработки кристаллов, таких, как
программа MOSIS, заключается в возможности проектирования крис-
448
Глава 6
таллов СБИС на университетском оборудовании с последующим
производством их на заводах. Они дают возможность разработчику
процессоров обработки сигналов использовать вертикально-
интегрированный подход к проектированию СБИС Ниже описан один
такой проект, выполненный в Университете Южной Калифорнии (USC).
Кристалл для преобразования Адамара, разработанный в USC,
содержит почти 14000 транзисторов, расположенных в области
размером 6900 χ 6800 мкм2 и базируется на 3-микронной КМОП-
технологии. Он имеет модульную расширяемую организацию. Соединяя
такие кристаллы, можно получить линейный матричный процессор,
содержащий более 2000 ПЭ.
Преобразование Адамара (разд. 2.3) использует в основном
операции умножения матрицы на вектор. Пусть имеются Ν (N=2n)
входных данных, представленных в векторной форме, например, вектор
х, и вектор преобразованных данных у. Тогда у = Нх и каждый
элемент вычисляется по формуле
ΛΜ
y(k) = ]pw-i)*4 (6.ΐ)
/-о
где
**./) = Yjiir <6·2)
a kt и / представляют собой *-й разряд двоичных представлений к
и / . соответственно. Уравнение (6.1) предполагает .рекурсивный
способ вычисления преобразования, что удобно для систолических
процессоров, а уравнение (6.2) показывает, как сформировать
матрицу Адамара. Поскольку матрица Адамара является регулярной,
можно формировать ее элементы внутри кристалла, чтобы снизить
расходы на связь ценой экономии входных выводов кристалла.
Проектирование систолического процессора
В вычислительном узле преобразования Адамара есть два
основных компонента - модуль умножения с накоплением и генератор
коэффициентов Адамара (ГКА) (рис. 6.43). ПЭ представляет собой
полный сумматор с накапливающим регистром для сохранения
промежуточного результата. Схема генератора коэффициентов не столь
очевидна. В соответствии с этой проекцией направление к интер-
Разработка систем и программного обеспечения 449
Г ΚΑ
.Л
Md
ГКА
.Л
D
ГКА
λ
^>
Рис. 6.43. Систолический процессор для преобразования Адамара.
претируется, как временная ось, а направление / - как
пространственная ось. Из уравнения (6.1) коэффициент Адамара для ПЭ.
во время k равен (-1)^' '". Если -1 представлена логической
единицей, а +1 - логическим нулем, то функция генератора состоит
в генерировании логической единицы, когда значение p(kyj)
нечетно, или генерировании логического нуля в противном случае. Из
уравнения (6.2) видно, что p(k,j) представляет собой
суммирование последовательности нулей и единиц. Следовательно, генератор
- просто устройство проверки на четность длины п. η входных
данных - это результат поразрядного логического умножения двоичных
представлений k и /.
Кроме этих двух компонентов, важным является организация
ввода-вывода. Ввод прост, так как данные поступают из граничных
клеток. Вывод более сложен, поскольку результаты формируются
последовательно во всех ПЭ, от первого до последнего. Как только
результат в ПЭ вычислен, он может пересылаться в соседний, левый
или правый ПЭ. В данной разработке результат пересылается
вправо, по направлению входных данных, что вдвое уменьшает скорость
распространения. Это сделано для использования однонаправленной
связи в целях экономии шин и сокращения количества сигналов
управления. Первый результат доступен после N шагов с момента
начала работы схемы. После следующих N шагов первый результат
продвигается в середину линейного процессора, а тем временем
генерируется последний результат. Затем результаты выводятся из
процессора и в это же время в него может загружаться другой набор
входных данных. Такая конвейерная схема обеспечивает высокую скорость.
Процедуры реализации
Кристалл для преобразования Адамара реализован путем
выполнения следующих последовательных процедур (рис.6.44). Полное
размещение представлено на рис. 6.45.
29 —102S
450
Глава 6
Проектирование модулей
Моделирование функций
Да
Компоновка схемы
Проверка правил
проектирования
Логическое моделирование
Временной анализ
Рис. 6.44. Процедура реализации.
1. Проектирование модулей. Для выполнения требуемых функций
необходимы несколько модулей. Каждый кристалл содержит восемь
ПЭ, которые являются по существу сумматорами. В кристалл также
Разработка систем и программного обеспечения 451
HADAMARD
Рис. 6.45. Кристалл преобразования Адамара.
встроен генератор коэффициентов Адамара, реализующий уравнение
(6.2) и содержащий дерево сумматоров по модулю 2 и счетчик.
Маркер адреса, указывающий на физический адрес кристалла,
фиксируется в регистре и распространяется по матрице, увеличивая свое
значение на единицу при входе в следующий кристалл.
2. Моделирование функций. Имея описания на уровне модулей и
блок-схемы, необходимо убедиться, что они действительно
выполняют требуемые функции. С помощью одного из множества доступных
средств моделирования (например, ISPS), можно описать и
смоделировать функцию каждого модуля. Правильность логических функций
можно проверить с помощью логического имитатора ELOGS. По выходу
452
Глава 6
имитатора можно судить о корректности исходной разработки.
3. Компоновка схемы. Настоящая разработка была реализована по
3-микронной КМОП-технологии. Была использована стандартная
библиотека ячеек, содержащая требуемые логические вентили. Очевидна
зависимость между временем разработки кристалла и его размером.
Для компоновки схемы использовался графический редактор Caesar
Graphics Editor, работающий на графическом терминале AED512.
4. Проверка правил проектирования. Этот шаг используется для
проверки соответствия геометрических рисунков, полученных на
шаге 3, правилам проектирования. При обнаружении расхождения шаг 3
должен быть повторен для модификации компоновки.
5. Проверка компоновки - выделение схемы. Транзисторы и
межсоединения выделяются из геометрических рисунков различных
слоев. Выделенная схема используется для целей моделирования на
последующих шагах.
6. Проверка компоновки - логическое моделирование.
Выполняется моделирование на транзисторном уровне. Если компоновка
правильна, выделенная схема будет функционировать так, как
установлено на шаге 5. На этом шаге было использовано инструментальное
средство ESIM.
7. Проверка компоновки - временной анализ. На этом этапе
предполагается, что полученная топология реализует
преобразование Адамара, и необходимо узнать, как быстро работает этот
кристалл. Здесь используется инструментальная система Crystal для
нахождения критического пути - самого длинного маршрута, по
которому проходит сигнал в переходном состоянии. Для анализа
эквивалентной цепи критического пути может быть затем использован
пакет SPICE. Для этого кристалла критический путь - цепь
переноса в каждом ПЭ, которая требует 195 не для распространения
переноса. Поэтому тактовая частота составляет самое большее 5 МГц,
что в свою очередь определяет производительность процессора.
6.7. ЗАКЛЮЧЕНИЕ
В этой главе рассмотрены проблемы, возникающие при
проектировании матричных процессорных систем. Затронутые технические
вопросы касались общей организации системы, техники
программирования, проблем разбиения и отказоустойчивости.
В предложенной организации системы основными компонентами
являются: ведущая ЭВМ и устройство управления матричным
процессором; устройство сопряжения; матрица (матрицы) ПЭ; сети обмена.
Разработка систем и программного обеспечения 453
Основная цель - достижение высокоскоростных и гибких вычислений
путем интеграции управления, связи и вычислительных функций.
Четкая организация зависит в большой степени от предполагаемых
применений.
Хорошая система должна содержать схему разбиения, которая
позволяет разбивать большие задачи на несколько меньших
подзадач. Объединяя решения этих подзадач, можно получить общее
решение. Большинство алгоритмов обработки сигналов и изображений
являются в общем случае детерминированными как во временной
области (с постоянным и заранее известным временем выполнения
задачи), так и в пространственной области (с незначительным числом
условных переходов). Поэтому для этих алгоритмов можно достичь
эффективного разбиения и планирования в целях параллельной
обработки.
Отказоустойчивость является жизненно важной характеристикой
для повышения надежности матричных процессоров. Для
отказоустойчивых систем были рассмотрены вопросы избыточности архитектур,
динамического контроля и диагностики, реконфигурации и
амортизации отказов. Предложен алгоритм реконфигурации, который
распределение выполняется отдельными ПЭ. Представлены несколько
примеров специализированных отказоустойчивых систем,
свидетельствующих еще об одном перспективном подходе к проектированию надежных
систем.
Системное программное обеспечение - весьма важная составная
часть в общей разработке системы. Были изучены инструментальные
программные средства для выражения алгоритма на языке высокого
уровня и компиляции программы в исполняемый объектный код для
матричных процессоров. Основными факторами, влияющими на
разработку языка и компилятора, являются диапазон областей
применений, простота программирования и эффективность выполнения.
Оптимальный компромисс определяется взвешенностью этих факторов .
Основные свойства языков программирования и проектирования
матричных процессоров имеют много общего. Поэтому целесообразно
создавать согласованные пакеты программ для программирования и
проектирования матричных процессорных систем.
6.8. ЗАДАЧИ
1. Пример проектирования системы. Рассмотрим частотный фильтр
на БПФ, который имеет высокое спектральное разрешение при
небольших уровнях вычислений. Эта система была разработана с целью
CO
оо
С/)
ι—J
ИЗ
α.
н
л
s
■θ·
σ3
α.
Η
χ
α,
<
? 3
Ο Ι
00 ζ
m га
S
Разработка систем и программного обеспечения 455
достижения максимальной производительности путем применения ком-
мерчески доступных и полузаказных кристаллов СБИС. Основная
архитектура системы представлена на рис. 6.46 [Swart86]. Данные
поступают в систему через модуль приема данных, который
объединяет данные в пакеты и их "кадрирует". Кадрированные данные
проходят через модуль БПФ, который выполняет преобразование Фурье.
Затем преобразованные данные и ядро фильтра (для подавления
шума) умножаются в частотной области, и результат с помощью модуля
обратного БПФ преобразуется во временную область.
а) Полоса пропускания системы такая, что передача данных
осуществляется с частотой 40 МГц, а характеристики шума требуют
разрешения фильтра 10 КГц. Какова предполагаемая преобразованная
длина N БПФ - 1024, 2048, 4096 или 8192?
б) Очевидно, что наилучшая вычислительная плотность
достигается при тактовой частоте порядка 10 МГц. Какова степень
внутреннего параллелизма (1, 2, 4 или 8), необходимая для достижения
желаемой частоты 40 МГц, если тактовая частота составляет
10 МГц?
в) Этот модуль сопряжен с источником данных и выдает данные
по четырем каналам данных из одного потока входных данных, а
также кадрирует данные во временной области. Комплексные данные
подаются с частотой 40 МГц в четыре пары сдвиговых регистров
(пары регистров используются для размещения двух компонентов
каждого комплексного слова данных). Затем содержимое сдвигового
регистра передается в параллельные защелки. Сколько параллельных
защелок требуется - 2, 4, 8 или 16?
г) Сколько операций "бабочка" требуется для выполнения
^-точечного БПФ, если используется БПФ по основанию 2 - 6144,
12288, 24576 или 49152?
д) Каждая операция "бабочка" по основанию 2 состоит из
четырех операций умножения и шести операций сложения, и данный
процессор БПФ может выполнить Af-точечное преобразование за 102,4
мкс. Сколько арифметических операций в 1 с может выполнить этот
процессор - 0,6·109, 1,2·109, 2,4-109или 4,8·109?
е) Сравните реализацию этого кристалла специального
назначения с процессором WARP (имеющим универсальную архитектуру) в
единицах производительности.
2. Требования к памяти для сбалансированной архитектуры ЭВМ.
ПЭ можно охарактеризовать его вычислительной
производительностью, пропускной способностью ввода-вывода и размером
локальной памяти. При выполнении вычислений ПЭ называется сбалансиро-
456
Глава 6
ванным, если время вычислений равно времени ввода-вывода
[HTKun86]. Рассмотрим задачу умножения двух матриц размером NxN,
предполагая, что размер локальной памяти равен М. Применим схему
разложения, которая использует не более Μ слов памяти в любой
заданный момент вычислений. Умножение выполняется за (Ν/ν'ΛΓ*)2
шагов, каждый из которых представляет собой операцию вычисления
подматрицы размером \^лРх\/лР матрицы-результата, получаемой с
помощью умножения подматрицы размером y/M^xN первой входной
матрицы на подматрицу размером Νχλ/λΡ второй матрицы.
а) Покажите, что время выполнения арифметической операции
С = 0(Ν Af), время ввода-вывода С = 0(NVm~*) и, следователь-
выч ^^_^ в~в
но, С /С = 0(VJT).
выч в-в v '
б) Пусть для этого вычисления ПЭ сбалансирован. Предположим,
что производительность вычислений увеличена в γ раз относительно
пропускной способности ввода-вывода. Покажите, что увеличенный
размер локальной памяти, необходимый для сбалансирования
вычислений, определяется по формуле
тнов * тстар'
3. Программирование на языке FP операции умножения матриц.
Используя примитивы языка FP, приведенные в этой главе, напишите
программу, выполняющую умножение матриц и использующую вместо
вычисления скалярного произведения внешнее произведение.
4. Программирование операции свертки на языке FP. Используя
примитивы языка FP, напишите программу, которая выполняет
операцию свертки в матрично-векторной формулировке алгоритма.
Различаются ли между собой эта программа и программа в задаче 3? Чем?
5. Программирование на языке FP обработки последовательности.
Напишите на языке FP решение следующей задачи: даны
последовательности χ и у, выполните реверсирование последовательности χ
(т.е. х* присвоить ζ и χ - ζΧ поместите χ так, чтобы она
замещала у в первом элементе (сформируйте пару <zyy.>),
умножьте и повторите, скользя по г в направлении у .
6. ГЗ для описания в FP. Для задач 3-5 покажите, как получить
ГЗ из описания алгоритма на языке FP.
7. Согласование с сеточной архитектурой. На рис. 6.47 показан
ГПС с диагональными связями.
а) Получите ГЗ из этого ГПС. (Процедура построения ГЗ из ГПС
изложена в разд. 3.3.)
б) Для устранения диагональных связей в ГЗ могут быть введены
дополнительные слои узлов, которые будут чередоваться с его ис-
Разработка систем и программного обеспечения 457
ш
ш
о Ю <)
Рис. 6.47. ГПС с диагональными связями.
ходными слоями так, что данные, передававшиеся ранее по
диагональным связям, могут быть переданы по этим дополнительным
слоям. Постройте такой ГЗ.
в) Используя то же направление проекции, что и прежде, и
предполагая, что узлы модифицированного ГЗ однородны (т.е.
"вставленные" узлы ГЗ обрабатываются так же, как исходные узлы),
попробуйте спланировать узлы этого "модифицированного" ГЗ.
г) Используя то же направление проекции и произведенное вами
планирование, получите спроецированный ГПС. (Заметим, что
направление проекции для ГЗ с дополнительными слоями может быть
рассмотрено как псевдоинвариантное относительно направленного
сдвига направление проекции. Таким образом, требуются каналы
связи, т.е. сетка, которая инвариантна ко времени. Число
требуемых буферов (задержек), находящихся в каждом ПЭ, зависит от
времени из-за псевдоинвариантного относительно направленного
сдвига направления проекции, и поэтому скорость работы в два
раза меньше, чем при реализации с диагональными связями. Это
обусловлено сокращением числа каналов связи.)
8. Согласование с сеточной архитектурой. На рис. 6.48
показаны четыре ГПС Покажите, модифицировав построенные ГЗ, как эти
ГПС могут быть реализованы на двумерных сетках (на рис. 6.48
показаны только двумерные ГПС. Если необходимо использовать
двумерные сетки, ГПС большей размерности могут быть преобразованы в
двумерные ГПС с помощью мультипроекции.)
Указания.
а) Для ГПС на рис. 6.48, α число дополнительных слоев должно
быть удвоено.
б) Что касается ГПС на рис. 6.48,6, предполагается, что
каналы связи в сетке являются двунаправленными. Полудуплексные
каналы связи, по которым в один момент времени данные могут быть
переданы в одном направлении, являются допустимыми для данного
ГПС, однако в общем случае наличие дуплексных каналов связи бо-
458
Глава 6
в г
Рис. 6.48. Четыре ГПС, в которых требуются дополнительные каналы
связи при реализации на сетке.
лее предпочтительно.
в) В ГПС на рис. 6.48, в введение дополнительных слоев должно
быть произведено аккуратно, чтобы избежать появления циклов в
модифицированном ГЗ.
г) Для ГПС на рис. 6.48, г дополнительные слои должны быть
вставлены тем же способом, что и для ГПС на рис. 6.48, е. Если
нет дополнительных вставленных слоев, покажите, что реализация
на сетке по-прежнему может быть получена, но только путем
добавления двух каналов между соседними ПЭ. Это может повлечь за
собой снижение тактовой частоты из-за передачи двух наборов данных
через один канал сетки.
9. ГПС, разделенный по времени. Получите ГПС, разделенный по
времени для ГПС-массива, показанного на рис. 6.49 и согласуйте
его с сеточным массивом с одним каналом в восточном или южном
направлении.
Рис. 6.49. ГПС-массив.
Разработка систем и программного обеспечения 459
10. Общий случай разделенного по времени ГПС. Обращаясь к
разд. 6.3.1, получите схему распределения задержек для общего
случая ГПС, разделенного по времени.
11. Вложение линейного массива в гиперкуб [Chan86]. Линейный
массив можно рассматривать как одномерную сетку, и поэтому он
может быть вложен в гиперкуб. Покажите на рисунке, как вложить
линейный массив, содержащий 16 узлов, в 4-куб.
12. Разбиение БПФ. Было показано, что W-точечное БПФ может
быть вычислено при помощи массива из N/2 ПЭ и сети совершенной
тасовки размером N (рис. 2.6,а). Если имеется массив из четырех
ПЭ и сеть совершенной тасовки размером 8, разработайте схему
разбиения для вычисления 32-точечного БПФ, используя указанные
выше массив и сеть обмена. Почему для этого разбиения требуется
дополнительное оборудование?
13. Линейное планирование для ЛПосГПар. Найдите кратчайший
линейный вектор планирования для операции умножения матриц
размером 24 χ 24, которая должна быть реализована на
систолическом массиве размером 3x3, предполагая, что направление
проекции - [1,1,1].
14. Кусочно-линейное планирование для ЛПосГПар. В разд. 6.3.2
для операции умножения матриц размером 9x9 с использованием
массива размером 3x3 было найдено хорошее линейное планирование
τ
[1 3 9] . Покажите, что это планирование, реализованное на
волновом матричном процессоре, автоматически становится кусочно-
линейным планированием.
15. Тройная избыточность модулей (ТИМ). Популярный
алгоритмический подход маскирования отказов состоит в использовании трех
идентичных вычислительных модулей внутри каждого ПЭ. Этот подход
назван тройной избыточностью модулей (ТИМ). При использовании
ТИМ, если отказывает один модуль, маскирование оказывается по-
прежнему возможным, поскольку оставшиеся два модуля производят
совпадающий (и поэтому, вероятно, точный) результат.
а) Покажите, что надежность удвоенной части каждого ПЭ
составляет
'THivr3'2-2'3·.
где г - надежность одного модуля. Надежность модуля - это
вероятность того, что модуль в момент времени t работает так же,
как и вначале.
б) Если г = 0,99, какова надежность матричного процессора,
состоящего из 100 ПЭ без избыточности?
460
Глава 6
в) Если г = 0,99, какова надежность матричного процессора,
состоящего из 100 ПЭ.с ТИМ?
16. Избыточность ПЭ, повышающая надежность. Включение в
матричный процессор на СБИС размером пхп некоторой дополнительной
аппаратной избыточности может увеличить надежность. Существуют
две схемы, которые используют такое же количество (п )
избыточных ПЭ:
• Схема А. Дополнительные η ПЭ формируют другой
дополнительный матричный процессор, который работает параллельно с исходным
процессором и выполняет ту же программу.
• Схема Б. Дополнительные ПЭ распределены по всему
процессору, так, что каждый процессорный модуль содержит два идентичных
ПЭ, работающих параллельно.
Известно, что надежность каждого ПЭ составляет г. Вычислите и
сравните надежности процессора для двух приведенных выше схем.
17. Идеальная схема реконфигурации. В предыдущих двух упражне-
ниях предположим, что η дополнительных ПЭ не распределены
каждому процессору. Если существует идеальный процесс
реконфигурации, т.е. любой отказавший ПЭ в массиве может быть заменен
запасным ПЭ, какова надежность массива?
18. Максимальная длина проводов. Из теоремы о перестраиваемос-
ти следует, что для любого расположения, удовлетворяющего всем
четырем условиям, физическая связь между любыми двумя логически
смежными ПЭ имеет по крайней мере три единицы длины. Докажите
следующее утверждение, основанное на предложениях указанной
теоремы.
Утверждение. В любой корректной конфигурации, как доказано в
теореме о перестраиваемости, максимальная длина проводов Df ^ 3.
Другими словами, длины горизонтальных и вертикальных связей
составляют 1, 2 или три единицы.
19. Доказательство теоремы о перестраиваемости. Докажите, что
в табл. 6.2 приведены все возможные ситуации, удовлетворяющие
четырем условиям теоремы о перестраиваемости.
20. Доказательство теоремы о пути восстановления. Теорема о
пути позволяет выбрать пути восстановления так, что может быть
успешно осуществлена реконфигурация с использованием одного
тракта. Для доказательства этой теоремы необходимо выполнить
некоторые процедуры [Kung84d]. Предположим, что горизонтальный
путь восстановления затрагивает только #(*,/), а вертикальный
путь восстановления - только *(/,/).
а) Докажите, что любое назначение, которое удовлетворяет ус-
Разработка систем и программного обеспечения 461
ловиям теоремы о перестраиваемости, также будет удовлетворять
условиям после любого непересекаемого горизонтального пути
восстановления.
б) Докажите, что любое назначение, которое удовлетворяет
условиям теоремы о перестраиваемости, также будет удовлетворять
условиям после любого непересекаемого вертикального пути
восстановления.
21. Управление переключением. Для управления переключением
между двумя горизонтальными соседними ПЭ в каждом ПЭ содержится
информация о состоянии вертикальной реконфигурации, которое
показано в табл. 6.5.
Получите таблицу истинности, показывающую, как управлять
переключением, используя состояния вертикальной реконфигурации
двух горизонтальных соседних ПЭ.
22. Отказоустойчивость для систолического массива с локальным
управлением.
а) Можно ли использовать локальное управление для обеспечения
отказоустойчивости в процессе работы для одномерного
систолического массива?
Таблица 6.5. Определение состояния вертикальной реконфигурации.
00 Исправный ПЭ, не находящийся на вертикальном
пути восстановления
01 Исправный ПЭ, находящийся на вертикальном
пути восстановления
10 Отказавший ПЭ, находящийся на вертикальном
пути восстановления
11 Отказавший ПЭ, находящийся на
горизонтальном пути восстановления
б) Можно ли использовать локальное управление для обеспечения
отказоустойчивости в процессе работы для двумерного
систолического массива?
в) Каковы накладные расходы по сравнению со схемой,
использованной в волновом матричном процессоре с локальным управлением
(при этом рассмотрите как одномерный, так и двумерный
систолические массивы)?
г) Зависит ли для этой схемы такт задающего генератора от
размера массива (рассмотрите как одномерный, так и двумерный
систолические массивы)?
462
Глава 6
23. Отказоустойчивость с использованием временной
избыточности. В процессе коррекции пути восстановления в ПЭ. размещены две
задачи (одна предназначена для этого ПЭ, а другая для ПЭ Л
Таким образом, ПЭ. сможет выполнять эти две задачи поочередно ,
если выполнить коррекцию пути восстановления невозможно. Иными
словами, может быть использована временная избыточность.
Сравните использование пространственной избыточности и временной
избыточности в схеме обеспечения отказоустойчивости.
Указание. Производительность системы уменьшается примерно в 2
раза от ее первоначальной производительности без индикации
отказа системы. Это называется амортизацией отказов. Отметим, что
хотя сокращение производительности может быть неприемлемо для
некоторых систем, обнаружение отказа в этих системах может быть
выполнено проверкой системной производительности извне без
вхождения в каждый ПЭ.
24. Свойство взвешенной контрольной суммы. Предположим, что А
- матрица размером η χ т. Столбец (А ), строка (А ) и полная
взвешенная контрольная сумма (А.) определяются следующим
образом:
А = Г A Af Af 1, А =
г L wye
ег А
έΓ А
•V
A Af Af^
егА e7Af е7^
erA erAf e^Af"
WW w
где
e' = [1 1
fr = [1 1
1].
e' = [1 2
w L
4. f: = ρ 2
2"-1],
2m_1].
Покажите, что для матриц совместимых размеров справедливы
следующие свойства:
а) Если А ...А В = С, то А А В = С , В А . А = С,, и А В = С.
б) Если А + В = С, то А +В =С,А +В = С , и А, + В. = С,.
' ' г г г с с с f f f
в) Если sA = С, где s - скаляр, то sA = С , sA = С и sA. = Ct.
' г Г Г С С J J
г) Если Аг = С, то АТ = С , АТ = С и
' ' г с с г
д) Если к А применимо Ш-разложение, то Af = L U .
/ 'С г
f г
1
Отметим, что переключатели соседей ПЭ. управляются работающей
задачей, и поэтому их состояние может меняться во времени.
Разработка систем и программного обеспечения 463
25. Исправление одиночной ошибки по схеме взвешенной
контрольной суммы. Если вместо вектора (1 2 22... 2 ) используем
другой вектор - W2 = (1 2 3 ... л), снова сможем обнаруживать и
исправлять одиночную ошибку. Модифицируйте процедуру исправления
одиночной ошибки, предложенную ранее, и покажите, как работает
эта схема.
26. Исправление двух последовательных ошибок. Обращаясь к
обсуждению вопроса об исправлении двух последовательных ошибок
по схеме двойной взвешенной контрольной суммы при условии
перемежающейся неисправности (см. разд. 6.4.3), предположим, что 5Г
S2 или S3 не равны нулю. Покажите, что / = (log2(3S2 + SJ/S,))-
- 1, если /-нечетно, в противном случае / = (log0(3S0-S,J)/S1)-
1+1 -/+1'
-1, 6x = 2S1-2~/ S2 и ду = 2 ' S2-Sr Все переменные
определены так, как прежде.
27. Проектирование физического массива. Отказоустойчивость
процессора, обеспеченная в процессе изготовления, при
проектировании, основанном на упрощенной решеточной модели, может
оказаться недостаточной. В процессе изготовления после тестирования
некоторые работоспособные ПЭ и переключатели могут быть
соединены в физический массив. Поскольку каждый переключатель в
упрощенной решеточной модели управляется соседним с ним ПЭ,
формирование массива по этой модели может оказаться сложным.
Покажите, что для упрощения обеспечения отказоустойчивости в
процессе изготовления может быть применена сетка из ПЭ без
переключателей (рис. 6.15), где каждый ПЭ соединен с восемью
соседями, и для выбора четырех из восьми соседей в каждый ПЭ встроены
мультиплексоры.
Указание. В отсутствии неисправных (физических) ПЭ соединения
сетки могут быть реализованы с помощью мультиплексоров. При
возникновении неисправностей мультиплексоры используются для
реконфигурации массива.
28. Чередование ГЗ при временной отказоустойчивости. Обращаясь
к рис. 6.35 и в случае, когда существует регулярная
неисправность, объясните, почему эта неисправность затрагивает ПЭ., а
не ПЭ. ..
29. Методы чередования ГЗ. На рис. 6.34 ГЗ чередуются таким
образом, что между одними и теми же вычислениями в разных ГЗ
имеется различие в две единицы времени. Найдите метод
чередования ГЗ, который не имеет начального временного различия и
сравните его с методом, приведенным на рис. 6.34.
Глава 7. РЕАЛИЗАЦИЯ МАТРИЧНЫХ ПРОЦЕССОРОВ
7.1. ВВЕДЕНИЕ
На ранних стадиях исследований цифровой обработки сигналов
(ЦОС) изучались в основном алгоритмы ЦОС и возможности их
использования в практических разработках. Появление технологии
СБИС привело к тому, что изготовление аппаратуры даже в виде
высокопараллельных матричных процессоров стало экономически и
технически возможным. Действительно, мы являемся свидетелями
бурного развития современной технологии СБИС для ЦОС.
Разработчики систем использовали преимущества, связанные с такими
реализациями. Технология СБИС поощряет одни организационные подходы
и запрещает другие. Например, для СБИС желательно использовать
память на кристалле, поскольку можно достигнуть относительно
высоких плотностей и сократить межкристальные связи. Матричные
процессоры, изготовленные по существующей в настоящее время
технологии СБИС, могут обеспечить намного большую емкость
аппаратуры, высокую скорость и меньшую потребляемую можность по
сравнению с любыми другими технологиями. Например, американская
программа ССБИС, использующая микронную и субмикронную технологию,
нацелена на увеличение числа вентилей (более 30000) на кристалл
с одновременным увеличением производительности самих вентилей.
При этом появляется возможность разработать на одном кристалле
такие завершенные системы, как устройство БПФ.
Сильное влияние на производительность также оказывает
организация аппаратного обеспечения. Это особенно верно при
использовании технологии СБИС, где взаимодействие между архитектурой и
ее реализацией играет заметную роль. Проектирование систем на
СБИС должно быть основано на возможностях и ограничениях,
налагаемых технологией изготовления СБИС и методологией
проектирования. Проектирование систем на СБИС связано с решением
следующих вопросов: межсоединения, связь, функциональные примитивы,
модульность и синхронизация системы. Эти вопросы рассмотрены в
гл. 1.
В настоящее время реализация различных методов и функций
цифровой обработки в конкретной области применения может меняться
от использования проблемно-ориентированных аппаратных средств до
использования программного обеспечения на универсальной ЭВМ. При
выборе метода реализации необходимо учитывать требования к
производительности, гибкости обработки и оценке затрат. Основные
Реализация матричных процессоров 465
тенденции в реализации аппаратных средств для некоторых областей
приложений приведены в следующем списке:
• Сети связи/обработка речи: однокристальные процессоры для
больших ЭВМ.
• Радиолокаторы/гидролокаторы: процессоры специального
назначения и матричные процессоры.
• Обработка сейсмических данных и изображений: большие
универсальные ЭВМ и матричные процессоры.
• Музыкальные синтезаторы и обработка биомедицинских данных:
аппаратура специального назначения и микро- и миникомпьютеры.
Общая тенденция высокопроизводительной реализации алгоритмов
ЦОС связана с использованием аппаратуры специального назначения,
особенно в тех случаях, когда требования к производительности
определены работой в реальном времени. Для тех приложений, где
доминирующим требованием является гибкость обработки, тенденции
смещаются от использования больших ЭВМ, предназначенных для
научных вычислений, к специализированным присоединенным
процессорам, которые оптимизированы для выполнения высокоскоростных
арифметических Операций над массивами данных. Это - первый шаг на
пути к использованию многопроцессорных систем для гибкой
обработки сигналов в реальном времени [Bowen82].
В общем случае существуют два подхода к разработке
вычислительных систем специального назначения. Первый состоит в
проектировании заказной "зашитой" системы, которая не может быть
легко перепрограммирована для выполнения (помимо исходной) других
задач. Примерами таких систем могут служить процессоры БПФ и
цифровые фильтры. Второй - в проектировании программируемой
системы, которая позволяет пользователю легко запрограммировать
требуемую задачу. Большая гибкость, присущая второму подходу,
предопределяет интерес к программируемым матричным процессорным
системам. Следует отметить, что до сего времени основное
внимание уделялось специализированным системам.
При проектировании и реализации систолических и волновых
процессоров должны быть приняты компромиссные решения по ряду
вопросов: выбор арифметики с фиксированной или с плавающей запятой,
поразрядные или пословные вычисления, поразрядная или пословная
передача данных, интерфейс с ведущей ЭВМ, ввод-вывод потока
данных, сетевое взаимодействие, методы управления, аппаратная
поддержка разбиения задач, обеспечение отказоустойчивости, методы
программирования и еще множество других вопросов. В этой главе
Рассматриваются два уровня проектирования и реализации.
50—102S
466
Глава 7
1. Проектирование на уровне процессора: какова наилучшая
реализация систолического или волнового процессора на серийных или
заказных элементах?
2. Разработка всей системы: как такие матричные процессоры
могут быть встроены в общую вычислительную систему?
7.2. РЕАЛИЗАЦИЯ НА УРОВНЕ ПРОЦЕССОРА
Прежде чем обсуждать разработку матричной процессорной
системы для ЦОС, рассмотрим проектирование процессорных элементов,
которые используются в качестве основных ее компонентов. В
противоположность микропроцессору общего назначения, процессорный
элемент системы ЦОС имеет характеристики, отвечающие природе
вычислительных задач ЦОС. Основными характеристиками для
прикладных задач ЦОС являются соответствующая длина слова, быстрое
умножение, накопление, высокоскоростное ОЗУ, быстрая адресация к
таблице коэффициентов и новый механизм дискретизации.
Главным в обеспечении высокой производительности аппаратуры
для ЦОС является организация процессорных элементов,
согласованная со структурой вычислительного алгоритма. Следовательно, для
разработчика общего кристалла для ЦОС основной проблемой
является проектирование такой архитектуры, которая может быть
размещена в одном кристалле интегральной схемы и способна обеспечить
относительно хорошую производительность при решении различных
задач ЦОС Наиболее важными операциями в ЦОС являются сложение,
умножение и умножение с накоплением, поэтому важно разработать
быстрое арифметическое устройство, выполняющее эти операции.
7.2.1 Архитектура ПЭ
Основные элементы кристалла ЦОС
Основные элементы (блоки) кристалла ЦОС показаны на рис. 7.1.
Проектирование архитектуры кристалла ЦОС включает спецификацию
этих основных элементов и определение способа их соединения
между собой [Jenq86]. Основные компоненты кристалла описаны ниже.
1. Устройство памяти (УП). Устройство памяти состоит из
памяти данных (ПД) и памяти коэффициентов (ПК). В ПД хранятся данные
и некоторые промежуточные результаты, а в ПК содержатся
фиксированные константы - коэффициенты, такие, как коэффициенты фильт-
Реализация матричных процессоров
467
Память
данных
Память
коэффициентов
пд
ПК
УП
(Устройство памяти)
Счетчик команд
Память программ
■Дешифратор команд
Устройство
вычисления адреса
(Устройство управления)
Устройство
умножения
Арифметико-
устройство
Регистры
общего
назначения
1 УУмн 1
АЛУ |
| ΡΟΗ |
АУ
Посл-Вв-
Выв
Парал-Вв-
Выв
пдп
Последовательный
ввод-вывод
Параллельный
ввод—вывод
Прямой доступ
к памяти
(Арифметическое устройство)
Вв-Выв
(Интерфейс ввода-вывода)
Рис. 7.1. Основные функциональные компоненты кристалла ЦОС.
ра, таблицы синусов и косинусов для БПФ и генерирования
синусоидальных сигналов.
2. Устройство управления (УУ). Устройство управления состоит
из счетчика команд (СК), памяти программ (ПП), дешифратора
команд (ДК) и устройства вычисления адреса (УВА). СК формирует
адрес выполняемой команды. В ПП хранятся команды программы, а ДК
дешифрирует команды, генерируя управляющие сигналы для
выполнения команды, подающиеся на вход УВА, которое под управлением
сигналов ДК вычисляет адреса операндов.
3. Арифметическое устройство (АУ). Арифметическое устройство
содержит устройство умножения (УУмн), арифметико-логическое
устройство (АЛУ) и регистры общего назначения (ΡΟΗ). УУмн в
кристалле ЦОС представляет собой обычно параллельный матричный
умножитель. АЛУ выполняет сложение, вычитание, сдвиг и некоторые
логические операции. В ΡΟΗ, обычно напрямую связанных с шиной
данных и другими основными элементами, хранятся временные
данные. В простейшем случае может быть только один регистр, который
называется аккумулятором.
ί()
468
Глава 7
4. Интерфейс ввода-вывода. Интерфейс ввода-вывода состоит из
устройства последовательного ввода-вывода (Посл-Вв-Выв),
устройства параллельного ввода-вывода (Парал-Вв-Выв) и контроллера
прямого доступа к памяти (КПДП).
Рассмотрим более подробно требования к отдельным компонентам
процессора ЦОС на кристалле.
1. Устройство умножения/АЛ У. Поскольку в большинстве
алгоритмов ЦОС преобладают арифметические операции, весьма
желательно наличие высокоскоростного матричного устройства умножения. До
сих пор в определении времени командного цикла кристалла ЦОС
основным фактором является время выполнения умножения. Это
означает, что если время выполнения умножения может быть уменьшено
не только за счет совершенствования технологии, то при
разработке архитектуры возникнет сложная проблема согласования времени
командного цикла с временем выполнения умножения. Для устранения
переполнения при операциях с фиксированной запятой полезно
наличие в АЛУ возможностей предварительного и заключительного
сдвигов для масштабирования операндов. Для увеличения скорости
обработки желательно иметь аппаратные реализации (без введения
дополнительных командных циклов) некоторых нелинейных операций,
таких, как округление арифметической операции, вычисление
абсолютной величины, преобразование формата.
2. Регистры общего назначения. Наличие более чем одного
регистра общего назначения удобно при обработке временных
переменных в операции задержки и вычислении комплексных умножений.
3. Множество шин. Для ускорения вычислений существует много
параллельных трактов (как внутри, так и вне процессора),
позволяющих производить параллельные обмены между устройствами памяти
и функциональными модулями процессора.
4. Память. Поскольку все процессоры для обработки сигналов
должны выполнять все программы в течение одного интервала
выборок и обладать быстрой, а следовательно, дорогой памятью, обычно
они имеют ограниченное адресное пространство, максимальный
размер которого определен отношением интервала выборок к циклу
процессора. Во многих алгоритмах ЦОС, таких, как БПФ и свертки,
требуются постоянные коэффициенты. Если необходима высокая
производительность, обычно коэффициенты хранятся в ПЗУ. С другой
стороны, некоторые арифметические операции типа умножения, могут
быть реализованы табличным способом, что также требует
использования ПЗУ.
5. Устройство вычисления адреса. Для обеспечения структурной
Реализация матричных процессоров
469
выборки из памяти в кристаллах ЦОС обычно применяют раздельное
устройство вычисления адреса с различными возможностями
индексации. Включение в кристалл заказного устройства вычисления адреса
привело к сокращению времени командного цикла. В некоторых
кристаллах ЦОС используются раздельные устройства .вычисления адреса
для каждого из устройств памяти, что придает гораздо большую
гибкость выборке структурных данных и коэффициентов.
6. Ввод-вывод. Для поддержки параллельной обработки очень
важно интерфейс ввода-вывода включить в кристалл, поскольку
внешний интерфейс усложняет разработку системы и замедляет ввод-
вывод. Существующие в настоящее время ограничения на число
выводов кристалла не позволяют использовать большое число
параллельных каналов ввода-вывода. По мере технологического прогресса в
кристалл смогут быть включены более мощные средства поддержки
параллельного ввода-вывода.
Критерии производительности и компромиссы при проектировании
Существуют два критерия оценки производительности систем ЦОС
- точность и скорость.
Точность. Достижимая точность зависит от размера слова в
запоминающем и арифметическом устройствах. Обычно алгоритмы ЦОС
являются итерационными, и ошибки в промежуточных вычислениях
накапливаются. Чтобы избежать дополнительных ошибок, во время
вычисления должна поддерживаться большая точность. Задачи в
реальном времени не позволяют возвращаться назад и исправлять
появляющиеся ошибки. Поэтому точность становится все более
решающим фактором. Большинство из последних разработок коммерческих
процессоров имеют длину слова не меньше 16 разрядов.
Скорость. Скорость кристалла ЦОС зависит от многих факторов,
таких, как время командного цикла и мощность системы команд,
поддержанная архитектурой. Если для выполнения алгоритма
требуется N команд, общее время выполнения алгоритма составляет Nxt,
где t - время командного цикла. Заметим, что окончательной мерой
производительности является произведение N и t, так что
сокращение лишь времени командного цикла / является недостаточным.
Следовательно, подходящая архитектура должна поддерживать мощную
систему команд, способную выполнять большинство важных
алгоритмов ЦОС за несколько командных циклов при минимальном для
существующей СБИС-технологии времени командного цикла.
В настоящее время в большинстве кристаллов ЦОС время команд-
470 Глава 7
ного цикла определяется скоростью устройства умножения. Поэтому
следует стремиться к тому, чтобы все другие операции, как
выборка и дешифрирование команды, выборка операндов (коэффициентов и
данных) и запись результатов в память данных, завершались за
время, не превышающее время выполнения умножения. Достичь этого
можно при реализации следующих требований к архитектуре:
• Для организации эффективных конвейерных операций все блоки
в кристалле работают параллельно; поэтому продуманность
межсоединений должна гарантировать от блокирования шины.
• Для быстрого (т.е. параллельного) дешифрирования
управляющих сигналов для каждого из параллельно работающих устройств
необходимо длинное слово команды.
• Необходимы раздельные устройства памяти данных и памяти
коэффициентов с раздельными шинами данных и коэффициентов,
непосредственно соединенными с одним из регистров устройства
умножения. В этом случае можно параллельно осуществлять выборку двух
операндов.
• Необходимо увеличить пропускную способность обмена между
памятью и АУ. С этой целью могут быть использованы следующие
приемы: разделение запоминающего устройства на ПП и ПД,
отделение шины программ от шины данных, использование заказного
устройства вычисления адреса.
Основные компромиссы при проектировании. На технологические
решения и стоимость разработки влияют следующие факторы:
энергия, площадь, скорость и функциональные возможности. Ниже
приведены главные источники компромиссов при проектировании
процессора для ЦОС.
1. Скорость в зависимости от потребляемой энергии. Хорошо
известно, что для данной технологии чем быстрее работает схема,
тем больше она потребляет энергии, поскольку транзисторы
работают на более высокой частоте.
2. Скорость в зависимости от площади. Поскольку транзисторные
нагрузки в схеме являются емкостными, то для достижения большей
скорости необходимо заряжать/разряжать эти конденсаторы все
большими значениями электрического тока. Это ведет к
использованию схем с низким сопротивлением, что эквивалентно использованию
схемы большей площади.
3. Функциональные возможности в зависимости от площади. Чем
больше функций реализует схема, тем большую площадь она занимает
(из-за большего числа подсхем и их межсоединений).
4. Компромиссы памяти. Для обеспечения высокой производитель-
Реализация матричных процессоров 471_
ности процессор для обработки сигналов должен иметь очень
быструю память, однако быстрая память означает большое потребление
энергии и большую площадь кристалла, а также дополнительные
затраты на дешифрирование. Поэтому желательно использовать
устройства памяти малой емкости с высокой скоростью работы.
5. Число соединений. Процессор для обработки сигналов можно
сделать еще более быстрым, если получаемая информация (ввод) и
выдаваемая информация (вывод) пересылается параллельно. Это
означает, что требуется большое число связей с внешним миром. Для
интегральных схем это означает, в частности, необходимость
большого числа выводов. В существующей технологии упаковка кристалла
в корпус может быть более дорогой, чем сам кристалл, и стоимость
упаковки сильно зависит от числа выводов. Большое число выводов
требует большого числа схем ввода-вывода в кристалле; эти схемы
потребляют много энергии и замедляют скорость выполнения
операций.
Особенности архитектуры
Ниже перечислены некоторые основные вопросы проектирования
архитектуры, существенные для разработки архитектуры процессора
ЦОС [Jenq86].
1. Важным является наличие АУ, способного эффективно
выполнять операцию умножения с накоплением, поскольку в большинстве
алгоритмов ЦОС необходимо выполнять большое количество таких
операций.
2. Важной вяляется архитектура, способная эффективно
поддерживать конвейерную структуру, так как большая часть алгоритмов
ЦОС может быть полностью конвейеризована.
3. Должны быть тщательно сбалансированы пропускная
способность обмена "память - АУ" и быстродействие АУ, чтобы из-за
этого узкого места не происходило заметного снижения общей
производительности системы.
4. Для поддержки матричной обработки должен быть выбран
соответствующий язык программирования.
5. Для обеспечения сеточных соединений в процессоре требуется
наличие нескольких портов ввода-вывода.
6. На основе сравнения следует сделать выбор между
поразрядной и пословной обработкой. Поразрядная обработка экономична с
точки зрения связи и удобна для конвейеризации. Пословная обра-
472
Глава 7
ботка отличается большей скоростью, но требует дополнительных
затрат на связь .
Ниже кратко перечислим вопросы проектирования архитектуры.
Гарвардская архитектура. Поскольку обычно процессоры
выполняют фиксированные программы, которые оперируют бесконечными
потоками данных, пространство памяти программ отделено от
пространства памяти данных для того, чтобы одновременно производить
предварительную выборку команд и выборку данных.
Режимы адресации. В связи с локальной природой данных и
команд в алгоритмах ЦОС достаточно нескольких режимов адресации,
однако вычисление адреса должно производиться с высокой
скоростью. Широко используются такие методы, как конвейеризация
вычисления адреса и/или параллельное определение адреса.
Поскольку требуются высокоскоростные устройства адресации, режимы
адресации сводятся к минимуму, чтобы упростить разработку
устройства адресации.
Программирование на ассемблере с несколькими командными
полями. Для облегчения разработки программ для систем ЦОС,
изготовленных на кристалле, язык ассемблера с несколькими командными
полями более предпочтителен, чем традиционный язык ассемблера.
Кристалл ЦОС состоит из нескольких основных блоков, работающих
параллельно и отчасти независимо, так что команда ассемблера с
несколькими командными полями может представлять действие
команды процессора более ясно и приводит к большей гибкости при
программировании на ассемблере. Некоторые кристаллы ЦОС (такие, как
DSP-1 фирмы Bell и μΡΟ7720 фирмы NEC) используют формат команд с
Утверждается [Denye83], что для реализации проблемно-
ориентированных систем более предпочтительны архитектуры с
поразрядной обработкой, так как они обладают приемлемыми размером,
потребляемой мощностью, числом выводов и стоимостью.
Арифметические устройства с поразрядной обработкой предлагают простой и
эффективный путь к реализации большого количества цифровых
процессоров обработки сигналов. Появление библиотек примитивов и
поддерживающих кремниевых компиляторов делает осуществимой
непосредственную реализацию заказных СБИС, которые затем могут
быть связаны с ведущей ЭВМ или встроены в новые системы. Этот
факт, несомненно, делает системы с поразрядной обработкой более
популярными. С другой стороны, устройства с пословной обработкой
более желательны для реализации программируемых систем.
Реализация матричных процессоров 473
несколькими командными полями. Хотя кристалл TMS 32010 может
поддерживать параллельную обработку, это не отражено в командах
его ассемблера, что усложняет запоминание каждой микрооперации,
выполняемой в обрабатывающих устройствах во время выполнения
команды.
RISC или CISC. Аббревиатура RISC означает здесь компьютер с
сокращенной системой команд (reduced instruction set computer),
a CISC означает компьютер с полной системой команд (complex
instruction set computer). Как говорилось выше, высокая
производительность может быть достигнута следующими способами [Неппе84]:
1. Минимизация величины такта системы. Это означает
сокращение затрат на исполнение команд и такую организацию аппаратуры,
которая минимизирует задержки в каждом такте.
2. Минимизация числа циклов, необходимых для выполнения
каждой команды. Эта минимизация должна быть основана на
предполагаемой динамической частоте использования команд.
Подобные компромиссы, дополненные наблюдением, что большие
архитектуры связаны с большими затратами, приводят к идее
RISC-архитектуры [Radin82, Patte80, Henne84]. Эта идея
существенно отличается от традиционного CISC-подхода, который
эффективен в архитектуре с более мощными командами. Достоинства и
недостатки этих двух подходов являются дискуссионными.
RISC-компьютер представляет собой машину с упрощенной
системой команд [Неппе84]. К RISC-архитектурам обычно относят
процессоры Berkeley RISC I и II, процессор Stanford MIPS и процессор
IBM 801 (который не является микропроцессором). Все три
архитектуры имеют более простые команды, чем команды большинства других
машин, и не содержат элементов, которые требуют сложных
управляющих структур. Самыми важными свойствами архитектуры типа RISC
являются следующие: 1) Регулярность и простота системы команд
позволяет использовать в общем случае одни и те же простые
аппаратные устройства для выполнения почти всех команд. 2)
Большинство команд выполняются за один машинный такт машины (или такт
конвейера). Эти архитектуры являются ориентированными на
регистры: все операции над данными выполняются в регистрах. Только
команды загрузки и записи обращаются к памяти. 3) Используются
команды фиксированной длины с малым количеством типов форматов.
Достоинства архитектуры типа RISC связаны с тесным
взаимодействием архитектуры с реализацией. Простота архитектуры ведет к
простоте реализации. К достоинствам RISC-архитектуры относятся:
быстрое дешифрирование команд, выполнение большинства команд за
474
Глава 7
один такт, малая длительность такта. Недостатки RISC-архитектуры
объясняются двумя причинами - скоростью обмена с памятью и
дополнительными требованиями к программному обеспечению.
Однако один из недостатков RISC-архитектуры в условиях
применения для ЦОС состоит в том, что для реализации быстрых команд
умножения или умножения с накоплением может потребоваться больше
одного такта и значительный объем микропрограммирования.
Поэтому, хотя RISC - и хорошая идея для упрощения разработки
процессора на СБИС, достижение высокой производительности процессоров
ЦОС требует при проектировании сочетания CICS- и RISC-подходов.
7.2.2. Программируемые коммерческие кристаллы ЦОС
В начале 80-х годов благодаря трехмикронной МОП-технологии
стало возможным производство программируемых однокристальных
устройств ЦОС, которые содержат все основные ингредиенты
аппаратуры ЦОС: устройство умножения, ОЗУ данных, быстрое АЛУ, память
программ, и т.д. Обычно такие устройства содержат около 50000
транзисторов и выполняют команды со скоростью 5 MIPS (миллионов
команд в секунду - million instructions per second). Архитектура
микропроцессорного типа обладаех дополнительным основным
достоинством - программируемостью. Это позволило использовать одно и
то же устройство во многих приложениях просто путем замены
программы. Широкое применение этого подхода позволило создать второе
поколение устройств, изготовленных по двухмикронной МОП-
технологии (которая позволяет интегрировать более 150000
транзисторов). Эти устройства более быстрые, содержат большую память
и обладают большим числом свойств микропроцессоров по сравнению
с первым поколением устройств. Их экономическая доступность и
гибкость сделали возможным использование техники ЦОС в
коммерческих системах. Они произвели революцию в разработке систем
ЦОС, схожую с той, что связывают с появлением микропроцессоров в
области универсальных ЭВМ.
Примерами коммерчески доступных СБИС-кристаллов, которые
могут быть использованы в реализации матричных процессоров,
являются: TMS32010/32020 фирмы ΤΙ, МВ8764 фирмы Fujitsu, транспьютер
фирмы INMOS, кристалл GAPP фирмы NCR, кристалл потока данных
μΡ07281 фирмы NEC и набор кристаллов ADSP-1XXX фирмы Analog
Devices.
Реализация матричных процессоров
475
Xo/CLK Вх
Вых Χ·| 1
WE
DEN -*
MEN-*
(ΒΙΟ) *.
(МС/МР)-*·
INT-*-
RS-**
1 и
16
An-A0 Контроллер
ΡΑ9-ΡΑη*
1
Мульти -
плексор
τττυ
12
Мультиплексор
12
3ΖΓΗ
Счетчик
команд
/Γι
12
Команда
ПЗУ программ
(1536x16 разрядов)!
Адрес
Стек
(4x12)
Шина программ
/
16
Вспомогательный
регистр-
указатель
Вспомогатель-}
ный регистр Οι
Вспомогатель-|
ный регистр 1 j
♦ /Г 8
I
16
^16
Т-регистр
Устройство
умножения
Р-регистр
16
.32
Указатель
страницы
данных
432
Мультиплексор
Х-
Мультиплексор
<Т8
Адрес
ОЗУ данных
(144x16 разрядов)
32
АЛ У
32
I
32
Аккумулятор
/р32~
Сдвиговый регистр
(0,1,4)
16
16
16
D15"D0
16
Рис. 7.2. Функциональная блок-схема процессора TMS32010 (из
работы [TI83]).
Процессор обработки сигналов TMS32010/32020 фирмы Texas
Instruments
Функциональная блок-схема цифрового процессора для обработки
сигналов TMS32010 [TI83] показана на рис. 7.2. Этот кристалл был
разработан в 1983 г. в качестве высокоскоростного цифрового
контроллера с возможностью числовой обработки. Процессор имеет мо-
476
Глава 7
дифицированную гарвардскую архитектуру. В строгой гарвардской
архитектуре шины программ и данных разделены, что допускает
полное совмещение выборки команд и выполнения. В кристалле TMS32010
между двумя шинами имеется тракт, что обеспечивает некоторую
гибкость. TMS32010 имеет следующие основные характеристики:
Технология. Изготовлен по 2,7-микронной N-МОП-технологии и
заключен в DIP-корпус с 40 выводами. Время командного цикла
составляет 200 не, тактовая частота - 20 МГц.
Устройство управления. Два исполнения: первое снабжено ПЗУ
программ размером 1536x16, во втором - внутреннего ПЗУ программ
нет. Имеется возможность доступа к 4К 16-разрядных слов памяти
программ с полной скоростью, если внешняя память имеет время
доступа меньшее, чем 100 не. Имеются счетчик команд и
четырехуровневый стек, который позволяет пользователю организовывать
вызовы подпрограмм, ветвления и прерывания. Два вспомогательных
регистра AR0 и AR1 через вспомогательный регистр (ARP) выполняют
косвенную адресацию данных в ОЗУ. Вспомогательные регистры
осуществляют автоматическое положительное или отрицательное
приращение после каждой выполняемой команды. Одноразрядный указатель
страницы данных в объединении с 7-разрядным адресом в слове
команды используется для прямой адресации к ОЗУ данных размером
144x16. Два вспомогательных регистра выполняют множество
различных функций. Как отмечалось выше, младшие 8 разрядов регистра AR
предназначены для косвенной адресации. Младшие 9 разрядов могут
быть использованы как 9-разрядный счетчик циклов. Старшие 7
разрядов регистра AR не подвергаются положительному или
отрицательному приращению. Два вспомогательных регистра могут служить в
качестве 16-разрядных регистров общего назначения для временного
хранения данных.
Арифметическое устройство. Процессор TMS32010 содержит 32-
разрядное матричное устройство умножения, которое может умножать
два 16-разрядных числа, представленных в дополнительном коде, с
получением 32-разрядного результата за 200 не. В АУ входят также
три других устройства - АЛУ, аккумулятор и два сдвиговых
регистра. В типичной арифметической операции данные, поступающие из
16-разрядной шины данных, направляются сначала в кольцевой
сдвиговый регистр, который осуществляет сдвиг слова влево на
количество разрядов от 0 до 15 в зависимости от значения, заданного
в команде. Затем данные загружаются в 32-разрядное АЛУ,
выполняющее операции сложения/вычитания с содержимым 32-разрядного
аккумулятора. Другой сдвиговый регистр используется для масштаби-
Реализация матричных процессоров 477
рования выхода аккумулятора при записи данных в ОЗУ данных. Хотя
йз блок-схемы видно, что архитектура позволяет выполнить
операцию умножения с накоплением за одну команду, система команд это
не поддерживает. Следовательно, для выполнения операции
умножения с накоплением необходимы два командных цикла (т.е. 400 не).
В процессоре TMS32020 эта операция выполняется за один командный
цикл.
Устройство памяти. Все непромежуточные операнды хранятся в
ОЗУ данных размером 144x16. Для передачи значений из памяти
программ в ОЗУ данных на кристалле и из ОЗУ данных в память
программ (вероятно, в формате данных внешнего ОЗУ) предусмотрены
соответственно две команды - табличное чтение (TBLR - table
read) и табличная запись (TBLW - table write).
Устройство ввода-вывода. Две команды (IN и OUT) позволяют
пользователю осуществить обмен данными между и* >иферийным ОЗУ и
ОЗУ данных. В качестве адреса порта в командах IN и OUT
используются три мультиплексных младших разряда шины адреса;
следовательно, в процессоре TMS32010 может быть реализовано не более
восьми портов.
Система разработки. Доступность и хорошая поддержка средств
разработки являются, возможно, двумя основными причинами,
благодаря которым процессор TMS32010 стал самым распространенным
кристаллом ЦОС Для разработки программного обеспечения имеются
следующие средства: макроассемблер, редактор связей, программная
библиотека и имитатор. Имеются также средства аппаратной
поддержки: модуль вычислений TMS32010, эмулятор TMS32010 (XDS),
плата аналогового интерфейса (AIB - analog interface board).
Существует также активная трехкомпонентная служебная программа.
Мощная поддержка документации, связанная с работой конференций и
семинаров, а также с доступностью программ из университетов,
делает процессор TMS32010 самым популярным кристаллом ЦОС для
промышленных и академических пользователей.
Процессор TI TMS32020. Процессор обработки сигналов TMS32020
(начало 1985 г. [TI85]) представляет собой прямое развитие
процессора TMS32010. Общая модифицированная гарвардская архитектура
осталась неизмененной. Однако значительно улучшены
характеристики практически всех блоков. Ниже приведены некоторые из них.
Технология. TMS32020 изготовлен по 2,4-микронной N-МОП-тех-
нологии и скомпонован в виде решетчатой матрицы с 68 выводами.
Время командного цикла осталось прежним - 200 не, тактовая
частота - 20 МГц.
478
Глава 7
Устройство управления. Счетчик команд расширен с 12 разрядов
до 16; следовательно, расширена возможность адресации от 4 до
64К. Для реализации команды повторения добавлен счетчик
повторений. Кроме того, добавлен регистр распределения глобальной
памяти, упрощающий организацию мультипроцессорной конфигурации.
Значительно расширено устройство вычисления адреса. Число регистров
увеличено с двух до пяти, добавлено специализированное
устройство беззнаковой арифметики, предназначенное для вычисления
адреса.
Арифметическое устройство. Главное улучшение АУ состоит в
реализации команды умножения с накоплением, выполняемой за один
командный цикл. Кроме того, к выходу регистра результата
подсоединен сдвиговый регистр.
Устройство памяти. Устройство памяти также существенно
расширено. Процессор TMS32020 имеет три раздельных устройства памяти
на кристалле - ОЗУ данных размером 32x16, ОЗУ данных размером
256x16 и ОЗУ данных/программ размером 256x16. Указатель страницы
данных также расширен от 1 до 9 разрядов.
Устройство ввода-вывода. Количество портов ввода-вывода
увеличено вдвое и составляет 16 портов. Реализована также
возможность прямого доступа к памяти. В новый кристалл включены 10
регистров управления системным вводом-выводом.
Система команд. Хотя длина командного слова осталась прежней
(16 разрядов), благодаря расширению возможностей всех блоков
процессора система команд по сравнению с TMS32010 увеличилась
почти в два раза.
Процессор обработки сигналов Fujitsu МВ8764
Процессор Fujitsu МВ8764 представляет собой очень быстрый и
очень сложный монолитный процессор обработки сигналов,
реализованный по КМОП-технологии [Fujit84]. Как видно из рис. 7.3, он
состоит из семи функциональных устройств, тактового генератора,
планировщика вычислений, секции адресации, ОЗУ и секции АЛУ,
которая содержит устройство умножения и секцию ввода-вывода.
Планировщик вычислений содержит счетчик команд, два счетчика
циклов, интерфейс внешней памяти программ и два регистра команд,
которые образуют конвейер. Выход конвейера подается на вход
секции дешифратора, которая в свою очередь управляет кристаллом.
Использование двух регистров команд позволяет полностью
дешифрировать команды и вычислить адреса операндов до того, как АУ нач-
Реализация матричных процессоров
479
Секция команд
-►h*
Внешнее
ОЗУ
(1Кх24
разрядов)
ПЗУ
(1Кх24 разрядов)
Регистры
команд
Дешифратор
Генератор
тактовых
импульсов
IUXI1
Порт
Вв-Выв
ЦП
Рис. 7.3. Функциональная блок-схема процессора Fujitsu МВ8764
(из работы [Fijit84]).
нет вычисления. Секция адресации состоит из двух адресных АЛУ,
так что оба адреса операндов могут быть вычислены параллельно
ОЗУ разделено на два банка, каждый из которых состоит из 128
16-разрядных слов. Они используются для одновременной загрузки
операндов в АЛУ. Второй банк может быть расширен до 1К путем
использования внешних кристаллов ОЗУ. АЛУ содержит устройство
умножения 16-разрядных операндов и устройство сложения с
накоплением, оперирующее 26-разрядными числами гак же, как и
логическая секция. Время цикла АЛУ составляет 100 не. Секция ввода-
вывода состоит из контроллера ПДП и регистров адреса и данных.
Благодаря множественности функциональных устройств, кристалл
Fujitsu может выполнять арифметико-логические операции
параллельно с другими операциями, такими, как вычисление адреса и
ввод-вывод, что существенно увеличивает скорое ι ь выполнения
программы.
480
Глава 7
Слово команды процессора Fujitsu МВ8764 имеет длину 24
разряда и разделено на две части. Первая часть представляет собой
команду ввода-вывода и вычисления адреса, а вторая часть -
команду АЛУ. Команда АЛУ обеспечивает множество арифметических и
логических операций, включая умножение со сложением и сдвиги
вправо/влево. Команда адреса и ввода-вывода обеспечивает
операции одновременной передачи данных из обоих устройств памяти в
АЛУ и блочной пересылки в память. Включены также операции
условных и безусловного переходов и операции установки флагов.
Транспьютер фирмы INMOS
Транспьютерный кристалл (Т414 или Т424) фирмы INMOS
представляет собой процессор, ориентированный на язык Оккам. Он
обеспечивает аппаратную поддержку параллелизма и связи. На рис. 7.4,
заимствованном из информационного документа фирмы INMOS для
транспьютера Т424 [Wils84a], показан кристалл, в котором
полностью реализован компьютер. Действительно, он разработан так,
что его внешнее поведение соответствует формальной модели
процесса. Он реализован по популярной ныне архитектуре RISC В
кристалле содержатся 32-разрядный процессор, 4 Кбайт
статического ОЗУ со скоростью выборки 50 не и, что важно, набор
интерфейсов связи, которые позволяют построить различные вычислительные
сети. В частности, INMOS-каналы являются аппаратным
представлением каналов для взаимодействия процессов. Они имеют изменяемую
программным путем скорость передачи данных до 1,5 Мбайт/с.
Данные передаются в виде последовательности байтов, причем перед
передачей следующего байта от получателя должно быть получено
подтверждение о получении предыдущего байта. Поскольку процессы
должны быть независимы (за исключением времени связи друг с
другом), наличие такого протокола важно для соответствия модели
вычислений. Он допускает асинхронное выполнение процессов при
синхронизации лишь в случае их взаимодействия.
В дополнение к INMOS-каналам существует интерфейс памяти и
8-разрядный двунаправленный интерфейс периферийных устройств.
Первый может быть использован для расширения памяти на кристалле
с целью размещения больших программ и больших объемов данных. Он
позволяет осуществлять прямой доступ к внешней памяти объемом до
6 Гбайт с максимальной скоростью передачи данных 25 Мбайт/с
Второй интерфейс обеспечивает связь со стандартными внешними
Реализация матричных процессоров
481
Reset
Clockin
CapPlus, Minus
ProcClock Out
GND, VCC
—»
Обслуживание
системы
Блок-схема
транспьютера Т424
ОЗУ
на кристалле
<3
Процессор
ErrorOut
StopProc
■ Analyze
Канальный интерфейс
Канальный интерфейс
Канальный интерфейс
Канальный интерфейс
not Byte 0-3 ^
Wait ».
Интерфейс
с памятью
Событие
►
<_
32
_>
• LinklnO
■ LinkOutO
Linklnl
■ LmkOutl
. Linkln2
• LinkOut2
Linkln3
LinkOut3
• Eventln
. AckEvent
BusReq
BusGranted
Рис. 7.4. Функциональная блок-схема транспьютера Т424 фирмы
INMOS.
устройствами и может быть использован для создания средств
множественного доступа.
Транспьютер рассматривается как мощный блок, из которого
можно построить новые параллельные устройства. Конечно, его
возможности ограничены для многих приложений в области обработки
сигналов. Например, он не имеет процессора с плавающей запятой и
может быть соединен только с четырьмя соседями. Однако эти
недостатки можно в значительной степени устранить путем разработки
специализированных транспьютеров. В любом случае возможность
строить из стандартных компонентов заказную MIMD-машину для
целей макетирования, несомненно, окажет большое влияние на
разработку алгоритмов и архитектур.
Язык Оккам [Мау84, Wils84b] был разработан вместе с транспью-
Н —102S
482
Глава 7
тером, и скомпилированная программа на Оккаме выполняется на
транспьютере так же эффективно, как его собственный код. В
соответствии с принципами, лежащими в основе разработки
транспьютера, Оккам естественно описывет параллельную систему как
множество независимых процессов, которые используют локально описанные
переменные и могут взаимодействовать только по определенным
каналам. Связь по каналам в Оккаме в точности отражает связь по
каналам транспьютера. В частности, имеется протокол установления
связи, который позволяет вести передачу данных только после
того, как и отправитель, и получатель сообщат друг другу о своей
готовности к связи. Это устанавливает порядок, хотя в Оккаме нет
понятия глобального времени и все параллельные процессы
выполняются асинхронно.
Следует отметить прямое соответствие между взаимодействием по
каналам, определенным в Оккаме и реализованным каналами
транспьютера, и протоколом связи, предусмотренным в волновых
матричных процессорах. Сети транспьютеров, запрограммированные на
Оккаме, могут вполне естественно рассматриваться как волновые
процессоры с существенно более простым потоком данных.
Применение транспьютера в задачах цифровой обработки
сигналов. Транспьютер оперирует 32-разрядными словами с фиксированной
запятой, и такая точность достаточна для большинства (но не для
всех) задач обработки сигналов. Что касается скорости
вычислений, то массивы транспьютеров могут обеспечить параллельную
вычислительную производительность, близкую к требуемой во многих
системах обработки сигналов. Рассмотрим, например, БПФ: чтобы
покрыть весь звуковой спектр до 100 КГц, потребуется 6, 8 и 10
транспьютеров для 64-, 256- и 1024-точечного вычисления БПФ
соответственно.
Несовершенство транспьютера для задач ЦОС связано с тем, что
в ЦОС часто требуются быстрые и/или гибкие арифметические
устройства (например, устройство умножения или процессор CORDIC) и
высокоскоростное устройство адресации к таблице [Wils84a].
Поэтому у специалистов вызовет большой интерес создание
модернизированного и оптимизированного транспьютера для ЦОС. Такой
транспьютер должен иметь ОЗУ на кристалле, обеспечивающее работу
быстрого устройства умножения, быстрый сдвиговый регистр и для
отдельных приложений микропрограмму вычислений с плавающей
запятой. Каналы обмена между ПЭ сохранят или увеличат свою скорость,
что существенно для построения матричных процессоров большого
размера. С другой стороны, использование внутреннего параллелиз-
__ Реализация матричных процессоров 483
ма (поддерживаемого действующей моделью транспьютера) довольно
неясно и в сильной степени зависит от предполагаемого класса
приложений.
Чтобы увеличить скорость арифметических вычислений
транспьютера, особенно умножения, можно рассмотреть объединение
транспьютерного кристалла с кристаллом арифметики с плавающей запятой
фирмы Weitek. Необходимо проводить дальнейшие исследования
возможности использования многоуровневого параллелизма и
конвейеризации (на внутренних и внешних уровнях ПЭ).
Кристалл GAPP фирмы NCR
Для некоторых приложений в обработке сигналов и изображений с
невысокой точностью целесообразно рассмотреть очень простые
базовые элементы. Хорошим примером коммерческого СБИС-кристалла
является Геометрический Арифметический Параллельный Процессор,
или GAPP (Geometric Arithmetic Parallel Processor), фирмы NCR
(первоначально разработанный W. Holsztynki). Он представляет
собой матрицу размером 6x12, состоящую из одноразрядных
процессорных элементов. Каждый из 72 ПЭ в устройстве NCR45CG72 содержит
АЛУ, 128 разрядов ОЗУ и двунаправленные линии связи, соединяющие
элемент с четырьмя его ближайшими соседями - северным, восточным,
южным и западным [Gapp84] (рис. 7.5). Каждая команда поступает
во все ПЭ, так что матрица работает как SIMD-процессор.
Другой особенностью архитектуры процессора GAPP является
возможность ее каскадирования. На одной плате может быть размещено
множество процессоров GAPP для построения произвольно больших
матриц из процессоров размером 6x12. Модули GAPP имеют
возможность непосредственного соединения друг с другом.
Процессор GAPP можно запрограммировать или на низком
уровне с использованием языка макроассемблерного типа, или на языке
GAL фирмы NCR [Gapp85]. GAL (GAPP Algorithm Language -
алгоритмический язык GAPP) представляет собой язык высокого уровня,
разработанный для упрощения программирования GAPP. Компилятор с
языка GAL состоит из двух фаз. Выходом первой фазы его работы
является промежуточная форма в постфиксной записи, которая
удобна для интерпретации стековой машиной.
Кристалл потока данных μΡ07281 фирмы NEC
Кристалл потока данных фирмы NEC [NEC85] представляет собой
проблемно-ориентированный программируемый процессор для обработ-
484
Глава 7
Глобальный
выход
через
открытый
сток
Рис. 7.5. Конфигурация процессорного элемента кристалла GAPP
фирмы NCR и идентификация шины данных (из работы [GAPP84]).
ки изображений, построенный по архитектуре потока данных. Он
позволяет осуществить поиск согласованного решения между
скоростью и гибкостью. Кристалл μΡ07281 фирмы NEC использует
внутренний кольцевой конвейер и мощную систему команд, позволяющие
производить высокоскоростную обработку изображений. Как
процессор потока данных μΡ07281 не производит выборку команд, он
обрабатывает "маркеры", которые представляют операнды. Архитектура
потока данных позволяет максимизировать эффективность процессора
в различных мультипроцессорных применениях, так как он не
нуждается в загрузке и записи промежуточных результатов в память во
время вычислений.
Как показано на рис. 7.6, блок обработки процессора μΡ07281
содержит устройство умножения размером 17x17 (включая знаковый
разряд), АЛУ, кольцевой сдвиговый регистр, устройство сравнения
и устройство операций над разрядами. Внутренний кольцевой
конвейер μΡ07281 способствует работе блока обработки с частотой
Реализация матричных процессоров
485
Рис. 7.6. Функциональная блок-схема процессора μΡ07281 фирмы NEC
(из работы [NEC85])
5 МГц. Следующие соображения, относящиеся к потоковым
архитектурам, позволяют разработчику систем обработки изображений
воспользоваться преимуществами вычислительной эффективности
процессора μΡΌ7281:
1. Отсутствие выборки команд. Имеется ЗУ программ, в котором
представлен вид графа потока данных. Каждый операнд представлен
маркером. Этот маркер содержит поле данных и другие управляющие
поля. Во время выполнения программы процессор потока данных
оценивает, какой тип операции будет выполнен над маркером,
обращаясь к образу графа потока данных, находящемуся в хранилище
программ. Когда все операнды или маркеры доступны, процессор потока
данных посылает маркер и команды в блок обработки. Процессор
содержит также локальную память для запоминания маркеров во
время вычислений. Запись и чтение из локальной памяти производятся
одновременно, когда блок обработки выполняет команду.
2. Упрощение мультиобработки. Процессор связывается с внешним
миром через переключатель ввода-вывода. Если ведущей ЭВМ
необходимо обратиться к процессору потока данных, она посылает маркер.
При поступлении маркера в процессор потока данных происходит
проверка его адресного поля, чтобы определить, предназначен ли
486
Глава 7
маркер данному конкретному процессору. В случае успешной
проверки маркер принимается, в противном случае пересылается
следующему процессору. Ясно, что пометка маркеров специальным адресом
позволяет связать множество процессоров потока данных в
каскадную конфигурацию для мультиобработки.
3. Управление данными. В каждом процессоре потока данных
выполнение программы управляется только доступностью данных,
необходимых для ее выполнения. Например, для того чтобы выполнить
операцию а=Ь+с, процессор должен получить маркер с данным Ь и
маркер с данным с прежде, чем сможет начаться операция сложения.
Эти два маркера могут поступить в любом порядке благодаря
реализованной в процессоре возможности отождествления маркеров.
Отождествление маркеров для Ъ и с может быть выполнено путем
проверки каждого поля идентификатора. Как только маркеры будут
отождествлены, они перешлются в блок обработки для выполнения
операции сложения. Данное, полученное в результате этой операции,
помечается идентификатором а. Если маркер а отождествляется с
другим маркером в этом же процессоре, то он заносится во
временную память маркеров и хранится там до тех пор, пока его
маркер-партнер не поступит в процессор. Блок обработки может
работать без остановки в предположении, что существует множество
операций, отличных от а=Ь+с, которые должны быть выполнены.
Применения. Блок обработки потокового типа предназначен для
обработки сигналов, изображений и гидроакустической информации.
На основе этого блока могут быть реализованы такие основные
устройства, как цифровые фильтры, системы фазовой автоподстройки
частоты, устройства БПФ. Кроме того, возможность
программирования позволяет строить и специализированные устройства -
адаптивные фильтры, синхронные видеоинтеграторы, процессоры поиска и
распознавания сигналов. Кристалл пригоден для задач обработки
изображений с использованием таких алгоритмов, как двумерная
свертка, увеличение, сжатие и вращение, а также для
распознавания образов в задачах искусственного интеллекта. В разд. 8.3
обсуждается применение этого кристалла для реализации двумерной
свертки.
Набор кристаллов фирмы Analog Devices
Описанные выше однокристальные процессоры ЦОС имеют
ограничения быстродействия, обусловленные современным состоянием
производства интегральных схем. Исключительно трудно разместить на
кристалле очень сложную систему и в то же время достичь высокой
Реализация матричных процессоров 487
скорости работы. Чтобы удовлетворить требования тех приложений,
в которых необходимо достичь предельной скорости и/или точности,
приходится использовать набор кристаллов, каждый из которых
реализует отдельную функцию оптимальным способом. Такое семейство
кристаллов ADSP-1XXX выпускает фирма Analog Devices. Оно
включает шесть кристаллов: планировщик программ, генератор адреса,
комбинированное устройство сдвига-АЛУ, расширенное устройство
умножения/накопления с фиксированной запятой и два кристалла с
плавающей запятой - устройство умножения и АЛУ.
Комбинируя эти кристаллы, можно получить разные уровни
производительности, что придает большую гибкость разработке и
обеспечивает реализацию сверхбыстрых и сложных процессоров обработки
сигналов. В табл. 7.1 представлены характеристики рассмотренных
выше архитектур.
Таблица 7.1. Сравнение кристаллов ЦОС
Характе- 32010/ МВ8764 Т424 GAPP ADSP μΡΩ7281
ристика 32020
Такт, не 200
Длина слова 16
(разряд)
Длина
динамического 32
диапазона
(разряд)
Программи- Хоро-
руемость шая
Базовое Боль-
програм- шое
мное
обеспечение
Цена
системы
100
16
26
Хорошая
Среднее
Средняя
50 100
32 1
32 1
Хоро- Очень
шая
хорошая
Сред-
Среднее нее
Высо-
Высокая кая
<100 200
24 16
40 32
Очень Очень
хоро-
хорошая шая
Малое Малое
Высо- Сред-
кая няя
Низкая/
средняя
488
Глава 7
7.2.3. Специализированные кристаллы СБИС
Кристаллы ССБИС
Программа ССБИС (сверхскоростные БИС, VHSIC - very high speed
integrated circuits), разрабатываемая в США, основана на
микронной или субмикронной технологии и предназначена для увеличения
числа вентилей в кристалле до уровня, превышающего 30000, с
одновременным увеличением производительности самих вентилей. Это
должно позволить создавать на одном кристалле такие законченные
системы, как БПФ. Выполнение программы ССБИС идет по пути
сокращения стоимости и сроков проектирования сложных кристаллов, что
увеличит возможность создания кристаллов с новейшими
архитектурами. Поэтому следует ориентироваться на использование ССБИС в
модульных проектах систем обработки сигналов в реальном времени.
Главная программа ССБИС может быть разделена на три фазы.
Кристаллы фазы 1, выпускаемые фирмами Honeywell, IBM, RCA, Texas
Instruments, TRW и другими компаниями, доступны в настоящее
время и были использованы во многих военных американских системах
Эта фаза была начата в 1981 г. и имела своей целью разработку
кристаллов по 1,25-микронной технологии с функциональной произ-
11 2
водительностью 5x10 вентиль·Гц/см и тактовой частотой 25 МГц.
В этой фазе были разработаны два новых поколения
высокоскоростных военных технологий, отвечающих требованиям перспективных
систем обороны к производительности. Выполненная работа должна
была стать отправной точкой для фазы 2 - ИС военного применения
по 0,5-микронной технологии с функциональной производительностью
13 2
10 вентиль· Гц/см и тактовой частотой 100 МГц
Пример использования наборов кристаллов, разработанных по
программе ССБИС, для новых систем подавления РЛС обсуждался в
работе [Unive86]. В настоящее время в ракетах используются
аналоговые вычислительные устройства. Небольшое количество цифровых
устройств построены на устаревших схемах средней степени
интеграции. Нетрудно понять, что кристаллы ССБИС обеспечивают
вычислительную мощность и гибкость при проектировании, требуемые в
новых ракетах систем подавления РЛС. Кроме того, эти кристаллы
работают с малым потреблением энергии, если учесть выполняемые
ими функции. Улучшенная компоновка позволяет в настоящее время
размещать более 100 кристаллов на квадратном дюйме. Еще одно
достоинство ССБИС - высокая производительность, достигаемая при
выполнении сложных операций за малое число тактов. Наконец, раз-
Реализация матричных процессоров
489
Таблица 7.2. Кристаллы ССБИС для ракетной системы
подавления РЛС (заимствовано из работы [Unive86])
ССБИС
Память с адресацией
по окнам (WAM)
Статическая память
с произвольным
доступом (SRAM)
Матричный
переключатель
Устройство
умножения с накоплением
Регистровое АЛУ
Микроконтроллер
Генератор адреса
Устройство
обработки данных 1750А
Общее буферное
устройство
Изготовитель
TRW
TI
TI
TRW
TRW
TRW
TRW
TI
TI
Мощность
на
кристалл, Вт
4,40
0,45
2,00
4,10
3,80
3,00
4,10
2,30
2,00
Описание
Согласование
типа сигнала РЛС
Хранение
гистограммы азимут/
угол места
Переключатель
двух банков SRAM
Расширенное
устройство
умножения по
алгоритму Бута
150 наборов
32-х
одноразрядных
компараторов
Управление
доступом к ППЗУ
Генерирование
адреса для
доступа к ППЗУ
Фильтрация,
сопровождение,
классификация
Замедление
данных
работка ССБИС ведется с учетом военных требований к надежности и
обслуживанию. В табл. 7.2 приведены основные характеристики
кристаллов ССБИС для перспективных ракет систем подавления РЛС.
Коммерческий кристалл: коррелятор с разрядно-модульной
организацией
Систолические процессоры с поразрядной обработкой. Как уже
говорилось в разд. 4.3, идея использования систолических
процессоров на разрядном уровне была предложена Маккани и Маквайтером
490
Глава 7
[McCan82, White86], которые показали, что многие компоненты
систем цифровой обработки сигналов и данных могут быть реализованы
в виде систолических массивов из одноразрядных процессорных
элементов, реализующих на вентильном уровне функции полного
сумматора. Они показали, что для вычислений, включающих суммирование
результатов умножения, элементы систолического процессора не
обязательно должны выполнять операцию умножения с накоплением, а
могут представлять собой вентильный полный сумматор, который на
разрядном уровне является эквивалентом процессора, вычисляющего
один шаг скалярного произведения. Если промежуточные результаты
в этих структурах не представляют интереса, то нет никакой
необходимости в искусственном выделении отдельных групп
одноразрядных клеток для организации процессоров, вычисляющих скалярное
произведение на уровне слов. Задачи могли бы обрабатываться
поразрядно изначально, а схемы - изготавливаться в виде массива
простых одноразрядных ПЭ, размещенного на кремниевой пластине.
Пример систолического процессора с поразрядной обработкой
приведен на рис. 7.7. Эта схема может быть использована для
вычисления умножения матрицы на вектор у = Ах, где каждый элемент
матрицы А имеет значение 0 или 1 и может быть представлен одним
разрядом. Действие схемы аналогично действию такой же схемы с
обработкой по словам, но главное отличие состоит в том, что
слова х. и у. обрабатываются поразрядно. Поэтому каждый процессор
вычисления шага скалярного произведения заменен вертикальным
столбцом клеток вентильных одноразрядных полных сумматоров,
логическая функция которых также приведена на рис. 7.7. Жирными
точками представлены фиксаторы, кружки обозначают основные
обрабатывающие клетки. На рис. 7.7 приведен пример, когда матрица
имеет размер 4x4. Предполагается, что поступающие слова являются
трехразрядными числами в дополнительном коде, которые перед
вводом в массив были расширены включением знака до 5 разрядов (до
длины результата). Схема работает следующим образом: слова
данных х. вводятся в массив слева на каждом такте, но со сдвинутыми
последовательными разрядами. Такой сдвиг достигается путем
параллельного ввода слов через клинообразную структуру сдвигающих
фиксаторов. Младший разряд х. вводится в массив на первом такте,
за ним следующий разряд, и так далее, и разряды на каждом такте
продвигаются на одну клетку вправо. Разряды, представляющие
элементы матрицы А, движутся, как показано, вниз по массиву в
вертикальном направлении. Выходные слова у. с начальными нулевыми
значениями движутся в массиве справа налево, причем и их разряды
Реализация матричных процессоров
491
Наклоняющие и
выпрямляющие
фиксаторы
*?
■JL·
ν ·*- ν · (А · х) · i
i-*-(A ·χ)ν+(Α·χ)ί+νί A||i v
Рис. 7.7. Систолический массив с поразрядной обработкой для
умножения матрицы на вектор (из работы [White86]).
сдвинуты аналогичным образом. Это означает, что k-й разряд слова
у\ получит все члены, необходимые для образования суммы
У%А^
ч i
Произведения Α..χ образуются путем прохождения этих разрядов
через вентиль AND. Любые разряды переноса, сформированные в
процессе суммирования, зафиксированы, как показано, по нисходящей
вертикали. Поэтому здесь использован принцип запоминания
переноса, который и является причиной смещения разрядов слов х. и у..
При прохождении через массив выходными словами накапливаются
все члены, необходимые для образования результата, и на каждом
такте выдается один разряд у.. Результирующее слово может быть
затем выравнено путем прохождения через другую клинообразную
структуру фиксаторов.
492
Глава 7
Одним из самых важных приложений этой схемы является цифровой
коррелятор. В этом случае матрица А является теплицевой (т.е
все элементы каждой из диагоналей одинаковы) и, следовательно,
можно связать каждый столбец клеток с фиксированным
коэффициентом. Высокопроизводительный разрядно-модульный коррелятор,
основанный непосредственно на такой архитектуре, вначале был описан
в работе [Соггу83], а затем сконструирован фирмой Marconi
Electronic Devices. Схема кристалла приведена на рис. 7.8. Он
содержит 64-ступенчатое устройство, в котором эталонные коэффициенты
могут принимать значения 0 или 1. Он может оперировать 4-
разрядными входными данными, хотя входные слова дополняются
знаковыми разрядами до 10 разрядов так, чтобы в устройстве любой
результат мог быть получен в полном размере. Поэтому схема
требует массива клеток размером 64 χ 10, однако на практике он был
ΖΙ15-ΖΙ0
ΑΙ
ALDI
ТСХ ·
BSX ■
ΧΙ3-ΧΙ0
ТСА
SHY3
I
SHY0
YCLR
ΥΙ3
I
ΥΙΟ ■
z(k)
16
a(k)
е(к)
64-ступенчатый регистр хранения
х(к)
64
Разрешающий регистр
64-ступенчатый ссылочный регистр
Наклон и
добавле-|
ние знака
10
"I w(k -65J
Выпрямление
и добавление]
знака
юн
10
Т64Г
Систолический коррелятор
размером 64 χ 10
Кольцевой
регистр сдвига
размером
16х 16
16
16
w(k - 70>
i/^-70) = w(A:-70)*2'4SHY
У(к- 70)
16
jWl Z015
Ϊ6ΊΤΪ6
[ZOO
! ΑΟΪ)
Г АО
I ALDO
I ACLR
-+
Трех
! хоз
16-ступенчатый
1—j регистр
хранения
16
16-ступенчатый
пороговый
регистр
16
Компаратор в
дополнитель-1
ном коде
16
_[ХО0
I ТО
■1т,
i TCLR
^TCL
Itld
I
I
I
Iteql
ITGTR
4DEY
"fY015
16 I
lYOO
WAr-71)
Τ
Рис. 7.8. Функциональная блок-схема систолического коррелятора
размером 64x10 (из работы [White86]).
___ Реализация матричных процессоров 493
выполнен в виде двух раздельных секций размером 32x10. Кристалл
был спроектирован и изготовлен по технологии КМОП/КНС
(CMOSASOS). Он содержит приблизительно 43000 транзисторов и
может обрабатывать данные с частотой опроса до 35 МГц. Потребление
мощности - менее 250 мВт при частоте 20 МГц и напряжении 5В,
размер схемы - 7x7 мм. Разработка схемы допускает
каскадирование для увеличения числа ступеней корреляции, длины эталонного
слова и длины слова данных.
Наборы кристаллов СБИС
Типичный набор базовых операций для матричных процессоров
должен включать примитивы для арифметических и логических
операций, выборки данных и их записи, управления, ввода-вывода и
связи. С другой стороны, исходя из классификации алгоритмов ЦОС, на
кремниевом кристалле может быть реализован основной набор
модульных операций (таких, как умножение с накоплением). Эти
операции следует использовать для упрощения устройства аппаратных
модулей.
Основываясь на функциональной классификации (независимо от
прогресса технологии изготовления устройств) можно выделить
следующие категории базовых устройств:
1. Арифметические устройства. Например, устройства сложения,
умножения, умножения с накоплением, процессоры CORDIC
(Coordinate Rotation Digital Computer), арифметические устройства в
остаточных классах.
2. Устройства памяти. Например, ОЗУ, ПЗУ, табличный поиск,
стеки (LIFO, FIFO), буферная память, кэш-память.
3. Устройства связи/обмена. Например, аналого-цифровые и
цифро-аналоговые преобразователи, порты ввода-вывода с
квитированием, прямой доступ к памяти (ПДП), коммутация пакетов
(переключатель 2x2), полный коммутатор, сеть совершенной тасовки.
4. Функции ЦОС (только в кристаллах). Например, схема
скалярного произведения, схема сортировки, компаратор, КИХ- и
БИХ-фильтры, медианные фильтры, коррелятор, устройства свертки и
интерполяции, схемы вычисления БПФ, ДПФ и преобразования Ада-
мара.
7.3. ПРОЕКТИРОВАНИЕ АРИФМЕТИЧЕСКИХ УСТРОЙСТВ
Ниже рассматривается проектирование АУ, которые выполняют все
основные вычисления в кристалле ЦОС Как уже говорилось выше, АУ
являются важным компонентом любого процессора обработки сигналов.
494
Глава 7
Проектирование АУ зависит от операций, которые должны быть
выполнены. Отметим, что кроме операции умножения с накоплением,
в современных прикладных задачах обработки сигналов (таких, как
фильтрация и спектральный анализ) распространенной
вычислительной операцией является вращение матрицы. Примерами являются
адаптивная решетчатая фильтрация, конвейерные решатели теплицевых
систем, вращение Гивенса для QR-разложения и вращение Гивенса
для разложения по собственным значениям. Для выполнения этих
вычислений требуются следующие операции: сложение, вычитание,
умножение, деление, извлечение квадратного корня и
гиперболические функции. После того как определены операции, которые должны
выполнять АУ, можно разрабатывать быстрое и точное АУ, требующее
мимнимального количества аппаратуры.
Ниже опишем три типа АУ. Первый тип - АУ, базирующееся на
обычном устройстве умножения с накоплением (MAC - multiplier-
and-accumulator). Второй тип основан на системе остаточных
классов, а третий - на устройствах обработки типа CORDIC.
7.3.1. Разработка обычного устройства MAC
В этом подразделе обсуждаются стандартные АУ с плавающей и с
фиксированной запятой. Основное внимание уделено проектированию
матричных устройств умножения, которые являются решающим
компонентом многих приложений обработки сигналов.
Матричные устройства умножения с фиксированной запятой
Благодаря существующей в настоящее время технологии СБИС
матричное (или параллельное) устройство умножения становится все
более экономичным и распространенным. Последующее ниже
обсуждение матричных устройств умножения основывается в большей мере
на работе [YTHwa85]. Архитектура простого матричного устройства
умножения в основном соответствует обычному алгоритму умножения.
Матричное устройство умножения состоит из двух главных блоков -
формирования скалярных произведений, называемых частичными
произведениями, и сведения всех этих промежуточных результатов в
окончательное произведение. Для того чтобы обеспечить высокую
скорость умножения, Уоллес [Wallce64] указал три области, где
может быть увеличена производительность:
1. Ускорение формирования частичных произведений.
2. Сокращение числа частичных произведений.
Реализация матричных процессоров
495
3. Ускорение сложения частичных произведений. Эту задачу
можно разбить еще на две части: а) ускорение процесса сворачивания
матрицы частичных произведений и б) ускорение заключительной
стадии сложения.
Среди этих трех областей первая - формирование частичных
произведений - вносит минимальную по сравнению с двумя другими
задержку. Благодаря присущему ей параллелизму, вводится только
один уровень задержки независимо от длины умножаемых слов.
Значительное внимание должно быть уделено последним двум областям,
которые в наибольшей степени влияют на скорость умножения. Ниже
рассмотрены методы, улучшающие решение этих двух задач.
С другой стороны, реализация на СБИС определяет хорошую
архитектуру следующими двумя свойствами:
1. Она должна быть реализована только небольшим числом типов
простых клеток (модульность).
2. Она должна иметь простые и регулярные цепи управления
и данных с тем, чтобы клетки могли быть связаны в сеть
локальными и регулярными соединениями (регулярность).
Приведенные соображения являются решающими при выборе
архитектуры матричных устройств умножения.
Умножение с перекодированием. Этот алгоритм перекодирует один
из двух операндов (один называется множимое, другой - множитель)
так, чтобы число частичных произведений, которые должны быть
просуммированы, уменьшилось, а в результате вычисление
ускоряется. Рассмотрим основной алгоритм Бута [Booth51] и его
модифицированную версию. Исходный алгортим Бута не предназначался для
параллельного умножения и был разработан для ускорения алгоритма
сложения со сдвигом. Принцип его действия основан на идее
пропуска произвольно длинных строк из нулей и единиц во множителе.
Это приводит к переменному времени выполнения операции
умножения. "Модифицированный" алгоритм Бута использует постоянные
сдвиги групп разрядов множителя. Таким образом, достигается
постоянное время выполнения, и ускорение зависит от числа сдвинутых
разрядов за один шаг алгоритма. Самой распространенной является
схема с анализом на каждом шаге пары разрядов, т.е.
перекодирование пар разрядов. Разряды множителя делятся на пары разрядов,
и одновременно просматриваются 3 разряда (триплет) - два разряда
представляют собой текущую пару, а третий разряд является
старшим разрядом смежной младшей пары разрядов. После анализа
каждой пары разрядов алгоритм преобразует их в множество из пяти
чисел со знаком: 0, +1, +2, -1, и -2. В соответствии с булевой
496
Глава 7
таблицей истинности, приведенной в табл. 7.3, каждая
перекодированная цифра требует простейшие действия со множимым - сложение,
вычитание или сдвиг.
Таблица 7.3. Таблица истинности для
модифицированного алгоритма Бута с перекодированием пар
разрядов
Триплет разря- Перекодиро- Пояснение
дов множителя ванный
операнд
21 20 2-1
i+1
0
0
0
0
1
1
1
1
i
0
0
1
1
0
0
1
1
i-1
0
1
0
1
0
1
0
1
0
ΙΑ
ΙΑ
2Α
-2Α
-Α
-Α
0
Нет строки
Конец строки
Изолированная 1
Конец строки
Начало строки
Конец/начало строки
Начало строки
Центр строки
"Схема перекодирования пар разрядов множителя с использованием
модифицированного алгоритма Бута может быть легко понята из
примера, приведенного на рис. 7.9. После перекодирования получены
только 8 цифр со знаком. Отметим, что самая младшая пара
разрядов преобразуется в предположении, что справа приписан нуль. На
рис. 7.10 показан пример умножения двух чисел со знаком с
использованием модифицированного алгоритма Бута.
Этот алгоритм может быть применен с постоянным сдвигом на три
и более разрядов, при этом число частичных сумм будет
уменьшаться. Однако в этом случае необходимо иметь дополнительный
предварительно вычисленный операнд, доступный для новых перекодирован-
н ых групп разрядов, например ЗА или -ЗА. Это приведет к
усложнению аппаратуры. Поэтому при умножении с перекодированием
использовать схему перекодирования трех и более разрядов для не-
Реализация матричных процессоров 497
В = 010110001011 1010 (о)
-2
-1
о
-1
+1
-2
+2~
+ 1
Рис. 7.9. Пример, иллюстрирующий схему декодирования пар
разрядов.
10110010 -78
χ) 1 0 0 1 1 1 0 1 -99
1111111110110010
00000 001001110
11 110 1100100
0 0 10 0 1110 0
00011 11000100010 1010 7722
Рис. 7.10. Умножение двух чисел со знаком с использованием
модифицированного алгоритма Бута.
больших устройств умножения не имеет смысла, так как возросшая
сложность не будет компенсирована значительным выигрышем и по
скорости, и по оборудованию. Важным достоинством
модифицированного алгоритма Бута является то, что он может быть применен при
умножении чисел в дополнительном коде.
Клеточное матричное устройство умножения
Клеточное комбинаторное матричное устройство умножения
является аппаратным эквивалентом стандартного алгоритма,
применяемого при программировании операции умножения. Представляемый
алгоритм умножения генерирует произведение путем
последовательных сложений и сдвигов. При схемной реализации этого алгоритма
все сдвиговые операции "зашиваются" в аппаратуру. Таким образом,
реализация устройства умножения сводится к генератору матрицы
частичных произведений и массиву сумматоров, которые для
получения конечного результата выполняют сложение слагаемых.
(+1)
(-1)
(+2)
(-2)
32—102 S
498
Глава 7
Существуют несколько широко используемых схем реализации
матричных устройств умножения, такие, как схема с сохранением
переноса, дерево Уоллеса, схема Дадда и схема генерации/свертки
матрицы. Здесь рассматривается схема с сохранением переноса, дерево
Уоллеса и схема Дадда.
Сумматор с сохранением переноса (CSA - Carry Save Adder).
Понятие "сохранение переноса" связано со способом
распространения переносов в процессе сложения частичных произведений.
Поскольку переносы, которые появляются на выходе сумматоров, не
поступают на вход сумматоров того же уровня, они сохраняются и
распространяются диагонально на следующий уровень. Блок-схема
матричного устройства умножения с сохранением переноса показана
на рис. 7.11.
о
В этой схеме на первой ступени для сворачивания η слагаемых
используются п-\ полусумматоров, которые генерируют второй
младший значащий разряд произведения. Первый младший значащий разряд
доступен без каких-либо преобразований. На каждой из последующих
ступеней используются п-\ полных сумматоров. На каждой ступени
генерируется один разряд произведения и число частичных
произведений сокращается на единицу. На последней ступени для получения
результата необходимы п-2 полных сумматора и один полусумматор.
Для увеличения скорости вычислений на последней ступени может
быть использован (я-1)-разрядный сумматор с ускоренным переносом
[Hwang79].
Дерево Уоллеса. Дополнительное ускорение может быть
достигнуто, если использовать дерево Уоллеса [Walla64], которое служит
средством обмена между сумматорами с сохранением переноса для
сворачивания η частичных произведений до двух операндов. Принцип
дерева Уоллеса состоит в параллельной обработке η частичных
произведений. Схема Уоллеса обеспечивает минимальное число ступеней
сложения, которое пропорционально логарифму числа разрядов
множителя и, следовательно, приводит к минимальному времени задержки.
Схема со счетчиками Дадда. Схема Дадда [Dadda65] сворачивает
η частичных произведений в два операнда способом, аналогичным
дереву Уоллеса. В этой схеме для получения суммы единиц в
каждом столбце матрицы слагаемых используются параллельные счетчики
(р входов, q выходов). Хотя большой параллельный счетчик
сокращает число ступеней сложения, его сложность, обусловленная
необходимо большим числом выходов, приводит к увеличению задержки.
Для ее минимизации Дадда предложил модификацию, использующую
сумматоры с сохранением переноса и простые (3,2)-счетчики. Этот
Реализация матричных процессоров
499
tttt*
Рис. 7.11. Устройство умножения, реализованное по схеме с
сохранением переноса.
прием оказался оптимальным в том смысле, что привел к
минимальному времени задержки при выполнении всех ступеней сложения
частичных произведений.
Ступень быстрого сложения. После вычисления в массиве
сумматоров с сохранением переноса полученный результат оказывается
представлен в форме с сохраненными переносами, и для получения
конечного произведения необходима еще одна ступень сложения.
Обычный сумматор с распространением переносов здесь не годится
из-за ограниченной скорости сложения. Поэтому на этой ступени
для ускорения процесса суммирования часто используются сумматоры
с ускоренным переносом [Hwang79], которые основаны на том, что
переносы могут быть сгенерированы или предсказаны до того, как
будут вычислены соответствующие разряды суммы на каждой стадии.
Эти переносы генерируются одновременно при помощи дополнительных
логических схем и поступают во все разрядные позиции
параллельного сумматора. Такой способ приводит к постоянному времени
сложения, не зависящему от длины сумматора. Однако ограничения
нагрузочных способностей по входу и выходу препятствуют
распространению идеи ускоренного вычисления переносов в сумматорах большой
длины. Для реализации больших сумматоров можно использовать
многоуровневые схемы ускоренного вычисления переносов. Существуют
также и другие быстрые сумматоры, такие, как сумматор с выбором
переноса.
500
Глава 7
Умножение в дополнительном коде
В большинстве приложений ЦОС часто требуется умножение в
дополнительном коде. В отличие от умножения чисел без знака
знаковый разряд каждого частичного произведения должен быть
распространен на полную длину конечного произведения. В связи с этим
образуются дополнительные слагаемые и геометрически блок-схема
устройства из прямоугольника превращается в трапецию.
Суммирование дополнительных слагаемых требует дополнительных сумматоров с
сохранением переноса. Для сокращения этих аппаратных затрат
была предложена схема прямого умножения чисел в дополнительном
коде. Основная идея состоит в вычислении значений чисел в
дополнительном коде в виде чисел в позиционной системе счисления с
отрицательным знаком и положительным весовым коэффициентом.
Рассмотрим число в дополнительном коде Ν=(α ,α · · 'a^k, где
а _1 является знаковым разрядом. Значение N числа N может быть
представлено следующим образом:
п-2
N =-а ,х2п~КУ~а.х21 . (7.1)
ν п-\ / ι ν '
Пезарис [Pezar71] и Бо и Вули [Baugh73] предложили известные
алгоритмы непосредственного умножения чисел в дополнительном
коде. Эти алгоритмы ускоряют процесс умножения путем исключения
медленных операций образования дополнительного кода, хотя они
имеют и некоторые недостатки. В матричном устройстве умножения,
предложенном Пезарисом, требуются полные сумматоры четырех типов
с возможностью обработки положительных и отрицательных чисел.
Это увеличивает сложность схемы из-за нерегулярности основных
клеток. Устройство умножения Бо-Вули, показанное на рис. 7.12,
было усовершенствовано по сравнению со схемой Пезариса. Принцип
этого алгоритма состоит в том, что знаки всех слагаемых
положительны. Это позволяет реализовать устройство сложения полностью
на основе обыкновенных полных сумматоров. Однако в этом случае
над слагаемыми производится логическая операция отрицания, что
ведет к усложнению схемы. Другой недостаток схемы Бо-Вули связан
с невозможностью непосредственного применения метода умножения с
перекодированием (как в устройстве умножения с сохранением
переноса).
Реализация матричных процессоров 501_
а'Ь< *4bJ а Ь Для ij =0,1,2,3. и (ij) = (4/4)
Рис. 7.12. Матричное устройство умножения Бо-Вули в
дополнительном коде.
Примеры кристаллов СБИС, реализующих операцию умножения с
накоплением над числами с фиксированной запятой
Несмотря на рост быстродействия универсальных
микропроцессоров, во многих приложениях ЦОС требуется намного большая
производительность. Использование в этих приложениях дискретных
компонентов увеличивает производительность во много раз по
сравнению с микропроцессорами ЦОС. Из набора дискретных кристаллов
первым было реализовано АУ. Аппаратное устройство умножения и
АЛУ в этом АУ объединены для выполнения алгоритма вычисления
суммы произведений, часто встречающегося в большинстве задач ЦОС
и матричных вычислений. Часто вместо раздельного устройства
умножения и АЛУ используют одно устройство умножения с накоплением
(MAC). Аккумулятор выполняет подмножество операций АЛУ, суммируя
результат текущей операции умножения с результатом предыдущих
умножений. В табл. 7.4 приведены характеристки устройств
умножения с фиксированной запятой, реализованных по КМОП-техиологии, и
устройств умножения с накоплением (MAC) [Магп85].
502
Глава 7
Таблица 7.4. Сравнение устройств умножения с фиксированной за
пятой, изготовленных по КМОП-технологии, и устройств умножения с
накоплением.
Фирма/
устройство
Analog
Devices
TRW
Weitek
IDT
Устройство
умножения
12x12
ADSP
1012
110 нс
Нет
Logic LMU
Device 12/13
80 не
Нет
MAC
12x12
ADSP
1009
130 нс
TMC
2009
135 нс
Нет
Нет
IDT
7212/
7213
45 не
IDT
7209
55 не
Устройство
умножения
16x16
ADSP
1016
75 не
ТМС
2161
45 не
LMU
16/17
75 не
WTL
2516
55 не
IDT
7216/
7217
55 не
MAC
16x16
ADSP
1010
85 не
ТМС
2210
50 не
LMA
1010
85 не
WTL
2010
75 не
IDT
7210/
7243
65 не
Устройство
умножения
24x24
ADSP
1024
200 не
Нет
Нет
Нет
Нет
7.3.2. Арифметика с плавающей запятой
Арифметика с фиксированной запятой имеет дело с небольшими
целыми числами в форме, необходимой в деловых или коммерческих
приложениях. В научных вычислениях приходится постоянно
округлять числа, чтобы сократить число цифр до представляемого в
машине количества. При выполнении научных или инженерных
вычислений арифметика с фиксированной запятой привносит некоторые
проблемы, такие, как ограниченный диапазон и жесткая точность. Эти
проблемы связаны в основном с диапазоном, точностью и
разрядностью представления чисел в машине. В приложениях ЦОС ошибки
округления приводят к накоплению шума системы, неточно
размещенные нули и полюсы фильтра изменяют передаточную функцию и могут
привести к нестабильности, а ограничения динамического диапазона
ведут к искажению сигнала, вызванному насыщением. Этих проблем
можно избежать при переходе к операциям с плавающей запятой.
Арифметика с плавающей запятой была предложена в начале 40-х
годов для устранения ограничений на операции с фиксированной
Реализация матричных процессоров 503
запятой. Ее достоинства - широкий динамический диапазон и
высокая точность. Несмотря на большие аппаратные затраты,
арифметические операции с плавающей запятой были повсеместно приняты
для высокоскоростных научных вычислений. Существуют два типа
арифметических операций с плавающей запятой: ненормализованные и
нормализованные. Нормализованный процессор с плавающей запятой
оперирует только нормализованными числами с плавающей запятой и
производит нормализацию всех промежуточных и конечных
результатов. В дальнейшем будут рассматриваться только нормализованные
числа с плавающей запятой.
Число с плавающей запятой состоит из пары чисел с
фиксированной запятой (Λί,£), в которой Μ обозначает мантиссу, а Ε - поря-
док. Значение числа (М,Е) есть МхВ , где В - заранее
определенное основание (здесь подразумевается, что В=2). Пусть (Хм%Хр) и
(Ум*Ур) - Два числа с плавающей запятой. Ниже приведены основные
формулы, используемые для выполнения сложения, вычитания,
умножения и деления с плавающей запятой:
Сложение: Χ+Υ = (Хм2 Е Ε+ΥΜ)*2 £, где Χ^Υ£ .
Χ -Υ Υ
Вычитание: Χ+Υ = (Хм2 Е E~YM)x2 £, где X^Y£ .
ΧΕ+ΥΕ
Умножение: ΧχΥ = (ΧΜχΥΜ)χ2
Χ -Υ
Деление: Χ+Υ = (ΧΜ+ΥΜ)χ2 Ε Ε .
Умножение и деление являются относительно более простыми
операциями, поскольку мантиссы и порядки могут обрабатываться
независимо друг от друга. Операция умножения с плавающей запятой
требует умножения мантисс с фиксированной запятой и сложения
порядков с фиксированной запятой. При делении с плавающей
запятой необходимо выполнить деление мантисс с фиксировавнной
запятой и вычитание порядков с фиксированной запятой. Таким образом,
умножение и деление с плавающей запятой не являются существенно
более сложными операциями, чем соответствующие операции с
фиксированной запятой. Операции сложения и вычитания с плавающей
запятой выполняются сложнее, так как перед тем как мантиссы могут
быть сложены или вычтены, соответствующие им порядки должны быть
выравнены. Для этого производится сдвиг вправо мантиссы того
504
Глава 7
входного числа, которое имеет меньший порядок. Наконец, для
каждой из четырех операций с плавающей запятой требуется выполнение
нормализации результата.
Стандарт IEEE для двоичной арифметики с плавающей запятой
Аппаратура с плавающей запятой изменяется благодаря
технологии СБИС и появлению стандартов; преобладающим в настоящее время
для двоичных операций с плавающей запятой (Task Р754) является
стандарт IEEE, который обеспечивает больше возможностей для
переноса программного обеспечения [Fandr85].
Стандарт IEEE предназначен для стандартизации двоичных
арифметических операций с плавающей запятой в мини- и микроЭВМ [Со-
опе80]. Его цель - предоставить программистам единую программную
среду для вычислений с плавающей запятой. Стандарт может быть
реализован программным, аппаратным или комбинированным способом.
В нем точно описаны форматы данных и результаты арифметических
операций. Он должен быть таким, чтобы помочь производителям
микропроцессорной техники, которые не в состоянии обеспечить
программную поддержку и персонал для выполнения преобразований между
системами, соответствующими менее жестким стандартам. Работающие
в настоящее время программы на языках высокого уровня типа
Фортран можно перенести на систему с новой стандартной арифметикой
за счет умеренного объема редактирования и перекомпиляции, после
чего программа выдает результаты не хуже прежних.
Примеры кристаллов СБИС, выполняющих операцию умножения с
накоплением с плавающей запятой
Во многих приложениях ЦОС и научных вычислениях, таких, как
обработка медицинских изображений, исследование сейсмической
активности, моделирование электронных схем, требуются большой
динамический диапазон и высокая точность вычислений. Требования
к быстродействию определяют необходимость аппаратной реализации
арифметики с плавающей запятой.
Многие требования ЦОС могут быть удовлетворены операциями с
плавающей запятой с одинарной точностью (32 разряда), тогда как
научные приложения неизменно требуют форматов данных с двойной
(64 разряда) или расширенной точностью (80 разрядов),
соответствующей стандарту IEEE Р754.
В настоящее время 32-разрядные кристаллы СБИС с плавающей
Реализация матричных процессоров 505
запятой выпускаются тремя фирмами-производителями: Weitek, AMD и
TRW. Фирма Weitek первой (в 1983 г.) выпустила набор кристаллов
(устройство умножения с плавающей запятой WTL1032 и АЛУ с
плавающей запятой WTL1033), которые фактически стали стандартом для
таких приложений, как графика и БПФ. Их производительность
составляет 10 MFLOPS на кристалл. Фирмы Weitek и AMD выпустили
схемы, объединяющие в одном кристалле устройство умножения и АЛУ.
Длительность цикла в кристалле AMD29325 составляет 100 не.
Однако он не может выполнять одновременно операции умножения и
сложения и потребляет мощность около 10 Вт. Кристалл WTL3132
содержит набор регистров, устройство умножения и сумматор, его
производительность составляет 20 MFLOPS.
Фирмы Weitek (WTL2264/2265) и Analog Devices (ADI3210/ 3220)
предлагают наборы 64-разрядных кристаллов с плавающей запятой,
которые могут выполнять и 32-разрядные операции. Пиковая
производительность кристалла WTL2264/2265 составляет 10 MFLOPS при
операциях с двойной точностью и 20 MFLOPS с одинарной точностью.
В настоящее время различными фирмами разрабатываются
64-разрядные кристаллы, которые, возможно, появятся на рынке в ближайшие
годы.
7.3.3. Арифметика остаточных классов
Согласно работе [Тау1о84], отличительными свойствами
позиционной системы счисления с постоянным основанием являются
возможности алгебраического сравнения, расширения динамического
диапазона (т.е. добавления цифр), умножения (деления) при помощи
простых арифметических сдвигов и упрощенного обнаружения
переполнения и определения знака. Недостаток этой системы
счисления состоит в том, что информация о переносах должна
продвигаться от младших цифр к старшим. В результате происходит
замедление выполнения арифметических операций, связанное с
используемой системой организации переноса (например, сквозной перенос,
ускоренный перенос). Организация переноса может быть ускоренной,
но только ценой затрат на дополнительное оборудование. Время,
необходимое для вычисления л-арной функции с помощью р-входовых
вентилей, составляет по крайней мере log п.
С другой стороны, вновь стала привлекать внимание система
счисления в остаточных классах (ССОК), основанная на древней
китайской теореме об остатках. Арифметические устройства,
работающие в этой системе, могут играть важную роль в высокоскорост-
506
Глава 7
ных специализированных системах реального времени, которые
поддерживают подлинно параллельную обработку целочисленных данных.
Эта система является системой "без переносов", выполняющей
сложение, вычитание и умножение как одновременные (параллельные)
операции, и свободной от главного источника замедления -
организации переноса.
В 60-х годах были предприняты попытки использовать ССОК
[Szabo67], однако, технология в те годы не могла обеспечить
специфичные требования этой системы. В середине 70-х годов
революция в микроэлектронике привела к появлению дешевых
высокопроизводительных ОЗУ и ПЗУ, способных заменить дорогие и медленные
устройства ферритовой памяти, которые вынуждена была
использовать ССОК. Эти новые устройства памяти являются идеальными для
выполнения таких операций в остаточной (модулярной) арифметике,
как табличный поиск. ССОК в настоящее время находит применение
во многих прикладных областях, включающих цифровую фильтрацию и
преобразования. Вспомним сначала основы системы счисления в
остаточных классах.
Система счисления в остаточных классах
Система счисления в остаточных классах (ССОК) определяется в
терминах множества взаимно простых модулей. Если Ρ обозначает
множество модулей, то
Ρ = {prP2,...,pL}, НОД(р.,р.) = 1, для i * /.
Любое целое число в остаточном классе ΖΧλ, где
м
Μ = ρ]χρ2χ...χρυ
имеет единственное представление в виде следующего набора их L
чисел:
X -> (xrx2,...,xL),
где Х.-Х mod р. и X. называется /-м остатком X.
Для знаковой системы счисления любое целое число в диапазоне
(-М/2,М/2) имеет представление в виде набора из L чисел, где
Х=Х mod р., если Х>0 и (М-|Х|) mod р. в противном случае.
Знаковая ССОК часто называется симметричной системой. Хотя ССОК
обеспечивает эффективное выполнение операций сложения, вычитания
Реализация матричных процессоров
507
и умножения, деление не является замкнутой операцией. Если Χ, Υ
и Ζ имеют представления в ССОК, заданные в следующем виде:
х -»(X, xL): у -»(У, yL); 2 -»(Ζ, zL)
и "*" обозначает сложение, вычитание или умножение, то выражение
Z=X*Y в ССОК имеет вид:
Ζ -> (Zr...,ZL) = ((^«η) mod pt (XL*YL) mod pL),
если Ζ принадлежит Ζ,,. Это выражение означает, что /-я цифра
представления числа в ССОК определена в виде (X.*Y.) mod p.,
т.е. между представлениями в остатках переносы не
распространяются. Поэтому можно выполнять операции параллельно с очень
высокой скоростью, что делает ССОК весьма привлекательной для
решения задач в реальном времени. Это основное свойство
иллюстрируется следующим примером.
Пример 1. Арифметика ССОК
Пусть Р=(3,4,5) и М=60; тогда
4->(1,0,4); 6->(0,2,1); 10->(1,2,0); 24-^(0,0,4).
Операции сложения, вычитания и умножения этих чисел показаны
на рис. 7.13. Как показывает пример, приведенные три операции
над числами в ССОК выполняются без переносов.
Для использования параллелизма ССОК арифметические устройства
должны эффективно и быстро реализовать операцию (X.*Y.) mod p..
4— (ι, о, 4
+6— (0, 2, 1
10—
6—
-4—
2—
6—
х4—
(1 mod 3
(0,
(1,
(2 mod 3
(0,
(1.
2 mod 4
2,
0,
2 mod 4
2,
0,
5 mod 5
1
4
2 mod 5
1
4
24— (0 mod 3 0 mod 4 4 mod 5 ) = (0, 0, 4)
Рис. 7.13. Пример арифметики ССОК.
508
Глава 7
Вместо обычных алгоритмов арифметических операций могут быть
использованы простые операции табличного поиска. Например,
высокоскоростная память на рис. 7.14 может быть запрограммирована
так, чтобы выдавать значение (X,*Y.) mod р. при поступлении на
вход адреса [Л\:У.], перечисляющего X. и Y* Если значение р.
ограничено 2п для всех /, то составной адрес [^;К.] имеет длину
2/г разрядов. Поэтому арифметика ССОК может быть выполнена в
табличном виде, если процесс не выведет за пределы адресного
пространства доступной памяти.
*1
Yi
ОЗУ или ПЗУ
ТАБЛИЧНОГО ПОИСКА
(Χ,·# Y^vnodPj
2гп χ η разрядов
zi
Рис. 7.14. Арифметическое устройство ССОК (из работы [Тау1о84]).
Приложения
На практике ССОК полезна только тогда, когда требуются
высокие скорости обработки данных. Проблемы, успешно решаемые при
помощи обычной арифметики, не требуют реализации в ССОК-
Конкурентоспособность ССОК определяется возможностью реализации
арифметики с частотой в сотни мегагерц, причем столь же быстрыми
должны быть операции сбора данных и перевода из десятичной
системы счисления в ССОК.
Одной из перспективных областей применения ССОК является
реализация цифровых фильтров или устройств свертки. Во многих
задачах фильтрации скорость обработки 16/32-разрядных чисел является
определяющей. Следующий пример [Nudd85] иллюстрирует
использование ССОК.
Модулярная арифметика использована при анализе изображений в
лаборатории Hughes Research. Входные данные сначала кодируются
путем деления на простые числа (рис. 7.15), а затем вычисления
производятся только над остатками. В этой системе используются
четыре простых числа (31, 29, 23 и 19), каждое из которых
занимает 5 двоичных разрядов, и, следовательно, остатки также имеют
ту же длину. Арифметические операции производятся в каждом кана-
__ Реализация матричных процессоров 509
ле независимо, и если любой промежуточный результат превышает
простое число (основание), то он преобразуется в остаток (путем
последовательных вычитаний простого числа). Затем результаты в
параллельных каналах независимо преобразуются в двоичные
выходные данные, при этом обеспечивается точность, эквивалентная
произведению оснований (т.е. 392853, или примерно 18 разрядов).
Существенное достоинство такого подхода состоит в том, что все
Устройство
кодирования
по базе В1
Устройство
кодирования
по базе В2
• ·
Устройство
кодирования
по базе BN _1
Устройство
кодирования
По базе BN
Процессор остатков
по базе В1
Процессор остатков
по базе В2
• ·
Процессор остатков
по базе 8N 1
Процессор остатков
по базе BN
-
Дешифратор
Рис. 7.15. Система анализа изображений фирмы Hughes (из работы
[Nudd85]).
арифметические операции, включая начальное кодирование в
остаточное представление, внутренние вычисления и конечное
дешифрирование, могут быть выполнены с помощью операций поиска в
таблицах размером 5x32 разряда. Кроме того, машина может быть сделана
программируемой, если ввести высокоскоростные ОЗУ, в которые
загружаются данные для выполнения различных функций выделения
признаков. В лаборатории Hughes Research в настоящее время
работает машина RADIUS [Fouse79], изготовленная с использованием
модулярных арифметических устройств, имеющая скорость,
достаточную для применения в задачах реального времени. Она состоит из
некоторого числа специализированных заказных МОП-кристаллов с
каналом /г-типа, которые содержат таблицы и устройства модулярной
арифметики. Машина в целом выполняет операции вида
где / · - значения интенсивности над ядром элемента 5x5, a f. -
полиномиальные функции одной переменной.
Эффективная производительность этой машины в режиме выделения
признаков эквивалентна 200х106 умножений в 1 с.
510
Глава 7
Подход, основанный на табличном поиске
Регулярность структуры устройств памяти способствует их
интенсивному использованию в реализации систем по СБИС-технологии.
В ССОК, когда представление большого числа разбивается на
несколько небольших полей, очень удобно реализовать арифметические
операции над каждым полем с помощью просмотра таблиц. Возьмем, к
примеру, операцию умножения.
Табличный метод приводит к простой и однородной реализации
умножения. В принципе можно записать все возможные результаты
произведения входных данных X и У в ПЗУ и использовать эти
входные данные X и Υ в качестве адреса для выборки произведения из
ПЗУ. Проблема состоит в том, что для этого простого метода
требуется память большого размера. Решение проблемы можно найти,
обратившись к следующему уравнению:
Χ χ Υ = (χ + У>2 - (χ ~ Υ)?
4
Итак, можно хранить в ПЗУ только квадраты чисел и вычислять
произведение, считывая из ПЗУ квадраты чисел (Χ+Υ) и (Χ-Υ), а
затем сдвигая на два разряда влево (деление на 4) разность этих
считанных квадратов. Поскольку для хранения квадратов чисел
требуется намного меньше памяти, чем для хранения произведений этих
чисел, и устройства сложения/вычитания и сдвига сравнительно
просты, подобный метод умножения может быть рекомендован для
реализации.
7.3.4. Вычислительные устройства CORDIC
Как уже говорилось выше, (разд. 2.2 и 2.3), многие
распространенные алгоритмы, такие, как ДПФ, БПФ, комплексная и
Х-образная фильтрация, методы, основанные на вращении Гивенса
(например, QR-разложение), легко могуть быть описаны в виде
вращений [Ahmed85]. Для этого класса приложений пригодно
использование вычислительных устройств CORDIC [Volde59, Walth71].
Основная схема CORDIC
Схема CORDIC (Coordinate Rotation Digital Computer - цифровой
компьютер с координатным вращением) является итерационной схемой
для вычисления обобщенного вектора вращений (альтернатива
простому умножению). Вращения могут быть описаны следующими
уравнениями:
Реализация матричных процессоров
511
Ш]
= ΓΊ cos(m а.)
/ = 1 '
1
1 1
mVtg(mV)
1 1
-m2a.tg(m2ap
1
х(0)
У(0)
(7.2)
z(n)=z(0)+Yy.ac
(7.3)
Вращение может быть круговым, гиперболическим или линейным в
зависимости от значений пг (1,-1 или 0 соответственно), σ могут
принимать значения -1 или 1, в зависимости от чего становятся
равными нулю ζ(η) или у(п). В последнем случае операция
называется векторной. В табл. 7.5 приведены все возможные значения для
т=\ (круговое вращение), т--\ (гиперболическое вращение) и т=0
(линейное вращение).
Углы а. должны удовлетворять следующему условию (так, чтобы
или у(п) —»0 или ζ(η) —>0):
k-i < αί < αί-ν
(7.4)
Эти углы могут быть выбраны так, чтобы значения имели следующий
вид:
-G (О
tg(mV) = 2 т
62
(7.5)
где 6=0 или 1 и F U) и G (i) - неотрицательные целые числа.
После такого выбора уравнение (7.2) может быть реализовано с
использованием только сумматоров и сдвиговых регистров (исключая
операцию масштабирования | |" cos(m α.), которая может быть
выполнена с использованием устройств CORDIC при т=0).
Отметим, что, хотя обычно существует более эффективная схема
для вычисления какой-либо функции (например, извлечения
квадратного корня), достоинство устройств CORDIC состоит в их
универсальности и гибкости. Процессор цифровой обработки сигналов,
предназначенный для различных применений, может обладать
большими достоинствами благодаря такой гибкости.
Гибкость устройств CORDIC наиболее удачно используется в
матричных процессорах, где в одной конвейерной линейке могут
потребоваться разные операции. Отметим, что скорость конвейера часто
ограничена наихудшей (самой медленной) операцией в конвейере,
512
Глава 7
Таблица 7.5. Различные случаи вращений для т=0,\ и -1
т
0
0
1
1
-1
-1
х(п)
х(0)
х(0)
x(0)cos(z(0))-
y(0)sinU(0))
1
(x(Q)2+y(0)2)2
жтт
1
(х(0)2-у(0)2)2
У(п)
г(0)х(0)+у(0)
0
*(0)sin(z(0))+
y(0)coslz(0))
0
x(0)sh(z(0))+
y\0)cHz\0))
0
z(n)
0
z(0)-y(0)/x(0)
0
«<**mi
0
»«*вьЩ)
так что весьма желательно, чтобы все операции имели примерно
одинаковое время выполнения.
Как только выбрано множество углов, удовлетворяющих уравнению
(7,4), коэффициент масштабирования
Ктп = ncos(mV) (7.6)
ι = 1
оказывается фиксированным и постоянным для всех вращений.
Соответствующим выбором F (Л и G (Л можно сделать так, чтобы К
rrr ' rrr т,п
вычислять при помощи простого сдвига. Вращение тогда будет
просто последовательностью сдвигов и сложений с завершающим сдвигом
для реализации масштабирования (глобального масштабирования).
Можно также использовать аппроксимацию первого порядка
η -F (i) -G (i)
Kmn = П(1-"*,(2 т - δ2 т )), (7.7)
с ε €{0,1} и иметь локальное масштабирование для каждого
микровращения. С учетом уравнения (7.5) масштабирование вновь
реализуется простыми операциями сдвига-сложения. Локальное
масштабирование может быть использовано для исключения возможности
переполнения на любой ступени,однако это приводит к увеличению
размера кремниевого кристалла. Поэтому более предпочтительной
альтернативой является глобальное масштабирование в сочетании с
контролем переполнения.
Поскольку в выборе множества углов {а.} существует некоторая
Реализация матричных процессоров 513
свобода, всегда можно найти множество {а.}, удовлетворяющее
ограничениям уравнений (7.4) и (7.5), со следующими
дополнительными ограничениями:
1) {Fm(0>Gm(i)}={F(i)tG(i)}y т.е. последовательность сдвиговых
коэффициентов одна и та же для трех типов вращений;
2) К является степенью 2.
Однако множество {а.}, для которых К является степенью 2,
может не быть регулярной последовательностью. Для
последовательной формы реализации уравнения (7.2) это приведет к
усложнению контроллера (увеличению размера кремниевого кристалла)
[Ahmed85].
С другой стороны, реализация уравнения (7.2) в виде
конвейера, каждая секция которого соответствует микровращению со своим
аппаратно реализованным сдвигом (уравнение (7.5)), является
более предпочтительной с точки зрения производительности и
управления, поскольку удовлетворяется первое дополнительное
ограничение, снижающее сложность. Кроме того, конвейерное устройство
CORDIC желательно использовать в высокопроизводительных волновых
процессорах, особенно в некоторых распределенных процессорах.
Конвейерное устройство CORDIC
Конвейерное устройство CORDIC подробно описано в работе
[Depre84]. Здесь рассматриваются только основные свойства
конвейера.
Основная архитектура одной секции конвейера приведена на
рис. 7.16 для 6=1 в уравнении (7.5). Для 6=0 верхняя половина
повторяется. Действительно, для 6=0 выполняются два
микровращения в одной секции конвейера. Значения σ. (σ.=1,-1) могут быть
легко получены из знакового разряда входного данного у в случае
представления в дополнительном коде, т.е. a=msb (у-данное), где
х означает булево дополнение х.
Непосредственная реализация, показанная на рис. 7.16,
обладает главным недостатком: задержка в секции для 6=0 зависит от
его индекса /. Это происходит из-за того, что перед вторым
микровращением (в нижней половине секции) необходимо ждать
появления первого из (n-F(i)) старших значащих разрядов входа у
(сумматоров в верхней половине секции) для того, чтобы переносы в
обеих половинах могли бы распространяться параллельно. Последняя
секция конвейера будет иметь наибольшую задержку, которая и
определяет производительность конвейера.
Ч—102Х
514
Глава 7
J I Сдвиг i
Вращение
1 Сдвиг i
Нормализация
Рис. 7.16. Одна секция конвейерного устройства CORDIC
Чтобы устранить этот недостаток, в работе [Depre84] была
предложена схема, вносящая, правда, некоторую нерегулярность в
аппаратуру.
Конвейерное устройство CORDIC в матричных процессорах
Архитектура, показанная на рис. 7.16, не пригодна для
операций деления (см. табл. 7.5), поскольку здесь отсутствует часть
z(i). Это сделано для экономии площади кристалла. Для остальных
операций вычисление ζ(ή) не требуется. Поскольку значения а.
фиксированы, для представления ζ(ή) используется
последовательность σ. Необходимо записывать только один разряд для каждого σ.
на каждую секцию конвейера или передавать его в другую секцию
конвейера для начала вращения, реализуя, таким образом,
поразрядную конвейеризацию (рис. 7.17).
Конвейерное арифметическое устройство CORDIC является,
возможно, лучшим предложением для реализации матричных процессоров,
которые выполняют круговые и гиперболические вращения как
элементарные операции. Примерами служат волновые процессоры для
QR-разложения, сингулярного разложения, разложения по
собственным значениям, решения задач методом наименьших квадратов,
решения систем линейных уравнений и реализаций алгоритмов
Реализация матричных процессоров 515
Х-образных фильтров. Благодаря способности не только выполнять
различные функции, но и производить их переключение в
конвейерном режиме, конвейерное АУ CORDIC предпочтительно для
реализации матричных процессоров, от ПЭ которых требуется
выполнение нескольких различных функций над данными после их
разбиения. Векторизация имеет дополнительное преимущество, состоящее
в том, что управление (сложение или вычитание) извлекается из
данных. Это означает, что контроллер может быть простейшим.
Кроме того, переключение функций требует наличия только одного
1
устанавливаемого параметра m .
Уникальная ситуация для вычислений на матричных процессорах
состоит в том, что в ПЭ, расположенных вдоль строки конвейера,
используются одни и те же значения углов. Поэтому желательно
прокачивать информацию об углах самым эффективным способом. В
отличие от работы обычного устройства CORDIC, где информация об
углах задается непосредственно, здесь она создается генератором
углов в виде специального набора управляющих разрядов устройства
CORDIC. При конвейерной обработке намного более эффективно
прокачивать эти управляющие разряды вдоль строки конвейера, чем
сами значения углов.
Однако с точки зрения сложности аппаратуры, скорость и
точность конвейерного АУ CORDIC представляются не столь
удовлетворительными. По сравнению с матричным устройством умножения АУ
1 2
CORDIC содержит почти на 4-я полных сумматоров больше (где η -
число микровращений или длина слова). Точность вычислений
зависит от выбранного множества углов {а.}, числа микровращений и
точности К , являющегося степенью 2. Кроме того, архитектура
на рис. 7.16 не допускает, чтобы операнды в операции умножения
были больше 1, поскольку шина данных имеет фиксированную ширину
При выполнении чистых операций умножения и деления АУ CORDIC
не может соперничать с традиционными АУ. Однако для кругового и
гиперболического вращения и векторизации оно превосходит в
быстродействии архитектуры, реализующие табличные операции или
содержащие устройства умножения/деления. Для более тщательного
Удачным примером являются методы Гивенса, используемые в
QR-разложении. Хотя операции генерирования углов вращения
(выполняемые граничными ПЭ) и вращения Гивенса (выполняемые
внутренними ПЭ) существенно отличаются друг от друга, они могут быть
выполнены на одном и том же устройстве CORDIC
516
Глава 7
xjo]
47 47
yJO] xjl]
,w
ajn+l]
47 47
yjl] xj2]
•J2i
ψ
xj3]
47 \7
x'|n+l) о
~S031—-
ajn+2]
47 О
yj3]
47 О
x'[n+2l x'[n+3]
■J3J
^,[4]
a [n+3]
47 N7
47 47
ψ]
aln+4]
47 47
Рис. 7.17. Волновой процессор CORDIC с поразрядной
конвейеризацией между модулями. Значения, относящиеся к каждому шагу
алгоритма, заключены в квадратные скобки [Dewil85].
сравнения по скорости, сложности и производительности матричных
устройств умножения и АУ CORDIC можно обратиться к работе
[Ahmed85].
7.4. РЕАЛИЗАЦИЯ НА УРОВНЕ СИСТЕМЫ
Как уже говорилось в разд. 6.2, желаемыми характеристиками
матричной процессорной системы являются высокая скорость,
гибкость, возможность расширения и умеренная стоимость. Общая
конфигурация системы была изображена на рис. 6.1, когда обсуждались
вопросы проектирования основных компонентов. Поэтому здесь
предлагается лишь краткий обзор. В этом разделе будут также
рассмотрены различные типы сетей обмена, наличие которых становится
существенным во многих разработках.
7.4.1. Общие вопросы архитектуры системы
Матричная процессорная система состоит из четырех главных
компонентов: ведущей ЭВМ, системы интерфейса, массивов ПЭ и
сетей обмена.
Ведущая ЭВМ обеспечивает хранение пакетов данных, управление
и форматирование данных; устанавливает планирующую программу,
которая управляет системой интерфейса и сетью обмена; генерирует
и загружает объектные коды в ПЭ. Системный контроллер под
управлением команд планирующей программы ведущей ЭВМ выполняет реор-
Реализация матричных процессоров 517
ганизацию данных и их прямую пересылку.
Устройство интерфейса, связанное шиной с ведущей ЭВМ,
выполняет функции загрузки и откачки данных. Реализуя планирующую
программу, глобальное устройство управления управляет системой
интерфейса и сетью обмена. Обычно система интерфейса
обеспечивает ПДП, буферизацию (если необходимо, и хранение в кэш-памяти),
обработку прерываний и управление данными и очередностью.
Массив (матрица) ПЭ включает некоторое число процессорных
элементов с локальной памятью. Сложность ПЭ в определенной
степени зависит от числа ПЭ. Массивы ПЭ можно разделить на три
большие группы в зависимости от числа ПЭ: 1) число ПЭ порядка
десятков, 2) тысячи ПЭ и 3) миллионы ПЭ. Процессоры первой
группы обычно реализуются на одной или нескольких печатных платах.
Процессоры второй группы обычно изготавливаются на одном
кристалле и являются совместимыми со многими коммерчески доступными
микропроцессорами. Процессоры третьей группы обычно реализуются
на нескольких кристаллах (производят, как правило, поразрядную
обработку) и являются совместимыми с заказными СБИС. Эта
классификация изображена на рис. 7.18 [Seitz84]. Примером
использования простейшего ПЭ может служить матричный процессор GAPP фирмы
NCR. На рисунке он располагается в области пересечения группы ЗУ
с усложненной логикой и группы вычислительных массивов. Для
многих задач обработки изображений с низкой точностью часто более
предпочтительными являются простые процессорные примитивы.
Примером более сложных ПЭ служит транспьютер фирмы INMOS. Многие
приложения ЦОС требуют наличия быстрых устройств умножения с
накоплением, высокоскоростных ОЗУ, быстрой адресации к таблице
коэффициентов, и в этом случае возможным выбором представляется
специализированная версия транспьютера. На рис. 7.18 видно, что
массив транспьютеров принадлежит в значительной степени к
области микрокомпьютеров. Благодаря наличию встроенной аппаратуры
асинхронной связи, транспьютеры идеально подходят для реализации
волновых матричных процессоров.
Сети обмена обеспечивают множество соединений между
процессорами или между процессорами и модулями памяти, необходимых
для нужд общей глобальной связи. Введение средств
структурированного обмена может значительно повысить производительность
матричных процессоров. Топологии сетей обмена делятся на три
типа: шины, статические сети и динамические сети. В следующем
подразделе различные типы сетей обмена будут обсуждены более
подробно.
518
Глава 7
\ Логически расширенные устройства памяти
Вычислительные массивы
Массивы микрокомпьютеров
Сложность узлов
Рис. 7.18. Различные уровни сложности ПЭ в матричной
процессорной системе (из работы [Seitz84]).
7.4.2. Сети обмена
Многие рекурсивные алгоритмы по своей природе требуют осу
ществления глобальной связи между процессорными элементами, что
определяет необходимость наличия сетей обмена. Сети обмена
обеспечивают множество отображений между процессорами и модулями
памяти, обусловленных определенными требованиями глобальной
связи. Основное требование к сети обмена заключается в том, чтобы
все сообщения с максимальной скоростью были бы переданы
получателям. Выбор подходящих сетей обмена для матричных процессоров
должен быть предметом внимательного рассмотрения. Ниже описано
несколько примеров широко применяющихся сетей обмена.
Сети с шинной организацией
Структуры с одной или несколькими шинами уже много лет широко
используются в обычных многопроцессорных системах [Hwan84a].
Одним из примеров может служить система Multimax фирмы Encore
Computer, которая имеет шину с пропускной способностью
100 Мбайт/с, с возможностью расширения с 2 до 20
микропроцессоров. Хотя сети с шинной организацией могут быть сделаны чрезвы-
Реализация матричных процессоров 519
чайно мощными путем использования сверхбыстрых шин, число
процессоров в системе всегда ограничено пропускной способностью
шин.
Статические сети
Статические сети имеют жестко фиксированные соединения, вход
и выход зафиксированы без возможности переключения. Они могут
быть классифицированы в соответствии с размерностями, требуемыми
для их размещения. Типичными примерами являются одномерный
линейный массив, двумерное кольцо, дерево, звезда, сетка и
гексагональный массив, трехмерное полностью связанное хордовое
кольцо, 3-куб, сети из циклически связанных 3-кубов, D-мерный массив
с топологией гиберкуба.
Дерево и толстое дерево. Относительно простой топологией
является двоичное дерево. Достоинствами древовидных сетей являются
короткое расстояние (порядка log^N) и эффективное размещение в
двух измерениях. Основным недостатком является связь в корне
дерева.
Толстое дерево [Leise85], предложенное Лейзерсон, является
сетью маршрутизации, основанной на двоичном дереве (рис. 7.19).
В листьях толстого дерева размещается множество η процессоров, а
внутренние вершины являются переключателями. Каждое ребро дерева
соответствует двум каналам: от предка к потомку и в обратном
направлении. При продвижении вверх по толстому дереву число
ребер, соединяющих вершину с ее предком, возрастает, и,
следовательно, увеличивается пропускная способность. Лейзерсон также
доказала, что для данного физического объема аппаратуры нет
сети, которая лучше бы использовала ресурсы, чем сеть с топологией
толстого дерева.
Гиперкуб. Одной из главных коммерческих сетей бесшинного типа
является сеть обмена типа гиперкуб. В этой архитектуре каждое
обрабатывающее устройство, называемое узлом, может связываться
непосредственно со своими ближайшими соседями в л-мерном
пространстве. Например, у каждого узла в двумерном гиперкубе имеются
два ближайших соседа, в трехмерном - три, четырехмерном -
четыре. Кристалл iPSC фирмы Intel содержит 32, 64 или 128
процессоров, соединенных в сеть типа гиперкуб каналами с пропускной
способностью 10 Мбит/с. Другая машина-гиперкуб - это Ncube/ten
фирмы Ncube of Beaverton (шт. Орегон), которая может быть расширена
до 10-мерного гиперкуба, т.е. может содержать 1024 узла. Один
520
Глава 7
Внешний интерфейс
Переключающий
узел
Рис. 7.19. Толстое дерево (из работы [Leise85]).
из недостатков этой схемы состоит в том, что если процессору
необходимо связаться с узлом, который не является его ближайшим
соседом, данные должны пройти через другие процессоры. Это может
снизить общую скорость вычислений, если необходимость в такой
связи возникает часто.
Динамические сети
Динамические сети - это сети с возможностью подключения
различных выходов к одному и тому же входу. Они могут быть однокас-
кадными и многокаскадными [Носкп83]. В матричных процессорных
системах часто применяются полный коммутатор и тасующие сети.
Полный коммутатор. Полный коммутатор обеспечивает полную
связность для каждого узла в сети, поскольку каждому узлу
соответствует отдельная шина. Главное достоинство полного
коммутатора - возможность поддержки одновременных пересылок ко всем
требуемым узлам сети. Однако стоимость аппаратуры, требуемой для
реализации переключающей матрицы и разрешения конфликтов при
множестве запросов, является высокой, что ограничивает
применение таких коммутаторов.
На рис. 7.20 показана организация полного коммутатора для
многопроцессорной системы [Enslo77].
Реализация матричных процессоров
521
р°
|р.
•
•
•
Рр-1
Η
ц
• · ·
Μ
m-1
r
'/°о I
•
•
•
f/°d-!
Рис. 7.20. Полный коммутатор для многопроцессорной системы (из
работы [Enslo77]).
Тасующая сеть. Математическое описание сети совершенной
тасовки было представлено в разд. 2.6. Сети совершенной тасовки
стали основой для многих многокаскадных сетей обмена. Как
упоминалось выше, с помощью сетей совершенной тасовки могут быть
реализованы матричные процессоры БПФ. Другие применения этих сетей
включают битонную сортировку и вычисление полиномов [Stone71].
Однако можно показать, что сеть совершенной тасовки является не
вполне удовлетворительной, так как она оставляет несвязанными
четыре подмножества процессоров. В качестве альтернативы,
свободной от этого недостатка, были предложены сеть совершенной
тасовки с обменами и сеть совершенной тасовки с ближайшим
соседом [Grosc79].
Одно/многокаскадные сети обмена. Однокаскадные сети обмена
(такие, как полный коммутатор, гиперкуб и тасующая сеть)
содержат фиксированное число каскадов или один каскад переключателей.
Таким образом, в Р-процессорном массиве сеть содержит один
массив из Ρ многоканальных переключателей. Многокаскадные сети
могут быть получены комбинацией некоторых однокаскадных сетей и
могут составить конкуренцию полному коммутатору, когда требуется
полная сеть соединений. Основная аппаратная конфигурация одно-
каскадной сети обмена представлена на рис. 7.21.
Однокаскадные сети часто ограничены своей связностью,
поскольку они могут непосредственно поддерживать только
ограниченное число перестановок. Перестановки более общего вида
достигаются путем многокаскадных итераций. Существуют два основных
подхода:
522
Глава 7
Буферы
Переключающие
элементы
Соединение
(статическое) проводов
Рис. 7.21. Основная аппаратная конфигурация однокаскадной сети.
1) Однокаскадная сеть обмена с зацикливанием (рис. 7.22,а). В
качестве примера однокаскадной сети обмена с зацикливанием может
НЦ-Д /\ уГ*"
Пер.
Пер.
щ
^
Пер.
Пер.
Пер.: Переключатель
Рис. 7.22. Однокаскадная сеть обмена с зацикливанием (а),
многокаскадная сеть обмена (б).
Реализация матричных процессоров 523
служить сеть, выполняющая перестановку типа "одиночный сдвиг" а,
тогда для выполнения k сдвигов а' ' требуются k "итераций" через
сеть.
Другим примером может служить вычисление БПФ с использованием
сети совершенной тасовки, показанной на рис. 7.23, а. В этом
случае линейный массив ПЭ вычисляет один этап БПФ, и промежуточные
результаты передаются для выполнения следующего этапа по сети
совершенной тасовки. Для вычисления ^-точечного БПФ требуется
\ogtyN этапов; поэтому при таком подходе требуется \og2N тактов
зацикливания.
2) Многокаскадная сеть обмена реализуется путем
каскадирования многих однокаскадных сетей обмена (рис. 7.22,6).
Динамическая многокаскадная сеть работает в основном так же,
как динамическая однокаскадная сеть с зацикливанием, но
потенциально имеет больше возможностей для конвейеризации.
Рис. 7.23. Матричный процессор БПФ, имеющий сеть обмена
совершенной тасовки с зацикливанием (а), и матричный процессор БПФ,
имеющий многокаскадную сеть обмена (б).
524
Глава 7
Вернемся к примеру вычисления БПФ. Можно соединить \og2N од-
нокаскадных сетей обмена в линейный массив и построить, таким
образом, многокаскадный матричный процессор БПФ (рис. 7.23,6)).
Его достоинство состоит в том, что в этом линейном массиве можно
конвейеризовать множество вычислений БПФ и получить выигрыш в
скорости по сравнению с однокаскадным вариантом, хотя сложность
вычисления БПФ остается по-прежнему log2#.
Сети для обеспечения конвейеризации на уровне матричных
процессоров
Система может содержать один или несколько локально связанных
матричных процессоров. Идея соединения нескольких матричных
процессоров в сеть привлекает в настоящее время большое внимание.
Например, когда задача может быть разбита на несколько
последовательно выполняемых подзадач, удобно выполнить каждую подзадачу
на предназначенном для нее матричном процессоре, используя сеть
для облегчения конвейеризации данных между матричными
процессорами. Так возникает конвейерная схема на уровне матричных
процессоров, которая может увеличить скорость обработки более, чем
на порядок.
7.5. ПРИМЕРЫ МАТРИЧНЫХ ПРОЦЕССОРНЫХ СИСТЕМ
Ниже кратко описаны различные типы существующих матричных
процессорных систем: SIMD-массивы, систолические процессоры,
волновые процессоры и компьютеры с архитектурой типа гиперкуб.
Эти системы разработаны исследовательскими лабораториями или
коммерческими фирмами. Рассматриваются также и другие матричные
процессорные системы с уникальной архитектурой, такие, как
сеточный процессор с множественной передачей, сеточный процессор с
сокращенным числом ПЭ и пирамидальные матричные процессоры.
7.5.1. Матричные процессоры с архитектурой SIMD
Как отмечалось в разд. 1.1, SIMD-компьютеры реализованы в
виде массива арифметических процессоров, локально связанных друг
с другом и обладающих локальной памятью. Команды поступают от
ведущей ЭВМ, а все процессоры одновременно выполняют одну и ту
же команду. Концепции SIMD-систем были предложены в конце 50 χ
годов Унгером (1958 г.) и позже фон Нейманом (1966 г.), однако
Реализация матричных процессоров
525
первой SIMD-машиной, сконструированной для практического
применения, была ILLIAC-IV (70-е годы).
Двоичные матричные процессоры
Двоичный матричный процессор (ВАР - Binary Array Processor)
состоит из одинаковых ПЭ, работающих в SIMD-режиме. Главное
свойство процессора ВАР - ПЭ с поразрядной обработкой и
локальная схема обменов (рис. 7.24). Такая архитектура 'позволяет
использовать более гибкие форматы данных (особенно для операций с
фиксированной запятой) и способствует эффективному использованию
памяти и вычислительных ресурсов. Было разработано несколько
крупных двоичных матричных процессоров, например МРР (Massively
Parallel Processor - массивно-параллельный процессор), DAP
(Distributed Array Processor - распределенный матричный процессор).
Новое пополнение семейства двоичных процессоров - кристалл СБИС
фирмы NCR - геометрическо-арифметический параллельный процессор
(GAPP - Geometric-Arithmetic Parallel Processor) .
Массивно-параллельный процессор (МРР). МРР представляет собой
матричный процессор с поразрядной обработкой размером 128x128,
спроектированный фирмой Goodyear Aerospace в 1979 г. (рис. 7.25).
Процессорные элементы МРР имеют ряд интересных особенное-
Память (диск,
магнитная лента
и т. п.) |
Ведущая
ЭВМ
1
[
Устрой
|ство
]
управления
=5>
Буферная
память
Μ
Массив ПЭ
\ Выделение /
\ призна-/
\ ков /
Рис. 7.24. Системная организация процессора ВАР.
В некотором смысле Connection Machine - СМ-1 [Hilli85] также
принадлежит семейству ВАР, однако здесь она рассматривается в
классе компьютеров с архитектурой гиперкуб.
526
Глава 7
тей, среди которых сдвиговый регистр переменной длины,
мультиплексный ввод и структура данных, позволяющая совмещать операции
в матричном процессоре с вводом-выводом данных. Восемь таких
процессоров интегрированы в одну заказную схему, связанную с
высокоскоростным ОЗУ с высокой плотностью. Благодаря большой
скорости работы заказных схем время доступа к памяти превышает
время вычислений. Разработка процессора МРР демонстрирует
возможности производства SIMD-машин с высокой степенью интеграции
на современном уровне развития технологии СБИС. В настоящее
время он используется в NASA для обработки изображений, поступающих
со спутников [Fouta85].
Распределенный матричный процессор (DAP). Процессор DAP
разработан английской фирмой International Computer Limited.
Матрица DAP компонуется из групп (состоящих из 16 ПЭ) и может иметь
128-разрядный
интерфейс
ввода
Входной
регистр
Матричное
устройство
Управление h
128-разрядный
—► интерфейс
вывода
Состояние
Коммутация
.Интерфейс
внешнего
"управления
Выходной
регистр
Блок
управления
матрицей
Программы,
данные
Устройство
управления
программами
и данными
Терминал
Печатающее
устройство
Внешняя ЭВМ
Рис. 7.25. Общая архитектура машины МРР.
Реализация матричных процессоров
527
Связь с ведущей
ЭВМ ICL2900
Управление
доступом
к DAP
Шина столбцов
Процессорная
матрица
DAP 64 χ 64
Регистры
главного
устройства
управления
разряда
8x64
Модификатор
Команда
Буфер
команд
60x32
разряда
Счетчик
команд
Рис. 7.26. Основные компоненты системы DAP (из работы [Hockn83]).
разные размеры - 32x32, 64x64, 128x128 и 256x256. Каждый ПЭ
процессора DAP представляет собой одноразрядный сумматор,
размещенный в вершине блока ОЗУ (4096 разрядов) и имеет прямые связи со
своими четырьмя ближайшими соседями в квадратной решетке.
Интересное свойство этого процессора состоит в том, что матрицу
пересекают два ортогональных набора линий связи; это крайне
облегчает сдвиг данных. Ведущая ЭВМ (ICL2900) обеспечивает ввод-вывод
данных для процессора (рис. 7.26).
Сравнение DAP и GAPP. Как было сказано в разд. 7.2.2, GAPP
представляет собой коммерческий кристалл СБИС, состоящий из
матрицы (6x12) одноразрядных процессорных клеток (рис. 7.5). В
процессоре GAPP каждая команда пересылается всем ПЭ, т.е. массив
работает в режиме SIMD. Между ПЭ процессора DAP и ПЭ более
нового процессора GAPP есть много общего. Проект GAPP в более явном
виде воплощает концепции универсальности и булевой
эффективности. Наиболее важное отличие состоит в том, что в процессоре GAPP
каждому ПЭ доступна (параллельно) память гораздо меньшего объема
(128 разрядов), чем в DAP (4096 разрядов). Это привело к
беспрецедентной плотности размещения - 40000 ПЭ процессора GAPP в
объеме 60 кубических дюймов (при 3-микронной технологии). С другой
стороны, GAPP изначально предназначался только для решения задач
528
Глава 7
обработки сигналов и изображений с низкой точностью. В то же
время DAP может решать разнообразные задачи, например численной
гидродинамики, для которых памяти процессора GAPP явно
недостаточно.
Клеточный матричный процессор
Клеточный матричный процессор (САР - cellular array
processor) представляет собой многоразрядный SIMD-процессор, который
был разработан по 1,25-микронной технологии [Morto84]. Новизна
проекта состоит в том, что САР является отказоустойчивой машиной
с многоразрядной обработкой, в которой можно использовать 16
активных процессоров на кристалле, тогда как действительное
число процессоров составляет 20. Таким образом, отказ четырех
процессоров остается для пользователя незаметным. В кристалле
каждый ПЭ имеет память 4000 разрядов, кроме того, возможен
мультиплексный доступ к внешней памяти.
Основные операции ПЭ в САР управляются независимо, поэтому
операции могут выполняться параллельно. К таким операциям
относятся: 1) операции обмена память/общая шина; 2) арифметические и
логические операции, 3) операции ввода-вывода. Процессор САР
предназначен для приложений, характеризующихся параллелизмом и
вычислительной сложностью или повышенными требованиями к памяти.
Примеры использования - фильтрация Калмана и ассоциативная
память.
7.5.2. Систолический матричный процессор: машина Warp
Процессор Warp был разработан и изготовлен в Университете
Карнеги-Меллон совместно с промышленными партнерами и является
мощной вычислительной машиной, предназначенной для решения
многих задач обработки сигналов и изображений низкого уровня,
встречающихся в области машинного зрения. В настоящее время
изготовлено несколько экземпляров процессора Warp. Среди первых
демонстраций его применения была пассивная навигация движущихся
роботов или автономных устройств [Arnou85, HTKun85, Anna86b,
Anna86a].
В полной комплектации процессор Warp имеет систолический
массив, состоящий из 10 и более клеток, каждая из которых является
программируемым процессором с производительностью 10 MFLOPS.
Массив объединен с ведущей многопроцессорной ЭВМ, реализованной
Реализация матричных процессоров
529
на основе процессора 68020, которая может выполнять прикладную
программу (под управлением операционной системы UNIX BSD 4.2) и
обеспечивает высокоскоростной обмен данными с массивом и
различными устройствами ввода-вывода.
Процессор Warp обладает высокой степенью программируемости;
каждая клетка в массиве имеет горизонтальный микропроцессор, что
позволяет пользователю осуществлять полное управление различными
функциональными устройствами. Для сохранения подобного
параллелизма на микроуровне в Университете Карнеги-Меллон разработан
компилятор, поддерживающий программирование на языке высокого
уровня,.
В массиве процессора Warp допускаются два режима
программирования. В систолическом режиме массив может эффективно реализовы-
вать большое количество систолических алгоритмов, включая БПФ,
умножение матриц и двумерную свертку. В локальном режиме массив
может выполнять многие несистолические алгоритмы, когда каждая
клетка выполняет полное вычисление над своими данными независимо
от остальных клеток.
Машина Warp состоит из трех частей - ведущей ЭВМ, матричного
процессора (массива) Warp и устройства интерфейса (УИ),
показанных на рис. 7.27.
Матричный процессор Warp
Как уже отмечалось, процессор Warp является программируемым
систолическим массивом с однотипными клетками, называемыми
Warp-клетками, работа которых синхронизируется глобальными
синхроимпульсами с тактом 200 не, генерируемыми устройством интер-
Adr
(Адреса и систолические
управляющие сигналы)
Ведущая ЭВМ
X (Данные)
Устройство
интерфейса
Клетка
1
Клетка
2
Υ (Данные)
Клетка
N
Матричный процессор
Рис. 7.27. Конфигурация машины Warp (из работы [Arnou85]).
34—1028
530
Глава 7
I СледУ
JMynbTXL
-Ючередьуи
ПредУ
ПредХ
МультУ
ОчередьХ
Литералы микропрограммы
Память
HI
Мульт Адр
~~Е1
ПредАдр
Очередь Адр
Коммутатор X
Тек У
ТекХ
Набор
регистров А
АЛУ
α
Набор
регистров Μ
УУ
ТекАдр
Рис. 7.28.
[Arnou85]).
Конфигурация клетки процессора Warp (из работы
фейса. Данные в массиве передаются по двум информационным
каналам (X и Y), а адреса и систолические управляющие сигналы - по
адресной шине (Adr) (рис. 7.28). Каждая Warp-клетка имеет
собственную память программ и устройство управления выдачей команд.
Информационный канал клетки состоит из двух процессоров с
плавающей запятой (одного устройства умножения и одного АЛУ), памяти
емкостью 64К слов для хранения постоянных и временных данных,
очередей для каждого канала связи и регистрового файла для
буферизации данных в каждом арифметическом устройстве.
К массиву Warp может быть подключен ВР (Boundary Processor -
граничный процессор). Он имеет двунаправленные каналы связи с
УИ, с первой и последней клетками массива. Подобное кольцевое
соединение делает возможным зацикливание данных в массиве Warp
без участия ведущей ЭВМ. ВР содержит также устройство памяти
большого объема, используемое для буферизации данных, и быстрое
устройство для выполнения операций деления и извлечения
квадратного корня. Конструкция ВР сходна с конструкцией Warp-клеток,
представленной на рис. 7.28.
Реализация матричных процессоров 531
Ведущая ЭВМ
Ведущая ЭВМ в основном отвечает за все операции,
обеспечивающие массив Warp требуемым потоком данных через устройство
интерфейса. Она может также выполнять вычисления, которые не могут
быть эффективно выполнены на массиве Warp. Ведущая ЭВМ состоит
из рабочей станции с шиной VME (в настоящее время это - Sun
2/160), которая используется как главный контроллер машины Warp,
и внешней ведущей ЭВМ, названной так по отношению к рабочей
станции. Рабочая станция обеспечивает среду ОС UNIX для
выполнения всех прикладных программ, а внешняя ведущая ЭВМ ответственна
за высокоскоростной обмен данными с систолическим массивом.
Внешняя ведущая ЭВМ состоит из трех автономных процессоров
68020, работающих вне операционной системы UNIX, чтобы исключить
системные перегрузки. Два из трех автономных процессоров
являются кластерными процессорами, отвечающими за обмен данными с
массивом Warp, а третий - процессором поддержки, который управляет
периферийными устройствами (например, камерой или монитором) и
обрабатывает прерывания, вызванные кластерными процессорами или
массивом Warp. Автономные процессоры работают под управлением
операционной системы реального времени, которая позволяет
планировать очередность событий.
Устройство интерфейса
Устройство интерфейса (УИ) полностью управляет
взаимодействием ведущей ЭВМ и процессора Warp и обеспечивает генерирование
сигналов, управляющих процессором Warp. УИ содержит следующие
компоненты (рис. 7.29):
1. Входные и выходные очереди FIFO, каждая из которых имеет
ширину 32 разряда и глубину 512 разрядов, используемые для
буферизации данных между ведущей ЭВМ и массивом Warp.
2. Преобразователи целых чисел в формат с плавающей запятой и
наоборот.
3. Коммутаторы ввода-вывода, позволяющие массиву процессора
получать или посылать данные через один из двух входных/выходных
портов УИ.
4. Генератор адреса, посылающий 16-разрядные адреса в
процессор Warp со скоростью один адрес за 100 не.
5. Интерфейс с ведущей ЭВМ, содержащий три 32-разрядных
регистра - регистр состояния, регистр управления и регистр пре-
} j»
532
Глава 7
Вх. Данные
Ведущая ЭВМ
Прерывание
Вых. Данные
Управление
вводом
Входная
[очереди IFOl
Преобразо-
ватель
[целого числа|
в формат с
плавающей
запятой
Входной
коммутатор
IZE
"1 ! [
Интерфеи
1нтерфейс
с ведущей
ЭВМ
•Управление!
выводом?
Генератор
адреса
Выходная
[очередь FIFOl
Преобразо
ватель числа!
|с плавающей)
запятой в
формат
целого
Выходной
коммутатор!
i tTl
Ввод данных Адрес Вывод данных
Ост. часть
Матричный процессор Warp
Рис. 7.29. Устройство интерфейса процессора Warp (из работы
[Arnou85]).
рываний. Содержимое этих регистров доступно ведущей ЭВМ в любое
время.
Производительность
На машине Warp было выполнено несколько эталонных тестовых
программ. 1024-точечное комплексное БПФ может быть выполнено на
10-клеточной машине Warp за время 0,6 мс. Двумерное дискретное
косинус-преобразование изображения 256x256 может быть выполнено
за 13 мс. Процессор Warp с присоединенным граничным процессором
эффективен при выполнении обычного набора основных операций над
матрицами. Например, сингулярное разложение матрицы размером
100x100 может быть выполнено за 1,4 с.
Отметим, что в процессоре Warp отсутствует сеть обмена. Связь
между массивом и ведущей ЭВМ осуществляется только через
граничные клетки массива. Хотя такой подход упрощает проблему
взаимодействия массива и ведущей ЭВМ, он недостаточно гибок для более
общих требований к связи. В результате параллелизм в процессоре
Warp обеспечивается скорее благодаря конвейерной обработке,
нежели параллельным вычислениям.
Реализация матричных процессоров 533
7.5.3. Волновые матричные процессорные системы
Волновой матричный процессор, связанный с памятью
Волновой матричный процессор, связанный с памятью (MWAP -
Memory Linked Wavefront Array Processor) [Dolec84] представляет
собой новый ВМП, разработанный в Лаборатории прикладной физики
Университета им. Дж. Гопкинса и реализованный по ССБИС-
технологии. Благодаря использованию ССБИС-кристаллов процессор
имеет очень высокую производительность. Система представляет
собой кольцевую сеть, в каждом узле которой размещен волновой
матричный процессор. Процессор MWAP имеет модульную структуру на
уровне вычислительной системы и на уровне ПЭ. Основная
архитектура системы (рис. 7.30) состоит из шинного интерфейса
двухпортовой памяти (которая может быть реализована на основе четырех-
портовой памяти фирмы TRW, статической памяти фирмы Texas
Instruments или набора регистров), множества пар процессорный
элемент - двухпортовая память и выходного шинного интерфейса.
Каждый ПЭ процессора MWAP (рис. 7.31) состоит из устройства
управления, устройства обработки команд, кэш-памяти команд, бло-
ВхШИ - Вход шинного интерфейса
ВыхШИ - Выход шинного интерфейса
ДПП - Двухпортовая память
ПЭ - Процессорный элемент
1 ПЭ
| ДПП
1 пэ 1
ДПП Η
ВхШИ L
г
Управление
ДПП
ВыхШИ
J 1
Вход
Рис. 7.30. Система MWAP с кольцевой шиной (из работы [Dolec84]).
534
Глава 7
Левая шина данных
[Кэш-память|
команд
Адрес
программы
Дешифрация, управление
и синхронизация
Сравнение
Счетчик Сравнение
R3
R4
R5
R6
^^ ъ_?
Мульт
"Т
Мульт
ΖΓ
\Устройство /
\ vye7
Мульт.
I
R1
Мульт.
R2
Халу/
ш
R0
Правая шина данных
Левый Правый
адрес адрес
1 X
Мульт 1
1
Мульт.
^Поразрядное
(обращение
Адресные
регистры
Регистры базы
Рис. 7.31. Процессорный элемент системы MWAP.
ка адресных регистров, устройства умножения с плавающей запятой
и АЛУ с плавающей запятой. Сразу после загрузки кэш-памяти
команды память программ и память данных разделяются. Важной
особенностью этой архитектуры является структура адресации памяти.
Адресация всей памяти производится путем обращения к адресному
регистру, который может быть считан, считан с последующим
приращением или считан с последующим сбросом для установки базового
адреса во время загрузки программы. ПЭ одновременно считывается
или загружается в память данных в обоих направлениях.
Синхронизация ПЭ в MWAP производится левым и правым управляющими флагами
в устройстве адресации памяти.
ПЭ всегда может считывать из памяти, расположенной слева или
справа от него. Однако записывать в память его можно только
тогда, когда управляющий флаг этой памяти сброшен. Каждый ПЭ может
Реализация матричных процессоров 535
установить управляющий флаг или подтвердить его сброс в любой
памяти. При попытке ПЭ произвести запись в память с
установленным управляющим флагом выполнение программы приостанавливается
до тех пор, пока флаг не будет сброшен, после чего
команда записи в память выполняется. Кроме того, установка
управляющего флага в памяти приводит к началу выполнения программы
простаивающим ПЭ. Такая структура управления памятью обеспечивает в
MWAP высокую скорость уплотнения программ при полном управлении
потоком данных.
Подобное объединение множества адресных регистров с памятью
не только обеспечивает глобальное взаимодействие ПЭ, но также
позволяет осуществить эффективное дополнение нулями входных
данных БПФ и интерполяционную фильтрацию. Во время инициализации
память процессора MWAP заполняется нулями. При обработке
сигналов квантованные отсчеты записываются только по соответствующим
адресам.
В задачах обработки сигналов большое внимание уделяется
точности и скорости работы арифметических устройств, что приводит к
компромиссному выбору арифметических устройств (параллельное или
последовательное, фиксированная или плавающая запятая). При
разработке прототипа процессора MWAP было выбрано параллельное 24-
разрядное арифметическое устройство с плавающей запятой,
обладающее большими возможностями, чем используемый в настоящее время
в анализаторе гидроакустических сигналов матричный процессор
АР 120В фирмы Floating Point Systems. Кроме того, упрощено
масштабирование данных, поскольку динамический диапазон чисел с
плавающей запятой в процессоре MWAP составляет 1,4 χ 10 -
1,7 χ 1038.
Устройство умножения с плавающей запятой процессора MWAP
может произвести 10 умножений в 1 с, тогда как устройство
умножения с фиксированной запятой, изготовленное по ССБИС-технологии -
25 · 106 оп/с. Однако статическое ОЗУ фирмы Texas Instruments,
также изготовленное по этой технологии и используемое в
двухпортовой памяти процессора MWAP, может поддерживать только около
10 обращений в 1 с для каждого ПЭ. Следовательно, для операций
над действительными числами в задачах фильтрации скорость
обращения к памяти и скорость выполнения умножения совпадают.
Комплексное БПФ требует шесть чтений из памяти слева (и четыре
записи в память справа) при" четырех умножениях, трех сложениях и
трех вычитаниях в каждом цикле ПЭ, т.е. и в этом случае скорости
обращения к памяти и вычислений согласованы.
536
Глава 7
Заметим, что использование четырехпортового ССБИС-кристалла
памяти фирмы TRW вместо статического ОЗУ позволит процессору
MWAP достичь скорости 25· 106 умножений в 1 с. Однако это
приведет к росту числа кристаллов памяти до 64 (1024 слов χ 4 бит)
для каждого ПЭ по сравнению с 4 (8194 слова χ 9 бит)
кристаллами, используемыми в статическом ОЗУ.
ВМП-система STC-RSRE
Разработку матричных процессоров можно упростить, если ее
производить на базе коммерчески доступных кристаллов, по крайней
мере при создании экспериментальных прототипов. Эти кристаллы
должны обеспечивать помимо вычислительной мощности возможности
связи и механизмы интерфейса.
Первая реализация. В Королевском управлении по обработке
радиолокационных сигналов (Великобритания) (RSRE - Royal Radar
Signal Establishment) волновой матричный процессор для алгоритма
минимизации методом наименьших квадратов на языке Оккам был
реализован на массиве микропроцессоров [Broom85]. Поскольку в то
время транспьютер еще не был доступен, были использованы платы
транспьютерных эмуляторов, позволившие выполнить алгоритмы и
оценить производительность. Каждый эмулятор состоял из схемной
платы, содержащей процессор Intel 8086 (8 МГц) с каналами,
подобными транспьютерным. Четыре порта работали асинхронно (т.е. с
подтверждением связи) со скоростью 200 Кбод, причем системные
программы обеспечивали полное соответствие каналов эмуляторов
"кремниевым" каналам транспьютера. Пятый канал был
запрограммирован для выполнения функций асинхронного канала RS232, по
которому проходила загрузка программ. Память данных - СППЗУ емкостью
8 Кбайт - предназначалась для начального загрузчика и
управляющей программы. Кроме того, каждый эмулятор имел кристалл таймера
Intel 8254, позволивший аппаратно реализовать функции
синхронизации языка Оккам. Отношение времени работы центрального
процессора ко времени ввода-вывода было таким, что скорость работы
эмулятора составляла одну пятую скорости реального транспьютера.
Перестраиваемая реализация. Фирма STC (Standard
Telecommunication Company) и RSRE совместно разработали с целью
демонстрации параллельной обработки сигналов волновую матричную систему
для адаптивного формирования луча антенны. Система может
перестраиваться для решения множества задач распределенной матричной
обработки [Davie86].
Реализация матричных процессоров 537
Разработка ПЗ. Проект ПЭ основан на использовании процессора
TMS32010 и дополнительного оборудования, реализующего порты
ввода-вывода, вычисления с плавающей запятой, просмотр таблиц,
локальное управление и диагностический канал с поразрядной
передачей. В ПЭ входят также ПЗУ программ, содержащее неизменяемую
программу, реализующую алгоритм, и ОЗУ программ, в которое можно
загрузить программы, реализующие другие алгоритмы, что
обеспечивает гибкость обработки. На рис. 7.32, α и б представлены
соответственно блок-схема и процессорная плата ПЭ ВМП-системы STC-
RSRE.
ВМП-система. При использовании для адаптивного формирования
луча ВМП-система состоит из 33 одинаковых ПЭ, 21 из которых
организован в виде треугольного волнового процессора, выполняющего
основную функцию, а остальные 12 ПЭ выполняют коррекцию данных и
другие функции предварительной обработки. Блок-схема всей
системы показана на рис. 7.33.
Внешний вид изготовленной системы представлен на рис. 7.34.
Система оснащена также внешней ВЧ/ПЧ-подсистемой, приемником с
гетеродинированием (ПГ) и цифро-аналоговым преобразователем.
Вычислительная система вмонтирована в стойку вместе с блоками
питания и системой воздушного охлаждения.
Система была успешно применена во многих экспериментах при
работе в реальном времени. Характеристика подавления помех
превышает 50 дБ при одном источнике помех и 40 дБ при многих
источниках помех. Формы входных и выходных сигналов до и после
подавления шумов приведены на рис. 7.35, α и б соответственно.
Достигнута производительность порядка 10000 отсчет/с, а при реализации
системы, использующей узловые процессоры на СБИС, ожидается нам-
-7
ного большая производительность (свыше 10 отсчет/с). Эта
система описывается ниже.
ВМП с узловыми процессорами на СБИС
Любая последующая реализация волновых процессоров для
обработки сигналов в реальном времени требует разработки
специализированных процессоров на СБИС, обеспечивающих более компактное
исполнение системы и совместимость по скорости с современными
РЛС, средствами связи и радиоэлектронной защитой. Последняя
работа в STC по программе развития ССБИС в Великобритании связана
с определением высокопроизводительного "узлового кристалла" СБИС
(Node Chip), мыслимого в качестве программируемого стандартного
538
Глава 7
Входной
Порт 2
Входной ^ ι
Порт 1 ' \^Л
FIFO
Проем
табл
5\
К=^й
Усл. рвз
сФЗ
JL
FIFO
IRenorm,
Logic
ίζ.
Кристалл ЦОС
Память
программ
Процессор
TMS32010
Ё=С4
ПЗУ
ОЗУ
ι ^Выходной
I—\S порт 1
Выходной
порт 2
Последовательный
' канал связи
Рис. 7.32. ВМП-система STC-RSRE, проектирование ПЭ: блок-схема
(а) и процессорная плата (б) (из работы [Davie86]).
блока подсистем ВМП реального времени.
К требованиям к узловому кристаллу были отнесены следующие
принципиальные характеристики:
• Высокопроизводительный процессор - на одном кристалле.
Реализация матричных процессоров
539
Антенна Устройство ВЧ/ПЧ
Вычислительная подсистема
Блок
питания
■{ВЧ/ПЧ 6|-
-ГВЧ/ПЧ 5f-
\ ВЧ/ПЧ 2|-
{ВЧ/ПЧ 1|-
Генера-
тор
Подсистема синхронизации/
управления/интерфейса
7Т
Интерфейс
реального
времени
ν
о
-Аналоговый
выход
Терминал
ЭВМ
Рис. 7.33. Блок-схема адаптивной ВМП-системы STC-RSRE (из работы
[Davie86]).
Рис. 7.34. Внешний вид ВМП-системы STC-RSRE (из работы [Davie86]).
• Управление вводом-выводом, ЗУ программ и данных,
арифметические устройства и параллельные блоки устройств умножения - на
одной плате.
• Полное управление подтверждением связи, допускающее простое
взаимодействие соседних процессоров.
540
Глава 7
10 dB/div.
REF 10.0 dBm
—/
л
ι
I
~~T
ι ■ 5
ι ?
I 1
I 1
ι f
ι '
t
1
I
1
1
1
1 /
1 /
1 1
I
I
1
1
I
\—
J2
|
~~T
ι—
START 500 HZ
RES BW 100 HZ
10 dB/div.
REF 10.0 dBm
VBW 100 Hz
STOP 5.000 kHz
SWP 3.0 sec
I
л
1
\
i i
\
Ι ι
I
1
1
1
1
I
1 /
1 /
1 /
!l /
1 ll
1 1
1
1
1
ι
f
J
\
2
'
START 500 Hz
RES BW 100 Hz
VBW 100 Hz
б
STOP 5.000 kHz
SWP 3.0 sec
б ЭЛЕМЕНТОВ, 3 ИСТОЧНИКА
ИСТОЧНИК УГОЛ МОЩНОСТЬ, дБ
Л
S
J2
"48о
-15
0
-30
-50
-45
ПОРОГ ШУМА РАВЕН -60 дБ
Рис. 7.35. Входной сигнал до подавления шумов (а) и выходной
сигнал после подавления шумов (б) (из работы [Davie86]).
Реализация матричных процессоров 541_
• Внутренняя архитектура, оптимизированная для арифметики с
плавающей запятой.
• Программируемость.
Узловой кристалл является основным компонентом в быстрых
системах предварительной обработки сигналов, где реализация на СБИС
обеспечивает скорости обработки, соответствующие требованиям
современных РЛС и средств связи.
При проектировании и реализации этого кристалла тщательно
рассматривались два практических вопроса - поток данных и
функциональное управление в реальном времени. Поток данных в
волновых процессорах может оказаться сложным процессом, когда
существенным является достижение высокой производительности. При этом
налагаются ограничения на объем данных, который может быть
передан между кристаллами при выполнении заданного алгоритма.
Узловой кристалл совмещает вычисления и передачу данных путем
использования FIFO-буферов на входных и выходных портах. Поэтому
максимальный поток данных достигается путем асинхронного
выполнения вычислений и передачи данных.
В узловом кристалле необходимо также обеспечить повышенный
уровень динамического функционального управления. Применение
сложных алгоритмов для обработки сигналов в реальном времени
часто требует, чтобы параметры обработки варьировались согласно
требуемой производительности и внешних условий (например,
динамическое управление полосой пропускания цифрового фильтра с
помощью быстрой подгонки весовых коэффициентов фильтра). Помимо
обычных портов ввода-вывода данных узловой кристалл оснащен
также средствами передачи управляющей информации от ведущей ЭВМ.
Управляющие данные распространяются по массиву процессорных
узлов синхронно с волновыми фронтами данных.
7.5.4. Компьютеры с архитектурой типа гиперкуб
Компьютеры с архитектурой типа гиперкуб состоят из некоторого
числа процессоров (или компьютеров), соединенных в сеть типа
гиперкуб с помощью двунаправленных асинхронных каналов связи.
Более точно, гиперкуб - это массив из N=2n процессоров, каждый
из которых непосредственно связан с η соседями, размещенными в
л-мерном кубе (рис. 7.36).
Естественным способом разметки узлов, расположенных в Ν=2η
вершинах я-мерного гиперкуба, является маркировка каждого узла
л-разрядным двоичным числом, i-vi разряд числа представляет собой
542
Глава 7
Рис. 7.36. Архитектура четырехмерного гиперкуба.
координату этого узла в i-u размерности. Узлы гиперкуба
соединены ребрами. В терминах схемы двоичной разметки соединены друг с
другом узлы, метки которых различаются только в одном двоичном
разряде.
Другим уникальным свойством компьютера типа гиперкуб является
использование для связи между параллельными процессами механизма
передани сообщений вместо механизма общих переменных. Машины с
передачей сообщений более просты и экономичны, чем машины с
общей памятью; при увеличении числа процессоров достоинства такой
архитектуры возрастают.
Компьютер Cosmic Cube
Компьютер Cosmic Cube (разработанный в Калифорнийском
технологическом институте), имеющий архитектуру типа гиперкуб и
состоящий из 64 узлов, может выполнять 3*10 операций с плавающей
запятой в 1 с [Seitz85]. Этот компьютер не имеет специального
языка программирования. Программы пишутся на обычных
последовательных языках программирования (например, Паскале или Си),
дополненных операторами или внешними процедурами для управления
посылкой и получением сообщений. Эти программы компилируются на
других компьютерах, а затем загружаются и размещаются внутри
узла в виде двоичного кода и сегментов данных и стека.
В настоящее время компьютер Cosmic Cube применяется в
основном в задачах с большим объемом вычислений. Задачи
высокоскоростной обработки изображений требуют существенно большей
пропускной способности ввода-вывода.
Компьютер Connection Machine
Компьютер Connection Machine является новым типом
вычислительных машин, предложенным В.Д.Хиллисом из фирмы Thinking
Machines [Hilli85]. Он состоит из большого числа элементарных кле-
Реализация матричных процессоров
543
ток "процессор - память", связанных программируемой сетью связи.
Каждая клетка настолько мала, что не может выполнить никакой
осмысленной операции. Для выполнения операций множество клеток
объединяется в некоторые зависимые от данных конфигурации,
называемые активными структурами данных, которые одновременно и
представляют, и обрабатывают данные. Управление действиями этих
активных структур данных осуществляется извне обычной ведущей
ЭВМ. Связь Connection Machine с ведущей ЭВМ напоминает связь с
памятью, однако имеются некоторые отличия. Во-первых, с каждой
ячейкой памяти соединена вычислительная клетка, которая может
выполнять локальные вычисления над информацией, записанной в
этой ячейке. Во-вторых, существует общая сеть обмена, которая
может соединять все клетки в произвольные конфигурации. Наконец,
в-третьих, существует высокоскоростной канал ввода-вывода с
широкой полосой пропускания, который может осуществлять пересылку
данных между Connection Machine и периферийными устройствами со
скоростью, гораздо большей скорости ввода-вывода ведущей ЭВМ.
Был создан прототип компьютера Connection Machine,названный
СМ-1. СМ-1 состоит из 65536=2 процессорных клеток, каждая из
которых имеет память емкостью 4К бит и простое последовательное
АЛУ. Орновными элементами конструкции являются заказные КМОП-
кристаллы, каждый из которых содержит 16 процессорных клеток и
одно устройство маршрутизации. Устройство маршрутизации
ответственно за пересылку сообщений между кристаллами. Кристаллы
физически соединены в 12-мерный гиперкуб. Внутри кристалла
процессоры соединены в сетку размером 4x4. Каждая процессорная клетка
может взаимодействовать со своими соседями непосредственно, не
обращаясь к устройству маршрутизации. Двумерная сетка может быть
распространена и на несколько кристаллов. Все процессоры
выполняют команды из одного потока, генерируемого микроконтроллером
под управлением ведущей ЭВМ. Машина имеет пиковую скорость
выполнения команд (32-разрядное сложение) около 1000 MIPS. На рис.
7.37 показана блок-схема СМ-1, состоящая из ведущей ЭВМ, клеток
"процессор - память", сети связи и каналов ввода-вывода. На этой
машине были выполнены некоторые тестовые программы. Приведем
некоторые результаты [Frenk86]. Компьютер СМ-1 может
осуществлять поиск неструктурированного текста в базе данных, содержащей
около 15000 документов (около 40 Мбайт памяти), достигая 80%
эффективности по сравнению с 20 % для обычных систем. Он
обрабатывает визуальную информацию для построения контурных карт со
скоростью 7000 карт в час (скорость обычного компьютера - 15 карт в
544
Глава 7
Ведущая
ЭВМ
ΛΖ.
Шина памяти
А-гЧ-Л-Л-гЧ-гЧ-
■ϋ
Микроконтроллер
I I
ей
65535 клеток
х4096
32 Мбайт памяти
I I
-0--0--0---6--0---6-Н
ι ι ι ι ι ι
.0.. rh r"i rh ip—0-
1 Connection Machine 1 1 |
" гч3—Τ—Τ—iQ-~--i|l··-
1 I I I ι ι ι
I I I I I I
"—'—"TV—'—^
Ввод-вывод
ν
Рис. 7.37. Блок-схема системы CM-1 (из работы [Hilli85]).
час); он моделирует кристаллы СБИС, состоящие из 8000
транзисторов, тогда как обычные компьютеры ограничиваются 50 - 500
транзисторами; гидродинамические модели допускают использование не
более 8·106 частиц.
Вычислительная система FPS T-Series
Фирма Floating Point Systems (FPS) разработала однородную
вычислительную систему - FPS T-Series, основанную на сети обмена
типа гиперкуб [Gusta86]. Узлы представляют собой 64-разрядные
компьютеры с плавающей запятой, позволяющие реализовать
векторную арифметику, двухпортовую память и быстрые каналы связи между
узлами. Каждый узел реализован в виде одной схемной платы и
может выполнять 64-разрядные операции с плавающей запятой с
пиковой скоростью 16 MFLOPS. Восемь узлов объединены вместе с
системным узлом и дисковой памятью в модуль. Модули, смонтированные
Реализация матричных процессоров
545
в стойки, обеспечивают производительность 128 MFLOPS и могут
быть соединены друг с другом для получения более крупных систем.
Самая большая система может иметь 2 =16384 узлов.
Узловой процессор. Каждый узел состоит из управляющего
процессора, арифметического устройства с плавающей запятой,
двухпортовой памяти и каналов связи с другими узлами. Конфигурация
узла показана на рис. 7.38. Каждый из главных элементов узла
реализован по новейшей, экономически эффективной технологии
СБИС. В качестве управляющего процессора использован транспьютер
Т424 фирмы Inmos, который является 32-разрядным микропроцессором
и по крайней мере в три раза эффективнее микропроцессора 68020
фирмы Motorola. Управляющий процессор выполняет системные
программы и прикладные программы пользователя; он также формирует
векторные операнды для отсылки векторным арифметическим
устройствам. Главная память каждого узла представляет собой
двухпортовое динамическое ОЗУ емкостью 1 Мбайт. Управляющий
процессор и каналы связи читают и записывают 32-разрядные слова через
обычный порт с прямым доступом, тогда как векторное
арифметическое устройство позволяет использовать набор векторных регистров,
непосредственно связанных с главной памятью. Конвейерное
арифметическое устройство в FPS T-Series состоит из шестиступенчатого
Управляющий процессор
Статическое
103У2К
32-бит
адрес к
внешн.
памяти
| К1 | К2 | КЗ
Банк А
64К слов
Банк В
192Кслов
код
команды!
Арифметический контроллер
| мпо | мл ι | мп2 | мпз |
Г1
I 6-ступ. + J
Рис. 7.38. Узловой процессор системы FPS T-Series (из работы
[Gusta86]). К - канал, МП - мультиплексор.
35—1028
546
Глава 7
конвейерного устройства сложения с плавающей запятой, пяти- или
семиступенчатого конвейерного устройства умножения с плавающей
запятой, аппаратуры межсоединений и некоторых узлов управления.
Устройства сложения и умножения могут поставлять 32- или 64-
разрядный результат каждые 125 не и имеют пиковую
производительность 16 MFLOPS. Операции с плавающей запятой выполняются с
использованием предложенного IEEE формата вычислений с плавающей
запятой.
Каналы связи представляют собой четыре двунаправленных
последовательных канала транспьютера, каждый из которых имеет
эффективную скорость 0,5 Мбайт/с. Каждый канал - мультиплексный и
допускает работу по четырем направлениям, обеспечивая в узле 16
двунаправленных подканалов. Эти подканалы (с соответствующей
программной поддержкой) разделяют заданную пропускную
способность. Два подканала использованы для системной связи, два
используются для связи с массовой памятью и/или внешнего ввода-
вывода. Обычно в каждом узле 12 подканалов доступны для связи с
другими узлами.
Описание системы. Узлы соединены в гиперкубы. Восемь узлов
вместе с дисковой памятью и системной платой объединены в
модуль. Пропускная способность локальной межузловой связи
составляет 12 Мбит/с, тогда как системная плата может поддерживать
скорость обмена с внешними устройствами 0,5 Мбит/с. Системная
плата обеспечивает ввод-вывод и функции управления. Она
соединена с узлами при помощи каналов связи, которые проходят через
восемь процессорных узлов.
Системные платы непосредственно связаны друг с другом
каналами связи и образуют системное кольцо, независимое от двоичной
сети я-куба. В узле достаточно каналов, чтобы построить 14-
мерный гиперкуб - наибольшую конфигурацию, возможную в
вычислительной системе FPS T-Series. Благодаря тому, что система
является однородной, т.е. все модули идентичны и содержат идентичные
связи с другими модулями, программирование системы сильно
упрощено.
Программирование. Так как в FPS T-Series в качестве
управляющего процессора выбран транспьютер, то естественно использовать
для программирования язык Оккама. С помощью Оккама можно
управлять всеми возможностями транспьютера. Оккам может виртуально
описывать потоки команд и данных для любого вычислительного
алгоритма решения научной задачи и осуществлять управление
операциями высокого уровня векторного арифметического устройства.
Реализация матричных процессоров
547
7.5.5. Другие варианты матричных процессорных систем
Остановившись на обработке изображений в качестве примера
приложений, отметим, что задачи обработки изображений фактически
охватывают две различные области: обработку изображений на
низком уровне и анализ зрения на высоком уровне. Обработка
изображений на низком уровне включает алгоритмы для восстановления,
удаления шумов, геометрической коррекции, определения контуров
или выделение признаков. Для большинства из этих операций
решающим критерием является производительность. Для таких операций
весьма подходящими представляются систолические процесссоры. С
другой стороны, анализ зрения на высоком уровне включает задачи
выделения тонких признаков, классификации признаков и анализа
сцен, для решения которых привлекаются методы, разработанные в
области распознавания образов или искусственного интеллекта. Для
таких задач более подходящим представляется компьютер с
MIMD-структурой. Поэтому многообещающим является обращение к
новым MIMD-архитектурам, включающим структуры СБИС и
ориентированным на интеллектуальную обработку изображений и приложения
анализа зрения.
Сеточный матричный процессор с множественной передачей сообщений
На рис. 7.39 показана архитектура расширенного матричного
процессора с множественной передачей сообщений. Привлекательным
я-*-*-*
VfWvFW
Vf^JFW^W
ΙΜ^-ν4β
Рис. 7.39. Множественная передача сообщений и сокращенный
сеточный массив. На рисунке представлен обычный матричный процессор с
множественной передачей сообщений; каждому кружку соответствует
ПЭ. Если назначить ПЭ только узлам, обведенным квадратиками
(вдоль диагонали), то получим сокращенный сеточный массив.
Остальные узлы заменены устройствами памяти (из работ [Kung85] и
[Tseng85]).
15*
548
Глава 7
свойством этой архитектуры является то, что данные в ПЭ любой
строки (столбца) могут быть пересланы ПЭ в других строках
(столбцах) за один шаг передачи. Такие пересылки обычно требуются в
двумерном БПФ или в задачах нахождения максимальной, медианной
или минимальной точки в изображении. Время маршрутизации данных
1 /3
может быть сокращено с N шагов (когда используется одна гло-
ι/А
бальная шина для передачи сообщений) до N (когда используются
матричные процессоры с множественной передачей сообщений)
[Kung85].
Сокращенный сеточный массив
Некоторые алгоритмы не обладают развитым внутренним
параллелизмом. Это ведет к неэффективному использованию процессоров в
полномасштабном сеточном матричном процессоре с множественной
передачей сообщений. Для таких приложений экономически
эффективно сократить число процессорных элементов без существенного
замедления обработки. Эта цель может быть достигнута путем
использования понятия виртуальных матричных процессоров. Если говорить
более точно, физически процессорное устройство будут иметь
только диагональные ПЭ (показанные квадратиками на рис. 7.39), тогда
как остальные ПЭ в массиве будут заменены устройствами памяти.
Другими словами, диагональные ПЭ будут выполнять работу,
изначально предназначавшуюся всем ПЭ данного столбца (или данной
строки).
Это ведет к созданию сокращенных сеточных мультипроцессоров,
предложенных в работе [Tseng85]. Их архитектура согласована со
многими важными параллельными алгоритмами. Система состоит из N
процессоров, которые могут обращаться без конфликтов к ортого-
нальной сетке, состоящей из N модулей памяти (рис. 7.39).
Очевидно, что для обеспечения быстрого доступа к памяти или быстрой
пересылки требуется глобальная связь. Фактически эта структура
естественно выполняет операции в режиме MIMD, и поэтому она
потенциально более пригодна для . задач анализа зрения высокого
уровня.
Пирамидальные процессоры
Пирамида может быть проще всего описана как стек из
последовательно уменьшающихся массивов , которые связаны друг с другом
в дерево [Uhr86]. Обычно пирамидальная вычислительная система
Реализация матричных процессоров 549
Рис. 7.40. Типичная структура пирамидального процессора (из
работы [Uhr86]).
имеет несколько слоев ПЭ, представляющих собой квадратные
массивы из 2п ПЭ. Например, первый уровень может содержать массив
из 16 χ 16 = 256 ПЭ, следующие уровни - массивы 8x8, 4x4,
2x2, и, наконец, один ПЭ в вершине пирамиды. Возможны и другие
способы организации пирамиды, но приведенный пример является
классическим. ПЭ может связываться с соседними ПЭ на том же
уровне, с предком на уровне выше и обычно с четырьмя потомками
на уровне ниже, за исключением, конечно, самого нижнего уровня
(рис. 7.40).
Каждый массив в пирамиде эффективно выполняет все матричные
операции. Кроме того, передача информации вверх и вниз между
массивами требует сильно сокращенных логарифмических расстояний
в отличие от линейных расстояний, требуемых в массиве. Поэтому
большинство специалистов в области вычислительных наук полагают,
что иерархическая природа вычислений в пирамидальной системе
соответствует обработке изображений. Основное применение пирами-
550
Глава 7
ды предполагается не для связи, а для вычислений. Вместо простой
передачи информации или ее усреднения и сжатия при продвижении
вверх по пирамиде процессоры могут быть запрограммированы для
обработки и преобразования информации любым желаемым способом.
7.6. ЗАКЛЮЧЕНИЕ
В этой главе рассмотрены вопросы, касающиеся реализации
процессоров и массивов для SIMD-, систолических и волновых
матричных процессоров, причем основное внимание уделено приложениям в
области обработки сигналов и изображений в реальном времени. В
системах ЦОС реального времени решающим фактором является
производительность. Схема ЦОС отличается от микропроцессора общего
назначения наличием устройства умножения с накоплением,
множества шин и устройств памяти (рис. 7.41). При наличии этих
элементов операция умножения с накоплением может быть выполнена за
один такт (например, за 60 не производится умножение 16-
разрядных чисел в ЦОС-кристалле WEDSP фирмы AT&T). Большинство
кристаллов ЦОС построено по гарвардской архитектуре, которая
позволяет производить одновременную выборку команд и данных.
Некоторые кристаллы имеют модифицированную гарвардскую
архитектуру, позволяющую хранить данные в памяти программ. Таким
образом, статические данные (такие, как коэффициенты фильтра) могут
быть записаны в более дешевой и медленной памяти программ и
затем при необходимости загружены в более быструю, но меньшую по
размеру память данных [Aliph87].
Применение средств САПР упрощает разработку
специализированных систем. Так как размер кристалла постоянно уменьшается, а
степень интеграции растет, скоро станет практичной реализация ПЭ
на одном кристалле или подсистемы на пластине. В систему может
быть интегрировано большое число устройств и функциональных
возможностей. Если работать в этом направлении, производство
специализированных матричных процессоров станет в конце концов
абсолютно реальным. Существуют также и другие технологии
производства устройств, например устройства на арсениде галлия, ИС на
пластине, оптические вычислительные устройства, которые
обеспечивают производительность, сравнимую с производительностью СБИС
специального назначения, предназначенных для сверхбыстрых
вычислений. Эти современные технологии наряду с технологией СБИС
будут, несомненно, применяться в суперкомпьютерных системах.
С другой стороны, совершенствование технологии может также
Реализация матричных процессоров 551
I 1 Функции, общие для процессоров ЦОС и микропроцессоров
Vffiffl\ Функции, присущие процессорам ЦОС
Шина адреса программы
Рис. 7.41. Функциональная блок-схема процессора ЦОС. Отметим,
что незаштрихованные прямоугольники обозначают функции, общие
для процессоров ЦОС и микропроцессоров; заштрихованные
прямоугольники обозначают функции, присущие процессорам ЦОС (из
работы [Aliph87]).
способствовать изготовлению программируемых систем, которые
будут обеспечивать высокую скорость обработки в различных задачах.
Таким образом, программируемые системы предполагаются основной
частью будущих суперкомпьютерных систем. Понятно, что
перестраиваемая система может поддерживать и обеспечивать требования
многих пользователей. Возможности систем можно также расширить
путем подключения к существующим системам дополнительных
процессорных плат. Требования к программному обеспечению (например, к
разработке компилятора) таких программируемых, перестраиваемых
552
Глава 7
или расширяемых матричных процессорных систем будут весьма
жесткими; поэтому для успешного использования систем необходимо
наличие средств разработки программного обеспечения.
7.7. ЗАДАЧИ
1. Система команд процессора TMS32010. Ниже приведены
некоторые важные команды процессора TMS32010:
LAC Адр,<сдвиг>
АРАС
SACH Адр,<сдвиг>
SACL Адр
DMOV Адр
MPY Адр
LARP г
LT Адр,<г>
LTA Адр
LTD
ZAC
Загрузка аккумулятора из ячейки с
адресом <Адр>, сдвинутым на <сдвиг>
Суммирование произведения с
содержимым аккумулятора
Запись старших 16 разрядов
аккумулятора в память
Запись младших 16 разрядов
аккумулятора в память
Копирование содержимого ячейки
памяти с адресом Адр в ячейку с адресом
Адр+1
Умножение содержимого Адр с
содержимым Т-регистра
Вспомогательный регистр г
используется как текущий указатель
Загрузка Т-регистра из ячейки памяти
с адресом Адр (может менять AR)
Загрузка Т-регистра и накопление
предыдущего произведения
Совместное выполнение команд LTA и
DMOV
Обнуление аккмулятора
Используя команды, приведенные в таблице:
а) реализуйте вычисление бабочки БПФ по основанию 2;
б) реализуйте уравнение t=Aw+Bx+Cy+Dz самым быстрым
способом, считая, что коэффициенты Л, θ, С, D фиксированы и
известны.
в) реализуйте уравнение y(n)=Ax(n-l)+Bx(n-2)+Cx(n-3)+Dx(n-4).
2. Особенности процессора TMS320I0.
а) Полезны ли следующие команды для использования в ЦОС:
Реализация матричных процессоров 553
• REPEAT Ν: выполнение следующей команды N раз (сравните с
TMS32020).
• MAC AtB,nlyn2tn3: умножение А и ZJ, предварительно
сдвинутых на п\ и «2 разрядов соответственно и накопление результата
с последующим сдвигом на лЗ разрядов.
• DMOV Адр: копирование содержимого ячейки памяти с
адресом Адр в ячейку с адресом Адр+1.
б) Почему желательно иметь режимы адресации с последующим
увеличением и/или последующим уменьшением?
в) Рассмотрим алгоритм БПФ. Какие команды должен содержать
процессор обработки сигналов общего назначения, чтобы
реализовать его?
3. Арифметические операции β дополнительном коде. Докажите,
что представление в дополнительном коде отрицательных чисел, как
это определено в уравнении (7.1), в самом деле верно, и
Νυ+(-Νυ)=0, где -Ν - отрицательное значение числа N в
дополнительном коде ([Hwang79]).
4. Арифметика остаточных классов. Обсудите достоинства и
недостатки применения арифметических операций в ССОК.
5. Достоинства и недостатки устройств CORDIC. Обсудите
достоинства и недостатки использования арифметических устройств
CORDIC.
6. Верификации устройств CORDIC. Используя табл. 7.5,
проверьте следующее:
а) Для m=0, z(n)- О, покажите, что y(n)=z(0)x(0)+y(0).
б) Для m=l, z(n)- 0, покажите, что y(n)=x(0)sin(z(0)) + ί/(0)·
cos(z(0)).
в) Для m=-l, z(n)- О, покажите, что y(n)=x(Q)sh(z(0)) + у(0)·
сп(г(0)).
7. Верификации АУ CORDIC. Используя табл. 7.5, проверьте
следующее:
а) Для т=1, у(п) - 0, покажите, что z(n) = arctg ЖтJ.
б) Для т=0, у(п) - 0, покажите, что z(n) = z(0)-y(0)/x(0).
в) Для т=-1, Ζ(η)- О, покажите, что z(n) = arctg Ηδίττ].
8. Архитектура RISC. В последнее время архитектура RISC
привлекает большое внимание. Обсудите достоинства и недостатки
архитектуры RISC для задач обработки сигналов в реальном времени.
9. Сокращенная сеточная архитектура. Опишите, как вычислить
двумерное БПФ на сокращенном сеточном процессоре.
554
Глава 7
10. Взаимодействие через шину:
а) Обсудите достоинства и недостатки использования (одной или
многих) шин для организации мультипроцессорного взаимодействия.
б) При попытке одновременного обращения к шине нескольких
процессоров возникает конфликт. Опишите по крайней мере три
метода, разрешающих эту проблему.
11. Систолические устройства умножения с поразрядной
обработкой. Интерес к систолическим поразрядным устройствам умножения
определяется их регулярностью и модульностью. Взяв за основу ГЗ
умножения двух целых чисел без знака, разработайте три
систолических устройства умножения при помощи различных проекций.
12. Масштабирование в устройствах CORDIC. В устройствах CORDIC
требуется масштабирующий коэффициент Кт (уравнение (7.7)).
Попробуйте найти множество подходящих а, которые могут быть
реализованы простыми сдвигами (уравнение (7.6)) и делают К ~2
для т=Л и п=16.
13. Процессоры CORDIC для треугольного массива QR-разложения.
В разд. 3.3 обсуждался треугольный систолический процессор для
QR-разложения, который может быть применен при реализации
высокоскоростных процессоров ЦОС для задач формирования луча и
фильтрации Калмана (разд. 8.3). В этом процессоре требуются
операции GG и GR (построение и применение вращения Гивенса), т.е.
применение устройств CORDIC всесьма привлекательно.
а) В соответствии с таблицей в задаче 1, работая в так
называемом векторном режиме, процессор CORDIC выполняет операцию GG,
т.е. вычисляет углы вращения {Θ} и соответствующее вращение.
Когда он находится в режиме вращения, он выполняет операции GR.
Определите соответствующие номера режимов m для обоих режимов.
б) Чтобы увеличить скорость обработки, желательно
использовать поразрядную конвейеризацию. Попробуйте спроектировать
треугольный массив CORDIC с поразрядной обработкой.
Глава 8. ИСПОЛЬЗОВАНИЕ МЕТОДОЛОГИИ
ПРОЕКТИРОВАНИЯ СИСТОЛИЧЕСКИХ
ВЫЧИСЛИТЕЛЕЙ В ОБРАБОТКЕ
СИГНАЛОВ И ИЗОБРАЖЕНИЙ
8.1. ВВЕДЕНИЕ
В гл. 2 представлены базовые алгоритмы и некоторые другие
современные алгоритмы цифровой обработки сигналов и изображений.
Для высокопроизводительной обработки сигналов (в том числе и в
реальном времени) требуются вычислительные мощности, на
несколько порядков превышающие доступные в настоящее время. Реализация
алгоритмов на СБИС обещает резкий технологический прорыв в сфере
практической обработки сигналов и изображений. В гл. 3 и 7
показано, как на основе анализа параллелизма и конвейеризуемости
алгоритмов проводится их отображение на вычислительные структуры
и строятся специализированнные матричные процессоры. В данной
главе на ряде примеров практической обработки сигналов и
изображений иллюстрируется дальнейшее развитие нисходящей
интегрированной методологии конструирования матричных процессоров. Успех
разработки каждый раз зависит от понимания процесса формирования
сигнала/изображения, от типа алгоритма и спецификаций
предполагаемой прикладной системы.
Матричные процессоры обработки сигналов. Цифровая обработка
сигналов используется в таких приложениях, как обработка
речевых, гидроакустических, радиолокационных, сейсмических,
метеорологических, астрономических, биомедицинских, физических и других
сигналов. Обработка сигналов в реальном времени характеризуется,
как правило, высокой скоростью поступления данных и жесткими
требованиями к вычислительной системе. Так, устройство обработки
сигналов, являющееся частью адаптивного матричного процессора
SPAN-1 [Ashcr84], занято в основном вычислением диаграммы
направленности. Каждое диаграммообразующее устройство может
принимать данные от 52 датчиков и формировать 64 пучка. Разрядность
данных, поступающих с датчиков, и задержка равны 8 бит, и каждое
устройство должно выполнить 200 млн. операций в 1 с. Только
операции спектрального анализа (цифровая фильтрация, БПФ,
адаптивная фильтрация в частотной области) требуют выполнения 46 млн.
умножений в 1 с. Поэтому лишь согласование методики разработки
матричных процессоров на СБИС и достижений современной обработки
сигналов делает возможным выполнение в режиме реального времени
как указанной, так и многих других задач.
556
Глава 8
Матричные процессоры обработки изображений. Цифровая
обработка изображений - сложная и быстро развивающаяся область, которая
охватывает множество современных методов анализа изображений и
машинного зрения. Исследования в этой области идут по двум
направлениям - обработка изображений и анализ изображений
[Chell85]. Обработка изображений включает задачи улучшения
качества, восстановления, реконструкции, кодирования и т.д. Анализ
изображений в свою очередь имеет дело с выделением прямых,
кривых и областей, классификацией объектов, текстурным анализом,
анализом движущихся объектов и анализом сцен. Большинство задач
обработки изображений очень трудоемки по времени выполнения.
Операции нижнего уровня, такие, например, как фильтрация или
улучшение качества обычно требуют выполнения нескольких десятков
машинных команд над каждым пикселом. Если учесть, что размер
типичного изображения, получаемого, например, с геофизического
искусственного спутника Земли LANDSAT, составляет 1000 χ 1000
пикселов, то окажется, что обработка каждого изображения требует
нескольких десятков миллионов машинных команд, не считая
сколько-либо серьезной обработки более высокого уровня. Если
необходимо выполнять эти относительно простые операции нижнего уровня
в темпе поступления видеоинформации, например с частотой 25 или
30 кадров в 1 с, то требуемая производительность составит
приблизительно 1 млрд. операций в 1 с. Именно поэтому прикладная
обработка изображений долгое время оставалась (и по сей день
остается) главной движущей силой в разработке более быстрых и
эффективных параллельных архитектур [ОНег85].
Ниже кратко остановимся на базовых приложениях таких
фундаментальных операций ЦОС, как свертка, корреляция, БПФ и
матричные операции.
Пример 1. Использование свертки и корреляции. Как говорилось
в гл. 2, операция свертки двух последовательностей и(п) и w(n)
обозначается у(п) = и(п) * w(n). В зависимости от характера
фильтра {w(n)} вычисление свертки представляет либо улучшение
качества изображения (например, при фильтрации с выделением
яркостных переходов), либо сглаживание (например, фильтрация с
усреднением шума), либо фильтрацию некоторого другого типа
(например, фильтры низких и высоких частот, полосовые или с
подавлением сигнала в заданной полосе частот).
Свертка используется также в качестве средства линейной
интерполяции (разд. 8.4.3), т.е. для получения значений в
промежуточных точках путем вычисления взвешенной суммы значений в со-
Приложения обработки сигналов и изображений 557
седних отсчетах, что позволяет по отсчетам дискретного сигнала,
например сигнала с РЛС или томографа, восстановить в заданной
полосе частот непрерывный сигнал. Свертка применима также в
согласованной фильтрации - распространенном методе, используемом в
оптимальных приемниках в телесвязи. Принцип цифровой
согласованной фильтрации заключается в том, что принимаемый сигнал
свертывается с сигналом, импульсная характеристика которого
представляет реверсированную импульсную характеристику передаваемого
сигнала. Матричные архитектуры для одномерной свертки
обсуждались в гл. 3 и 4. Архитектура, предназначенная для реализации
двумерной свертки, описана ниже в разд. 8.5.1.
Операция корреляции, которая, подобно свертке, относится к
разряду широко используемых операций, часто возникает в анализе
временных рядов. Поскольку выражение для корреляции аналогично
определению свертки (гл. 2):
00
у(п) = J] u(k)w(n + k) = и(п) * ш(-л),
fe=-co
она может быть реализована на аналогичной матричной архитектуре.
Операция корреляции широко используется в приложениях,
которые связаны с распознаванием образов и классификацией
сигналов и в которых требуется сравнить получаемый сигнал и(п)
(допустим, нормализованный), имеющий неизвестное время задержки,
с эталонным сигналом w(n) и найти их меру подобия у(п). Частным
случаем корреляции является автокорреляция последовательности
х(п), записываемая в виде у(п) = х(п) * х(-п) и используемая во
многих приложениях, например оценке спектра, адаптивной
фильтрации, сжатии данных и т.д.
Пример 2. Использование быстрого преобразования Фурье. БПФ
является одним из наиболее популярных алгоритмов в практической
обработке сигналов и изображений и используется, например, в
измерении допплеровской частоты при обработке радиолокационного
сигнала, восстановлении звука и изображения с помощью деконволю-
ции, реконструкции изображения по теореме о проекционных срезах,
определении параметров речи с помощью гомоморфной обработки,
сжатии данных, построенном на выполнении преобразований и т.д.
Вычислительная эффективность БПФ используется также при
реализации быстрой свертки и быстрой корреляции, что позволяет снизить
сложность вычисления свертки и корреляции с 0(N ) до 0(AMog2#)
операций.
Несколько систолических архитектур вычисления БПФ, основанных
558
Глава 8
на сети совершенной тасовки, рассмотрено в гл. 3. Отчет о
последних достижениях фирмы TRW в реализации высокоскоростных
процессоров прямого и обратного БПФ на основе современных
коммерческих и полузаказных СБИС содержится в работе [Swart85].
Процессор TRW обрабатывает данные, поступающие с частотой
40 МГц, и использует конвейерный алгоритм по основанию 4 Маклел-
лана и Парди [Rabin75] для выполнения преобразования длиной до
16384 точек. Арифметические операции выполняются на коммерческих
однокристальных сумматорах и умножителях с плавающей запятой, а
межъярусные перестановки данных реализованы коммутаторами
задержки на полузаказных СБИС.
Пример 3. Использование матричных операций. Известно, что
вычислительная часть многих задач обработки сигналов и
изображений в режиме реального времени сводится к ограниченному набору
базовых матричных операций, который включает умножение матрицы
на вектор, умножение и сложение матриц, обращение матриц,
решение системы линейных уравнений, сингулярное разложение матриц,
решение задачи на собственные значения и т.д. [White85].
Теоретические основы и вопросы разработки матричных процессоров
для указанных операций рассмотрены в главах 2-5.
Реализованный в исследовательской лаборатории Хафа
систолический процессор для задач линейной алгебры, основанный на
алгоритме Фаддеевой [Nash86], использует массив размером 16 χ 16 из
высокопроизводительных ПЭ на заказных СБИС (МОР2) и достигает
пиковой производительности приблизительно 450 MOPS. Время
32-разрядного умножения и деления с фиксированной запятой для
каждого ПЭ составляет 750 не и 1мкс соответственно. Такая
архитектура обеспечивает быстрое, численно устойчивое решение
базового набора задач с линейными системами.
Основные методы, используемые в задачах обработки сигналов и
изображений
Методы ЦОС находят широкое применение во многих областях,
связанных с обработкой сигналов и изображений. В табл. 8.1
перечислены некоторые из них и соответствующие им области приложения
в обработке сигналов и изображений. (Символ X показывает, что
данный алгоритм относится к числу основных в соответствующей
прикладной области.) Основное содержание данной главы составляют
примеры разработки матричных процессоров для нескольких важных
прикладных областей.
Приложения обработки сигналов и изображений 559
Таблица 8.1. Основные методы обработки сигналов и изображений
и их применения
Адаптивное Обработка Обработка Анализ
формирова- речи изображе-· изображе-
Методы ние диаграм- ний ний
мы
направленности
БПФ X
ДПФ
Вычисление X
спектра
Калмановская X
фильтрация
Локальные
операции с
масками
Сжатие
данных
Динамическое
программирование
Релаксационные
методы
8.2. ОЦЕНИВАНИЕ СПЕКТРА, ФОРМИРОВАНИЕ ДИАГРАММЫ
НАПРАВЛЕННОСТИ И КАЛМАНОВСКАЯ ФИЛЬТРАЦИЯ
Спектральный анализ является одним из наиболее совершенных
инструментов извлечения информации из данных и, в частности,
разделения и прослеживания обрабатываемых сигналов. Диапазон
приложений спектрального анализа охватывает такие области, как
РЛС, гидроакустика, речь, радиоастрономия, антенные решетки
СВЧ-диапазона, геомагнетизм, измерения в нефтяных скважинах и
т.д. [Магр185]. Например, при радиолокационных измерениях
дальности излучается ЛЧМ-импульс, и методы спектрального анализа
могут быть использованы для разделения частот дальности (частот
биения) по отраженному сигналу [Skoln62]. В разд. 8.2.1 дан
обзор как общеупотребительных, так и основанных на частных
моделях методов спектрального анализа и строится систолический
вычислитель, предназначенный для решения линейных систем
специального вида, возникающих в методе наименьших квадратов.
X X
X X
X X
X X
X X
X X
560
Глава 8
Одним из главных применений спектрального анализа является
формирование диаграммы направленности или обработка сигналов с
помощью фазированной антенной решетки в радиолокационных,
гидролокационных, сейсмических системах и системах связи. Принимаемый
сигнал снимается с датчиков, расположенных в различных позициях
поля антенны. Адаптивная система формирования диаграммы
направленности способна обнаруживать внешние шумы и источники помех
(не имея априорной информации о среде распространения сигналов и
помех) и адаптивно управлять диаграммой направленности антенной
решетки для подавления этих источников шума, тем самым извлекая
из сигнала источника информативные характеристики [Monzi80]. В
разд. 8.2.2 предлагается несколько способов формирования
диаграммы направленности на основе метода наименьших квадратов,
включая нахождение оптимальных значений весов с помощью
QR-разложения, рекурсивного QR-разложения, формирования
диаграммы направленности на основе метода наименьших квадратов с
ограничениями. Строятся также обладающие более высокой разрешающей
способностью методы формирования диаграммы, основанные на
сингулярном разложении.
Калмановская фильтрация успешно применяется в таких
приложениях обработки сигналов, как предсказание цели, слежение,
обработка радиолокационных сигналов, бортовая калибровка
инерционных систем, оперативная оценка устойчивости самолета и изменения
управляющих параметров. Поскольку для реальных систем
вычисления, связанные с измерениями и обновлением данных, ограничены
жесткими временными рамками, спасти может только параллельная
обработка [Andre81, MJChe86, MJChe87]. Если соответствующим
образом преобразовать исходный алгоритм, калмановская фильтрация
может быть выполнена с помощью метода наименьших квадратов,
который предпочтительнее как по точности, так и по эффективности
вычислений. В разд. 8.2.3 строится треугольный систолический
вычислитель, реализующий рекурсивную калмановскую фильтрацию,
включающую стадии измерения и модификаций.
8.2.1. Матричные процессоры для оценивания спектра
Стандартный способ оценивания спектра
Задача оценивания спектра в стандартной постановке состоит в
том, чтобы определить вид распределения спектральной энергии
некоторого дискретного по времени стохастического процесса,
заданного конечным числом зашумленных отсчетов либо несколькими
Приложения обработки сигналов и изображений 561
первыми ковариационными задержками. Используются два метода
оценивания спектра, основанные на преобразовании Фурье. Первый
способ (Блэкмэна и Тьюки) основан на косвенном подходе и связан
с вычислением автокорреляции, а второй, известный как вычисление
периодограмм [Schus98], базируется на прямом подходе, т.е.
вычислении преобразования Фурье исходных данных.
Косвенный способ Блэкмэна - Тьюки заключается в вычислении
автокорреляции на некотором ограниченном интервале, после чего
для получения спектральной энергии выполняется преобразование
Фурье (предполагается, что задержки ковариации за пределами
данной временной последовательности равны нулю)
М- 1
РВТ<Ш) = Σ rjn)e-'wn. (8.1)
n=-M+l
Обычно до вычисления преобразования Фурье автокорреляционная
функция пропускается через некоторое сглаживающее Окно W(n).
Прямой способ определения энергии спектра, основанный на
построении периодограммы, состоит в вычислении квадрата абсолютной
величины преобразования Фурье анализируемых данных
W*) = ~fr lNi\n)e-l"n\2. (8.2)
n = 0
Оба метода эффективно реализуются с помощью алгоритма БПФ, а
увеличение скорости обработки достигается за счет использования
матричных процессоров БПФ.
Спектральный анализ на основе конкретных моделей сигнала
Во многих современных приложениях необходимо оценивать спектр
по коротким последовательностям (в РЛС, например, на каждом
такте поступает всего несколько отсчетов). В этом случае
рассмотренные стандартные методы оценивания спектра оказываются
малоэффективными, поскольку в силу фундаментального соотношения
неопределенностей они не обеспечивают достаточного разрешения,
которое не может быть выше, чем величина, обратная используемой
в преобразовании Фурье длине ковариации [Kung85a, Кау81].
Желательно, конечно, получить несмещенную оценку с небольшой
дисперсией и высокой степенью разрешения. Если имеется лишь
несколько отсчетов, то для повышения разрешающей способности
необходимо наложить на данные дополнительные ограничения (или
использовать априорную информацию). В методах, основанных на моде-
*6—102.Х
562
Глава 8
лях сигнала, такая априорная информация используется для
повышения разрешения по частоте. Во многих приложениях физический
источник сигнала эффективно моделируется линейной рациональной
системой невысокого порядка. Использование моделей позволяет с
помощью набора рекуррентных уравнений, определяемых параметрами
модели, распространить ковариационную последовательность за
границы данного сегмента. Другими словами, модель позволяет
доопределить ковариацию однозначно на всей оси и найти соответствующую
энергию спектра.
В общем случае линейная рациональная система может быть
описана следующим линейным разностным уравнением:
х(п) = £ а.х(п - 0 + έ b.v(n - 0 + v(n) (8.3)
/-1 ' ί-1 ι
с последовательностями {υ(η)} на входе и {х(п)} на выходе,
которое известно как авторегрессионная бегущая усредняющая модель
АРБУ(р,<7). Передаточная функция этой системы
я<2> = -Щ* <8·4)
где
В(г) = 1 + i bf\
/-1 '
А(г) = 1 - £ afl.
Если на вход поступает белый шум с дисперсией σ , энергия
спектра {х(п)} равна
P(w) = S(z) ^/«, (8.5)
где
S(z) =(г2Я(г)Я(2-1) = σ2 B(z)Biz~ ) . (g.6)
A(z)A(z Λ)
Соотношение параметров АРБУ и автокорреляционной функции
можно получить следующим образом. Умножая обе части выражения (8.3)
на х*(п - /) и вычисляя математическое ожидание, получаем
^)=.b^('-0+.b/J/-0. (8.7)
1=1 1=1
Где x*(i) - элемент, комплексно-сопряженный по отношению к
x(i).
Приложения обработки сигналов и изображений 563
где / = 0,1,.·.»? и
rjk) = E{x(n)x*(k - η)}, rjk) = E{v(n)x*(k - η)}.
Поскольку входной сигнал {v(k)} - белый шум, а система
является каузальной, можно показать, что г (k) = 0 для k > 0 и
Гмх W -,Ι,νΛ' - '>· <8·8>
где / = q + \yq + 2,...,
Коэффициенты {а ^ можно получить из теплицевой системы
уравнений (8.8), а коэффициенты {Ь{} из выражения (8.7).,
Авторегрессионная модель. , Наиболее часто для оценивания
спектра используют частный случай модели АРБУ, где функция B(z)
полагается равной 1. В этом случае
*(п) = Σ &Αη ~ 0 + vin\ (8.9)
т.е. выходной сигнал х(п) является линейной регрессией своих
последних отсчетов и поэтому называется просто АР-моделью.
Ковариация такой модели удовлетворяет следующим рекуррентным
соотношениям:
rji) = έ vJ' - ь l > ° (81°)
rJ» = Σ arj-i) + σ» (8.11)
При заданных Λί (где Μ > ρ) точных значениях задержки {/*(/)}
параметры {а.} модели АР(р) можно оценить с помощью рекуррентных
уравнений (8.10) для первых ρ значений /, которые известны как
уравнения Йела - Уолкера. Таким образом, оценка параметров
АР-модели включает решение симметричной положительно
определенной теплицевой системы, которое может быть эффективно
реализовано либо с помощью алгоритма Левинсона, либо с помощью алгоритма
Шура, удобного для конвейерной реализации. Соответствующая
параллельная архитектура строится в следующем разделе.
Оценка спектра в рамках АР-модели является наиболее
распространенным способом вычисления спектра во многих
приложениях обработки сигналов и изображений. Эта модель может,
например, использоваться для моделирования непрерывных мешающих
отражений с целью классификации различных форм подобных
отражений, с которыми сталкиваются в РЛС управления воздушным
движением. (Мешающие отражения - это крайне нежелательные
36*
564 Глава 8
эхо-сигналы на дисплее РЛС, обусловленные отражением переданного
сигнала от земной поверхности, атмосферными явлениями и т. д.)
Известно, что спектральная плотность непрерывных мешающих
отражений в РЛС имеет гауссову форму и может быть с высокой
точностью приближена АР-процессом относительно невысокого
порядка (например, третьего порядка). Использование АР-модели
вычисления спектра в задачах обработки речевых сигналов является
одним из наиболее ранних примеров использования современного
метода оценивания спектра. Гладкость АР-спектра (в отличие от
периодограмм) делает возможным локализацию и отслеживание частот
формант речевых сигналов. Использование линейной АР-следящей
системы для пассивной гидроакустической системы дает возможность
выделить некоторые изменения частоты, не различимые на
периодограмме, что позволяет получить полезную информацию,
например, о перемещении цели.
Пример 1. Систолический массив для решения системы Йела -
Уолкера. Как уже отмечалось, многие методы оценки спектра
включают решение теплицевой системы Йела - Уолкера. Систолическая
архитектура для алгоритма Шура (см. разд. 2.3) может быть
построена на основе анализа графа зависимостей данных и методологии
канонического отображения. Ниже приведена программа решения
теплицевой системы, соответствующая правилу однократного
присваивания (обозначения даны в разд. 2.3):
vk)= 41)= V0 - * - N)
For i from 1 to N
/(<'+1>= -JftuMf (8.12)
For k from 0 to N
°i'+,)=p*,)+ к('+1Ч°
Данный алгоритм с однократным присваиванием можно
локализовать с помощью рассмотренной в разд. 3.3 процедуры локализации.
Полученный в результате локализованный граф зависимостей для
параллельного алгоритма Шура показан на рис. 8.1, а.
Ниже рассматривается конвейерная структура для параллельного
решения симметричной теплицевой системы. Ее ГПС строится по гра-
Приложения обработки сигналов и изображений 565
D Ячейка деления
л о Ячейка накопления
Рис. 8.1. Граф зависимостей алгоритма Шура решения симметричной
теплицевой системы (а) и ГПС для параллельного алгоритма Шура (б).
фу зависимостей (рис. 8.1, а) простым проецированием (с планом по
умолчанию), в результате получается билинейный ГПС (рис. 8.1,6),
по которому в свою очередь можно построить систолический
вычислитель с помощью процедуры систолизации, предложенной в
разд. 4.3.
Основная часть операций этого алгоритма приходится на
вычисление линейной комбинации двух векторов на каждом шаге рекурсии
(выражение (8.12)). На шаге рекурсии сначала в ячейке деления
вычисляется коэффициент отражения, который затем
распространяется по локальным межсоединениям к обрабатывающим элементам сети,
реализующим выражение (8.12). При завершении вычисления линейной
комбинации результат, находящийся в верхних ПЭ, передается
ближайшему соседу слева, подготавливая следующий шаг, а
содержимое нижних ПЭ, соответствующих строке матрицы U, подается на
выход, завершая тем самым шаг рекуррентного процесса.
Из приведенных рассуждений следует, что два последовательных
шага разделяют два временных такта (один занимает вычисление
коэффициентов отражения, другой - обработка строки). Если число
шагов равно N, общее процессорное время составит 0(N). В то
время, как конвейерная архитектура, реализующая алгоритм Левинсона
[Kung83b], требует времени 0(Mog2N).
Архитектура, предназначеная для решения теплицевой системы,
состоит из конвейерной систолической решетки и конвейерного
процессора обратной подстановки. Более подробное описание системы и
ее блок-схему (для СБИС-реализации) можно найти в работе
[Kung83b].
566
Глава 8
8.2.2. Матричные процессоры для формирования диаграммы
направленности (ФДН)
Формирование диаграммы направленности (одна из основных
функций пассивной фазовой антенной решетки) включает
формирование кратных пучков с помощью применения к сигналам, снимаемым с
датчиков, соответствующих задержек и весовых коэффициентов. Цель
- подавить нежелательные активные помехи и определить число
источников в среде и их характерные параметры, такие, как
направление и интенсивность. К важным применениям задачи формирования
диаграммы направленности можно отнести гидролокационные станции
для обнаружения военных объектов и сейсморазведки. Число
датчиков в решетке может изменяться от единиц до тысяч. Типичными
примерами являются решетки выравнивания канала («50 датчиков) и
большие плоские решетки гидроакустических систем (до 1000
датчиков).
Взаимосвязь между спектральным анализом и формированием
диаграммы направленности
Приведенные выше методы вычисления спектра можно использовать
и для формирования диаграммы направленности в фазовых антенных
решетках, особенно для линейных решеток с равномерно
размещенными датчиками (рис. 8.2). Сходство между вычислением спектра и
формированием диаграммы направленности обусловлено
двойственностью задачи определения спектра временного ряда и
задачи вычисления угла по полученным с датчиков данным. Так,
угол Θ, указывающий направление источника при формировании
диаграммы - параметр, двойственный по отношению к частоте в
задаче спектрального анализа. Соответственно пространственные от-
Длина волны
^^ \ Направление
\ */^\ распространения
i ^*атчик d
Нормаль
Φ
Рис. 8.2. Наплывание сигнала на линейный массив датчиков.
Приложения обработки сигналов и изображений 567
счеты, снимаемые с датчиков, выполняют роль временных отсчетов.
Для простоты предположим, что для измерения используется
линейная решетка с равномерно размещенными датчиками. Роль
матрицы временной корреляции R теперь выполняет матрица
пространственной корреляции S, где элементы S представляют
корреляцию между данными, полученными с различных датчиков.
Аналогом энергетического спектра является пространственный
спектр направлений или спектр формирования диаграммы
направленности, обозначаемый Ρ(Θ). Как правило, пики Я(9) соответствуют
направлениям источников сигнала. Для вычисления Ρ(θ) определим
фазовый вектор ρ(θ), ассоциированный с решеткой датчиков:
ρ(θ) = [l/le2'21' e'W]1,
где f = (d / A)sin6 (рис. 8.2). (Заметим, что данное определение
корректно только для стационарных сред.)
Обычный спектр ФДН задается следующим образом:
Явр = p*(0)S ρ(θ). (8.13)
Ε ели выполняется условие стационарности, матрица
пространственной корреляции S является теплицевой: S(iJ) = S(/ - /). Записав
выражение (8.13) в скалярной форме, получим
#-1
ЯВР(6) = £ W(n)S(n)e-i2nfn , (8.14)
η=-(ΛΛ-1)
т.е. преобразование Фурье от функции корреляции S(n) с
треугольным окном Барлетта (задача 3), как в методе Блэкмэна - Тьюки
(выражение (8.1)).
Рассмотрим два наиболее распространенных метода отыскания
направления источника. Первый, известный как метод максимального
правдоподобия, принадлежит Кэпону [Сароп69]:
PML(e> = . ' 1. - · <8·15)
p*(e)S-'p(e)
Второй, основанный на принципе максимума энтропии [Schmi79],
задается формулой
''mpW = ί . (8·16)
м^ р*(в)сс*р(0)
где с - первый столбец матрицы S (с учетом масштабирующего
множителя), который можно получить, решая уравнения Йела - Уолкера.
568
Глава 8
Важно, что эти построения можно распространить на систему с
нерегулярно расположенными датчиками. В этом случае фазовый
вектор ρ(θ) определяется геометрией решетки датчиков. В общем
случае матрица пространственной корреляции уже не будет
теплицевой, т.е. корреляция между /-м и /-м датчиками не будет
совпадать с корреляцией между (/ + /г)-м и (/ + /е)-м датчиками.
Однако формулы (8.13), (8.15) и (8.16) сохранятся почти без
изменений.
ФДН методом наименьших квадратов
В общем случае система ФДН имеет N датчиков и схему
формирования модели, включающую N - 1 весовых коэффициентов, задаваемых
так, чтобы максимально усилить реакцию системы на нужный сигнал.
Сигнал, поступающий с N-ro по счету (эталонного) датчика, имеет
постоянную величину, например 1. Функциональная схема типичной
системы ФДН показана на рис. 8.3. Значение ошибки на выходе
решетки рис. 8.3 в момент времени t имеет вид [McWhi83]
e(t) = x(t)w + y(t\ (8.17)
где вектор-строка x(t) представляет огибающую сигналов,
полученных с N - 1 датчиков в момент /, a y(t) - сигнал, снятый с
N-ro фиксированнного элемента. Вектор w представляет значения
весов фильтрующего массива.
XXX
χ
Фиксированный
элемент
Рис. 8.3. Функциональная схема адаптивной антенной решетки.
Для простоты мы рассматриваем только случай действительных
сигналов, однако рассуждения можно распространить и на случай
комплексных сигналов.
Приложения обработки сигналов и изображений 569
Назначение системы оптимального ФДН состоит в том, чтобы
минимизировать совокупную энергию ошибки с помощью подстройки
значений весовых множителей относительно фиксированного весового
ограничения, что может интерпретироваться как обобщение критерия
наименьшей среднеквадратичной ошибки, применявшегося при
вычислении спектра в линейной АР-модели.
Известны многочисленные "оптимальные" решения задачи
вычисления вектора весовых множителей в предположениях, что
решетка имеет большой размер, а входной сигнал является
стационарным. Однако во многих реальных системах данные предположения
могут не выполняться. Эту трудность можно устранить, например,
путем использования методов адаптивного рекурсивного обновления,
т.е. градиентных адаптивных алгоритмов, подобных алгоритму
наименьших квадратов. К сожалению, плохая сходимость на цифровом
сигнале с широким динамическим диапазоном не позволяет
использовать эти алгоритмы в приложениях, требующих высокой
производительности. Предложенный в [Ward84, McWhi86] эффективный подход,
основанный на методе наименьших квадратов, позволяет устранить
эту трудность.
Определение оптимальных весовых коэффициентов методом
QR-разложения
Задачу построения оптимальной решетки можно сформулировать в
терминах наименьших квадратов (разд. 2.3). Определим матрицу X
размером η χ (Ν - 1) и η χ 1-вектор у следующим образом:
Г χ(ΐ) 1
х(2)
U(») \
• Уп Ξ
Г ι/(ΐ) 1
У(2)
1 У(п) \
что приводит к матричной записи вектора невязки е:
е = X w + у . (8.18)
Задача построения оптимальной диаграммы направленности состоит в
том, чтобы найти вектор весов w , минимизирующий норму вектора е
е 0= X w + у 0.
л 2 η η J η 2
Оптимальное в смысле наименьших квадратов значение w можно
построить с помощью непосредственного блочного обращения
w = (ХТХ )_1ХТу .
η ν η η' nJ η
570
Глава 8
Этот подход, однако, связан с возникновением численной
неустойчивости, поскольку число обусловленности возводится в квадрат
[Wilki65]. Как говорилось в гл. 2, распространенным способом
решения задачи наименьших квадратов является QR-разложение,
которое сводится к последовательности унитарных преобразований
матрицы данных X , приводящих ее к треугольному виду. Применяя
ортогональное преобразование Qn к правой части выражения (8.18),
имеем
Q е = QXw + Q ν . (8.19)
η η η η η ηJ η ν/
Ортогональная матрица Q выбирается так, что
К]
о J
где R - (N - 1) χ (N - 1) - верхнетреугольная матрица, а 0 -
нулевая матрица. Кроме того,
Г Ь 1
Q У = п L
^пуп Г
L nJ
Таким образом, получаем уравнение
Rnwn + Ьп = 0, (8.20)
из которого нетрудно получить w . (решение, минимизирующее
норму), используя метод обратной подстановки.
Систолический вычислитель для решения задачи наименьших
квадратов методом QR-разложения обсуждался в гл. 3 (разд. 3.3),
где показано, что предпочтительнее является треугольный
систолический вычислитель с α = 1.
Рекурсивный метод на основе QR-разложения
Использование треугольного систолического массива для
формирования диаграммы направленности имеет то преимущество, что
массив может обрабатывать непрерывно поступающие данные в режиме
рекурсивного обновления. Основная идея этого подхода состоит в
том, чтобы представить алгоритм в рекурсивной форме, в
результате чего треугольная матрица R (выражение (8.20)) может
обновляться всякий раз при поступлении в процесс вычислений новой
строки данных. Применяя для обнуления вновь поступившего вектора
данных (например, хп+1 в формуле (8.21)) последовательность
ортогональных преобразований с использованием имеющейся
треугольной матрицы (например, Rn в формуле (8.21)), можно сформировать
QX„ =
Приложения обработки сигналов и изображений
571
новую треугольную матрицу (например, Rn+1 в формуле (8.21)).
Более строго, если присоединить полученный в момент времени
(п + 1) новый вектор данных к имеющейся треугольной системе,
получим
η
т
'п+1
о
l"x"" "л
L η+1·
w . +
n+1
Г
η
L Уп+'v
(8.21)
где w j- решение задачи наименьших квадратов размером (п + 1),
а е +1 - искомая невязка, поступающая от решетки.
Верхнетреугольная система уравнений (8.21) образуется из строк матрицы R
и нового вектора данных, приписанного матрице. Представим
последовательность вращений в виде ортогонального преобразования
обновления Q 1Э тогда
П+1
Γίι
* / /
η
— τ -
L n+1J
= <Ci
"fi '
/
• en+\-
=
f ^1
0
L n+lJ
w . +
n+1
Г ь л
n+1
г
n
ь J
L n+1J
(8.22)
где R,
n+1
b - - (я + 1)-я модификация R и b
соответственно.
R ,w , + b , = 0.
n+1 n+1 n+1
Оптимальный вектор весов w можно получить из уравнения
(8.23)
Другими словами, вектор оптимальных весов должен удовлетворять
уравнению (8.23).
Пример 2. Использование треугольного массива для вычисления
QR-разложения. Треугольный массив, изображенный на рис. 8.4,
является базовым модулем QR-разложения, на котором выполняются
вращения Гивенса [HTKun81, McWhi83]. Детали процедуры уже
рассматривались в разд. 2.2 и 2.3. Представленный систолический
массив получается, например, в результате применения к ГПС,
изображенному на рис. 3.33, процедуры систолизации сечением. В
данном треугольном массиве на диагональных ПЭ выполняются операции
построение вращения Гивенса (GG), а на всех остальных ПЭ
выполняются операции применения вращения Гивенса (GR).
Самое общее применение треугольного массива состоит в
QR-разложении матрицы [R А ] :
R
А
R
0
(8.24)
572
Глава 8
*2,
au
322
Β12
0
•
•
•
a23
ai3
0
0
32
a.
0
0
p
ill J
О
D
τ ι ι
I T22J П Г23 Ц 24
τ τ
&~i^i
Ячейка
GG
Ячейка
GR
Θ
Рис. 8.4. Использование треугольного систолического массива в
качестве базового модуля QR-разложения.
где R - верхнетреугольная матрица, а А - заполненная матрица.
При использовании треугольного массива предполагаем, что матрица
R первоначально распределена по элементам массива, а матрица А
поступает через верхнюю границу массива. Как показано ниже,
матрицу А можно обнулить с помощью надлежащих вращений Гивенса.
Первая строка а1 матрицы А поступает на верхний ряд
процессоров массива (рис. 8.4). ПЭ(1,1) вычисляет соответствующие
параметры вращения Гивенса (так, что первый элемент д. обнуляется)
и передает параметры оставшимся ПЭ первого ряда, где выполняются
GR. В результате вращений создаются две новые строки, первая из
которых помещается на исходных ПЭ, а вторая (за исключением
первого нулевого элемента) распространяется вниз, попадая во второй
ряд треугольного массива, где выполняется аналогичная процедура
обнуления. Таким образом, когда модифицированная строка а.
пройдет через весь массив, все ее элементы будут обнулены. То же
произойдет при прохождении через треугольный массив и с другими
строками матрицы А. После окончания процедуры в ПЭ окажутся
элементы матрицы R.
Приложения обработки сигналов и изображений 573
Если требуется привести к треугольному виду с помощью
QR-разложения одну лишь матрицу А, можно использовать этот же
треугольный массив, если R положить равной нулю. В этом случае в
ПЭ массива при инициализации загружаются нулевые начальные
данные, после чего следует описанная процедура, в результате
которой вычисляется треугольная матрица R.
Непосредственное вычисление невязки
В некоторых приложениях, связанных с построением диаграммы
направленности, основная задача состоит в вычислении собственно
невязки метода наименьших квадратов, в то время как
соответствующий вектор весов интереса не представляет. Слегка
модифицированная версия рассмотренного рекурсивного QR-алгоритма позволяет
выдавать невязку на каждом шаге рекурсии [McWhi83]. Из
уравнений (8.22) и (8.23) следует
Γ?ι ι
/
— — —
L еп+ J
= (Cl
■ 0 Ί
л
ь J
L n+\J
Отметим, что Q ' = Q 1 в силу ортогональности матрицы Q ..
Исходя из выражения (8.25), невязка метода наименьших квадратов
е +1 может быть получена (задача 4) следующим образом:
Vi = {n|cose«}Cv <8·26>
где θ. - углы последовательных вращений Гивенса, из которых
складывается матрица преобразования Qn+1 .
Соответствующий модифицированный треугольный массив показан
на рис. 8.5 [Ward84]. Аналогичная процессорная конфигурация
реализована в виде волнового процессорного массива (с
процессорами TMS32010 в качестве ПЭ) фирмами STC и RSRE в
Великобритании (разд. 7.5). Для вычисления диаграммы направленности
указанный волновой массив состоит из 33 одинаковых ПЭ, 21 из
которых организованы в виде треугольного волнового массива,
выполняющего вычисление диаграммы направленности, а остальные 12 ПЭ
осуществляют коррекцию данных и препроцессорную обработку.
Данный массив можно использовать для извлечения текущего значения
невязки с помощью метода рекурсивного QR-обновления
574
Глава 8
22
<12 ...
х23
V."
.♦♦·**
*24
*14
..-""■"
\ΐ I JL Χ Λ
φ Задержка
ГС
—»
b
Χ 3
(4^
b
з\
г
4
Рис. 8.5. Модифицированный треугольный систолический массив,
осуществляющий непосредственное вычисление невязок метода
наименьших квадратов.
(выражение (8.26)). Этот массив в сочетании с дополнительным
устройством обратной подстановки может использоваться и для
явного вычисления весов [Ward84].
Формирование диаграммы направленности с помощью метода
наименьших квадратов с ограничениями
Задача фильтрации по методу наименьших квадратов с
ограничениями возникает в гидролокационных антенных решетках, в которых
полезный сигнал, поступающий по известному направлению,
загрязнен станциями активных помех или другими источниками шума,
поступающими по различным направлениям. Для использования
первоначальной информации о сигнале и помехах оптимальные веса
пространственного фильтра выбираются так, чтобы минимизировать
суммарную квадратичную ошибку на выходе, одновременно сохраняя
определенные характеристики в направлении поступления полезного
Приложения обработки сигналов и изображений 575
сигнала [Kalso85]. Эта задача аналогична задаче наименьших
квадратов с ограничениями на вектор весов [McWhi86, Ward84].
Метод наименьших квадратов с ограничениями можно
сформулировать следующим образом: задана матрица наблюдений X размером
η χ Ν (η £ Ν), найти вектор весов w, минимизирующий норму
Xw 2
и подчиняющийся ограничениям
Cw = f,
где w - вектор-столбец длиной N (число датчиков), С - матрица
ограничений размером m χ N (m < N), f - вектор-столбец длиной т.
Отметим, что число ограничений равно т.
Эту задачу можно свести к задаче наименьших квадратов без
ограничений и решить ее рассмотренным выше методом. Процедура
сведения, которая хорошо известна как обобщенное подавление
бокового лепестка в адаптивных антенных решетках [Griff 82],
рассматривается ниже.
Произвольный вектор весов, который удовлетворяет ограничениям
Cw = f, складывается из двух частей - однородного решения w. и
частного решения w системы ограничений. Это означает , что
w = w/i + w?' (8'27)
где Cw. = 0 и Cw = f.
Л q
Отметим, что частное решение не зависит от наблюдаемых данных
и может быть определено заранее. Однородное решение w
принадлежит нулевому пространству С и поэтому может быть представлено
как линейная комбинация базисных векторов нулевого пространства,
имеющего размерность (N - т). Пусть матрица W представляет
базис этого нулевого пространства, т.е. нулевое пространство
натянуто на столбцы матрицы W . Тогда вектор однородного решения
может быть представлен как
W = W. + W .
h q
Следовательно, любой вектор весов, который удовлетворяет системе
ограничений, будет иметь следующую форму:
В общем случае частное решение системы ограничений не
единственно. Иногда предпочтительнее использовать минимальное по норме
решение, которое можно получить с помощью предварительного
умножения псевдообратной по отношению к С матрицы на вектор f.
576
Глава 8
w = W w + w (8.28)
s a q v '
ИЛИ
Xw = XW w + Xw . (8.29)
s a q v '
Введем следующие обозначения:
e' = Xw, Χ = XW и y' = Xw ,
1 s J qy
тогда выражение (8.29) принимает вид
е'= X'Wfl + у'. (8.30)
Таким образом, минимизация |Xw||2 эквивалентна минимизации
|е'|| = ||X'wa + у'||2 ,
т.е. получили задачу наименьших квадратов без ограничений. Это
означает, что теперь можно использовать описанный в примере 2
треугольный массив, выполняющий QR-разложение. Если интерес
представляет вектор невязки е' = Xw (вместо w), можно
воспользоваться устройством непосредственного вычисления невязки.
Накладные расходы, возникающие в процессе сведения, ограничиваются
операциями умножения матрицы на вектор и умножения двух матриц.
Блок-схема процедуры сведения, приведенная на рис. 8.6,
демонстрирует (относительно простые) операции предварительной
обработки, необходимые для преобразования задачи наименьших
квадратов с ограничениями в задачу без ограничений.
X
wq
ws
W5X ж
Оценка
наименьших
квадратов
без
ограничений
w»sx
{
Невязка
Рис. 8.6. Приведение задачи наименьших квадратов с ограничениями
к задаче наименьших квадратов без ограничений. И вектор w , и
матрица W , которые зависят только от ограничений, можно
вычислить заранее.
Приложения обработки сигналов и изображений 577
Модель, основанная на вычислении собственных значений и
сингулярном разложении (SVD)
В приложениях, связанных с вычислением спектра с высокой
степенью разрешения, предполагается, что случайный процесс состоит
из ρ синусоид, искаженных аддитивным белым шумом. Такой процесс
можно моделировать как АРБУ-процесс специального вида. Эта
модель одинаково пригодна и для нахождения направления с высокой
степенью разрешения, и для формирования диаграммы направленности
в случае, когда используется линейная решетка регулярно
расположенных датчиков. Она приводит к методу вычисления спектра,
основанному на разложении по собственным значениям и известному как
метод Писаренко [Кау81]. (Его математическая запись достаточно
сложна и поэтому здесь опускается.) Минимальное собственное
значение матрицы ковариации данных R может быть эффективно
вычислено с помощью модифицированной итерации с отношением Релея,
которая использует теплицеву структуру матрицы [YHHu85]. Для
обеспечения численной робастности целесообразно заимствовать подход,
основанный на сингулярном разложении - метод теплицевых
аппроксимаций (МТА), предложенный Куном [Kung81, Kung83d]. Как при
моделировании, так и при обработке реальных данных МТА
демонстрирует высокую производительность. В случае решеток с
нерегулярным размещением датчиков следует прибегнуть к более общему
SVD-методу, такому, как метод MUSIC классификации кратных
сигналов, в котором используются все собственные векторы,
соответствующие наименьшим собственным значениям [Schmi79]. Для задач в
реальном времени матричные процессоры для выполнения
SVD-разложения становятся необходимостью. Некоторые схемы
матричных процессоров для вычисления сингулярного разложения,
рассматриваются ниже.
Волновой процессор для QR-алгоритма нахождения собственных
значений. Согласно Парлетту [Parle80], QR- и QL-алгоритмы -
наиболее эффективный способ нахождения всех собственных значений
малой симметричной матрицы на последовательной ЭВМ. Сначала
заполненная матрица приводится к трехдиагональному виду с помощью
последовательности отражений или вращений, после чего для
быстрого обнуления внедиагональных элементов используется
QR-алгоритм (разд. 2.2.4). Алгоритм повторно применяет сложное
преобразование подобия к результату предыдущего преобразования,
тем самым порождая последовательность матриц, сходящихся к
диагональной матрице. Поскольку процедура приведения к трехдиаго-
37—102S
578
Глава 8
нальному виду требует на последовательной ЭВМ времени 0(п ), был
предложен линейный волновой процессор, состоящий из η ПЭ и
требующий времени 0(п ) [Kung83a]. Итерационная процедура с трех-
диагональной матрицей особенно привлекательна с точки зрения
реализации на волновом процессоре билинейной конфигурации. Обе
указанные операции могут быть выполнены с использованием только
локальных связей.
Систолический массив для параллельного алгоритма сингулярного
разложения Якоби. Симметричную матрицу А € RnXn можно диагонали-
зовать с помощью обнуления внедиагональных элементов, используя
классический метод Якоби, который сводится к использованию
вращений Гивенса [Golub83, Раг1е80]. Циклический метод Якоби имеет
квадратичную сходимость, хотя в общем случае его
производительность ниже производительности QR-алгоритма. Метод Якоби требует
столько же операций, сколько построенный на симметричном
QR-разложении алгоритм Шура, однако в определенных случаях
предпочтительнее использовать именно метод Якоби. Если, например,
матрица А близка к диагональной форме, как и в случае, когда
известна хорошая аппроксимация системы собственных значений,
метод Якоби имеет некоторые преимущества перед QR-алгоритмом.
Для повышения степени параллелизма при реализации на
систолическом массиве можно использовать свойство взаимной
независимости вращений Якоби. В работах [Вгеп85а, Вгеп85Ь] предложен
двумерный систолический массив размером л/2 χ /г/2, который
использует свойство независимости и обеспечивает параллельное
выполнение я/2 вращений из данного набора вращений. (В шахматных
соревнованиях и турнирах по бриджу часто применяется такая же
стратегия разбиения, которая используется для того, чтобы каждый игрок
встретился с соперником за наименьшее число туров, т.е. чтобы
все игроки были заняты и ни одна пара игроков не встречалась
более одного раза.) Разработан специальный систолический массив,
в котором ПЭ связаны с 8 ближайшими соседями. Время вычисления
составляет порядка 3sai, где s - число итераций (обычно 6-10
итераций), необходимых для сходимости метода Якоби.
8.2.3. Использование калмановской фильтрации для решения задачи
наименьших квадратов
Калмановская фильтрация находит широкое применение во многих
как зависящих от времени, так и инвариантных задачах обработки
сигналов, встречающихся в управлении и связи, обработке радиоло-
Приложения обработки сигналов и изображений 579
кационных и гидролокационных сигналов и т.д. Дискретная
рекурсивная динамическая система может быть представлена в виде
x(k + 1) = F(k)x(k) + w(£ + 1),
(8.31)
y(k) = C(k)x(k) + ν(Λ),
где F(fc) и С(/г) - матрицы коэффициентов размером /г χ /г и /η χ л;
х(&) и w(& + 1) - /г-мерный вектор состояния и вектор системных
помех соответственно, y(k) и v(k) - m-мерные векторы измерений и
шумов измерения соответственно. Математическое ожидание векторов
шума равно нулю, их матрицы ковариации - Rw(& + 1) и Rv(fc)
соответственно. Предполагается, что шумы w и ν некоррелированы
(т.е. £[w(*)v(/)] = 0 для всех /,/).
Запись калмановской фильтрации в виде задачи наименьших
квадратов
Калмановская'фильтрация состоит в вычислении вектора
оптимального предсказания x(k + 1), обозначаемого x(k + 1), по
результатам измерений {у(1),у(2),...,у(6)} [Kalma60]. Наилучшее
предсказание для вектора состояний в выражении (8.31),
основанное на линейном критерии минимума дисперсии, может быть получено
о
рекурсивно со сложностью 0(п ). Ниже алгоритм калмановской
фильтрации будет преобразован к виду классической задачи наименьших
квадратов. Для получения более подробной информации см. работы
[Paige77, MJChe86, MJChe87].
Для цветных шумов, когда матрицы ковариации Rw(& + 1) и Rv(&)
уже не единичны, необходимо сначала выполнить процедуру
отбеливания. Матрицы ковариации двух векторов шума записываются в виде
R~\* + 1) = W(* + 1)TW(* + 1),
R^(*) = V(*)TV(*) .
где W(fc + 1) и \(k) - верхнетреугольные матрицы, полученные из
разложения Холецкого [Golub83]. После умножения на операторы
отбеливания W(fc + 1) и V(k) получаем (см. задачу 22):
Щк + \)x(k + 1) = W(* + l)F(k)x(k) + V/(k + l)w(* + 1),
\(k)y(k) = V(k)C(k)x(k) + V(k)v(k). (832)
Если сгруппировать векторы состояний вплоть до шага k
включительно и сформировать вектор большого размера X(fc), то выраже-
37*
580
Глава 8
ние (8.32) может быть представлено в следующей матрично-
векторной форме [Paige77]:
ΐί(*) = A(k)X(k) + \(k), (8.33)
где
X(k) = [хТ(1)хТ(2)...х(Л)]т
Щк) = [wT(l)vT(l)wT(2)vT(2)...vT(^ - l)wT(*)]T,
Υ(Λ) = [0 f(l)0y(2)...yT(fe - 1) 0]τ,
W(l)
t(l)
F(l) W(2)
t(2)
A(*) =| F(2) W(3)
Щк - 1)
С(Л - 1)
V(k - 1) . W(/0,
где F(£) = -W(* + l)F(*)f t{k) = V(*)C(*)> w(* + 1) =
= W(* + l)w(* + 1), у(Л) = -V(*)y(*) и ν(Λ) = -V(k)v(k).
Предполагается, что х(0) = 0, и поэтому w(l) = W(l)x(l).
Поскольку вектор шума V(k) в выражении (8.33) является белым
шумом с нулевым математическим ожиданием и единичной матрицей
ковариации, наилучшая оценка х(&) при заданных {у(1)...у(& - 1)}
может быть получена теперь с помощью решения задачи наименьших
квадратов на основе метода QR-разложения. Умножение обеих
частей (8.33) на ортогональную матрицу Q размером
[(k - \)т + kn] χ [(k - \)m+kn\ на k-м шаге дает
QU(k) = Q\(k)X(k) + QY(*),
(8.34)
где
[QA(*)QY(*)] =
*11
0
0
R12
R22 R23 °
0 Rfc-1,fc-1 Rfe-1,ft
R(*)
0 0 ... о
0 0 · · . 0
'Jfe-1
' fe-1
Приложения обработки сигналов и изображений
581
В последнем равенстве подматрицы R.( и R(&) -
верхнетреугольные; {br...,bfel,bfe} - л-мерные векторы; {ГуГ^..,rfel} -
m-мерные векторы невязки. Заметим, что и после ортогонального
преобразования матрица QU(6) остается белой, поэтому вектор
наилучшего приближения x{k) зависит только от вектора b :
x(k) = -R(*)~\ (8.35)
Поскольку R(k) - верхнетреугольная, уравнение (8.35) решается с
помощью обратной подстановки.
Рекурсивная калмановская фильтрация по методу наименьших
квадратов
Следующее рекуррентное уравнение, представленное в
модифицированной матрично-векторной форме, задает процедуру модификации
для получения значения x(k + 1) по последнему измерению y(k)
(см. задачу 6):
где
V(k + 1) = A(k + \)X(k + 1) + Y(* + 1),
Q,U(*)
V(k + ι) =
w(* + 1)
(8.36)
[A(* + 1) H(k + 1)
[Rtl R12
**22 ^23
0 0
о 0
^/M,ft-1 ^fe-l, k
R(*)
о 0
1 b, I
1 '
! **2
Ι Γι
Ι Γ*-ι
! *(k)\
Ι о J
0 0 ··· 0 t(k) 0
0 0 ··· 0 V(k) W(k + 1)1
Для того чтобы вычислить x(k - 1) с помощью QR-разложения
матрицы %(k + 1), необходимо вместо большой матрицы H(k + 1)
рассмотреть следующую матрицу размером (2я + т) χ (2 я + 1):
582
Глава 8
Щк) о ък
t(k) О у(*) |. (8·37)
¥(к) Щк + 1) О
Выполнение QR-разложения матрицы (8.37) с помощью матрицы
ортогонального преобразования приводит к следующему равенству:
Щк) О
t(k) О
Г(к) V/(k + 1)
У(*)
О
О R(* + 1) b
О о
k+\
(8.38)
где R. . и R(& + 1) - верхнетреугольные матрицы размером η χ η,
а г
вектор невязки.
Пример 3. Систолический массив для калмановской фильтрации.
Матричные процессоры для задачи калмановской фильтрации
предлагались в работах [Andre81,Jover86, Sung86, MJChe87]. Если
вычислители в работах [Andre81] и [MJChe87] выполняют только
обновление измеренных значений, то в работах [Sung86] и [MJChe87]
предлагаются систолические массивы как для обновления измерений, так
и для динамического обновления. Ни в одном из перечисленных
методов, однако, не использовалась треугольная структура матрицы
W(6 + 1) (см. выражение (8.37)). Ниже на основе использования
особенностей этой специальной структуры будет построен более
эффективный систолический вычислитель.
Описание алгоритма. Полная процедура треугольного разложения
состоит из двух частей:
1. Обнуление [С (k)V (k)] с помощью операций вращения
матрицы R(&)> выполняемых на треугольном массиве (см. пример 2).
2. Модификация Щк + 1) до тех пор, пока сохраняется ее
треугольная структура.
Казалось бы, первый шаг не представляет затруднений. Однако,
как показано на рис. 8.7, любая операция вращения, выполняемая с
каждой парой строк матриц V(k) и Щк), одновременно изменяет
соответствующую пару строк матрицы W(& + 1) и расположенной над
ней нулевой матрицы, обозначаемой Z(k). Чтобы гарантировать
сохранение верхнетреугольной структуры W(£ + 1) на втором шаге,
необходимо при выполнении операций с V(k) на первом шаге
произвести некоторое переупорядочивание. Сказанное можно
проиллюстрировать динамикой процесса по шагам с помощью кадров
рис. S.7. Заметим, что матрица F(k) обнуляется снизу вверх, что
позволяет сохранить верхнетреугольную форму W(& + 1) на
протяжении всей процедуры.
Приложения обработки сигналов и изображений 583
Г *(*) I о
6(*) | о
χ * г | О О О
χ χ | О О О
χ | О О О
χ χ χ | χ χ χ
R*{k) | Z(*)
t(k) I W(* + l)
Ο χ χ j χ χ
OO^I 9
OOxl
9 I
0 0
о 0
о 0
о 0
о 0
о 0
9 I
\ 9 9 9
9 \ 9 9
Ο Ο χ J χ χ χ
0 0 0 j 9 9
О 0 0 j χ
χ χ χ | χ χ χ
χ χ | χ χ χ
9 I 9 9 9
0 0 0 j 9 9 9
О 0 0 j xx
0 0 0 1 χ
Рис. 8.7. Динамика обнуления матрицы F(£) с сохранением
треугольной структуры матрицы Щк + 1). (На месте пробелов также
стоят нули). Символ g помещен на месте элементов активной
строки, которая участвует во вращении Гивенса на данном шаге, а О
стоит в тех позициях, где имело место обнуление.
584
Глава 8
Построение систолической архитектуры. Для реализации
приведенной двухшаговой процедуры достаточно одного треугольного
массива, выполняющего QR-разложение. Операции делятся на две фазы:
на первой фазе обрабатываются матрицы £(&) и V(k) (рис. 8.8, а),
на второй - обрабатывается матрица W(£ + 1) (рис. 8.8,6) . Время
выполнения полного шага рекурсии, состоящего из двух частей,
равно An + т [Kung87c]. Ниже описывается функционирование
треугольного массива.
1. Обработка С(Л). Поступающую матрицу C(k) можно обнулить с
помощью операций вращения с распределенной по ПЭ треугольной
матрицей R(&) (рис. 8.8, а).
Обработка F(k). Как показано на рис. 8.8, а, процесс обнуления
V(k) начинается сразу же после требующей т тактов обработки C(k)
Рис. 8.8. Два шага одной рекурсии обновления калмановской
фильтрации, а - использование R(k) для обнуления матриц C(k) и F(fc),
и б - вращение W(6 + 1) и 7\k).
Для того чтобы справиться с различными видами обработки на
этих двух стадиях, можно использовать в ПЭ арифметические
устройства типа CORDIC.
Приложения обработки сигналов и изображений 585
и выполняется по той же схеме на треугольном массиве. Так же,
как и в примере 2, диагональные ПЭ выполняют построение вращения
Гивенса, после чего посылают параметры вращений Гивенса
расположенным справа ПЗ, на которых осуществляется GR. Весьма
существенно, что через η + m тактов функции углов вращения {Θ,,},
(т.е. cos9,. и sin9 ) начинают появляться с правой границы
массива и сохраняются в буфере данных для использования на второй
фазе обработки.
2. Обработка Щк + 1). Легко показать, что к тому моменту
(/ = 3/1 + т), когда обнуление Y(k) завершено, матрица W(£ + 1)
уже распределена по ПЭ треугольного массива, а функции углов
вращения {Θ } (cos9..,sine ) оказываются готовы к
использованию. Таким образом, операцию вращения W(& + 1) можно
непосредственно выполнить на треугольном массиве. Заметим, что на
этом шаге треугольный массив должен обеспечивать движение данных
по каналам связи вправо и вверх в отличие от первой фазы
обработки, требующей наличия связей, направленных вправо и вниз.
Параметры вращения. Как показано на рис. 8.9,а, функции углов
вращения {Θ,,} проходят через правую границу треугольного
массива в скошенном формате данных. Данные, расположенные вдоль
любой антидиагонали, будут направляться в соответствующий
диагональный ПЭ треугольного массива, что можно сделать
естественным образом, если использовать для хранения этих параметров
буфер данных, верхняя строка которого напрямую связана с
диагональными ПЭ треугольного массива, как показано на рис. 8.9,6. В
момент t = Зя + /п, когда все функции углов {Θ..} заняли свое
место, они построчно направляются в треугольный массив для
выполнения вращений Гивенса W(fc + 1).
Загрузка W(£ + 1). Как видно из рис. 8.10, W(& + 1)
загружается в массив процессоров сверху сразу после V(k). Это
обеспечивает полную синхронность в поступлении параметров {Θ } слева и
элементов Z(k) снизу.
Получение x(k + 1). Наилучшую оценку вектора состояний
x(k + 1) в соответствии с выражением (8.35) нетрудно получить с
помощью метода обратной подстановки на одном дополнительном
линейном массиве длиной η (разд. 3.4).
Время выполнения одного шага рекурсии. Рассматриваемая
операция состоит из двух фаз, первая из которых требует Зп + m
тактов, вторая - 2/г тактов. Однако уже через η тактов после запуска
второй фазы обработки освобождается ПЭ(1,1), который может быть
использован для начала выполнения операций следующего k + 1-го
586
Глава 8
t=3n+m
Ы3п+т
• · ·
lAAJ ьЫ rnU| rioL_^
©43*.ψ-·
• ·
1 ·©-*
1
On
A
ft,
"T~
Ш
•
•
Om
111
WW
τ
ъъъъ*
~τ
ъъъъ%
•
•
чхчч
V*)-U
ГТ^
|9м.г
пг
ν)ι·ι.3
·
•
Ч»/.л
θπί
=т=
Θη2
А
Όη3
•
•
С/лл
б
Рис. 8.9. Функции углов вращения {Θ..}, поступающие через правую
границу треугольного массива в скошенном формате данных (а), и
буфер данных, служащий для хранения этих функций (б). Верхняя
его строка напрямую соединена с диагональными ПЭ треугольного
массива. Полностью схема расположения данных изображена на
рис. 8.10. Время задержки параметров {Θ } определяется временем
обработки на массиве процессоров и временем выполнения операций
с буфером.
шага рекурсии. Поэтому время выполнений каждого шага рекурсии с
Ъп + m сокращается до 4л + т.
Приложения обработки сигналов и изображений
587
*(k+i)
У (к)
Ъ(к)
Рис. 8.10. Расположение данных, участвующих в одном шаге
рекурсии алгоритма калмановской фильтрации.
Более строго, fc-й шаг обработки, как показано на рис. 8.10,
начинается в момент t = 0, когда на вход массива поступает
Cml(fc), а следующий (k + 1)-й шаг (над Ст1(& + 1)) может
начаться тотчас же после того, как закончится выполнение вращения Z41
на ПЭ(1,1) в момент t = 4п + т. (Отметим, что в этот момент
ПЭ(1,2) еще выполняет операции /г-го шага. Но через один такт,
когда Сп поступит на вход массива, он уже может приступить к
выполнению операций (k + 1)-го шага.) Таким образом, время
выполнения одного шага рекурсии составляет 4я + т тактов
[Kung87c].
588
Глава 8
8.3. ОБРАБОТКА РЕЧЕВЫХ СИГНАЛОВ
Основными направлениями в обработке речевых сигналов являются
анализ и синтез речи, кодирование и распознавание речи.
1. Анализ речи включает методы параметризации речевого
сигнала, улучшения качества речи и оценивания спектра с целью
выделения формантных частот. При синтезе речи автоматически
генерируются речевые сигналы на основе параметров, полученных при
анализе речи. В разд. 8.3.1 кратко обсуждаются методы линейного
предсказания для анализа и синтеза речи.
2. Кодирование речи используется для эффективной пересылки и
хранения речевых сигналов. В разд. 8.3.2 рассмотрен пример
систоличекого вычислителя для кодирования речи с помощью
векторного квантования.
3. Распознавание речи человека находит все более широкое
применение в таких приложениях, как системы автоматического
распознавания речи и системы различения и идентификации речи
отдельного человека [Bowen82, Орреп78]. В разд. 8.3.3 подробно
излагается метод динамического изменения масштаба времени.
8.3.1. Линейное предсказание в анализе и синтезе речи
Рис. 8.11 иллюстрирует механизм генерации речи. Система
возбуждается последовательностью импульсов для вокализованной речи
и случайным шумом для невокализованной. Нестационарный цифровой
фильтр (фильтр голосового тракта), обладающий свойством
квазистационарности, может рассматриваться на коротком интервале
времени (20 - 30 мс) как стационарный фильтр.
Период
основного
, тона
Генератор
импульсных
сигналов
Переключатель
"вокализованная/
невокализованная
речь"
Генератор
случайного
шума
1 и(п) Оч
1м
Квази-
стационарный
цифровой
фильтр
Ф)
Рис. 8.11. Блок-схема упрощенной модели генерации речи.
Приложения обработки сигналов и изображений 589
Рис. 8.12. Синтезатор речи, основанный на кодировании методом Л Π
с использованием Х-образного фильтра.
Одним из наиболее популярных средств анализа речи является
метод линейного предсказания (ЛП), основанный на предположении,
что фильтр голосового тракта порождает авторегрессионную (АР)
модель. Подобно АР-оцениванию спектра, ЛП-анализ дает оценки
коэффициента усиления, периода основного тона и параметров ЛП
{а.}. При оценивании коэффициентов фильтра по этому методу
вычисляются 8-12 задержек коэффициентов автокорреляции. При этом
используются измерения данных на коротком (20 - 30) мс интервале
и решение соответствующих уравнений Йела - Уолкера (разд.
8.2.1). Как только будут получены параметры ЛП, из (8.5) и (8.6)
(при В(г) = 1) можно получить энергетический спектр на коротком
интервале времени. Прослеживая максимальные отклики АР-спектра
(их может быть 4 - 5), можно локализовать и отследить
резонансные частоты (форманты) голосового тракта. Данный подход широко
применяется как при получении основных характеристик речи
(период основного тона, форманты, спектр, зональные функции
голосового тракта), так и при представлении речи для
низкоскоростной цифровой передачи или хранения.
Синтез речи используется во многих приложениях, начиная от
вычислительных систем с речевым вводом и кончая системами,
помогающими говорить и читать инвалидам. Существуют несколько
способов синтеза речи по параметрам линейного предсказания, самый
простой из которых состоит в использовании направленного фильтра
для реализации АР-модели с заданными параметрами линейного
предсказания. Однако при этом повышается чувствительность к
возмущениям коэффициентов.
Более привлекательной с точки зрения устойчивости является
Х-образная структура (рис. 8.12 [Rabin78]), основанная на так
называемых коэффициентах отражения {/С,}, которые могут быть
получены методом ЛП с помощью, например, алгоритма Шура
(разд. 2.3, гл. 2).
590
Глава 8
8.3.2. Векторное квантование для кодирования речи
Способы кодирования при сжатии данных
Сжатие данных заключается в преобразовании цифрового или
аналогового сигнала в поток цифровых данных меньшей интенсивности
для передачи по цифровому каналу связи либо для записи в
цифровую память. Основная идея сжатия состоит в том, чтобы с помощью
удаления избыточной информации найти эффективное представление
сигнала. Сжатие данных играет главную роль в достижении
эффективной и надежной передачи данных в системах цифровой связи.
Оцифровка речи в системе импульсно-кодовой модуляции (ИКМ),
например, приводит к существенному расширению полосы пропускания
(что не годится для обыкновенных телефонных каналов), поэтому
для эффективного использования канала связи необходимо сжатие
данных.
Задача сжатия речи и изображений известна также как задача
кодирования речи и изображений. Данные, представляющие сигналы и
изображения, обладают структурными характеристиками,
позволяющими изощренными методами достигать высокого коэффициента сжатия.
Ниже рассматриваются три подхода к кодированию речи и
изображений - кодирование с предсказанием, кодирование с помощью
преобразований и векторное квантование.
Сжатие данных методом предсказания. Среди схем кодирования с
предсказанием наиболее популярны волновое кодирование и
параметрическое кодирование. Метод волнового кодирования переводит
речевой сигнал (изображение) непосредственно во временную
(пространственную) или частотную область. Характерными примерами
этого способа кодирования являются дифференциальная ИКМ и
адаптивная дифференциальная ИКМ. С другой стороны, параметрическое
кодирование основано на некоторых допущениях относительно
корреляции между сигналами. Одним из важным примеров является
кодирование с линейным предсказанием (КЛП) на основе АР-модели,
которое благодаря точности оценивания параметров и относительно
низким вычислительным затратам весьма распространено в
кодировании речи. Метод КЛП можно также применить при кодировании
изображений, если надлежащим образом подобрать авторегрессионную
модель двумерных изображений.
Сжатие данных методом преобразований. Сжатие данных можно
выполнить также с помощью унитарного или ортогонального
преобразования, в результате которого большая часть информации может
Приложения обработки сигналов и изображений 591
быть отображена в небольшое число отсчетов, которые затем
квантуются и кодируются. Двумя характерными примерами методов
преобразования для сжатия речи и изображений являются преобразование
Фурье и преобразование Адамара. Можно показать, что при
возрастании длины последовательности преобразование Фурье
асимптотически эквивалентно оптимальному преобразованию Карунена
-Лоэва. С вычислительной же точки зрения более эффективным
является преобразование Адамара (см. гл. 2 и 6), которое не требует
умножений, поскольку матрица Адамара состоит только из +1 и -1.
Коэффициенты преобразования Адамара изображения размером Ν χ N
можно вычислить за 0(N log^N) сложений и вычитаний.
Сжатие данных с помощью векторного квантования. Идея
векторного квантования (ВК) заимствована из классического метода
сопоставления с образцом. Его основное свойство - возможность
достижения очень низкой интенсивности потока данных и
соответственно низкой пропускной способности каналов. В схематическом
виде метод ВК показан на рис. 8.13. Лейтмотив метода ВК
заключается в интенсивном использовании операций сопоставления с
образцом. В системах ВК входной образец (вектор) сравнивается с
элементами из множества предварительно сформированных шаблонов
(кодовых векторов), которые образуют базу данных (кодовую книгу)
эталонных образцов. Выбирается кодовый вектор, который наилучшим
образом аппроксимирует входной вектор, и его номер используется
Код после квантования
^ равен 3=112
четырех кодовых слов)
О Кодовый вектор
φ Входной вектор
+ J
Рис. 8.13. Иллюстрация векторного квантования. Размерность равна 3.
592
Глава 8
в качестве кода. Впоследствии исходный сигнал можно с некоторой
степенью точности восстановить по образцу в кодовой книге, тем
самым завершая полный цикл сжатия данных.
В типичном КЛП-вокодере речи входной сигнал разделяется на
кадры, и обработкой каждого кадра извлекаются коэффициенты КЛП.
Скорость смены кадров составляет «44 кадр/с. Для каждого кадра
выделяются 10 параметров КЛП, представляющих коэффициенты
фильтра голосового тракта, для квантования которых используется
41 бит, что дает общую интенсивность передачи данных для
вокодера 2400 бит/с. На основе метода ВК может быть разработан вокодер
с интенсивностью передачи всего лишь 800 бит/с [Wong82], что
достигается за счет уменьшения (с помощью ВК) затрат на
кодирование каждого набора из 10 коэффициентов КЛП с 41 до 10 бит.
Кодирование этих 10 битов выполняется следующим образом: сначала
в кодовую книгу с использованием стратегии кластеризации
заносятся 1024 (2 = 1024) кодовых вектора, после чего в кодовой
книге отыскивается наилучшее приближение для каждого кадра. При
найденном согласовании соответствующий 10-битовый номер образца
является кодом данного кадра .
Матричные процессоры для кодирования методом векторного квантования
Процедура сопоставления с образцом в процессоре векторного
квантования часто оказывается вычислительно трудоемкой даже для
такой простой меры, как квадрат евклидова расстояния
(среднеквадратичная ошибка). Поэтому реализация векторного
квантования с кодовой книгой умеренного размера с необходимостью
требует создания высокопроизводительной архитектуры [Сарре86].
Умножение матрицы на вектор для ВК. Пусть χ - 6-мерный
входной вектор (образец), а {у(л), η = 1,...,#} - множество N
fe-мерных кодовых векторов кодовой книги. Простой и достаточно
распространенной мерой искажения является среднеквадратичная
ошибка
Более высокой производительности можно достичь с помощью
расщепления кодовой книги на вокализованный и невокализованный тома
для фонем различных типов.
о
Другой распространенной метрикой при векторном квантовании
параметров КЛП служит хорошо известная мера искажения
Итакура - Сайто, основанная на измерении спектральной ошибки
[Itaku75].
Приложения обработки сигналов и изображений 593
Жх,у(/!)) = ||х - уИ! 2 =*Σ*2: - 2 kly(n)x. +kly2An) (8.39)
/=0 1 /=0 1 /=0 l
где χ .и у An) - i-e элементы векторов χ и у(/г) соответственно.
Поскольку первое слагаемое в выражении (8.39) для заданного
входного вектора χ является константой и его удаление не влияет
на результат поиска в кодовой книге, процедура ВК-кодирования,
основанная на поиске минимума ошибки D(x,y(/i)), эквивалентна
следующим двум шагам:
1. Вычислить
fe-1
dn =gQ*nixi + сп ·
где гп1 = -2у(п) и сп = ^ 1#Ό·
2. Найти индекс п, такой, что величина d минимальна среди
{rfn}, и использовать его в качестве кода. Заметим, что значения
{г } и {с } можно вычислить заранее. Если записать процедуру в
эквивалентной матрично-векторной формулировке, получим следующие
два шага:
1. Вычислить
d = Zx + с .
2. Определить
Min {dn},
где d = [d.,d2, ...,dN] - вектор искажения, с = [сгс2,...,с..]
- начальный вектор, а Ζ = {ζ .} - кодовая матрица размером
Ν χ Ν, каждая строка которой представляет кодовый вектор из
кодовой книги.
Пример 1. Систолический вычислитель для векторного
квантования. На рис. 8.14 показан граф зависимостей рассмотренной
операции умножения матрицы на вектор. Входной вектор χ
распространяется в 1-м направлении, а элементы {ζ } кодовой матрицы
предварительно занесены во все узлы ГЗ. Начальные значения {с }
поступают из верхней строки. Частичные суммы накапливаются в
вертикальном направлении, а конечный результат {d } получается в
&-й, т.е. второй снизу строке ГЗ. Путем сравнения всех значений
{d.} в (k + 1)-й строке ГЗ определяется минимальный элемент,
номер которого появляется на выходе узла (k + \,N) ГЗ.
Если спроецировать ГЗ в ГПС в направлении /, получим
показанный на рис. 8.15 линейный массив размером k + 1. На рис. 8.16
приведено функциональное описание его ПЭ двух разных типов.
Коэффициент ускорения построенного вычислителя ограничен, по-
ί8 —1028
594
Глава 8
С1 С2 С3 С4 ··#· CN-1 CN
\ ГТТ*ГГТТг
DDDDDqDD
Рис. 8.14. ГЗ для задачи умножения матрицы на вектор с
последующим определением минимального элемента.
±
хпо г о
пэ0
vi-
Г^
»
V-» V
ПЭК-1
1 к-1
кп
FT
Рис. 8.15. Систолический массив для ВК, состоящий из к ПЭ и
одного компаратора (КП). ПЭ выполняют умножение с накоплением
d = а * b + с, а КЛ сравнивает поступающие на вход d значения с
содержимым регистра минимального искажения (РМИ), записывая в
следующем такте меньшее из этих чисел вместе с его индексом в
регистр.
скольку число ПЭ, совпадающее с размерностью входных векторов,
как правило, мало (например, к « 10). Если же выполнить
проецирование в направлении /, получим массив, состоящий из N ПЭ, что
приведет к резкому увеличению коэффициента ускорения. Платой за
это увеличение является необходимость включения во все N ПЭ
одновременно устройств сравнения, умножения и сложения, что,
однако, не мешает использовать при желании схему разбиения
(разд. 6.3).
Оба рассмотренных систолических вычислителя нетрудно
преобразовать так, чтобы стала возможной одновременная обработка
Приложения обработки сигналов и изображений 595
• Элемент единичной задержки
Индекс
Рис. 8.16. Функциональное описание структуры ПЭ (а) и структуры
КП (б).
нескольких векторов. Один из возможных путей состоит в
использовании множества систолических массивов, параллельно
выполняющих ВК нескольких входных векторов, что, разумеется,
увеличивает скорость обработки за счет повышения стоимости
оборудования.
Альтернативный подход состоит в повторяющемся использовании
единственного систолического массива с повторным использованием
кодовой матрицы и организацией конвейера входных векторов
(разд. 4.4).
8.3.3. Динамическое изменение масштаба времени для распознавания
речи
Распознавание речи применяется в производстве автомобилей,
банковском деле, в информационных системах с речевым вводом. В
настоящее время доступны некоторые коммерческие системы
[Rabin81]. Устройство распознавания речи обычно состоит из
четырех функциональных блоков (рис. 8.17) - блок извлечения
признаков, блок сопоставления с образцом, словарь эталонов и блок
принятия решений [Bowen82]. Критическим среди этих устройств
является блок сопоставления с образцом, выполняющий вычисление меры
различия между пробным и эталонным образцами. В автоматизирован-
38 <·
596
Глава 8
Поступающая
речь
Тестовый
образец
Множество
расстояний
Результат
распознавания
Блок
извлече
ния при-|
знаков
Блок
сравне
ния с
[образцом!
Словарь
эталонов
Блок
принятия
решений
Рис. 8.17. Система распознавания речи.
ной системе автомобильной инспекции, например, эталонные образцы
выбираются из множества ключевых слов, описывающих такие части
автомобиля, как аккумулятор, колеса или тормоза. Из цифрового
представления каждого произнесенного ключевого слова извлекается
набор характерных параметров, которые в совокупности образуют
множество эталонных образцов. Тестовый образец представляет
собой набор параметров, извлеченных из некоторого слова, например
слова "тормоза", произнесенного автоинспектором. Для того чтобы
подобрать наиболее похожее ключевое слово, этот набор параметров
сравнивается со всеми эталонными образцами. Задача, сопоставления
с образцом в данном случае значительно более сложная, чем
классическая процедура сравнения с шаблоном. Дополнительная
трудность состоит в необходимости компенсировать изменение скорости
речи, т.е. временное рассогласование между эталонным образцом и
вновь поступающим пробным образцом. Для эффективной компенсации
данного нелинейного искажения можно использовать динамическое
изменение масштаба времени (ДИМВ) [Sakoe78].
Формулировка алгоритма ДИМВ в виде задачи о пути минимальной
стоимости
В задачах распознавания речи входной поток представляет собой
последовательность т кадров пробного образца {t .,/ = l,2,...,m},
которые формируют множество характерных параметров сигнала.
Типичная длина интервала, на котором эти параметры извлекаются из
речевого сигнала, составляет 15 - 30 мс, т.е. отдельное слово,
произносимое за 1 с, как правило, состоит из 30 - 60 кадров.
Кроме того, имеются Q эталонных наборов, каждый из которых
состоит
из
кадров эталонных образцов
{г .,q
1,2,...,Q,
Приложения обработки сигналов и изображений 597
/ = 1,2,...,л }. Задача устройства распознавания речи состоит в
том, чтобы сравнить поступающую пробную строку с каждым из Q
эталонных наборов для отыскания наиболее близкого образца.
Предположим, необходимо сравнить пробный образец с q-м
эталонным образцом. Рассмотрим двумерную декартову решетку размером
пг χ η (рис. 8.18) такую, что каждому узлу V(i,j) решетки
предварительно сопоставлен параметр стоимости d(itj). При данном
способе сравнения с образцом, как показано на рис. 8.18,
стоимость узла d(i,j) обозначает расстояние между эталонным кадром
г и пробным кадром tf Узлы решетки соединены дугами трех
типов - направленными вверх, вправо и по диагонали - с каждой из
которых предварительно связываются веса {WyW«,wA
соответственно. Исходя из решеточной модели, алгоритм ДИМВ может быть
сформулирован в виде задачи о пути минимальной стоимости,
связывающем левый нижний узел 7(1,1) с правым верхним V(m,n).
Формулировка задачи при отсутствии ограничений. Стоимость
пути определяется не только стоимостью посещенных узлов
d(i(k),j(k))t но и мультипликативным весом, приписанным входящей
дуге (рис. 8.18,6):
Μίη Σ d(i(k),j(k))w(k), (8.40)
k
где V[i(k)tj(k)] обозначает узел, посещенный на k-м шаге,
d(i(k)J(k)) обозначает стоимость узла, a w(k) = wyw2 или w„ в
зависимости от направления дуги, входящей в узел У[/(Л)»/(£)]·
В задаче ДИМВ при сопоставлении с каждым из эталонных
образцов сумма (8.40) используется как мера подобия. Если параметры
кадра являются коэффициентами КЛП, то расстояние обычно
вычисляется в метрике Итакуры. Наиболее распространенные значения
весов: w* =1, до„ = 1, до3 = 2 [Itaku75, Sakoe78].
Ограничения, связанные с локальной непрерывностью. Вычисление
указанной функции для всех возможных путей в общем случае было
бы слишком накладно. Однако исходя из соответствующих физических
условий задачи, можно ввести ограничения на разрешенные
маршруты. Можно, например, сформулировать ограничение на локальную
непрерывность, которое гарантировало бы, что путь проходит не
более чем через два последовательно расположенных горизонтальных
(или вертикальных) узла.
Физический смысл этого ограничения состоит в том, что данная
модель допускает не более двух повторений одного кадра в пробном
(или эталонном) сигнале. В реальном устройстве можно также огра-
598
Глава 8
Пробный
образец
G(m,n)
__ Эталонный
m образец
Стоимос
~"Υπ—'
Стоимость
о—
1Е
—О-—ό—о—
О о
О О °
(I-2.J-1L/
О О
(i-
о о о
Щ»о
V) о
г о о
1.1-2)
О
о
о
О
Рис. 8.18. Формулировка алгоритма в виде задачи о пути
минимальной стоимости на решетке, а - G(iyj) представляет стоимость
минимального пути из узла 7(1,1) в узел V(itj)\ б - предположим
d(i,j) = Ε, тогда вклад узла составляет либо 1£, либо 2Е в
зависимости от того, по какой из дуг проходит маршрут; в -
допустимые пути в точку (/,/).
ничить вторую производную функции динамического изменения, чтобы
путь не менял своего направления на ортогональное [Sakoe78].
Если принять указанные ограничения, то, как показано на
рис. 8.18, найдутся всего лишь три допустимых пути, ведущих в
узел V(iyj):
1. Путь, приходящий непосредственно из узла V(i - 1,/ - 1).
2. Путь из узла V(i - 2,/ - 1), проходящий через
промежуточный узел V(i - 1,/).
3. Путь из узла V(i - 1,/ - 2), проходящий через
промежуточный узел V(iJ-l).
Глобальное ограничение пути. Глобальное ограничение может
быть введено ограничением допустимого маршрута на плоской
решетке в пределах диагональной полосы, берущей начало вблизи начала
координат. В результате путь динамического изменения проходит в
Приложения обработки сигналов и изображений 599
диагональной области. В математической формулировке глобальное
ограничение можно записать следующим образом: \i(k) - j(k)\ < β,
где 2В + 1 - область эффективного сопоставления, задающая размер
полосы. Если два образца слишком сильно отличаются друг от
друга, путь минимальной стоимости будет проходить вне диагональной
полосы, и образцы признаются несопоставимыми. Вычисления на этом
прерываются.
Пример 2. Систолический вычислитель для алгоритма ДИМВ. Пусть
G(iJ) означает стоимость пути, пройденного к моменту прихода в
произвольный узел V(iJ). Отметим, что при выборе направления не
допускается "обратный ход", поэтому (?(*,/) можно вычислять
рекурсивно, как в задаче динамического программирования. В данном
примере обсуждается соответствующая рекурсивная процедура.
Полная стоимость G(m,n) представляет меру различия между двумя
образцами.
Формулировка алгоритма при отсутствии ограничений. Ниже
рассмотрен подход к построению рекурсивного ДИМВ, основанный на ГЗ.
Решение задачи ДИМВ в отсутствие ограничений (выражение (8.40))
можно сформулировать в виде рекуррентного уравнения (8.41)
[Sakoe78]. ГЗ для этой задачи почти такой же, что и на
рис. 8.18, где узел V(i,j) достижим только из трех .узлов:
(/,/ - 1), (ι - 1,/ - 1), (ί - 1,/). Получаемую задачу
динамического программирования можно записать в виде программы,
удовлетворяющей правилу однократного присваивания:
G(itj) = 0 i <> 0 или / * 0
For i from 1 to m
For / from 1 to η
m,n = t(/,/ - i)
!·(/, /) = Г(/ - 1,/)
d(i,j) = dist{t</./).!·(*./)>
G(l,i - 1) + wxd{i,j)
G(i - 1,/ - 1) + w3d(i,j) , (8.41)
L G(i - 1,/) + w2d(i,j)
G(i,j) = Min
где t(U) = tf, / = 1,2,...,m, a r(l,/") = г., / = 1,2 π
входные кадры, подвергаемые изменению масштаба времени, а
dist{t(t,/),r(i',/)} - расстояние между t(«',/) и г(/,/).
Ограничения, обусловленные локальной непрерывностью. Если
600
Глава 8
налагаются рассмотренные выше локальные ограничения, то ГЗ
примет форму, показанную на рис. 8.19, где узел V(iJ) может быть
достигнут только из узлов V(i - 2,/ - 1), V(i - 1,/ - 1) и
V(i - 1,/ - 2), а соответствующая программа, построенная по
правилу однократного присваивания, должна быть модифицирована, как
показано ниже. Отметим, что в связи с локальной непрерывностью
появляются два новых значения веса - w.h w-
G(ί,/) =0 ι£0 или / * 0
For i from 1 to m
For / from 1 to η
t(/,/) = t(i\/ - 1)
tO\/) = r(/ - 1,/)
d(i,j) = dist{t(/, /),!■(/,/)}
Г G(i,j - 1) + w^d(ij) + w2d(ij)
G(i,/) = Min J G(/ - 1,/ - 1) + w3d(ij) (8.42)
I 0(i - 1,/) + wAd(i,j) + w5d(ifj)
Ограничение глобального характера. Глобальное ограничение
приводит к тому, что вычислительный путь заключен внутри полосы
|/ - /| < В. Для достижения наивысшей эффективности
предпочтительнее проецировать ГЗ на ГПС в направлении (1,1), что приводит
Эталонный
образец
1 2 3
Пробный
,· образец
Рис. 8.19. ГЗ алгоритма ДИМВ с локальными ограничениями и окном
глобального ограничения.
Приложения обработки сигналов и изображений 601
Рис. 8.20. Линейный систолический массив для алгоритма ДИМВ.
к линейному систолическому массиву (рис. 8.20). (Отметим, что
функция каждого ПЭ определяется в соответствии с
выражением (8.42).) После систолизации ГПС можно построить
систолический вычислитель с локальными связями и конвейерным
тактом, равным 2.
Можно и дальше локализовать ГЗ с помощью введения новых
промежуточных переменных в записи программы с однократным
присваиванием [Jutan84] (задача 9). При этом все-таки остается одна
проблема: поскольку α = 2, ПЭ функционируют только половину
общего времени. Одно из возможных решений состоит в том, чтобы
обрабатывать одновременно два эталонных образца г и г7 с помощью
их чередования, что вдвое повысит общую производительность.
Примеры реализации на СБИС
Систолическая архитектура на СБИС, основанная на
модифицированном методе (задача 9) была реализована во Франции для
различных алгоритмов ДИМВ [Jutan84]. Каждый ПЭ, построенный более
чем на 1900 транзисторах по 2,5-мкм W-канальной МОП-технологии,
вычисляет локальное расстояние и обновляет глобальную меру
различия. Двадцать пять ПЭ и их локальные межсоединения размещены
о
на площади размером 35 мм в стандартном корпусе с 40 выводами.
Один кристалл может распознать 300 слов в режиме реального
времени, а массив, состоящий из двадцати двух кристаллов, способен
распознавать один слог из набора 6000 эталонов за время 200 мс.
Был также предложен систолический массив для распознавания
слитной речи, основанный на динамическом изменении масштаба
времени и вероятностном алгоритме сопоставления [Charo86], который
использует в качестве базового ПЭ программируемый кристалл
API89. Японской фирмой NTT разработан массив кольцевой
архитектуры, реализующий в системе распознавания речи в реальном
времени алгоритм ДИМВ. Его преимущества определяются меньшим числом
ПЭ и высокой производительностью [Takah85]. В лаборатории
Линкольна разработан и реализован на кремниевой пластине
систолический процессор, выполняющий ДИМВ и предназначенный для рас-
602
Глава 8
познавания как раздельных слов, так и слитной речи. Массив,
выполняет либо КЛП, либо вычисляет расстояния в спектральной
метрике. Массив, состоящий из 65 ПЭ, выполнен на перестраиваемых
СБИС (ПСБИС) на основе последовательной поразрядной арифметики
по 3-мкм кремниевой технологии. Предполагается, что ПСБИС-уст-
ройство распознавания речи на кремниевой пластине, основанное на
ДИМВ, будет в состоянии работать со словарем 12000 слов в
реальном времени [Feldm84].
8.4. ОБРАБОТКА ИЗОБРАЖЕНИЙ
Обработка изображений оперирует детерминированными и
стохастическими представлениями изображений (модели и
преобразования изображений), занимается сжатием больших объемов данных и
улучшением качества изображений с помощью фильтрации и
устранения имеющихся искажений (улучшение и восстановление
изображений). Основными направлениями цифровой обработки изображений
являются улучшение, восстановление, реконструкция и кодирование.
1. Улучшение изображений осуществляется методами, которые
оттеняют определенные свойства изображения с тем, чтобы оно
приняло более подходящий вид для последующего анализа. Примерами
такого улучшения являются усиление контрастности и яркостных
переходов, использование псевдоцветов, фильтрации и т.д.
Известные методы улучшения изображений можно разделить на три
категории: пространственные, спектральные и временные.
Пространственные методы для улучшения качества восприятия изображений
используют их геометрические свойства. Спектральные методы улучшают
изображения с помощью обработки в спектральной области.
Временные методы призваны извлечь информацию из различий между
последовательными кадрами [Venet85]. В разд. 8.4.1 подробно
обсуждается пример использования медианной и ранговой фильтрации
для улучшения изображений.
2. При восстановлении изображений пытаются по искаженному
изображению получить изображение, наиболее близкое к оригиналу.
В качестве математического аппарата используются средства из
теории фильтрации и оценивания. К искажениям изображений
относятся: случайный шум, интерференция, геометрические искажения,
неоднородность поля, потеря контрастности, размывание. Для
восстановления используются как методы линейной фильтрации,
включающие обратную фильтрацию, винеровскую, калмановскую фильтрацию,
Приложения обработки сигналов и изображений 603
так и методы нелинейной фильтрации (методы релаксации,
гомоморфная фильтрация, методы максимальной энтропии, методы
байесовского оценивания). В разд. 8.4.2 обсуждается использование
метода релаксации для восстановления изображений.
3. Реконструкция изображений - метод построения изображений
высокой степени разрешения на основе обработки данных,
полученных при наблюдении объекта из многих точек. Задача реконструкции
трехмерных объектов по их двумерным проекциям, например,
используется в компьютерной томографии (КТ), ядерном магнитном
резонансе, радиоастрономии и сейсмологии. При решении этой задачи
широко используются методы, основанные на цифровой свертке и
преобразовании Фурье. Эти методы реконструкции вкратце
описываются в разд. 8.4.3.
4. Кодирование изображений связано с кодированием источника
и призвано осуществлять сжатие изображения путем удаления
избыточности. При этом используются методы, подобные тем, что
используются при кодировании речи (методы, основанные на
преобразованиях и на предсказании). Более подробный пример кодирования
содержится в разд. 8.3.2.
8.4.1. Использование медианной/ранговой фильтрации для улучшения
изображений
Медианный фильтр для обработки видеосигнала
Медианные фильтры - частный случай нелинейных фильтров,
применяющихся для подавления импульсного шума [Pratt78]. Идея
медианного фильтра очень проста. Заданный дискретизованный сигнал
длиной L пропускается через окно длиной 2N + 1 так, что при
каждом изменении положения окна относительно последовательности
изменяется центральный элемент окна, который полагается равным
среднему значению 2N + \ отсчетов в окне. Краевые эффекты на
левой и правой границах учитываются с помощью добавления
констант в начало и в конец последовательности данных. В качестве
примера рассмотрим последовательность 3 4 7 12, медиану которой
можно найти, сначала отсортировав ее, а затем выбрав центральное
значение упорядоченной последовательности. Таким образом,
начальное значение центрального пиксела окна, (имеющего здесь
длину 5), которое было равно "7", заменяется медианой
последовательности, равной "3". Привлекательность медианной фильтрации
при обработке изображений состоит в том, что она устраняет высо-
604
Глава 8
кочастотный шум и в то же время сохраняет яркостные переходы.
Это означает, что в отличие от традиционной линейной фильтрации,
которая не в состоянии предотвратить изменений сцены, при
медианной фильтрации подобные проблемы не возникают. Рассмотрим
пример (рис. 8.21, а), в котором изменение сцены может
восприниматься как яркостный переход. Применение медианного фильтра с
окном длиной 3 приводит к результату, представленному на
рис. 8.21,6. Это свойство можно использовать при покадровой
обработке видеосигналов, где необходимо избегать изменений сцены.
Удаление шума с помощью медианной/ранговой фильтрации
Один из подходов к медианной фильтрации состоит в
использовании д^ля сортировки систолического массива, выдающего медиану
окна данных [Fishe82, Oflaz83]. Затем окно сдвигается на один
пиксел так, что устройство сортировки может вычислить следующую
медиану и т.д. Для реализации описанного скользящего окна можно
приспособить устройство пузырьковой сортировки, описанное в
гл. 3. Так, например, систолический массив на кристалле
[Nicol85] использует для вычисления медианы в темпе поступления
видеоинформации алгоритм пузырьковой сортировки. Такой подход
можно отнести к разряду оконно-ориентированных, где пикселы в
каждом окне сортируются независимо. Большинство оконно-ориенти-
Яркос1ъ
пиксела м
Яркостный Ис*ра
переход ^^
··· ·
ν
····
Исходный
···· ·· ···· сигнал
1 I I I I I I I I I I I I I I I I I
Номер кадра
···
Сигнал,
wwww прошедший
ШФ ####### медианную
фильтрацию
ι ι ι ι ι ι ι ι ι ι ι ι ι ι ι ι ι ι
Рис. 8.21. Видеосигнал с тремя градациями яркости в виде
кадровой развертки (а) и видеосигнал после медианной фильтрации с
длиной окна, равной 3 (б).
Приложения обработки сигналов и изображений 605
рованных устройств сортировки фактически используют для
сортировки двумерные массивы, что неэффективно и непригодно для
больших окон из-за больших размеров массива и низкого коэффициента
использования.
Ранговая фильтрация. При обработке массивов пикселов более
эффективен подход, основанный на ранговой фильтрации, при
которой ранги яркостей пикселов определяются в убывающем порядке.
Пиксел, имеющий предопределенный ранг, выдается в качестве
результата, а ранги всех остальных пикселов в текущем окне могут
использоваться для выполнения рангового упорядочения в следующем
окне .
Рассмотрим последовательность пикселов и одномерное окно Ψ
длиной k. При перемещении окна на одну позицию в него вновь
попадут все текущие пикселы за исключением крайнего.
Следовательно, результаты ранжирования в следующем окне можно определить с
помощью несложной модификации сохраненных результатов текущего
ранжирования. Рассмотрим рис. 8.22, где длина окна k = 5, а
текущее окно W = [*3 х^ *5 х6 х?]. Следующее окно W = [*3 *4 х5
хб х7 х&] получается из W- отбрасыванием пиксела х~ и
добавлением пиксела *g. Предположим, что ранги {г, у / = 4, 5 6, 7} пик-
^1 ^2 »^3 1^4 ^5 Хб ^7; ^8 1^9 ^Ю
7 /
Рис. 8.22. Два последовательных положения окна длиной 5 при
выполнении ранговой фильтрации.
селов {*4,*5,*6,χ7} определены на предыдущем шаге при работе с
Ψ&\ тогда их новые ранги {rg} в окне №g можно определить,
сравнивая пикселы {*.,/ = 4,5,6,7} с пикселом х~, выходящим за
пределы окна, и вновь поступающим пикселом *g, и соответственно
преобразуя {г 7) в {г,8}· Эта процедура называется процессом
исключения и добавления пиксела (ИДП).
Аналогично образом можно получить также ранг rgg пиксела *g.
При подходе, ориентированном на обработку отдельных пикселов,
каждое окно требует 0(k) сравнений, в то время как при
оконно-ориентированном подходе число сравнений имеет порядок 0(k ).
Этот подход применим для выделения не только медианного
значения, но и данных любого заданного ранга.
606
Глава 8
Систолический массив для ранговой фильтрации
Ниже рассмотрен пример, из которого видно, как информация о
рангах пикселов в одном из окон; например {/*.»}, дает
возможность выполнить ранжирование в следующем окне {/\8}, что
позволяет получить процедуру в целом по индукции. Предположим,
что после седьмого шага рекурсии имеются в наличии ранги
{г37,г47,...,г-7}, а данные расположены в обратном порядке
х7 х6 XS х4 х3'
Граф зависимости данных для случая, когда новые входные пикселы
*8,х9,... поступают справа, показан на рис. 8.23,а, а на
рис. 8.23,6 представлен соответствующий ГПС, полученный в
результате проецирования ГЗ в вертикальном направлении. По ГЗ
видно, что процедура ИДП состоит из двух фаз обработки (фазы А и
Окно Фаза
Х7 Х6 *5 *4 *3
*9 a o/-0^~0-0-0
Рис. 8.23. ГЗ для процедуры исключения и добавления пиксела (а)
и соответствующий ГПС, полученный проецированием ГЗ в
вертикальном направлении (б).
Для того чтобы позаботиться о выполнении начальных условий,
можно приписать к началу последовательности некоторые константы,
например нули.
Приложения обработки сигналов и изображений 607
В). Для иллюстрации обработки в ГПС отметим, что на восьмом шаге
рекурсии, исключается пиксел *3, и добавляется пиксел xg.
Исключение пиксела. На фазе А восьмого шага рекурсии отсчет
*3 перемещается влево, встречая на своем пути все остальные
отсчеты {*4 *5 *б *7}, находящиеся в соответствующих ПЭ. ПЭ
выполняют следующие операции:
Для i = 4,5,6,7
обновить г'
г' = г.- - 1, если х. ^ х0
ι7 ι7 ι 3
г' = г.- в противном случае.
Для того чтобы подготовиться к фазе β, значения {*.,г'} после
каждого обновления должны передаваться соседнему справа ПЭ.
Добавление пиксела. В фазе В восьмого шага рекурсии отсчет xR
перемещается влево, встречая на своем пути все остальные отсчеты
{*4 х5 х& х? }, находящиеся в соответствующих ПЭ. ПЭ выполняют
следующие операции:
Для / = 4,5,6,7
обновить r.g
Г/8 = ГП + 1 еСЛИ х1 < Х8
г' = τη в противном случае.
Вычисление ранга нового пиксела. Поскольку *g - вновь
поступающий пиксел, необходимо найти его ранг. Вычисление ранга,
которое можно осуществить на фоне добавления пиксела, описывается
следующей процедурой:
Начальное присваивание /g3 = 1
Для i = 4, 5, 6, 7
обновить ig.
*8/ = *8,М· еСЛИ Xt < *8
L = L, + 1 в противном случае
переслать /gg влево
Выход rgg = ts?
Вспомогательная переменная t&. введена для подсчета числа
пикселов, превышающих или равных по значению jcg . После того как все
сравнения выполнены, можно определить ранг jcg : rgg = /g7.
Отметим, что процедура вычисления ранга легко объединяется с
процедурой добавления пиксела.
Выделение ранга текущего окна. Задача выделения ранга
заключается здесь в том, чтобы найти такое целое ι , при котором
608
Глава 8
r.*g равно искомому рангу, и получить х* на выходе
систолического массива. Для удобства функционирования конвейерного
систолического массива предполагается, что рассмотренные значения х*
двигаются влево, появляясь на выходе крайнего левого ПЭ. В
предлагаемом вычислителе, как показано на рис. 8.24, задачи ИДП,
вычисления ранга и выделения ранга выполняются на одном линейном
массиве.
*6 *5
Рис. 8.24. Систолический вычислитель для задачи ранговой
фильтрации.
Двумерная медианная фильтрация
В приложениях, связанных с обработкой видеосигналов, при
улучшении изображения можно с успехом использовать одномерную
фильтрацию, выполняемую над каждым кадром. Однако в большинстве
других приложений обработки изображений требуется выполнять
двумерную фильтрацию. При раздельном использовании двух одномерных
медианных фильтров, которые выполняют обработку пикселов сначала
по строкам изображения, затем - по столбцам, ключевые свойства
двумерной медианной фильтрации большей частью сохраняются.
Поэтому двумерную фильтрацию можно фактически выполнить с
помощью двух одномерных систолических массивов [Parke85, Offen85].
8.4.2. Использование методов релаксации для восстановления
изображений
Постановка задачи оценивания по критерию максимума апостериорной
вероятности
Задача восстановления изображения состоит в том, чтобы
восстановить изображение, искаженное, например, в результате
размывания, нелинейной деформации, мультипликативного или
аддитивного шума. Для. обозначения искаженного изображения g можно
использовать следующую математическую запись:
g=#(f)0M (8.43)
где f - восстанавливаемое изображение, Η - линейное (или нели-
Приложения обработки сигналов и изображений 609
нейное) преобразование в небольшом окне, состоящее в размывании
или деформации, Θ обозначает операции сложения или умножения,
η - статистически независимый шум.
Если ограничиться рассмотрением линейного размывания и
аддитивного шума, то равенство (8.43) можно записать следующим
образом:
g = Hf + η. (8.44)
Задача восстановления изображения состоит в восстановлении
первоначального неискаженного изображения f по имеющемуся
искаженному изображению g, функции преобразования Η и некоторым
статистическим свойствам шума п. Если искажение носит линейный
характер, как в выражении (8.44), наиболее простой метод состоит в
том, чтобы решить задачу наименьших квадратов, т.е. найти такое
приближение f, которое минимизирует совокупную ошибку
min (g - Hf)T(g - Hf). (8.45)
Поскольку, как указывалось в разд. 4.6, во многих случаях
имеется некоторая априорная информация о свойствах изображения
(гладкость, распределение яркости), то можно модифицировать
формулировку метода наименьших квадратов следующим образом:
min (g - Hf)T(g - Hf) + y(Wf)T(W?) , (8.46)
где матрица W представляет сглаживающую весовую функцию
изображения, а у - соответствующий параметр регуляризации.
Используя модель нейронной сети (разд. 4.6), задачу
восстановления изображения в регуляризационной постановке можно решить
непосредственно. Для того чтобы решать задачи из более широкого
класса искажающих воздействий (например, нелинейная деформация,
мультипликативный шум и т.д.), можно обобщить детерминистскую
постановку. Опишем один из наиболее популярных при
восстановлении изображений методов статистического оценивания, называемый
методом максимальной апостериорной вероятности (МАВ), который
основан на теореме Байеса. Пусть F - множество всех допустимых
решений для f, причем для всех f € F выполняется P(i) > 0. Тогда
МАВ-решением называется такое решение f € F, которое
максимизирует условную вероятность
P(hg) ос P(g\hP(h (8.47)
Предположим, что изображение состоит из N пикселов и каждый пик-
39— 102S
610
Глава 8
сел имеет L градаций яркости, тогда размер пространства решений
равен L. Поскольку точные алгоритмы решения этой задачи
неизвестны, а объем вычислений исключительно велик, более
привлекательными оказываются итерационные подходы, которые используют
локальные свойства модели изображения [Besag86].
Марковское случайное поле и система окрестностей
Пусть S = {svs2i...tsN} - множество пикселов изображения и
f = {χ , s € S) - допустимое решение. Распространенное и
отражающее реальность предположение состоит в том, что изображение
можно моделировать как марковское случайное поле (МСП), которое
определяется свойством [Besag74]
^Ms-iJ = WaP· <8·48)
где ds обозначает окрестность пиксела s.
Наиболее распространенными примерами МСП, заданных на
конечной сетке, являются МСП первого и второго порядка. Для МСП
первого порядка окрестность пиксела 5 определяется как множество,
содержащее четыре соседних пиксела - северный, южный, восточный
и западный. Граничные пикселы, имеющие три соседа, и угловые
пикселы, имеющие два соседа, представляют исключения. В модели
МСП второго порядка окрестность пиксела 5 определяется как
множество, содержащее восемь соседних пикселов - северный, южный,
восточный, западный, северо-восточный, северо-западный,
юго-восточный и юго-западный.
Итерационные условные моды (ИУМ)
Итерационные условные моды (ИУМ), предложенные в работе
[Besag86], представляют собой прямой метод нахождения
подходящего байесовского оценивателя для выражения (8.37). Данный метод
обновляет текущее решение χ пиксела $, учитывая всю доступную
информацию. Пусть для удобства наблюдаемое изображение g
представляется в виде g = {ys,s € S). При данном значении у
наилучшую оценку х, и все текущие оценки xs_,s) можно получить как
величины, на которых достигается максимум
*\»»А-{,)>α ^.ι*.)^*.ι*β.) <8·49)
для всех s € S.
Приложения обработки сигналов и изображений б11_
Если применять указанную модификацию итерационно, P(f|g)
будет на каждой итерации возрастать (нестрого) и в конце концов
придет к установившемуся решению. Скорость сходимости, согласно
опыту моделирования, также очень велика. Главный недостаток ИУМ
состоит в том, что имеется большой риск сходимости к локальному
оптимуму. Если это произошло, из "ловушки" выбраться уже
невозможно в силу нереализуемого правила неубывания P(i\g) на каждой
модификации. Подход, основанный на модельном отжиге,
первоначально предложенный Киркпатриком и др. [Kirkp83] в качестве
метода глобальной оптимизации в комбинаторных задачах, позволяет
устранить эту трудность.
Модельный отжиг на основе стохастической релаксации
В основе модельного отжига при восстановлении и реконструкции
изображений лежит алгоритм стохастической релаксации, который
генерирует последовательность изображений, сходящихся с
соответствующей скоростью к ИУМ-оценке. Предположение относительно
марковости вновь является решающим при построении эффективного
алгоритма модельного отжига. По существу итерационные модификации
выполняются с каждым пикселом. Более того, такую модификацию
можно моделировать как случайный процесс, зависящий от
непосредственного окружения данного пиксела и распределения локальной
условной вероятности.
В работе [Geman84] предложен метод, основанный на модельном
отжиге, в котором предполагается, что условная вероятность
произвольного состояния f при заданном g имеет вид
I
P(*\S) <*{P(g|f)P(f)}T, (8.50)
Известны различные итерационные методы построения процесса
модификации, в частности, метод, предложенный в работе [Geman84],
основан на предположении, что распределение вероятностей имеет
характер распределения Гиббса. Как уже говорилось в разд. 2.5,
энергетическая функция определяется на конечном множестве
состояний {/ € F}. Точнее говоря, распределение Гиббса является
мерой вероятности и имеет следующее представление:
Р(\) = ^Г£<!>/т, (8.51)
где Ζ - константа нормировки.
М)*
612
Глава 8
Определим множество точек двумерной сетки: {s = (/,m)|s € S},
и пусть 5 = (/ + l,m), а ^ = (/,/71 + 1). В соответствии с
обобщением Хаммерслея - Клиффорда [Besag74] в случае МСП первого
порядка £(f) можно записать следующим образом:
Е(П = Σ *sxs + Σ β,*,*,0 + Σ ν,χ,',ν (8-52)
где {α },{β } и {у } - произвольные множества функций. Если,
кроме того, предположить, что изображение отвечает свойству
однородности, то последнее выражение можно записать следующим
образом:
£(f) = α Σ xs + β Σ */*0 + * Σ *Λΐ· (8.53)
причем α, β и γ являются константами и инвариантны относительнс
Для того чтобы упростить глобальную зависимость, введенную
распределением Гиббса, можно снова воспользоваться
преимуществами модели МСП, исходя из которой для пиксела s можно записать
выражение (8.50) следующим образом:
\
P^Xs\y^S-{s}) « {P(ys\Xs)Ps(Xs\Xds^· <8·54)
Подробно это решение рассмотрено в работе [Besag74].
Выражения (8.50) и (8.54) совместно определяют следующую
итерационную схему, сходящуюся к состоянию s*, на котором
достигается минимум E(s). В этой схеме последовательность sys2,...
задается следующими уравнениями:
Vi
s., с вероятностью Р.
sfe, в противном случае,
где
Pk = ехр
Г-МахГДЕ,01 1
1. V I
АЯ = £(s )k- E(s )k .
Разработка систолических процессоров для алгоритмов релаксации
Модельный отжиг непосредственно реализуется на основе
априорного распределения с локальными зависимостями {Р(х \х* )},
поскольку для модификации пиксела 5 требуется только значение у и
текущая оценка соседних пикселов. Для гарантии сходимости метода
Приложения обработки сигналов и изображений
613
модельного отжига Джемэна и Джемэна необходимо предварительно
планировать последовательность модификации пикселов. Точнее
говоря, при параллельной обработке нельзя одновременно
модифицировать два соседних пиксела.
Заметим, что и ИУМ, и модельный отжиг характеризуются
одинаковой структурой параллельной обработки и запросов данных в
процессе модификации. Поэтому обсуждаемая ниже матричная
архитектура пригодна для обоих методов. Отличаются лишь операции в узле,
которые зависят от выбранного алгоритма релаксации. Для того
чтобы сделать возможным эффективное отображение алгоритма
модельного отжига на матричные архитектуры, необходимо учитывать
следующие два важных обстоятельства: 1) порядок системы
окрестностей и 2) размер окна размывания.
МСП первого порядка. В простейшем случае, когда размывание
отсутствует и допускается нелинейная деформация только
отдельного пиксела, будем рассматривать МСП первого порядка. При этом
вершины ГЗ можно разместить в трехмерном индексном пространстве
так, что вершина (/,/,&) представляет k-ю модификацию пиксела
(/,/). В качестве начальных условий процесса релаксации
выбирается входное изображение (ί,/,0). Данный ГЗ изображен на
рис. 8.25. На этом графе можно достичь максимального
параллелизма, используя процедуру модификации, получившую название
процедуры "кодирующих множеств" [Besag74]. (Модификация двух соседних
пикселов с одинаковым значением индекса k не допускается.)
\^J Активный узел
Рис. 8.25. ГЗ для алгоритмов релаксации с МСП первого порядка.
Программа для этого алгоритма релаксации, использующая
правило однократного присваивания, имеет вид:
614
Глава 8
For к from 1 to oo step 2
x(i/hk)
x(ij,k - 1) <-
Ф{*(/,/,* - l),Jc(i - 1,/,Λ - 1),
ν· ' Ι,Λ - 1),*(ι + Ι,Μ - 1)
*(<,/ + 1,* - 1 }
л/
L x(ij,k - 1)
1,* - 1),*(ί + i./,Λ)
[* Φί*( /, /, к - 1), χ( i
x\i,j + 1.Λ)}
ι + / - четно
i + j - нечетно
ι + j - нечетно
i + j - четно
Функция Φ определяется конкретным видом распределения Гиббса
для различных приложений. Различие между "четным" и "нечетным"
случаями определяется запретом на одновременную модификацию двух
соседних пикселов. Поскольку размер ГЗ в направлении к не
детерминирован (ось, по которой откладывается номер итерации),
единственным допустимым направлением проекции является направление к
с плоскостями плана, совпадающими с //-плоскостями при различных
значениях индекса к. Отметим, что функция каждой вершины ГПС,
полученного в результате такого проецирования, меняется от
четного к нечетному значению индекса, для реализации чего ПЭ
снабжаются специальными переключателями. Полученные в результате ГПС
и систолический массив изображены на рис. 8.26. Данная
систолическая архитектура представляет решетку, ПЭ которой
задействованы только 50% совокупного процессорного времени в силу
характера зависимости данных. Однако можно легко добиться повышения
эффективности с помощью стратегии разделения ПЭ.
к.
1 А
▼ 1
к.
1 А
Τ 1
к
1 А
▼ 1
[к.
"1 fc|
L·
1 L
Х12
1 А
у \
^2 2
1 А
у 1
*>2
1 к|
L 1
L 1
L 1
И
\2
L 1
1 L
*1!
1 А
т 1
х23
1 А
т 1
*зз
1 А
γ 1
*<з
1 «J
ν—I
L
Ι 1
L 1
1 L
X.4
1 t
X2 4
Ι τ
▼ 1
*>«
1 "f
▼ 1
XJ
Рис. 8.26. Алгоритм релаксации с системой окрестностей первого
порядка, а - ГПС; б - систолический массив.
Приложения обработки сигналов и изображений 615
■ и и и ■ и
Рис. 8.27. Максимально доступный параллелизм при выполнении
модификаций, который определяется системой "кодовых множеств"
[Besag74].
Архитектура рассмотренного типа широко используется при
параллельном решении двумерных эллиптических уравнений в частных
производных (УЧП) методом Якоби, который также называется
методом красно-черного разбиения [Кио85]. С помощью незначительной
модификации данного ГЗ можно непосредственно отобразить на
двумерную систолическую архитектуру алгоритмы Гаусса - Зейделя и
последовательной верхней релаксации решения эллиптических УЧП
(задача 13). Даже более сложные с точки зрения систолической
реализации алгоритмы последовательной верхней релаксации, для
которых большей популярностью пользуются одномерные архитектуры,
можно легко получить с помощью процедуры многократного
проецирования трехмерных ГЗ в одномерные массивы (разд. 3.4).
МСП второго порядка. Более сложной является система
окрестностей второго порядка, где Я представляет сверточную матрицу
размывания размером 3x3. Так же, как и для МСП первого порядка,
максимальный возможный параллелизм задается кодирующим шаблоном
(рис. 8.27), и следовательно в результате проецирования ГЗ в
направлении k можно получить решетку процессоров с диагональными
связями (задача 12).
Отметим, что в этом случае каждый ПЭ будет задействован лишь
25% общего времени работы. Для систем окрестностей более
высокого порядка или, что то же самое, для большего размера окон
размывания следует ожидать дальнейшего падения загруженности.
Неэффективность использования ПЭ и сложность межпроцессорных связей
побуждают использовать одномерные линейные массивы [Kung86c].
Эти вопросы изложены в задаче 12.
616
Глава 8
8.4.3. Реконструкция изображений с помощью методов интерполяции
Реконструкция изображений имеет ряд важных приложений,
например компьютерная томография (КТ) или радиолокация с
синтезированной апертурой (РСА). Томография широко используется при неин-
вазивных медицинских исследованиях внутренних органов (метод
рентгеновского томографического сканирования, например, дает
возможность получить изображения двумерных разрезов твердых
объектов) и в неразрушающем контроле промышленных изделий. Метод
РСА с точечным источником излучения позволяет получить
изображения с высокой степенью разрешения по данным, собранным с
бортовой микроволновой РЛС, которая облучает цель под разными углами
[Fried83]. Методы КТ и РСА используют сходные математические
принципы реконструкции изображений, которые описываются ниже.
Алгоритм Фурье-реконструкции по срезам
Пусть некоторый объект представлен двумерной функцией f(x,y),
а прямая L, вдоль которой выполняется проецирование, имеет
следующий вид:
L χ cosQ + у sin9 = г,
где 0 ί θ ί π, a -R ^ r £ R (рис. 8.28, α). Интеграл от функции
f(x,y) вдоль данной прямой
00 00
PQ(r) = J f(x,y)ds = J J 1(х,уЩх cosG + у sine- z)dxdyt (8.55)
Μ sinG- ν cos9 = 0
Пространственная
область
Одномерное
преобразование
Фурье
i
ν
0··,β
i j
ί··4.
υ
Частотная
область
Рис. 8.28. Проекция заданного объекта (а) и срез преобразования
Фурье объекта (б).
Приложения обработки сигналов и изображений 617
где б(ш) = 1 при w = 0 и d(w) = О в противном случае. Данный
интеграл называется преобразованием Радона, а функция Ра(г)>
-R£ r£ R называется проекцией объекта в заданном направлении Θ.
Пусть F(u,v) означает двумерное преобразование Фурье объекта
f(x,y). Теорема о проекционных срезах, которая основана на
взаимосвязи между F(u,v) и преобразованием Фурье Я0(г) [Rosen82],
лежит в основе многих методов реконструкции. Более строго,
преобразование Фурье проекции Ра(г) совпадает со значениями F(u,v)
вдоль радиальной прямой, проходящей через начало координат
и sin9 - υ cos0 = 0, как показано на рис. 8.28,6. Теоретически,
если задано бесконечное число углов проецирования, функцию
F(utv) можно получить во всех точках плоскости uv. В непрерывном
случае функцию изображения /(*,*/) можно затем восстановить с
помощью обратного преобразования Фурье F(u,v). В дискретном
случае, если значения коэффициентов Фурье F(uyv) известны на
прямоугольной сетке в частотной области, то f(x,y) можно получить с
помощью обратного преобразования Фурье:
Л Ν/2 N/2 „ „ „,v
К*.У) = Л Σ Σ F(& £) ехр[/2тг(^ + Щ] (8.56)
Az m—N/2 η —Ν/2 A A A A
для -A/2 < χ < A/2 и -A/2 < у < A/2. При условии, что известно Ν
компонентов спектра Фурье F(^r, 4) на прямоугольной сетке,
вычисление по формуле (8.56) можно эффективно реализовать с помощью
алгоритма БПФ.
Интерполяция на основе свертки
На практике можно получить лишь конечное число проекций
некоторого объекта, следовательно, функция F(u,v) известна только
вдоль конечного числа радиальных прямых (т.е. конечного числа
углов проецирования θ), как показано на рис 8.28. Для того
чтобы воспользоваться выражением (8.56), необходимо по точкам,
лежащим на радиальных прямых, интерполировать F в точках
квадратной сетки, что может быть выполнено с помощью одномерной либо
двумерной интерполяции. Для простоты рассмотрим только
одномерную интерполяцию.
Одномерная интерполяция состоит в восстановлении
ограниченного в полосе непрерывного сигнала g(y) по конечному множеству
отсчетов этого сигнала g(kY) [Stark81], где Υ - частота
дискретизации. Распространенной является следующая схема интерполяции,
использующая функцию sine:
618
Глава 8
() ш S fHkY)sirHn/Y)(4 - kY) {8 57)
fc.-ω (,/ГЦу - kY)
Представление непрерывного сигнала в форме (8.57) допустимо лишь
для ограниченных в полосе функций, причем Υ должно быть
достаточно мало, чтобы не возникало наложения спектра [Ореп75].
Известны и другие интерполяционнные функции, например функция Ла-
герра или полиномы Лежандра. Преимущество функции sine состоит в
том, что усеченное равенство (8.57) фактически представляет
оператор свертки, для реализации которого нетрудно построить
систолический массив.
8.4.4. Кодирование изображений
При кодировании изображений используются методы, аналогичные
тем, что применяются при кодировании речи, например, КЛП,
кодирование на основе преобразований, кодирование методом векторного
квантования. Рассмотрим изображение размером 256 χ 256, разбитое
на квадраты размером 16 χ 16, которое требуется закодировать по
методу с преобразованием. С каждым из квадратных участков
изображения после выполнения преобразования Фурье связано 256
коэффициентов Фурье \F(u,v)\. Дисперсию каждого коэффициента F(u,v)
о
можно оценить с помощью усреднения \F(u,v)\ по всем квадратам.
На основе анализа дисперсии можно выделить главные составляющие
спектра. Во многих случаях для представления квадрата 16 χ 16
достаточно всего лишь 64 старших компонента спектра Фурье,
полученных в результате анализа дисперсии, что приводит к
значительному сжатию данных.
При кодировании изображений можно использовать также метод
КЛП, для чего необходимо принять подходящую АР-модель
двумерных изображений. Одним из приложений является генерация
синтезированной текстуры с низкими требованиями к пропускной
способности [Gray84], другим - кодирование изображений с высокой
степенью сжатия для сцен с относительно грубым фоном в задачах
дистанционного управления. Методы кодирования изображений с
предсказанием имеют, как правило, низкую вычислительную сложность,
что делает их привлекательными для аппаратной реализации, однако
они достаточно чувствительны как к помехам в канале в процессе
передачи или хранения, так и к изменениям статистических
характеристик изображения. Методы, построенные на преобразованиях,
напротив, имеют высокую вычислительную · сложность, но являются
достаточно устойчивыми к шумам в канале и характеристикам
изображения [Jain85].
Приложения обработки сигналов и изображений 619
Другой класс способов кодирования изображений основан на
методах векторного квантования, которые используют информацию об
уровнях яркости пикселов непосредственно для создания кодовой
книги, в отличие от методов ВК для кодирования речи, где
используются коэффициенты КЛП. ВК оперирует квадратным блоком
изображения небольшого размера (обычно 9-16 пикселов). Используя
кодовую книгу размером 2 = 64 кодовых слов, можно достичь
сжатия до «0,5 бит/пиксел. Более высокого качества изображения при
таком же коэффициенте сжатия можно достичь с помощью
использования блоков большего размера. Кроме того, для увеличения
производительности можно использовать различные меры расстояния.
Если кодовую книгу разделить на две кодовые книги - яркостных
переходов и текстуры, то можно значительно улучшить качество
воспроизведения яркостных переходов [Ramau83].
8.5. АНАЛИЗ ИЗОБРАЖЕНИЙ
Под анализом изображений подразумевается извлечение
информации об изображении для использования в методах анализа сцен
высокого уровня и при классификации сегментов или характеристик
изображения. При анализе изображений входной информацией служит
само изображение, а выходом - список представленных на
изображении объектов или список признаков, таких, как отрезки и кривые
(в отличие от обработки изображений; где и на входе, и на выходе
используются изображения). Основными методами анализа
изображений являются выделение признаков, анализ формы, распознавание
образов и анализ сцен.
1. При выделении признаков изображения приводятся к
упрощенной форме карт или сегментов и из сегментированного изображения
выделяются такие грубые характеристики, как яркостные переходы,
цвета, компоненты текстуры. В разд. 8.5.1 подробно обсуждаются
матричные процессоры обнаружения яркостных переходов.
2. При анализе формы выделенные признаки сравниваются с
известными формами, и изображение описывается в терминах их компа-
нентов и свойств. В разд. 8.5.2 рассмотрен пример преобразования
Хафа для выделения прямых и кривых.
3. При распознавании образов изображение классифицируется
отнесением его к одному из предварительно определенных образов
на основании его грубых частей и свойств. В разд. 8.5.3
обсуждаются примеры сравнения с шаблоном для классификации образов и
нейронной ассоциативной обработки для распознавания образов.
620
Глава 8
4. При анализе сцен создаются сжатое описание и осмысленная
интерпретация классифицированного изображения. При этом могут
использоваться методы искусственного интеллекта. В разд. 8.5.4
дается краткий обзор систолических архитектур для операций с
областями.
8.5.1. Обнаружение яркостных переходов для выделения признаков
Большая часть полезной информации об изображении
сосредоточена в тех зонах, где происходит изменение либо интенсивности,
либо цветов, т.е. в зонах яркостных переходов. Информация
содержит сведения о величине скачка (амплитуда перехода) и
направлении, в котором яркость меняется наиболее быстро (направление
перехода). Указанные величины можно получить, вычислив частные
производные функции яркости g(x,y). Информация, полученная после
применения оператора дифференцирования, позволяет провести
сегментацию изображения, что является важным этапом при
классификации и идентификации объекта. Имеющуюся информацию о яркостных
переходах можно использовать для выделения контуров объекта и,
при некоторых условиях для определения топологических
характеристик трехмерных объектов. Кроме того, информацию о яркостных
переходах можно использовать для оценивания пороговых значений
при отделении особых зон изображения.
Выделение яркостных переходов с помощью двумерной свертки
Двумерная свертка представляет собой наиболее общий способ
выделения яркостных переходов. Пусть необходимо выделить яркост-
ные переходы на изображении g. Для этого осуществляется
двумерная свертка небольшого шаблона (маски) f с большим изображением
f с помощью передвижения окна с шаблоном f по изображению
(рис. 8.29). Значение свертки в каждой точке вычисляется по
формуле
c(mtn) = Ц f(i,j)g(m -i,n- /). (8.58)
Широко используются такие локальные операторы, как операторы
Робертса, Лапласа, Прюитта, Собеля (рис. 8.30). Оператор Лапласа
находит яркостные переходы как локальный максимум градиентов
изображения, поэтому точки яркостных переходов можно получить,
приравнивая к нулю вторые производные. Кроме того, он обладае1
изотропностью, т.е. способен находить яркостные переходы по всем
Приложения обработки сигналов и изображений 621
Рис. 8.29. Передвижение окна по изображению с целью выделения
яркостных переходов.
W =
W
DX
НЛ
SX
0
0
0
-1
-1
-1
0
0
0
-1
-1
-1
-1
-2
-1
0
0
0
-1
-1
-1
0
0
0
0
0
0
0
0
0
W
0
0
0
-1
-1
-1
0
0
0
1
1
1
1
2
1
L =
-1
-1
-1
4
4
4
-1
-1
-1
а
б
0
1
0
в
-1
-1
-1
4
4
4
-1
-1
-1
г
W =
РУ
W =
1 0
-4 1
1 0
-1 0
-1 0
-1 0
4 -1
4 -1
4 -1
-1 0
-1 0
-1 0
1
0
-1
1
0
-1
0
0
0
-1
-1
-1
0
0
0
1
0
-1
2
0
-2
0
0
0
-1
-1
-1
0
0
0
1
0
-1
1
0
-1
Рис. 8.30. Различные окна, используемые при выделении яркостных
переходов, а - операторы Прюитта; б - операторы Собеля; в -
оператор типа Лапласиана; г - расширенный оператор Лапласа.
возможным направлениям с помощью обыкновенной свертки с
изображением и может выделять весьма тонкие яркостные переходы.
Пример 1. Разработка вычислителя для выполнения двумерной
622
Глава 8
свертки. Для выполнения двумерной свертки определим матрицу
клк* как окно. Поскольку характерный диапазон изменения
размеров изображения составляет от 256 χ 256 до 8К х 8К пикселов,
необходима мощная параллельная обработка. Для приложений,
связанных с обработкой в реальном времени, когда темп обновления
изображения составляет 30 - 60 раз в 1 с, требования,
предъявляемые к скорости, становятся еще более жесткими. Ниже
описывается систолический вычислитель для задачи двумерной свертки.
Построение ГЗ. Не теряя общности, предположим, что размер
окна 3 χ 3, а размер изображения - Ν χ N. Тогда выражение (8.58)
можно записать в виде
2 2
Φ",л) = Σ Σ f(iJ)g(m - i,n - /). (8.59)
/=0 /=0
Поскольку данное равенство содержит четыре индексные
переменные /,/,т, и л, ГЗ алгоритма будет четырехмерным, а полученные в
результате проецирования ГПС будут трехмерными. Поскольку
изобразить четырехмерный ГЗ - задача нетривиальная, сначала
разобьем двойную сумму в выражении (8.59) на три слагаемых:
2 2
с(туп) = Σ /(0,/)*(/я, η - j) + Σ ftl,M« " Μ " /)
/-0 /=o
+ Z/(2,/)*(m - 2,л - /), <8·60)
/-о
каждое из которых может быть описано с помощью трехмерного ГЗ,
(рис. 8.31, а). Трехмерный ГЗ соответствует свертке изображения
со строкой оконного шаблона (1 χ 3). Заметим, что каждый из
двумерных уровней (размером 3 χ Ν) трехмерного ГЗ по существу
является ГЗ одномерной свертки. Четырехмерный ГЗ получается в
результате суммирования выходных значений трех таких одинаковых
трехмерных ГЗ.
Построение ГПС. Рассмотрим сначала построение трехмерного ГПС
размером 3 χ 3 χ N (приблизительно), который может быть получен
сначала проецированием каждого из трех трехмерных ГЗ в один
двумерный ГПС размером 3χΝ (рис.8.31,б) с последующим
объединением этих трех двумерных ГПС путем суммирования выходных значений
(рис. 8.31, в). Если предпочтительнее двумерные ГПС, то для
проецирования трехмерного ГПС в двумерные ГПС можно воспользоваться
мультипроекцией. На рис. 8.31, г показан двумерный ГПС размером
Зх N. При желании можно выполнять проецирование в различных
направлениях. Например, очевидно, что, изменяя направление муль-
типроекции, можно также получить ГПС размером 3x3.
Приложения обработки сигналов и изображений
623
Систолический и волновой процессоры. Изображенные на
рис. 8.31, в и г ГПС могут быть легко систолизованы с помощью
процедуры сечения. Например, при систолизации двумерного ГПС,
показанного на рис. 8.31, г, в каждый узел горизонтальных сечений
добавляется двойная задержка, а после применения вертикальных
сечений одинарная задержка может быть перемещена из каждого
диагонального узла в горизонтальный узел. Волновой массив для
выполнения двумерной свертки, построенный на 86 («256/3) потоковых
процессорах μΡ07281 [Vlont87], способен вычислять 256 значений
столбца пикселов за 16,8 мкс, включая время ввода-вывода. Полное
изображение размером 256 χ 256 обрабатывается за
16,8 χ 256 = 4,24 мс.
g(m,0) g(«*,1) Q(m,N-1)
Направление
проекции
Q(0.0)
9(1.0)
9(2,0)
Q(3,0)
9(0.3)
9(1.3)
9(2.3)
9(3.3)
Рис. 8.31. Трехмерный ГЗ для изображения размером Ν χ Nf
свернутого со строкой оконного шаблона (1 χ 3) (α). Четырехмерный ГЗ
можно получить с помощью сложения значений на выходе трех таких
трехмерных ГЗ. Двумерный ГПС, полученный проецированием
трехмерного ГЗ в направлении m (б). Трехмерный ГПС, полученный
суммированием значений на выходе трех двумерных ГПС (в). Двумерный ГПС,
полученный с помощью мультипроекции (г).
c(0,0) c(0,1)c(0,2)
c(1,0) c(1,1)c(1,2)
c(0,N-1)
c(1,N-1)
g(o.o) g(o,i) g(o,2)
gd.O) o(i.i) g(i,2)
g(2,0) g(2,1) g(2,2)
g(3,0) g(3,i) g(3,2)
Направление
(мульти-)
проекции
g(o,N-i)
g(LN-i)
g(2,N-1)
g(3,N-i)
c(0,0) c(0,1) c(0,2) c(0,3)
I I I I
I I I I
C(1,0) C(1,1) C(1,2) c(1,3)
1(2,2) 1(1,2) f(0,2):
1(2,1) f(1,1) f(0,1
f(2,0) f(1,0) f(0,0)
(О-ЗЪ)
Горизонтальное
сечение
Вертикальное
сечение
Рис. 8.31.
(Продолжение.)
д(0.0) д(0.1) д(0,2) д(0,3)
I I I I
I I I I
0(1.0) 0(1.1) 0(1.2) 0(1.3)
I I I I
I I I I
0(2,0) 0(2,1) 0(2,2) 0(2.3)
I I I I
0(3.0) 0(3.1) 0(3.2) 0(3.3)
Приложения обработки сигналов и изображений 625
Использование одномерных массивов для двумерной задачи
обнаружения яркостных переходов
В общем случае классический градиент или оператор Лапласа
плохо работает на зашумленном изображении. Один из возможных
способов повысить качество обработки состоит в том, чтобы перед
применением оператора производить усреднение. В результате
получим расширенный оператор Лапласа с маской размером 9x9
(рис. 8.30, г), который можно использовать для сглаживания шумов
и выделения яркостных переходов. Марр и Хилдрет предложили
использовать для выделения яркостных переходов семейство
операторов, полученных путем сравнения с нулем результатов
применения обобщенного оператора Лапласа [Магг80], т.е.
изотропных операторов сравнения с нулем второй производной. На
рис. 8.32, α приведен пример обобщенного оператора Лапласа
размером 11 χ 11. Если используется маска большего размера,
качество обработки в целом повышается, но за счет более высокой
стоимости оборудования. Ниже предлагается альтернативный подход.
-з*.
-25.
-18.
-12.
-8.
-7.
-8.
-12.
-18.
-25.
-34.
-25.
-15.
-7.
-1.
з.
4.
з.
-1.
-7.
-15.
-25.
-18.
-7.
2.
8.
12.
14.
12.
8.
2.
-7.
-18.
-12.
-1.
8.
15.
20.
21.
20.
15.
8.
-1.
-12.
-8.
з.
12.
20.
24.
26.
24.
20.
12.
з.
-8.
-7.
4.
14.
21.
•26.
27.
26.
21.
14.
4.
-7.
-8.
з.
12.
20.
24.
26.
24.
20.
12.
з.
-8.
-12.
-1.
8.
15.
20.
21.
20.
15.
8.
-1.
-12.
-18.
-7.
2.
8.
12.
14.
12.
8.
2.
-7.
-18.
-25.
-15.
-7.
-1.
з.
4.
з.
-1.
-7.
-15.
-25.
-34.
-25.
-18.
-12.
-8.
-7.
-8.
-12.
-18.
-25.
-34.
а
126.72 116.24 2.00 1.39 0.50 0.41 0.00 0.00 0.00 0.00 0.00
б
-34.18-24.89-17.70-12.05 -8.13 -7.10 -8.13-12.05-17.70-24.89-34.18
-24.89-15.05-7.18-1.04 3-04 4.24 3.04-1.04-7.18-15.05-24.89
-17.70-7.18 1.44 8.12 12.42 13.80 12.42 8.12 1.44-7.18-17.70
-12.05 -1.04 8.12 15.21 19.66 21.17 19.66 15.21 8.12 -1.04-12.05
-8.13 3*04 12.42 19.66 24.15 25.72 24.15 19.66 12.42 3*04 -8.13
-7.10 4.24 13.80 21.17 25.72 27.33 25.72 21.17 13-80 4.24 -7.10
-8.13 3.04 12.42 19.66 24.15 25.72 24.15 19.66 12.42 3-04-8.13
-12.05 -1.04 8.12 15.21 19.66 21.17 19.66 15.21 8.12 -1.04-12.05
-17.70-7.18 1.44 8.12 12.42 13.80 12.42 8.12 1.44-7.18-17.70
-24.89-15.05-7.18-1.04 3-04 4.24 3.04-1.04-7.18-15.05-24.89
-34.18-24.89-17.70-12.05 -8.13 -7.Ю -8.13-12.05-17.70-24.89-34.18
Рис. 8.32. Сингулярное разложение обобщенного оператора Лапласа.
а - исходный оператор; б - распределение сингулярных значений;
в - оператор, восстановленный по первым двум сингулярным числам
40—1028
626
Глава 8
Заметим, что обычно операторы с маской большого размера
характеризуются малым рангом, например, расширенный оператор
Лапласа размером 9x9 (рис. 8.30, г) имеет ранг, равный 2, а ранг
обобщенного оператора Лапласа размером 11 χ И (рис. 8.32,а)
также равен 2 в соответствии с распределением его сингулярных
значений, приведенных на рис. 8.32,6 (разд. 2.3.2). (Отметим,
что первые два сингулярных значения значительно больше
остальных.)
Пусть ρ обозначает числовой ранг оператора W свертки с
маской размером k χ k, т.е. для рассмотренных примеров k - 9 или
11, а ρ = 2. Тогда W можно аппроксимировать линейной комбинацией
ρ внешних произведений (см. выражение (2.17)):
W « £σιι vT = g ί νΤ (8б1)
/-1 ' ι 1 /-1 ' '
где и. и ν. - сингулярные векторы W, a u. и v. - сингулярные
векторы, нормированные умножением на квадратный корень из
сингулярного значения σ . Нормированные сингулярные векторы
расширенного оператора Лапласа размером 9x9, например, имеют вид
ut = [111-4-4-4111]
Vj = [000-1-1-1000]
u2 = [000-1-1-1000]
v2 = [1110 0 0 111]
Из равенства (8.61) следует, что двумерная задача выделения яр-
костных переходов может быть реализована с помощью
последовательного выполнения одномерных сверток столбцов и строк. Сначала
подвергаются свертке строки изображения, затем столбцы. Запишем
задачу в более строгой форме. Пусть W ** g обозначает двумерную
свертку оператора маски W с изображением g, тогда на основании
уравнения (8.61) можно записать
W ** g * ut *с (v1 *г g) + u2 *с (v2 *r g),
где * и * - одномерная свертка столбцов и строк соответственно.
Построение систолического вычислителя, реализующего процедуру
разбиения на строчную и столбцовую свертки, можно выполнить с
помощью методологии канонического отображения. Поскольку в общем
случае ρ « k> описанный подход может дать существенную экономию
оборудования.
Приложения обработки сигналов и изображений 627
8.5.2. Использование преобразования Хафа для выделения прямых и
кривых
Изображение, подвергнутое процедуре выделения яркостных
переходов и разделения по порогу, часто имеет вид последовательности
пар координат {^fe»i/fe}» где xk и yk - неотрицательные целые
числа, ограниченные сверху размером кадра. Используя эти
координаты, можно выделить границы объектов и провести анализ их формы.
Распространенным средством отыскания всех возможных прямых или
кривых является преобразование Хафа, которое основано на
взаимосвязи между точками на прямой (кривой) и параметрами этой прямой
(кривой). Полученные данные представляют число точек
изображения, лежащих на некоторой линейной (криволинейной) границе.
Определения преобразования Хафа
Преобразование Хафа для выделения прямых. Произвольная прямая
может быть представлена парой (γ,Θ):
χ cos0 + у sine = г, (8.62)
где θ - угол, а г - расстояние от начала координат до прямой
(рис. 8.33). Если некоторая пара (xk>yk) удовлетворяет уравнению
(8.62), считается, что точка принадлежит этой прямой.
В соответствии с уравнением (8.62) отдельная точка в
плоскости изображения переходит в синусоиду на плоскости (γ,Θ). С точки
зрения этой двойственности все синусоиды, соответствующие
точкам изображения, лежащим на некоторой прямой, должны
пересекаться в одной общей точке (γ*,Θ*), что в свою очередь дает полную
информацию о фактических параметрах прямой, проходящей через эти
точки изображения [Nevat82].
"l
l^w χ cos Q+ у sin Q я г
L£ 1 X ^χ
Рис. 8.&3. Представление прямой линии парой (γ,Θ).
40*
628
Глава 8
Плоскость (г, θ) (0 ^ г ί й, 0 ίθ ί 2гс) можно покрыть сеткой
Ν χ М: по координате^ г сетка состоит из N точек {/'1,г2,...,г^},
а по 0 - из Μ точек {0Г02,...,0М}. В узлах сетки определяется
двумерный массив аккумуляторов {А(гп,вт)}. Процедура реализации
преобразования Хафа включает подсчет аккумуляторов и поиск
значений на дискретной (г ,θ ) плоскости, превышающих заданное
пороговое значение. Названные выше два шага процедуры записываются
следующим обра:юм:
1. Прежде всего все {А(г ,θ )} устанавливаются в 0, Для
каждой точки (*fe»i/fe) (в рамках выбранного множества пикселов)
определить те пары {(г ,θ )}, которые удовлетворяют уравнению (8.62)
с учетом квантования, и увеличить соответствующее число
аккумуляторов:
A(rn>Q J « Л(г ,θ ) + 1
ν η т' χ η т'
2. Окончательный подсчет аккумуляторов определяет меру
количества точек, лежащих на соответствующих прямых. Следовательно,
аккумулятор со значением, превышающим заданный порог,
соответствует коллинеарным точкам изображения и показывает наличие
отрезка прямой.
Преобразование Хафа для выделения кривых. Построенное для
выделения прямых преобразование Хафа можно легко обобщить для
решения задачи выделения кривых. Такое преобразование будет
выполняться для любой кривой /(х,а) = 0, где а - вектор
параметров. Окружность^ например, можно параметризовать следующим
образом:
(х - а)2 + (у - bf = г2.
Приведенную выше двухшаговую процедуру выделения прямых можно
модифицировать так, что она будет вычислять новый массив
аккумуляторов {Л(ап,6т,г/)}.
Систолический массив для преобразования Хафа
В соответствии с описанной выше процедурой каждому из
заданных пикселов (*£»i/fc) соответствует множество пар {(г ,θ )},
удовлетворяющих уравнению (8.62). Для каждого значения угла θ
можно вычислить отвечающее ему смещение г , после чего счетчик
соответствующего аккумулятора A(r ,0т) получает приращение.
Систолический вычислитель, непосредственно реализующий данный
алгоритм, показан на рис. 8.34.
Приложения обработки сигналов и изображений 629
-J
%
Pi
Iе
г2
с
Я
с
\
It.
а
v1
F
Iе
r2
с
rN\
с
с
v2
Ρϊ
с
r2
с
Л
с
J,.
Рис. 8.34. Систолический массив, реализующий преобразование Хафа.
В линейном массиве (рис. 8.34) для каждого пиксела границы
генерируется Μ значений Вм. Ячейки памяти, находящиеся в ПЭ,
соответствуют элементам аккумулятора А(г ,θ ), причем левый
регистр предназначен для хранения квантованных значений г, а в
правом регистре С ведется подсчет числа пикселов,
соответствующих квантованному значению г.
Некоторые варианты алгоритмов преобразования Хафа и
соответствующие систолические вычислители предложены в работе [Chuan85]
(задача 10), новизна которых по сравнению с общепринятым
подходом, обсуждавшимся выше, состоит в том, что, во-первых, возможна
проверка границы на связность и, во-вторых, по значению
аккумулятора можно найти длину отрезка прямой.
8.5.3. Сопоставление с шаблоном и ассоциативное распознавание
образов
Сопоставление с шаблоном с помощью двумерной корреляцш
Задача сопоставления с шаблоном состоит в сопоставлении
образца (или шаблона) изображению [Rosen82]. При решении задачи
сопоставления с шаблоном цифровое изображение представляется в
виде двумерного массива неотрицательных чисел, каждое из которых
соответствует интенсивности отдельного пиксела на изображении.
Для определения позиции, для которой шаблон f наилучшим образом
соответствует отдельному участку большего изображения g, можно
воспользоваться методом, основанным на вычислении корреляции
изображений. Шаблон f при этом, подобно изображенному на
рис. 8.29 оператору свертки, продвигается по изображению g, в
каждой точке которого вычисляется корреляция.
Простой мерой отличия шаблона и окна изображения является
сумма квадратов разностей между ними. Эта мера пригодна, если
шаблон и изображение имеют одинаковые значения интенсивности.
Чтобы гарантировать выполнение этого условия вводится мера,
известная как нормализованная кросс-корреляция:
630
Глава 8
2/ ч (Σ,Σ, П*>)8(1 + *. / + η))2 b\m%n)
с2(т,п) = ι—ί 5 = —5 (8·63)
Σ/ Σ; g*(i + m, / + η) a\m,n)
для каждого пиксела. Очевидно, что точка, в которой значение
с (туп) максимально, указывает на позицию, где шаблон наилучшим
образом соответствует изображению.
Пример 2. Разработка систолического массива для двумерной
нормализованной кросс-корреляции. Остановимся вначале на
вычислении числителя двумерной нормализованной кросс - корреляции.
Систолический массив для корреляции изображений использует
регулярность алгоритма, все операции которого будут конвейеризованы
с тем, чтобы достичь полной загруженности всех процессоров.
Предположим, что задано изображение размером Μ χ N и шаблон
размером т χ пу тогда предлагаемый систолический вычислитель
представляет массив процессоров размером т χ /г, каждый из которых
содержит один из коэффициентов шаблона f (рис. 8.35, а). Данный
массив выполняет операцию корреляции для сопоставления с
образцом. При реализации систолической корреляции коэффициенты
фильтра располагаются в обратном порядке по сравнению с устройством
систолической свертки (рис. 8.32,г). Первые Μ строк изображения
проходят по массиву слева направо с некоторым смещением входных
данных между каждой строкой, поскольку в первом столбце
выполняется суммирование. Величина корреляции снимается с процессора
(1,1). Для того чтобы в соответствии с выражением (8.63)
получить возведенный в квадрат числитель, значение корреляции перед
тем, как покинуть ПЭ(1,1), умножается само на себя. Шаблон,
сопоставление с которым выполняется, располагается в массиве
процессоров на входе устройств умножения, а пикселы изображения
поступают слева и выходят справа, перемещаясь параллельно. После
того как все N значений Ь (1,я) вычислены, изображение
сдвигается вверх на одну строку и выполняются те же операции для вычис-
9
ления Ь (2, /г).
Знаменатель выражения (8.63) вычисляется аналогично, за
исключением того, что все элементы шаблона f(i,j) заменяются на 1,
а вместо значений пикселов изображения £(*,/), 1 - i■ - Μ,
1 < j < N у подставляются их квадраты, т.е. массив, вычисляющий
знаменатель, имеет такую же структуру, что и массив, вычисляющий
числитель (рис. 8.35,6). ПЭ(1,1) возводит пиксел g(itj) в
квадрат и результат прибавляет к соответствующим частичным суммам.
Искомая сумма а (т,л) выходит из ПЭ(1,1). Сравнение массивов,
Приложения обработки сигналов и изображений 631
ьг(1.1)
Ь2(1.2)
ПЭ(1,1) ПЭ(1,2) ПЭ(1,3) ПЭ(1,л)
Я2°*1
9 О IT
Φ—У 4—ΘΗ-
Θ-4- 4-&4-
0 0 0
U
a (m,n)
АПЭ(1, 1) ПЭ(1,2) ПЭ(1,3)
щи
ПЭ(1,л)
■4
0 « 0—
i
| ф I* | -® г l 0—|
, Τ
f-0<
9,Μι
• · ·
Рис. 8.35. Систолический массив для вычисления числителя
двумерной корреляции (а). Вычисление знаменателя двумерной корреляции
(б). Одномерный массив для вычисления двумерной корреляции (в).
632
Глава 8
определяющих числитель и знаменатель (рис. 8.35,α и б),
показывает, что выполнение этих двух операций может быть осуществлено
на одном двумерном массиве размером т χ п. Поскольку входные
значения g(ij) в обоих случаях одинаковы, для определения
числителя и знаменателя требуется только одна загрузка данных.
Детальное описание систолического массива для нормализованной
кросс-корреляции, основанного на этом наблюдении, предлагается
в качестве упражнения (задача 17).
Пример 3. Сравнение с шаблоном на одномерных массивах. При
увеличении размера шаблона размер описанного выше массива
становится слишком большим. В большинстве приложений, связанных с
распознаванием образов (таких, как выделение элементов текстуры
или распознавание символов фиксированного шрифта), шаблон
характеризуется большим размером, но малым числовым рангом, что
приводит к построениям, основанным на разложении с помощью
внешнего произведения и обсуждаемым ниже. В результате становится
возможным использовать одномерную корреляцию для выполнения
двумерной корреляции (разд. 8.5.1).
Сначала выполняется понижение сингулярного ранга f и строится
разложение на основе внешнего произведения, как в разд. 8.5.1.
Затем числитель корреляции можно определить на линейном массиве,
вычисляющем одномерную корреляцию (рис. 8.35, в). После
выполнения корреляции вдоль строк изображения возможно выполнение
корреляции по столбцам. Когда имеется ρ линейных массивов, где ρ
равно рангу f, можно параллельно выполнить ρ одномерных
корреляций.
Знаменатель может быть вычислен как двумерная корреляция
квадратов яркостей с двумерной единичной маской, которую также мож-
т
но записать в виде внешнего произведения ее, где
е = [1,1,1 if.
При реализации этих вычислений возведенные в квадрат в
крайнем левом ПЭ входные данные поступают на массив линейной
корреляции, где выполняется корреляция по строкам, а затем и по
столбцам. Операции вычисления числителя и знаменателя могут
выполняться параллельно. В крайнем слева ПЭ кроме этого выполняется
деление числителя на знаменатель.
Использование нейронной ассоциативной обработки для распознавания
образов
На рис. 8.36 приведена адаптивная нейронная сеть дли задачи
распознавания. Внутренние параметры (или веса) в нейронной сети
Приложения обработки сигналов и изображений 633
Входные
значения
Нейронная
сеть
распознавания
образов
—ϊ
Веса адаптации
Выход
нейронной
сети
Сравнение с
эталонными
образцами
»v2
Проверенный
выход
Рис. 8.36. Блок-схема нейронной сети распознавания образов.
распознавания обычно настраиваются или готовятся в процессе
использования, а выходные значения и метки определяют правильный
класс. Данная нейронная сеть распознавания может выполнять три
функции:
1) классификатор образцов, определяющий образец, · который
наилучшим образом представляет искаженный шумом входной образец;
2) ассоциативная память, которая может использоваться для
восстановления полного образца на основе доступной части
входного образца;
3) устройство векторного квантования, которое сжимает данные
без потери существенной информации.
Нейронные сети распознавания речевых образов и изображений
являются непараметрическими и могут распознать изображения, на
форму распределения которых налагаются менее жесткие
ограничения, чем в случае традиционных статистических классификаторов.
Кроме того, они обладают высокой степенью отказоустойчивости и
способностью к обучению и адаптации.
Пример 4. Модель Хопфилда для ассоциативного распознавания
образов. Как уже говорилось в разд. 4.6, модель Хопфилда с
дискретными состояниями можно интерпретировать как ассоциативную
память, что позволяет использовать ее для распознавания образцов
речи и изображений [Atlas87, Psalt85]. Вкратце дискретный по
времени переход нейрона i записывается (считая / = 0) в виде:
и μ) - Σ τηνμ).
V, (k + {) = stepfi//*)],
где step[x] - единичная ступенчатая функция, которая равна 1 при
χ 2: 0 и 0 при χ < 0.
Пусть для выполнения ассоциативного поиска эталонные образцы
представлены вектором vm = [У^У™»·.·,^]» ™e m = *»2» ···»-№»
тогда синаптические воздействия Г.., где 1 ^ /, / - N можно
записать в следующей форме:
(8.64)
634
Глава 8
Т.. . fill <2^7 " 1X2*7 " υ ' * ' (865)
4 lo i = и
где состояния {V"!} принимают два значения 0 или 1.
При распознавании образов неизвестный тестовый образец
вначале поступает на искусственную нейронную сеть, подобную сети,
предложенной в разд. 4.6, которая выполняет итерации в
соответствии с правилом перехода (8.64). Конечное состояние ν*, к
которому сходится нейронная сеть, служит выходным значением.
Устройство распознавания образов сравнивает полученное выходное
значение с Μ эталонными образцами {vm, т = 1,2,...,Л/} для того, чтобы
определить, соответствует ли оно достаточно близко некоторому из
эталонных образцов. Если соответствия нет, выдается сообщение
"соответствие отсутствует", в противном случае на выход выдается
соответствующий образец.
8.5.4. Операции с областями при анализе сцен
В задачах анализа сцен используется сжатое представление
областей, что позволяет значительно сократить объем необходимой
памяти, причем вычисление характеристик областей и получение
новых областей по заданным возможно с помощью операций со
сжатыми представлениями. Эти операции можно реализовать параллельно,
что требует некоторого изменения стратегии разработки
процессоров, поскольку представление уже не является простой матрицей.
Параллельные архитектуры становятся более зависимыми от
конкретных деталей, и их систематический вывод затруднителен.
Некоторые проекты параллельных архитектур для различных типов
представления областей предложены в работе [Rosen85]. Кольцевая
структура, например, может использоваться для обработки
областей, представленных в граничном коде, который определяется
начальной точкой каждой границы и последовательностью кодов,
определяющих последовательность переходов от пиксела к пикселу
по границе. Строка кластеров процессоров, где каждый кластер
содержит количество длин серий для данной строки, будет
соответствовать области, представленной кодом длины серий, который
рассматривает каждую строку изображения данной области как
чередующуюся последовательность серий нулей и единиц. Процессор
древовидной структуры можно использовать для выполнения операций с
областями, представленными в виде структуры максимальных блоков,
Приложения обработки сигналов и изображений 635
которая строится с помощью рекурсивного разбиения на квадранты,
подквадранты и т.д. до тех пор, пока не будут получены блоки с
постоянными значениями. Для выполнения стандартных операций с
областями можно использовать некоторые иерархические
многопроцессорные системы, например систему Connection Machine
[Hilli85].
8.6. ЗАКЛЮЧЕНИЕ
Данная глава, как, впрочем, и книга в целом, начинается с
анализа алгоритмов для представляющих интерес приложений и
заканчивается разработкой систолических СБИС-вычислителей. В
задачах обработки сигналов и изображений используются обычно
алгоритмы, детерминированные в пространстве и во времени, что
позволяет решать задачи оптимизации алгоритмов и архитектур в рамках
единой методологии. Специализированные параллельные системы
становятся преобладающим и многообещающим направлением разработки
суперкомпьютеров будущих поколений. В ближайшее время мы станем
свидетелями роста числа специализированных систолических
процессоров и специализированных ЭВМ, предназначенных для выполнения
базовых алгоритмов обработки сигналов и изображений, линейной
алгебры и научных расчетов, и, следовательно, рассмотренные в
этой книге задачи анализа параллельных алгоритмов, методология
их разработки и отображения на СБИС найдут широкое применение.
Уже в ближайшем будущем мы столкнемся с вызовом современных и
"интеллектуальных", т.е. обладающих способностью к восприятию,
суперкомпьютерных систем, которые станут лучше адаптироваться к
среде функционирования и будут более естественным и эффективным
образом взаимодействовать с пользователем с помощью интеграции
логических цепей и сенсорных стимуляторов. Реализация новейших
концепций в области вычислений позволит также обратиться к
решению ранее неразрешимых задач. С точки зрения таких систем
предложенные в этой книге системы с массовым параллелизмом можно
рассматривать всего лишь в качестве базовых примитивов, которые
лягут в основу новейших вычисляющих (или думающих) машин.
В заключение отметим, что грядущие технологии СБИС обещают
рост вычислительной производительности. Совокупная
производительность описывается не только в терминах площади кремниевого
кристалла, быстродействия или вычислительной мощности
устройства, но и характеризуется развитием новейших систем, находящих-
636
Глава 8
ся на стыке различных научных областей. Разработка процессоров
на СБИС требует интеграции множества технических дисциплин,
включающих физику полупроводников, вычислительные науки и
электронику, а область исследований простирается от
СБИС-технологии до конкретных приложений, охватывая разработку
алгоритмов и архитектур. Надеемся, что данная книга поможет
сделать первый шаг в этом направлении.
8.7. ЗАДАЧИ
1. Эквивалентность двух стандартных методов оценивания
спектра. В общем случае две стандартные оценки спектра ^вт(о>) и
PpER(i0) не тождественны. Показать, что если задана смещенная
оценка автокорреляции г (л) (выражение (8.66)) и число
вычисляемых и входных отсчетов совпадает (М = N - 1), то оценка по
методу Блэкмэна-Тьюки и оценка на основе вычисления периодограмм
дают тождественные числовые результаты:
λ N-m-\
Γχχ№ = W Σ *(")*(" + m) (8.66)
ΧΧ " η=0
2. Решение методом наименьших квадратов. Если матрица X
(выражение (8.18)) имеет полный ранг, применяются два способа
решения линейных уравнений: 1) Использование QR-алгоритма
блочного обращения и вычисление вектора w (разд. 8.2). 2)
Использование принципа ортогональности [Stran80] и решение нормального
уравнения с целью минимизации HelL.
а) Как в результате использования второго подхода получить
искомый вектор w?
б) Показать, что это решение совпадает с решением, полученным
с помощью QR-алгоритма.
в) Какова числовая погрешность второго метода?
3. Обоснование фильтрации с окном Бартлетта. Как указывалось
в разд. 8.2.2, спектр диаграммы направленности ^Βρ(θ) можно
вычислить следующим образом:
^rp(0) = Σ W(n)S(n)e-^n.
Dr n=-(tf-1)
Показать, что весовая функция W(n) имеет форму треугольного
окна.
4. Обоснование рекурсивного QR метода получения невязки.
Показать, что искомую среднеквадратичную невязку можно вычислить
по формуле
Приложения обработки сигналов и изображений 637
e„+i = { n]cos9jCr
ί т
Указание. Последняя строка матрицы Q '«» заданной выражением
(8.26), имеет вид [α|0|β], где
{Ν-\
Π COS0.
5. Выбор матрицы, блокирующей сигнал. На рис. 8.6 показана
структура обобщенного подавления бокового лепестка, которая
может быть использована для перехода от задачи наименьших
квадратов с ограничениями к задаче наименьших квадратов без
ограничений. Узловым элементом этой структуры является матрица,
блокирующая сигнал W (рис. 8.6), которая характеризуется следующими
важными свойствами:
W = 1С «»С Ω»···*£_Ι
C = [СГС2 Cml
где cTc. = 0,1 * i' < m, m + 1 * j $ n.
Можно выбрать различные представления матрицы W^, удолетворяющие
этим свойствам. Некоторые из них допускают декомпозицию и
поэтому удобны для реализации на СБИС. Укажите два приемлемых
представления матрицы W и поясните, каким образом можно провести
декомпозицию, чтобы обеспечить возможность их реализации на СБИС
для очень больших значений п.
6. Доказательство рекурсивной формулы для калмановской
фильтрации. Докажите истинность выражения (8.36).
7. Систолический вычислитель с поразрядным выполнением
операций. При разработке процессоров ВК был описан в общих чертах
систолический вычислитель для задач умножения матрицы на вектор
и сравнения. Для достижения максимального параллелизма можно
использовать архитектуру с поразрядным выполнением операций.
Постройте архитектуру с поразрядным выполнением операций для
задач умножения матрицы на вектор и сравнения [Сарре86], исходя
из данной архитектуры, выполняющей операции со словами, и
основываясь на методологии канонического отображения.
Указание. Используйте метод проецирования ГЗ для поразрядной
реализации, описанный в гл. 4.
8. Отыскание пути минимальной стоимости. Пусть задана сетка
4x4, где каждое пересечение имеет неотрицательный параметр
стоимостью d'
638
Глава 8
12 8 1 5
5 2 10 7
2 4 7 3
9 16 3 1
Предположим, что требуется пройти из левого нижнего угла в
правый верхний угол, причем допускается любой путь, т.е. локальные
или глобальные ограничения подобные тем, что описаны в
разд. 8.3.3, отсутствуют.^ Значения мультипликативных весов
w\ ~ w2 = * и ш3 = 2.
а) Определите путь минимальной стоимости.
б) Чему равна минимальная стоимость пройденного пути?
Указание. Определить шаг за шагом все значения стоимости
пройденного пути G для каждой точки сетки.
9. Удаление локальных ограничений для алгоритма ДИМВ. Имеется
возможность избавиться от локальных ограничений и локализовать
ГЗ с помощью введения в программу с однократным присваиванием
нескольких промежуточных переменных (G*(i,j) и
[Jutan84], что приводит к следующей программе:
G( i,j) =0 ί ί 0 or'/iO
0%j))
For i
For /
r(i
d(i
G*(i
from 1 to m
from 1 to л
) = t(i\/ - 1)
) = r(/ - 1./)
) = dist{t(/,/>(/,/)}
) = G(i - 1,/ - 1) + wxd(i%i)
(TUJ) = G(i - 1,/ - 1) + wAd(i,j)
G(iJ) = MinJ
G*(i - 1,/) + w^ij)
G ( i - 1,/ - 1 ) +w3d(ij)
LG*(/./ - 1) + w^d(ij)
(8.67)
Изобразите ГЗ модифицированного алгоритма ДИМВ и постройте
соответствующий систолический вычислитель. Сравните этот
вычислитель с вычислителем, описанным в разд. 8.3.3.
10. Систолический массив для преобразования Хафа. В разд.
8.5.2 приведен систолический вычислитель для преобразования
Хафа, в ситуации, когда для каждого значения θ по оси с
равномерной дискретизацией заданы значения г. Модифицируйте линейный
систолический массив так, чтобы стало возможным выполнение
преобразования в следующих условиях:
Приложения обработки сигналов и изображений 639
а) когда различным углам θ соответствуют различные шаги
дискретизации по г,
б) когда адреса различных уровней квантования г вдоль
данного направления θ динамически размещаются в памяти в
зависимости от величины аккумулятора для даного сочетания параметров.
11. Одномерные и двумерные медианные фильтры.
а) Для очистки приведенного ниже изображения 5 χ 5 от
импульсного шума используется одномерный медианный фильтр с окном
размером 3. Определите результат фильтрации таким фильтром, если
яркости пикселов за пределами изображения предполагаются равными
средней яркости всего изображения. (При одномерной фильтрации
операции со строками и со столбцами выполняются раздельно.)
3 7 8 8 5
5 2 4 6 7
6 4 4 3 5
9 13 6 6
3 3 2 3 2
б) Найдите результат применения двумерного медианного фильтра
размером 3x3.
12. Систолический вычислитель для МСП второго порядка в
задаче модельного отжига. Как уже говорилось в разд. 8.4, низкая
загруженность ПЭ и усложненная структура межсоединений при
использовании алгоритмов релаксации для МСП второго порядка
заставляют использовать одномерный линейный массив.
а) Используя максимальный параллелизм, который предполагает
идея модификации, определяемой системой "кодовых множеств" (рис.
8.27), постройте ГЗ для схемы релаксации МСП второго порядка.
б) Постройте ГПС с помощью проецирования в направлении k.
Убедитесь, что загруженность ПЭ составляет 25%.
в) Каков должен быть план модифицированного ГПС, чтобы его
можно было отобразить на одномерный линейный массив с
максимально возможным параллелизмом.
г) Что будет представлять собой одномерный систолический
массив, построенный в соответствии с п. в).
13. Решение уравнений в частных производных. Уравнения в
частных производных возникают в различных физических и
геометрических задачах. Одним из самых распространенных уравнений
является уравнение Пуассона:
640
Глава 8
V*U(x,y) = -£υΐψ + Э*Щхч) = f{xyh
дх by
где f(x>y) - известная входная функция, a U(xty) - искомое
решение, для получения которого требуется соответствующим образом
задать граничные условия. Рассмотрим задачу решения уравнения
Пуассона в квадрате 0 ^ ху у £ 1. Предположим, что f{x%y)
определена в квадрате 0 £ ж, у £ 1 , и U(x,y) задана на границе
квадрата. Для численного решения уравнения Пуассона можно
использовать аппроксимацию частных производных. Если квадрат дискретияо-
ван с шагом h в обоих направлениях, то легко доказать, что для
достаточно малых h
а'Ц(«,у) « w+ ι./) + ий- ι.» - 2W.fi
дх2 А2
и
&U{*,4L· * W./ + П + №■' - П - 2ГО./1
аг/2 а2
где * = ih и t/ = /Τι.
а) Обоснуйте приведенные разностные уравнения и постройте
разностное уравнение, аппроксимирующее уравнение Пуассона.
б) Предположим, что h =0,2. Разностное уравнение,
построенное выше, можно представить в матричной форме: Au = Ь, где
и = [ί/(1,1).ί/(1,2),ί/(1,3),ί/(1,4),ί/(2,1),[/(2,2),...,ί/(4,4)]Τ
Что представляет собой матрица А и вектор Ь?
в) Для решения данной задачи можно воспользоваться методом
последовательной верхней релаксации (гл. 2). Выведите уравнение
итерации. Изобразите трехмерный ГЗ для построенного
итерационного алгоритма.
г) Постройте ГПС с помощью проецирования полученного выше ГЗ.
Какое направление вы изберете для проецирования? Почему? Укажите
вектор плана и изобразите результирующий двумерный ГПС.
д) Постройте по полученному в п. г) ГПС систолический
вычислитель на основе процедуры систолизации сечением с оптимальным
масштабом по времени. Каков будет наилучший период
конвейеризации а?
14. Реконструкция изображений с помощью алгебраического
метода. Подход к реконструкции рентгеновского изображения по
проекциям, основанный на разложении в ряд, может быть сформулирован
Приложения обработки сигналов и изображений 641
следующим образом. В интересующую зону вводится декартова сетка
пикселов так, чтобы она целиком покрывала изображение, которое
необходимо реконструировать. Пикселы нумеруются в обусловленном
порядке, например, с 1 в левом верхнем углу до N в нижнем правом
углу. Предполагается, что ослабление рентгеновского луча при
прохождении пиксела с номером / сохраняет постоянное значение,
равное / , / = 1,2,...,N. Предположим также, что пересечение
/-го луча с /-μ пикселом, обозначаемое h для всех
/ = 1,2,..., Μ и / = 1,2,...,#, представляет величину вклада /-го
пиксела в общее затухание вдоль /-го луча.
Данную задачу можно сформулировать в виде большой системы
линейных уравнений g = Hf, где g. - физическая мера ослабления
/-го луча, т.е. криволинейный интеграл от искомого ослабления
вдоль траектории луча. Матрица Н, как правило, гигантских
размеров (порядка 10 χ 10 ) и является разреженной и иногда
двоичной. Постройте подходящий итерационный алгоритм для решения этой
линейной системы и предложите реализующую его систолическую
архитектуру.
Указание. Распространенный алгоритм решения этой задачи
получил название метода алгебраической реконструкции.
Это - итерационный процесс с начальной аппроксимацией
f € R вектора изображения. На каждой итерации текущее значение
f обновляется (или корректируется) с учетом только одного /-го
луча, т.е. обновляются только те пикселы изображения, через
которые этот луч проходит [Rosen82].
15. Пример вычисления ранга. Задана следующая входная
последовательность:
3,9,7,12,6,7,15,11,4,8,9,8,...
Используя формулу оценки ранга с окном размером 5, описанную в
разд. 8.4, найдите результирующую последовательность рангов
(г5,гб,г7,...).
16. Алгоритм обнаружения яркостных переходов. Изображение
g(m,n) сформировано как взвешенная разность исходного
изображения f(myn) и его лапласово взвешенное изображение:
g(mtn) = cf(m,n) - (1 - c)42f(m>n)y
где m,n = 0,1,...,W - 1, 0 £ с ^ 1, - оператор Лапласа.
а) Представьте цифровой оператор Лапласа в виде свертки с
маской размером 3x3.
б) Покажите, что g(myn) может быть сформировано с помощью
41 — 1028
642
Глава 8
единственной свертки f(myn) с маской размером 3x3 и получите
выражение для маски.
в) Запишите и упростите выражение для частотной
характеристики фильтра, построенного в п. б).
г) Опишите характер функциональной зависимости изображения
g(m,n) от параметра с.
17. Совместное вычисление числителя и знаменателя. Формула
(8.63) лежит в основе систолического процессора (рис. 8.35 а и
б), построенного для нахождения числителя и знаменателя
нормализованной кросс-корреляции. Каким образом можно объединить два
этих массива в один?
18. Теорема о проекционном срезе. Теорема о проекционном
срезе устанавливает эквивалентность одномерного преобразования
Фурье проекции g(w,9) изображения f(x,y) и среза двумерного
преобразования Фурье F(X,Y) изображения вдоль прямой Y/X = tan6.
а) Рассмотрим проекцию
+00
«(*) = в(«.0) = Г K*,y)dy .
—00
Докажите, что одномерное преобразование Фурье g(x) совпадает со
значением F(X,Y) на прямой Υ = 0.
б) Обобщите этот результат на проекцию в произвольном
направлении Θ.
19. Преобразование Радона единичного круга. Двумерное
преобразование Фурье единичного круга в полярных координатах имеет
вид
F(p,9) = -Ij—,
где J Ах) обозначает функцию Бесселя первого порядка. Используя
теорему о проекционных срезах найдите выражение для проекций
g(u,6) рассматриваемого круга.
20. Определение евклидова расстояния. Вычисление евклидова
расстояния между многими парами векторов признаков необходимо во
многих приложениях распознавания образов. Основываясь на
методологии канонического отображения, постройте систолический или
волновой массив, решающий эту задачу.
Указание. Сравните эту задачу с матричной постановкой задачи
векторного квантования речевого сигнала.
21. Задача уменьшения толщины линии. Утончение
зарегистрированной прямой или кривой требует выполнения следующих операций.
Прямая (кривая) шириной k заменяется на прямую (кривую) шириной
1. Значение яркости нового пиксела заменяются на максимальные
Приложения обработки сигналов и изображений
643
(или минимальные) значения в некоторой определенной окрестности.
Постройте систолический или волновой вычислитель для уменьшения
толщины контура изображения. (Рассмотрите только четыре
ближайших соседа данного пиксела [Nevat82].)
22. Систолический калмановский фильтр белого аддитивного
шума. В большинстве приложений можно считать, что системный шум
w(& + 1) и шум измерения \(k) имеют характер белого шума, т.е.
R„,(fc + 1) = diagTa „σ 0,...,σ 1
RJk) = diagio· „ο· 0»···»σ ]·
В этом случае операции предварительного "отбеливания",
необходимые при выполнении калмановской фильтрации, сводятся к простому
масштабированию [Kung87c]. Постройте треугольный вычислитель,
выполняющий операции масштабирования и рекурсивной модификации.
23. Систолический калмановский фильтр "цветных" шумов. В
некоторых приложениях, где шум является "цветным", кроме описанной
в разделе 8.2.3 рекурсивной QR-процедуры треугольного разложения
необходимо выполнение первичного "отбеливания", которое состоит
из следующих двух операций:
а) Реверсивное разложение Холецкого R (k + 1) и Rv(fc).
б) В соответствии с заданными операторами "отбеливания",
выполняется операция первичного отбеливания с F(k), C(k) и y(fc).
Реверсивное разложение Холецкого матрицы А:
А"1 = UTU ,
где U - верхнетреугольная матрица.
а) Постройте систолический вычислитель, реализующий
реверсивное разложение Холецкого.
б) Постройте систолический вычислитель для выполнения
операции предварительного отбеливания.
Указание. Реверсивное разложение Холецкого можно представить
в следующем виде:1!А = U
-Т
где и = υλυ2...υη
1 0 .
0 1 .
0 0 .
0 0 .
0 0 .
. u]k0 .
' U2k° '
•»kk°·
. 0 1 .
. 0 0 .
. 0
. 0
. 0
. 0
. 1
41*
644
Глава 8
υΆ<">= а<'-,>=
Ок-^ а<"-2)=
χ χ ... χ О
* * ... jc О
* χ ... jc О
* * ... χ g
χ χ ... О
* * ... О
X X ...£ .
χ χ ...Г1
uX^ir7
«1 °
>л-1
Рис. 8.37а. Размещение данных для одного шага рекурсии алгоритма
калмановской фильтрации. Два треугольных массива реверсивного
разложения Холецкого и предварительного отбеливания
(0(л2/2 + т2/2) ПЭ).
Приложения обработки сигналов и изображений 645
где A^n)= A, g. равно квадратному корню из элемента а[^ матрицы
Хк '. Если представить задачу в указанном виде, то для
выполнения обеих операций можно эффективно использовать треугольный
систолический массив [Kung87c].
24. Систолический вычислитель для выполнения фильтрации
окрашенных шумов в полной конфигурации. Покажите, что с помощью
использования двух треугольных массивов для реверсивного разложе-
ния Холецкого и предварительного отбеливания (0(п /2 + m /2) ПЭ)
и одного треугольного массива QR-разложения (0(м2/2) ПЭ) схема
объединенного систолического вычислителя фильтрации окрашенных
шумов имеет вид, как на рис. 8.37а· и 8.376 [Kung87c].
i Буфер данных <фшшш Буфер данных
б
Рис. 8.376. Треугольный массив QR-разложения (0(п /2) ПЭ) для
выполнения рекурсивного обновления. Отметим, что буферы данных
введены для поворота матриц на 90 .
БИБЛИОГРАФИЯ
[Ackle85] D. Η. Ackley, G. Ε. Hinton, and T. J. Sejnowski. A learning
algorithm for Boltzmann machines. Cognitive Science, Vol.
9: pp. 147 - 169, 1985.
[Ahmed85] H.M. Ahmed. Alternative arithmetic unit architectures for
VLSI digital signal processors. In VLSI and Modern Signal
Processing, Prentice Hall, Inc., Englewood Cliffs, NJ, 1985.
[Aho74] A. V. Aho, J. E. Hopcraft, and J. D. Ullman. The Design
and Analysis of Computer Algorithms. Addison-Wesley
Publishing Co., Reading, Massachusetts, 1974.
[Aliph87] A. Aliphas and J. A. Feldman. The versatility of digital signal
processing chips. IEEE Spectrum, pp. 40-45, June 1987.
[Allen85] J. Allen. Computer architecture for digital signal processing.
Proceedings of the IEEE, 1985.
[Ander77] J. A. Anderson, J. W. Silverstein, S. A. Ritz, and R. S. Jones.
Distinctive features, categorical perception, and probability
learning: Some applications of a neural model. Psych. Rev.,
84, 1977.
[Andr76a] H.C. Andrew and C.L. Patterson. Singular value
decompositions (SVD) image coding. IEEE Transactions on
Communication, pp. 425-437, April 1976.
[Andr76b] H.C. Andrew and C.L. Patterson. Singular value
decompositions and digital image processing. IEEE Transactions on
ASSP, pp. 26-53, Feburary 1976.
[Andre8l] A. Andrew. Parallel processing of the Kalman filter. In Proc.
Int. Conf. Parallel Processing, pp. 216-220, 1981.
[Anna86a] M. Annaratone, E. Arnould, T. Gross, H. T. Kung, and M.
Lam. Warp architecture and implementation. In Proc. 13th
Annual Inter. Symp. on Computer Architecture, June 1986.
[Anna86b] M. Annaratone, E. A. Arnould, H. T. Kung, and O. Menzil-
cioglu. Using warp as a supercomputer in signal processing.
In Proc. IEEE ICCASP'86, pp. 2895-2898, Tokyo, Japan,
April 1986.
[Arnou85] Ε Arnould et al. A systolic array computer. In Proc. IEEE
ICASSP'85, Tampa, FL, pp. 232-235, 1985.
[Arpin86] D.A. Arpin and Y. Kim. Parsor: A parallel processor for
sparse matrix solution by SOR iteration. In Proc. of Int'l
Conf. on Parallel Processing, 1986.
[Ashcr84] W. D. Ashcraft and Η. M. South. Architecture and control
of a distributed signal processor. In Proc. IEEE ICASSP'84,
San Diego, Calif., pp. 44.8.1 - 44.8.4, 1984.
[Atlas87] L. Ε. Atlas, Т. Homma, R. J. Marks II. A neural
network model for vowel classification. Presented in Proc. IEEE
ICASSP'87, Dallas, Texas, 27.15.1-27.15.4, 1987.
[Backu78] J. Backus. Can programming be liberated from the Von
Neumann style? A functional style and its algebra of programs.
Communications of the ACM, 21: pp. 613-641, 1978.
[Balla82] D. H. Ballard and С. Μ. Brown. Computer Vision. Prentice-
Hall, Inc. N.J., 1982.
[Barnw83] T. P. Barnwell and D. A. Schwartz. Optimal
implementations of flow graphs on synchronous multiprocessors. In IEEE
Asilomar Conference, Circuits and Systems, Pacific Grove,
CA, November 1983.
[Batch80] К. E. Batcher. Design of a Massively Parallel Processor.
IEEE Transactions on Computers, C-28: pp. 836-840, 1980.
[Baugh73] C. R. Baugh and B. A. Wooley.'A two's complement parallel
array multiplication algorithm. IEEE Transaction on
Computers, C-22: pp. 1045-1047, December 1973.
[Bensc83] N. F. Benschop. MOS-LSI Digital Integrated Circuits and
Systems. Delft University, Delft, The Netherlands, 1983.
[Besag74] J. Besag. Spatial interaction and statistical analysis of lattice
system (with discussion). J. Royal Statist. Soc.f Series B, 36:
pp. 192-236, 1974.
[Besag86] J. Besag. On the statistical analysis of dirty pictures. J.
Royal Statist. Soc., Series B, 48(3): pp. 192-236, 1986.
[Booth51] A. D. Booth. A signed binary multiplication technique.
Quart. Journ. Mech. and Appl. Math.,, 4: pp. 236-240,1951.
Part 2.
[Bowen82] B.A. Bowen and W.R. Brown. VLSI Systems Design for
Digital Signal Processing. Volume 1 of Design for Digital Signal
Processing, Prentice Hall, N.J., 1982.
[Bren85a] R. P. Brent and F. T. Luk. The solution of singular-value
and symmetric eigenvalue problems on multiprocessor arrays.
SIAM. J. SCI. STAT. Сотри., Vol.6, No.l, Jan. pp. 69-84,
1985.
[Bren85b] R. P. Brent and F. T. Luk. Computatin of the singular value
pecomposition using mesh-connected processors. Journal of
VLSI and Computer System, Vol.1, No.3, pp. 243-270,1985.
[Breue77] M. A. Breuer. Min-cut placement. Journal of Design
Automation and Fault Tolerant Computing, October 1977.
[Broml84] K. Bromley, J.J. Symanski, J.M. Speiser, and H.J. White-
house. Signal algorithms, architectures, and applications. In
SPIE short course notes, 1984.
[Broom85] D. S. Broomhead, J. G. Harp, J. G. McWhirter, K. J. Palmer,
and J. G. B. Roberts. A practical comparison of the systolic
and wavefront array processing architectures. In Proc. IEEE
647
ICASSP985, pp. 296 - 299, Tampa, FL, April 1985. Also in
the Proceeding of IEEE Workshop on VLSI Signal Processing,
Los Angeles., November 1984.
[Burst83] M. Burstein and R. Pelavin. Hierarchical wire routing. IEEE
Transactions on Computer-Aided Design of Integrated
Circuits and Systems, October 1983.
[Cain84] J. B. Cain and R. A. Kriete. A VLSI r=l/2, fc=7 Viterbi
decoder. IEEE Proc. of the NAECON, Volume I, pp. 20-28,
May 1984.
[Capon69] J. Capon. High resolution frequency wavenumber spectrum
analysis. Proc. IEEE, 57: pp. 1408-1418, Aug., 1969.
[Cappe83] P. R. Cappello and K. Steiglitz. Unifying VLSI array designs
with geometric transformations. In Int'l Conf on Parallel
Processing, 1983.
[Cappe84] P.R. Cappello etc. VLSI Signal Processing. IEEE PRESS,
N.Y., 1984.
[Carai84] C. Caraiscos and B. Liu. From digital filter flow-graphs to
systolic arrays. Submitted to IEEE Transactions on ASSP,
1984.
[Cappe86] P. Cappello, G. Davisdon, A. Gersho, С. Кос, and V. So-
mayazulu. A systolic vector quantization processor for
realtime speech coding. In In Proc. of IEEE ICASSP'86, Tokyo,
Japan, pp. 2143-2146, IEEE, 1986.
[Casas84] D. Casasent. Acousto-optic linear algebra processors:
architectures, algorithms, and applications. Proceedings of the
IEEE, 72(7): pp. 831-849, July 1984.
[Chan86] T. F. Chan and Y. Saad. Multigrid algorithms on the hyper-
cube multiprocessor. IEEE Transactions on Computers, pp.
969-977, November 1986.
[Chang86] C. Y. Chang and K. Yao. Viterbi decoding by systolic array.
In Workshop on VLSI Signal Processing, IEEE Press, Los
Angeles, CA, 1986.
[Chapm85] R. Chapman, T. S. Durrani, and T. Willey. Design strategies
for implementing systolic and wavefront arrays using Occam.
In Proc. IEEE ICASSP'85, pp. 292-295, Tampa, FL, 1985.
[Charn86] R. Charng and F. C. Lin. Linear Content-addressable
Systolic Array for Sparse Matrix Multiplications. In VLSI Signal
Processing, II, S. Y. Kung et al. (eds.), pp. 212-219, IEEE
Press, November, 1986
[Charo86] F. Charot, P. Frison, and P. Quinton. Systolic
architectures for connected speech recognition. IEEE Transactions
on ASSP, ASSP-34: pp. 765-779, August 1986.
[Chell85] R. Chellappa, and A. A. Sawchuck. Digital Image Processing
and Analysis: Volume 1, 2. IEEE Computer Society, 1985.
[Chen78] Т. C. Chen, V. Y. Lum, and С Tung. The rebound sorter:
an efficient sort engine for large files. In Proc. 4th InVl Conf.
on Very Large Databases, pp. 312-318, 1978.
[Chen83] M. C. Chen. Space-Time Algorithm: Semantics and
Methodology. PhD thesis, Computer Science Department, California
Institute of Technology, 1983.
[Chen85a] M. C. Chen and C. Mead. Concurrent algorithms as space-
time recursion equations. In VLSI and Modern Signal
Processing, S.Y. Kung et al. (eds.), Prentice-Η all, Inc, 1985.
[Chen85b] M. С Chen. A Synthesis Method for Systolic Designs.
Technical Report 334, Yale University, January 1985.
[Chen85c] M. C. Chen. Synthesing Systolic Designs. Technical Report
374, Yale University, March 1985.
[Chen86] M. С Chen. Synthesizing VLSI architectures: dynamic
programming solver. In International Conference on Parallel
Processing, pp. 776-784, Chicago, IL, August 1986.
[Cheng84] C. K. Cheng and E. S. Kuh. Module placement based on
resistive network optimization. IEEE Transactions on Computer-
Aided Design of Integrated Circuits and Systems, July 1984.
[Cheng86] К. H. Cheng and S. Sahni. A new VLSI system for adaptive
recursive filtering. In Proc. Int. Conf. on Parallel Processing,
pp. 387-389, 1986.
[Chuan85] Henry Y.H. Chunag and С. С. Li. A systolic array
processor for straight line detection by modified Hough transform.
Proc. of CAPAIDM'85, pp. 300-304,1985.
[Commo71] F. Commoner and A. W. Holt. Marked directed graphs.
Journal of Computer and System Sciences, pp. 511-523, 1971.
[Coone80] J. T. Coonen. An implementation guide to a proposed
standard for floating-point arithmetic. IEEE Computer
Magazine, pp. 68-79, January 1980.
[Corry83] A. Corry and K. Pat el. Architecture of a CMOS correlator.
In Proc. IEEE Int. Symp. on Circuits and Systems, pp 522-
525, 1983.
[Creme76] A. B. Cremers and T. N. Hibbard. The semantic
definition of programming languages in terms of their data spaces.
Informatik-Fachberichte, 1: pp. 1-11, 1976. Springer-Verlag.
[Creme78] A. B. Cremers and T. N. Hibbard. Formal modeling of virtual
machines. IEEE Transactions on Software Eng., 4: pp. 426-
436, 1978.
[Dadda65] L. Dadda. Some schemes for parallel multipliers. Alta Fre-
quenza, 34: pp. 349-356, March 1965.
[Dahlq74] Germund Dahlqist. Numerical Methods. Prentice-Hall, 1974.
[Davie86] E. B. Davie, D. G. Higgins, and С D. Cawthorn. An
advanced adaptive antenna test-bed based on a wavefront array
processor system. In Proc. Inter. Workshop on Systolic
Arrays t University of Oxford, July 1986.
649
[Delos86] J-M Delosme and I. C. F. Ispen. Efficient systolic arrays for
the solution of Toeplitz systems: An illustration of a
methodology for the construction of systolic architectures in VLSI.
International Workshop on Systolic Arrays, University of
Oxford, pp. F2, July 1986.
[Denni79] J.B. Dennis. The varieties of data flow computers. In Proc.
1st Int'l Conf. Distr. Сотр. Sys., pp. 430-439, 1979.
[Denni80] J.B. Dennis. Data flow supercomputers. IEEE Computer
Magazine, pp. 48-56, November 1980.
[Denye83] P. B. Denver and D. Renshaw. Case studies in VLSI
signal processing using a silicon compiler. In Proc. IEEE
ICASSP'83, pp. 939-942, Boston, 1983.
[Denye85] P. B. Denyer and D. Renshaw. VLSI Signal Processing - A
Bit-Serial Approach. Addison-Wesley, 1985.
[Denye86] P. B. Denyer. System compilers. In Proc. IEEE VLSI Signal
Processing Workshop, 1986.
[Depre84] E. Deprettere, P. Dewilde, and P. Udo. Pipelined CORDIC
architecture for fast VLSI filtering and array processing. In
Proc. IEEE ICASSP'84, pp. 41.A.6.1 - 41.A.6.4, San Diego
1984.
[Dew86] P. M. Dew, and L. J. Manning. Comparison of systolic and
SIMD architecture for computer vision computation. In Proc.
Inter. Workshop on Systolic Arrays, University of Oxford,
July 1986s
[Dewil85] P. Dewilde, E. Deprettere, and R. Nouta. Parallel and
pipelined implementation of signal processing algorithms. In
VLSI and Modern Signal Processing, S. Y. Kung et al, editors,
pp. 257, Prentice Hall, 1985.
[Dewil83] P. Dewilde. Personal Communication, 1983.
[Dijks68] E. W. Dijkstra. Cooperating sequential processes. In
Programming Languages, F. Genuys, editor, pp. 43-112,
Academic Press, 1968.
[Dolec84] Q. E. Dolecek. Parallel processing systems for VHSIC.
Technical Report APL 84-112 1984, The Johns Hopkins University,
Also appears in VHSIC Applications Workshop, 1984.
[Dunca72] D. B. Duncan and S. D. Horn. Linear dynamic recursive
estimation from the viewpoint of regression analysis. J. of
ASA, pp. 815-821, 1972.
[Dunlo85] A.E. Dunlop and B.W. Kernighan. A procedure for
placement of standard-cell VLSI circuits. IEEE Transactions on
Computer-Aided Design, January 1985.
[Eichm85] G. Eichmann and H.J. Gaulfield. Optical learning (inference)
machines. Applied Optics, Vol. 24: 1985.
[Enslo77] P. H. Enslow. Multiprocessor organization. ACM Computing
650
Surveys, 9:103-129, March 1977.
[Fahlm87] S. E. Fahlman and G. E. Hinton. Connectionist architectures
for artificial intelligence. IEEE Computer Magazine* January
1987.
[Fandr85] J. Fandrianto and Β. Y. Woo. VLSI floating-point processors.
In Proc. Computer Arithmetic Conference, pp. 93-100,1985.
[Farha85] N. H. Farhat, D. Psaltis, A. Prata and E. Paek. Optical
implementation of the Hopfield model. Applied Optics, Vol.
24: pp. 1469- 1475, May 1985.
[Farle54] B. G. Farley and W. A. Clark. Simulation of self-organization
systems by digital computer. IRE Transactions on
Information Theory, IT-4, 1954.
[Feng81] Τ. Y. Feng A survey of interconnection networks. In IEEE
Computer, pp. 12-27, December 1981.
[Feldm84] J.A. Feldman, S.L. Garverick, F.M. Rhodes, and J*R. Mann.
A wafer scale integration systolic processor for connected
word recognition. In Proc. IEEE ICASSP'84, San Diego, pp.
25B.4.1-25B.4.4,1984.
[Fettw76] A. Fettweis. Realizability of digital filter networks. AEU,
Band 30(Heft 2): pp. 90-96, 1976.
[Fishe82] A. L. Fisher. Systolic algorithms for running order statistics
in signal and image processing. Journal of Digital Systems,
4: pp. 251-264, 1982.
[Fishe83] A.T. Fisher, et al. Design of the PSC: A programmable
systolic chip. In R. Bryant, editor, Third Caltech Conf. on VLSI,
Computer Science Press, 1983.
[Fish85a] A. L. Fisher and H.T. Kung. Synchronizing large VLSI
arrays. IEEE Transactions on Computers, pp. 734-740, August
1985.
[Fish85b] A.L. Fisher and H.T. Kung. Special-purpose VLSI
architectures: General discussions and a case study. In VLSI and
Modern Signal Processing, pp. 153-169, Prentice-Hall, Inc.,
1985.
[Floyd62] R. W. Floyd. Algorithm 97: Shortest path. Comm. ACM,
Vol. 5(6), June 1962.
[Flynn66] M. J. Flynn. Very high speed computing systems.
Proceedings of the IEEE, Vol. 54: pp. 1901-1909,1966.
[Fort85a] J. A. B. Fortes, K. S. Fu, and B. W. Wah. Systematic
approaches to the design of algorithmic specified systolic arrays.
In Proc. IEEE ICASSP'85, pp. 300-303, Tampa, Florida,
March 1985.
[Fort85b] J. A. B. Fortes and С S. Raghavendra. Gracefully degrad-
able processor arrays. IEEE Transactions on Computers, pp.
1033-1044, November 1985.
651
[Forte87] J. Fortes. Algorithm Reconfiguration Techniques for
Gracefully Degradable Processor Arrays. Systolic Army, eds. W.
Moore, et al., Adam Hilger, 1987.
[Fouse79] S. D. Fouse. et al. A VLSI architecture for pattern
recognition using residue arithmetic. In Proc. 6th Int. Conf. VLSI
Architecture, Design and Fabrication, pp. 65-90, Caltech,
Pasadena, CA, 1979.
[Fouta85] T. J. Fountain. A review of SIMD architectures. In J. Killter
and M. J. B. Duff, editors, Image Processing System
Architectures, John-Wiley & Sons Inc., 1985.
[Frank82] M. Franklin and D. Wann. Asynchronous and clocked control
structures for VLSI based interconnection networks. In The
9-th Annual Symposium on Comput. Architecture, April 1982.
Austin, TX.
[Frenk86] K. A. Frenkel. Evaluating two massively parallel machines.
Communications of the ACM, August 1986.
[Fried83] B. Friedlander, and J. Newkirk. A comparsion of two SAR
processsing architectures for VLSI implementation. In Proc.
IEEE ICASSP'83, Boston, pp: 919-922, 1983.
[Fujit84] Fujitsu. DSP MB8764 hardware manual. 1984.
[Gajsk83] D. Gajski, D. Kuck, D. Lawrie, A. Sameh. Cedar.
Technical Report, Department of Computer Science, University of
Illinois, Urbana, Feburary, 1983.
[Gajsk85] D. D. Gajski. Silicon compilation. VLSI System Design, pp.
48-64, November 1985.
[Galla86] N.C. Gallagher S.S.H. Naqvi and E.J. Coyle. An
application of median filters to digital television. In Proc. IEEE
ICASSP'86, Tokyo, Japan, pp. 2451-2454, 1986.
[Gapp84] R.H. Davis and D. Thomas. Systolic array chip matches the
pace of high-speed processing. Electronic design, pp. 207-218,
October 1984.
[Gapp85] NCR Company. NCR GAPP PC Development System. NCR
Documents No. NCR45GDS1
[Geman84] S. Geman and D. Geman. Stochastic relaxation, Gibbs
distributions, and the Bayesian restoration of images. IEEE
Transactions on Pattern Analysis and Machine Intelligence,
Vol. 6: pp. 721-741, November 1984.
[Giord85] Arthur A. Giordano and Frank M. Hsu. Least Square
Estimation with Applications to Digital Signal Processing. Needham,
Massachusetts, 1985.
[Gondr84] M. Gondran, M. Minoux, and S. Vajda. Graphs and
Algorithms. John Wiley & Sons, 1984.
[Golub83] G.H. Golub. Matrix Computation. Johns Hopkins University
Press, 1983.
[Goodm68] J.W. Goodman. Introduction to Fourier Optics. McGraw
Hill, N.Y., 1984.
652
[Goodm84] J.W. Goodman, F.J. Leonberger, S.Y. Kung, and R.A.
Athale. Optical interconnections for VLSI systems. Proc.
IEEE, pp. 850-866, July 1984.
[Goto81] S. Goto. An efficient algorithm for the two-dimensional
placement problem in electrical circuit layout. IEEE Transactions
on Circuit and Systems, January 1981.
[Gray84] R.M. Gray. Vector quantization. IEEE ASSP Magazine, Vol.
2 (No. 2): pp. 4-29, April 1984.
[GrifF82] L.J. Griffiths and C.W. Jim. An alternative approach to
linearly constrained adaptive beamforming. IEEE Transactions
on АР, AP-30: pp. 27-34, January 1982.
[Grosc79] G.E. Grosch. Performance analysis of Poisson solver on
array computers. Supercomputers> edited by C.R. Jesshope and
R.W. Hockney, Vol. 2: pp. 149-181, 1979.
[Guiba79] L.J. Guibas, H.T. Kung, and CD. Thompson. Direct VLSI
implementation of combinatorial algorithms. In Proc. Caltech
Conference on VLSI, L.A., 1979.
[Gusta86] J. L. Gustafson, S. Hawkinson, and K. Scott. The
architecture of a homogeneous vector supercomputer. Journal of
Parallel and Distributed Processing, 1986.
[Hajek85] B. Hajek. A tutorial survey of theory and applications of
simulated annealing. In Proc. of 24th Conference on Decision
and Control, pp. 755-760, 1985.
[Hayes78] J.P. Hayes. Computer Architecture and Organization. Mc-
Graw Hill, N.Y., 1978.
[Hedlu82] K.S. Hedlund and L. Snyder. Wafer scale integration of
Configurable Highly Parallel (CHiP) processors. In Conference
on Parallel Processing, pp. 262-264, 1982.
[Hedlu85] K.S. Hedlund. WASP - a Wafer-Scale Systolic Processor. In
ICCD, pp. 665-671,1985.
[Helle84] D. Heller. Partitioning big matrices for small systolic arrays.
In VLSI and Modern Signal Processing, S. Y. Kung, et al,
editors, Prentice Hall, 1984.
[Henne84] J. F. Hennessy. VLSI processor architecture. IEEE
Transactions on Computers, C-33(12): pp. 1221-1246, December
1984.
[Hilli85] W. D. Hillis. The Connection Machine. Massachusetts
Institute Technology Press, 1985.
[Hoare78] C. A. R. Hoare. Communicating sequential processes.
Communications of the ACM, 21: pp. 666-677, 1978.
[Hockn83] R.W. Hockney and C.R. Jesshope. Parallel Computers.
Adam Hilger Ltd., Bristol, U.K., 1983.
[Hopfi82] J. J. Hopfield. Neural network and physical systems with
emergent collective computational abilities. In Proc. Natl..
Acad. SCi. USA, 1982.
653
[Hopfi84] J. J. Hopfield. Neurons with graded response have collective
computational properties like those of two-state neurons. In
Proc. Natl. Acad. SCi. USA, pp. 3088-3092,1984.
[Hopfi85] J. J. Hopfield and D. W. Tank. Neural computation of
decision in optimization problems. Biological Cybernetics, 1985.
[Horii86] S. Horii, M. Mubo, C. Ohara, K. Horiguchi, Y. Kuniyasu, E.
Osaki, and Y. Ohshima. 32-bit image processor T9506 and its
applications. In Workshop on VLSI Signal Processing, IEEE
Press, Los Angeles, CA, 1986.
[Horik87] S. Horiike, S. Nishida, and T. Sakaguchi. A design method
of systolic arrays under the constraint of the number of the
processors. In Proc. of ICASSP 87, pp. 7G4-767, 1987.
[Horni73] J. J. Horning and B. Randell. Process structuring. Сотр.
Surveys, 5: pp. 5-30, 1973.
[Hsu83] C.P. Hsu. General River Routing Algorithm. In Proc.
ACM/IEEE 20th Design Automation Conference, 1983.
[HTKun78] H.T. Kung and C.E. Leiserson. Systolic arrays (for VLSI). In
Sparse Matrix Symposium, pp. 256-282, SIAM, 1978.
[HTKun81] H. T. Kung and W. M. Gentleman. Matrix triangularization
by systolic arrays. Proc. SPIE, Real Time Signal Processing,
1983.
[HTKun82] H.T. Kung. Why systolic architectures? IEEE, Computer,
15(1), Jan 1982.
[HTKun83] H.T. Kung and M. S. Lam. Fault-tolerant VLSI systolic
arrays and two-level pipelining. In Proc. SPIE, Real Time
Signal Processing VI, San Diego, С A, August 1983.
[HTKun84] H. T. Kung and M. S. Lam. Wafer-scale integration and two-
level pipelined implementations of systolic arrays. J. Parallel
and Distributed Computing, 32-63, 1984.
[HTKun85] H. T. Kung and J. A. Webb. Global operations on a systolic
array machine. In Proc. IEEE ICCD'85, Oct 1985.
[HTKun86] Η. T. Kung. Memory requirements for balanced computer
architectures. In Proc. 13th Annual Int. Symp. on Computer
Architecture, pp. 49-54, June 1986.
[Hu82] Т. C. Hu. Combinatorial Algorithms. Addison-Wesley
Publishing Company, 1982.
[Hu85] T.C. Hu and E.S. Kuh. Theory and Concepts of Circuit
Layout. IEEE Press, 1985.
[Huang84] A. Huang. Architectural considerations involved in the design
of an optical digital computer. Proc. IEEE, pp. 780-786, July
1984.
[Hud86] P. Hudak. Parafunctional programming. IEEE Computer
Magazine, August 1986.
[Hwang79] K. Hwang. Computer Arithmetic, principles, architecture,
and design. John Wiley and Sons, Inc., 1979.
654
[Hwang82] К. Hwang and Υ.Η. Cheng. Partitioned matrix algorithms for
VLSI arithmetic systems. IEEE Transactions on Computers,
C-31(12): pp. 1215-1224, December 1982.
[Hwan84a] K. Hwang and F. Briggs. Computer Architectures and
Parallel Processing. McGraw Hill, 1984.
[Hwang86] K. Hwang and Joy deep Ghosh. Supercomputer and Artificial
Intelligence Machines. Technical Report CRI-86-02,
University of Southern California, February 1986.
[Hwang87] K. Hwang and Joydeep Ghosh. Supercomputer and Artificial
Intelligence Machines. Technical Report CRI-87-03,
University of Southern California, January 1987.
[Itaku75] F. Itakura. Minimum prediction residual principal applied to
speech recognition. IEEE Trans on ASSP, pp. 67-72,
February 1975.
[Jagad83] J. V. Jagadish, T. Kailath, G. G. Mathews, and J. A.
Newkirk. On pipelining systolic arrays. In 17th Asilomar
con}, on Circuits, Systems, and Computers,, November 1983.
Pacific Grove, CA.; also On hardware description from block
diagrams, In Proc. IEEE ICASSP'84, San Diego, CA., March
1984.
[Jain85] R. Jain. Image Processing. In Modern Signal Processing,
edited by T. Kailath, 1985.
[Jain86] R. Jain et. al. Custom design of a VLSI PCM-FDM trans-
multiplexer from system specification to circuit layout using a
computer-aided design system. IEEE JSSC, February 1986.
[Jenki87] K. Jenkins and S. Sawchuck Personal communication, 1987.
[Jenq86] Y. C. Jenq. 1986. Private Communication.
[Jessh85] C. Jesshope and W. Moore. Wafer Scale Integration. Adam
Hilger, Bristol and Boston, 1985.
[Jou86] J. Y. Jou and J. A. Abraham. Fault-tolerant matrix
arithmetic and signal processing on highly concurrent computing
structures. Proc. IEEE, pp. 732-741, May 1986.
[Jover86] J. M. Jover and T. Kailath. A parallel architecture for
Kalman filter measurement update and parameter estimation.
Automatica, 22: pp. 43-57, 1986.
[Jutan84] F. Jutand, N. Demassieux, D. Vicard, and G. Chollet. VLSI
architecture for DTW using systolic arrays. In Proc. IEEE
ICASSP'84, pp. 34A.5.1- 34A.5.4, 1984.
[Kaila74] T. Kailath. A view of three decades of linear filtering
theory. IEEE Transactions on Information Theory, IT-20(2):
pp. 145-181, Mar 1974.
[Kaila80] T. Kailath. Linear System. Prentice-Hall, Inc., Englewood
Cliffs, NJ, 1980.
[Kalma60] R. E. Kalman. A new approach to linear filtering and
prediction problems. J. Basic Engineering, 82: pp. 35-45, 1960.
[Kalso85] S. Kalson and K. Yao. A systolic array for linearly constrained
655
least squares filtering. In Proc. IEEE ICASSP'85, pp. 977
980, 1985.
[Кагрбб] Richard M. Karp and Raymond E. Miller. Properties of a
model for parallel computations: determinancy, termination,
queueing. SIAM Jour. Applied Math., pp. 1390-1411,
November 1966.
[Karp67] R. M. Karp, R. E. Miller, and S. Winograd. The organization
of computations for uniform recurrence equations. Journal of
ACM, 14(3): pp. 563-590, July 1967.
[Kay81 S.M Kay and S.L. Jr. Marplo. Spectrum analysis a modern
perspective. IEEE Proc, 69(11): pp. 1380-1498, Nov. 1981.
[Keyes79] R.W. Keyes. The evolution of digital electronics towards
VLSI. IEEE Transactions on Electron Devices, ED-26(4):
pp. 271-278, 1979.
[KHHua84] Huang К. H. and Abraham J. A. Algorithm-based fault-
tolerance for matrix operations. IEEE Transactions on
Computers, pp. 518-528, June 1984.
[Kime86] C. R. Kime. System diagnosis. In D. K. Pradhan,
editor, Fault-Tolerant Computing, Theory and Techniques Vol.2,
Chapter 8, Prentice-Hall, 1986.
[Kirkp83] S. Kirkpatrick, CD. Gelatt Jr., and M.P. Vecci. Optimization
by simulated annealing. Science, May 1983.
[Kisha86] K. Jainandunsing. Optimal partitioning schemes for wave-
front/systolic array processors. Technical Report April 28,
1986, Delft University of Technology, Delft, The Netherlands,
1986.
[Koch86] C. Koch, J. Marroquin and A. Yuille. Analog "neuronal"
networks in early vision. Proc. of National Academy Science,
Vol. 83: pp. 4263-4267, 1986.
[Kohoe72] T. Kohonen. Correlation matrix memories. IEEE
Transactions on Computer, C-21, 1972.
[Koren81] I. Koren. A reconfigurable and fault-tolerant multiprocessor
array. In 8th Annual Symposium on Computer Architectures,
pp. 425-442, 1981.
[Kuck80] D. J. Kuck, K. H. Kuhn, B. Leasure, and M. Wolfe. The
Structure of an Advanced Retargetable Vectorizer. In Proc.
COMPSAC'80, 1980.
[Kung81] S.Y. Kung. A Toeplitz approximation method and some
applications. In Proc. Int. Symp. Math. Theory Networks Syst.,
Santa Monica, Aug., 1981.
[Kung82a] S.Y. Kung, K.S. Arun, R.J. Gal-Ezer, and D.V. Bhaskar Rao.
Wavefront array processor: language, architecture, and
applications. IEEE Transactions on Computers, Special Issue
on Parallel and Distributed Computers, C-31(ll): pp. 1054-
656
1066, Nov 1982.
[Kung82b] S. Y. Kung and R. J. Gal-Ezer. Synchronous vs. asynchronous
computation in VLSI array processors. In Proceedings, SPIE
Conference, 1982. Arlington, VA.
[Kung83a] S. Y. Kung and R. J. Gal-Ezer. Eigenvalue, singular value
and least square solvers via the wavefront array processor.
In Algorithmically Specialized Computer Organizations,
Academic Press, 1983.
[Kung83b] S.Y. Kung and Y.H. Hu. A highly concurrent algorithm and
pipelined architecture for solving Toeplitz systems. IEEE
Transactions on ASSP, ASSP-31(No.l, pp.66-76), Feb. 1983.
[Kung83c] S.Y. Kung. From transversal filter to VLSI wavefront array.
In Proc. Int. Con/, on VLSI 1983, IFIP, Trondheim, Norway,
1983.
[Kung83d] S. Y. Kung, K. S. Arun, and D. V. B. Rao. State space and
SVD based approximation methods for the harmonic retrieval
problem. J. Optical Soc. of America, 73: pp. 1799-1811, Dec,
1983.
[Kung83 1] S.Y. Kung, D.V. Bhaskar Rao, and K.S. Arun. New state
space and SVD based approximate modeling methods for
harmonic retrieval. In Spectral Estimation II, pp. 266-271,
Acoustic, Speech and Signal Processing, IEEE, Tampa, Fl,
November 1983.
[Kung84a] S.Y. Kung. On supercomputing with systolic/wavefront array
processors. Invited paper} Proceedings of the IEEE, Vol. 72(7),
July 1984.
[Kung84b] S. Y. Kung, J. Annevelink, and P. Dewilde. Hierarchical
iterative flow-graph design for VLSI array processors. In IEEE
Workshop on VLSI Signal Processing, L.A., Nov 1984.
[Kung85j S.Y. Kung, J. Annevelink, P. Dewilde, and S. C. Lo.
Hierarchical iterative flow-graph design for VLSI array processors.
In IEEE ICASSP 85, Tampa, Florida, March 1985.
[Kung85a] S. Y. Kung, D. V. Bhaskar, and K. S. Arun. Spectral
Estimation: From Conventional Methods to High Resolution
Modelling Methods. In VLSI and Modern Signal Processing,
S.Y. Kung et al. (eds.), Prentice-Η all, Inc, 1985.
[Kung86a] S. Y. Kung, P. S. Lewis, and S. C. Lo. On optimally mapping
algorithms to systolic arrays with application to the .transitive
closure problem. In Proc. 1986 IEEE Int. Sym. on Circuits
and Systems, pp. 1316-1322, 1986.
[Kung86b] S. Y. Kung, S. C. Lo, and P. S. Lewis. Timing analysis and
optimization of VLSI data flow arrays. In Proc.ICPPf86, 1986.
[Kung86c] S. Y. Kung, J.N. Hwang, and S. C. Lo. Mapping digital signal
42—1028
657
processing algorithms onto VLSI systolic/wavefront arrays.
In Proc. 12th Annual Asilomar Conf. on Signals, Systems
and Computers, pp. 6-12, November 1986.
[Kung86d] S.Y. Kung, C.W. Chang, and C.W. Jen. Real-time
reconfiguration for fault-tolerant VLSI array processors. Proc. Real-
Time Systems Symposium, pp. 46 - 54, 1986.
[Kung87a] S. Y. Kung, P. S. Lewis, and S. N. Jean. Canonic and
generalized mapping from algorithms to arrays - a graph based
methodology. In Proc. of the Hawaii Inter. Conf. on System
Sciences, Vol. 1, pp. 124 - 133, January, 1987.
[Kung87b] S. Y. Kung and J.N. Hwang.. Systolic design of electronic
neural networks. Sumitted to 26th IEEE Conf. on Decision
and Control, Los Angeles, December, 1987.
[Kung87c] S. Y. Kung and J. N. Hwang. A new systolic array for Kalman
Filtering. Sumitted to IEEE Trans, on Acoustics, Speech, and
Signal Processing, 1987.
[Kuo85] С. C. Kuo, В. C. Levy, B. R. Musicus. A local relaxation
method for solving elliptic PDEs on mesh-con nee ted arrays.
SIAM, J. Sci. Stat. Сотр., July, 1987.
[Kumar85] V. K. P. Kumar and С S Raghavendra. Array processor with
multiple broadcasting. In 12th Symp. Computer Architecture,
pp. 2-10, 1985.
[Lawri75] D. H. Lawrie. Access and alignment of data in an array
computer. IEEE Trans, on Computer, C-24: pp. 1145-1155,1975.
[Lehma77] D. H. Lehmann. Algebraic structures for transitive closure.
Theoretical Computer Science, (4): pp. 59-76, 1977.
[Leise81] C.E. Leiserson. Area-Efficient VLSI Computation. PhD
thesis, Carnegie-Mellon University, Pittsburgh, Penn., October
1981.
[Leis83a] C.E. Leiserson, F.M. Rose, and J.B. Saxe. Optimizing
synchronous circuitry by retiming. In Proceedings, Caltech VLSI
Conference, Pasadena, CA, 1983.
[Leis83b] C.E. Leiserson and J.B. Saxe. Optimizing synchronous
systems. J. of VLSI and Computer Systems, 1(1): pp. 41-67,
1983.
[Leise85] С. E. Leiserson. Fat-trees: universal networks for hardware
efficient supercomputing. In Proc. IEEE Int. Conf. on
Parallel Processing, pp. 393-402, 1985.
[Lenfa78] J. Lenfant. Parallel permutations of data: A Benes network
control algorithm for frequently used permutations. IEEE
Trans, on Computer, C-27: pp. 637-647, July, 1978.
[Levin47] N. Levinson. The Wiener RMS (root-mean-square) error
criterion in filter design and prediction. J. Math. Phys., 25: pp.
658
261-278, Jan 1947.
[Lev-A83] Η Lev-Ari. Modular computing networks: a new methodolgy
for analysis and design of parallel algorithms/architectures.
Internal Report, Technical Memo, ISI-29, Integrated Systems
Inc., Palo Alto, Ca., 1983.
[Lewis86] P. S. Lewis and S. Y. Kung. Dependence graph based
design of systolic arrays for the Algebraic Path Problem. In
Proc. 12th Annual Asilomar Con}, on Signals, Systems and
Computers, November 1986.
[Li85] G. J. Li and B. W. Wah. The design of optimal systolic
arrays. IEEE Transactions on Computers, Vol. C-34(l),
January 1985.
[Lin85] F.C. Lin and Wu. Systolic arrays for transitive closure al- ·.
gorithms. International Symposium on VLSI Systems and
Designs, Taipei, May 1985.
[Ling86] F. Ling, D. Manolakis, and J.G. Proakis. A flexible,
numerically robust array processing algorithm and its relationship
to the Givens transform. In Proc. IEEE ICASSP'86, Tokyo,
Japan, pp. 2127-2130, 1986.
[Lippm87] R. P. Lippmann. An introduction to computing with neural
nets. IEEE ASSP magazine, 4: pp. 4-22, April, 1987.
[Mada85] H. Mada. Architecture for optical computing using
holographic associative memories. Applied Optics, Vol. 24: 1985.
[Mahr84] B. Mahr. Iteration and summability in semirings. Annals of
Discrete Mathematics 19, Dec 1984.
[Marke76] J. D. Markel and A. II. Gray. Linear Prediction of Speech.
Spring-Verlag, 1976.
[Marpl85] S. L. Jr. Marple. Spectral Estimation and its Applications. In
Modern Signal Processing, edited by T. Kailath, 1985.
[Marr80] D. Marr and E. Hildreth. Theory of edge detection. Proceed-
ings of Royal Society of London, 207: pp. 187-217, 1980.
[Marri85] К. E. Marrin. VLSI and software move DSP techniques into
mainstream. Computer Design, pp. 69-87, September 1985.
[May84] M. D. May and R. J. B. Taylor. Occam - An overview.
Microprocessor & Microsystems, pp. 73-39, August 1984.
[McCan82] J.V. McCanny and J. G. McWhirter. Implementation of
signal processing functions using 1-bit systolic arrays. Electron.
Letts., (18): pp. 241-243, 1982.
[McCan84] J. V. McCanny, K. W. Wood, J. G. McWhirter, and С J.
Oliver. The relationship between word and bit level systolic
arrays as applied to matrix and matrix multipication. In Proc.
SPIE, Tech. Symp. Real Time Signal Processing VI, 1983.
[McCan86] J. V. McCanny, , and J. G. McWhirter. The derivation and
utilization of bit level systolic array architectures. In Proc. of
the International Workshop on Systolic Arrays, University of
Oxford, pp. F1.1-F1.12, July 1986.
42*
659
[McWhi83] J.G. McWhirter. Recursive least-squares minimization using
a systolic array. In SPIE, In Proc. Real Time Signal
Processing VI, pp. 105-110, SPIE, 1983.
[McWhi86] P.J. Hargrave C.R. Ward and J. McWhirter. A novel
algorithm and architecture for adaptive digital beamforming.
IEEE Transactions on Antennas and Propagation, pp. 338-
346, March 1986.
[Mead80] C. Mead and L. Conway. Introduction to VLSI Systems.
Addison-Wesley, 1980.
[Meind86] J. Meindl. Informal discussion: microprocessors in the year
2001. In Proc. Int. Solid-State Circuits Conference, 1986.
[Melhe86] R. G. Melhem. Irregular wavefronts in data-driven data-
dependent computations. Technical Report, University of
Pittsburgh, June 1986.
[Miran84] W. L. Mi ranker. Space-time representations of computational
structures. Computing, 1984.
[Mital76] K. V. Mital. Optimization Methods. John Wiley and Sons,
New York, 1976.
[MJChe86] M. J. Chen and K. Yao. On realization of least-squares
estimation and Kalman filtering by systolic arrays. In Proc. of
Intl. Workshop on Systolic Arrays, Oxford, July 1986.
[MJChe87] M.J. Chen and K. Yao. On realization and implementation of
Kalman filtering by systolic array. In Proc. of John Hopkins
Workshop, 1987.
[Moldo83] D. I. Moldovan. On the design of algorithms for VLSI systolic
arrays. Proceedings of the IEEE, Vol. 71(1), January 1983.
[Moldo86] D. I. Moldovan and J. A. B. Fortes. Partitioning and mapping
of algorithms into fixed size systolic arrays. IEEE
Transactions on Computers, 35(1): pp. 1-12, January 1986.
[MonziSO] R. A. Monzingo and T. W. Miller. Introduction to Adaptive
Arrays. Wiley-Interscience, 1980.
[Moore84] W.C. Moore and K. Steiglitz. Efficiency of parallel processing
in the solution of Laplace equation. In Fifth IMACS Interna-
tional Symposium on Computer Methods for Partial
Differential Equations, 1984.
[Moore86] W. R. Moore. A review of fault-tolerant techniques for the
enhancement of integrated circuit yield. Proc. IEEE, pp. 684-
698, May 1986.
[Moore87] W. Moore and A. McCabe and R. Urquhart. Systolic Arrays.
Adam Hilger, 1987.
[Morto84] S. Morton. A fault tolerant bit parallel cellular array
processor. Reprint, ITT advanced technology center, 1984.
[Murat77] T. Murata and K. Onaga. Deadlocks in capacitated
computation networks. In Proc. 12th Midwest Symp. on Circuits
660
and Systems, pp. 99-103, August 1977.
[Murog82] S. Muroga. VLSI System Design. John Wiley and Sons, 1982.
[Nakan72] K. Nakano. Association - a model of associative memory.
IEEE Transactions on SMC, Vol. SMC-2, 1972.
[Nash83] J. G. Nash, and S. Hansen. Modified Faddeev algorithm for
matrix manipulation. In Proc. SPIE Con}., San Diego, Aug.
1983.
[Nash86] J. G. Nash, K. W. Przytula, and S. Hansen. Systolic/celluar
processor for linear algebraic operations. IEEE Workshop on
VLSI Signal Processing, L.A., Nov. 1986.
[Nevat82] R. Nevatia. Machine Perception. Prentice-Hall, Inc., 1982.
[NEC85] NEC Electronics. uPD7281 User's Guide. 1985.
[Nicol85] D. Nicolas, J. Francis, S. Marc, and D. Michel. VLSI
architecture for a one chip video median filter. In Proc. IEEE
ICASSP'85, Tampa, FL., pp. 26.7.1-26.7.4, 1985.
[Nudd85] G. R. Nudd and J. G. Nash. Application of concurrent VLSI
systems to two-dimensional signal processing. In VLSI and
Modern Signal Processing, Chapter 17, pp. 307-325, Prentice
Hall, 1985.
[0'Don85] M. J. O'Donnell. Equational Logic as a Programming
Language. MIT Press, 1985.
[Oflaz83] K. Oflazer. Design and implementation of a single chip 1-D
median filter. IEEE Transactions on ASSP, October 1983.
[Offen85] I. OfFen and R.J. Raymond Jr. VLSI Image Processing.
McGraw-Hill, 1985.
[0'Kee86] Μ. Т. O'Keefe and J. A. B. Fortes. A comparative study of
two systematic design methodologies for systolic arrays. In
International Conference on Parallel Processing, pp. 672-675,
Chicago, IL, August 1986.
[Onaga86] K. Onaga and T. Takechi. On design of rotary array
communication and wavefront-driven algorithms for solving large-
scale band-limited matrix equations. Technical Report of
Computer Science group 1986, Hiroshima University, Japan,
1986.
[Oppen75] A. Oppenheim and R. Schafer. Digital Signal Processing.
Prentice-Hall, Inc., Englewood Cliffs, NJ, 1975.
[Oppen78] A. Oppenheim. Applications of Digital Signal Processing.
Prentice Hall, N.J., 1978.
[Ore62] O. Ore. Theory of Graphs. American Mathematical Society,
Providence, Rhode Island, 1962.
[Paige77] С. C. Paige and M. A. Saunders. Least squares estimation
of discrete linear dynamic systems using orthogonal
transformation. SIAM J. Numer. Anal., 14: pp. 180-193, 1977.
661
[Рара<183] С. Η. Papadimitriou and К. Steiglitz. Combinatorial
Optimization: Algorithms and Complexity. Prentice-Hall, 1983.
[Parke85] I.N. Parker. VLSI architecture. In VLSI Image Processing,
R. J. Offen, editor, Chapter 3, pp. 99-127, 1985.
[ParleSO] B. N. Parlett. The Symmetric Eigenvalue Problem. Prentice-
Hall, Inc., N.J., 1980.
[Parna72] D. L. Parnas. A technique for software module specification
with examples. Communications of the ACM, 15: pp. 330-
336, 1972.
[PatteSO] D.A. Patterson and D.R. Ditzel. The Case for the Reduced
Instruction Set Computer. Computer Architecture News, 8:
pp. 25-33, October 1980.
[Patte81] D.A. Patterson and C.H. Sequin. A VLSI RISC. Computer,
IEEE, 14, September 1981.
[Pcter81] J. L. Peterson. Petri Net Theory and The Modeling of
Systems. Prentice-Hall, Englewood Cliffs, N.J.07632, 1981.
[Pezar7l] S.D. Pezaris. A 40 ns 17-bit-by-bit array multiplier. IEEE
Transactions on Computers, C-20(4): pp. 442-447, April
1971.
[Porte86] W. A. Porter, and J. L. Aravena. Array architectures for
estimation and control applications: An introduction and
overview. Sumitted to 25th IEEE Conf. on Decision and
Control, Athens, 1986.
[Pount86] D. Pountain. A Tutorial Introduction to Occam
Programming. INMOS, 1986.
[Pratt78] W. K. Pratt. Digital Image Processing. Wiley, 1978.
[Prepa84] F. P. Preparata. VLSI algorithms and architectures. In M. P.
Chytil and V. Koubek, editors, Lecture Notes in Computer
Science 176, Springer-Verlag, 1984.
[Psalt84] D. Psaltis. Two-dimensional optical processing using one-
dimensional input devices. Proc. IEEE, pp. 962-974, July
1984.
[Psalt85] D. Psaltis and N. Farhat. Optical information processing
based on an associative-memory model of neural nets with
thresholding and feedback. Optics Letters, 10: pp. 98-99,
Jan., 1985.
[Quint84] P. Quinton. Automatic synthesis of systolic arrays from
Uniform Recurrent Equations. In Proceedings of 11th Annual
Symposium on Computer Architecture, pp. 208-214, 1984.
[Rabae86] J.M. Rabaey and R. W. Broderson. Experiences with
automatic generation of audio band digital signal processing
circuits. In Proc. IEEEICASSP'86, 1986.
[Rabin75] L. R. Rabiner and B. Gold. Theory and Application of Digital
Signal Processing. Prentice-Hall, Inc., Englewood Cliffs, N.J.,
1975.
[Rabin78] L.R. Rabiner and R.W. Schafer. Digital Processing of Speech
Signals. Prentice-Hall Inc., 1978.
[Rabin8l] L. R. Rabiner and S. E. Levinson. Isolated and connected
word recognition - theory and selected application. IEEE
Transactions on Communication, Vol. Com-29(No. 5): pp.
621-658, May 1981.
[Radin82] G. Radin. The 801 minicomputer. In Proc. Symp.
Architectural Support for Programming Languages and Operating
Systems, pp. 39-47, Ass. Comput. Mach., Palo Alto, CA.,
March 1982.
[Raffe85] J. I. Raffel, A. H. Anderson, et al. A wafer-scale digital
integrator using restructurable VLSI. IEEE Journal of Solid-
State Circuits, Feburary 1985.
[Ragha83] R. Raghavan and S. Sahni. Single row routing. IEEE
Transactions on Computers, March 1983.
[Ramam80j C. V. Ramamoorthy and S. Gary. Performance evaluation
of asynchronous concurrent systems using Pe,tri Nets. IEEE
Trans. Software Eng., pp. 440-449, September 1980.
[Ramau83] B. Ramamurthi and A. Gersho. Image coding using
segmented codebooks. Proc. Intel's Picture Coding Symposium,
March 1983.
[Ramch73] C. Ramchandani. Analysis of Asynchronous Concurrent
Systems by Petri Nets. PhD thesis, Dept. of Electrical
Engineering, Massachusetts Institute of Technology, Cambridge,
Massachusetts, July 1973.
[Rande82] B. Randell and P. C. Treleaven. VLSI Architecture. Prentice
Hall, 1982.
[Rao85] S. K. Rao. Regular Iterative Algorithms and Their Implema-
tions on Processor Arrays. PhD thesis, Stanford University,
Stanford, California, 1985.
[Reite68] R. Reiter. Scheduling parallel computations. Journal of
ACM, pp. 590-599, October 1968.
[Rich83] Elaine Rich. Artificial Intelligence. McGraw-Hill, 1983.
[Rober86] Y. Robert and D. Trystram. An orthogonal systolic array for
the Algebraic Path Problem. In Inter. Workshop on Systolic
Arrays, 1986.
[Rosbe83] A. L. Rosenberg. The Diogenes approach to testable fault-
tolerant arrays of processors. IEEE Transactions on
Computers, pp. 902-910, October 1983.
[Rosbl58] F. Rosenblatt. The perception: A probablistic model for
information storage and organization in the brain. Psych. Rev.,
Vol. 65, 1958.
[Rosen82] A. Rosenfeld and A.C. Как. Digital Picture Processing Vol.
663
I, II. Academic Press, 1982.
[Rosen85] A. Rosenfeld. Parallel Algorithms for Image Analysis. In
VLSI and Modern Signal Processing, S.Y. Kung et al. (eds.),
Prentice-Hall, Inc, 1985.
[Rote85] G. Rote. A systolic array algorithm for the Algebraic Path
Problems (shortest paths, matrix inversion). Computing,
(34): pp. 192-219, 1985.
[Rumel86] D. E. Rumelhart, J. L. McClelland, and the PDP Research
Group. Parallel Distributed Processing: Exploration in the
Microstructure of Cognition. MIT Press, Cambridge,
Massachusetts, 1986.
[Saal86] Ing. R. Saal. A linear systolic array for computation matrices.
Technical Report, Institute on Network and Circuit Theory,
Technical University of Munich, Germany, 1986.
[Sakoe78] H. Sakoe and S. Chiba. Dynamic programming optimization
for spoken word recognition. IEEE Transactions on ASSP,
pp. 43-49, August 1978.
[Sami83] M. G. Sami and R. Stefanelli. Reconfigurable architecture
for VLSI processor array. In National Computer Conference,
pp. 565-577, 1983.
[Sami86] M. Sami and R. Stefanelli. Reconfigurable architectures for
VLSI processing arrays. Proc. IEEE, pp. 712-722, May 1986.
[Schmi79] R. Schmidt. Multiple emitter location and signal
parameter estimation. Proc. RADC Spectral Estimation Workshop,
Rome, pp. 243-258, N.Y., 1979.
[Schus98] A. Schuster. On the investigation of hidden periodicities with
application to a supposed 26 day period of meterological
phenomena. Terrest. Magn., pp. 13-41, March 1898.
[Seitz84] C. Seitz. Concurrent VLSI architectures. Invited paper, IEEE
Transactions on Computer, C-33, December 1984.
[Seitz85] C.L. Seitz. The cosmic cube. Communication of the ACM,
pp. 22-33, January 1985.
[Seitz80] C. Seitz. System timing. Chapter 7 in Introduction to VLSI
systems by Mead and Conway, 1980.
[Seitz84] C. Seitz. Concurrent VLSI architectures. Invited paper, IEEE
Transactions on Computer, C-33, December 1984.
[Shim81] Y.S. Shim and Z.H. Cho. SVD pseudo inversion image
reconstruction. IEEE Transactions on ASSP, pp. 904-909, August
1981.
[Siege82] L.S. Siegel, H.J. Siegel, and A.E. Feather. Parallel
processing approaches to image correlation. IEEE Transactions on
Computers,, C-31(3): pp. 208-218, March 1982.
[Siewi82] D. P. Siewiorek and R. S. Swarz. The Theory and Practice of
Reliable System Design. Digital Press, 1982.
[Singl67] R. C. Singleton. A method for computing the fast Fourier
transform with auxiliary memory and limited high-speed
storages. IEEE Transactions on Audio Eletroaccoust., AU-15:
91-97, June 1967.
[Sked85a] S. Skedzielewski and J. Glauert. IF1, an intermediate form
for applicative languages. Technical Manual, Lawerence Liv-
ermore Laboratory, 1985.
[Sked85b] S. Skedzielewski and J. Glauert. SISAL reference manual.
Technical Manual, Lawerence Livermore Laboratory, 1985.
[Smith76] B. T. Smith et al. Lecture Notes in Computer Science, Vol.
6, Ed. 2: Matrix Eigensystem Routines, EISPACK Guide.
Springer Verlag, N.Y., 1976.
[Skoln62] M. I. Skolnik. Introduction to Radar Systems. McGraw-Hill,
N.Y., 1962.
[Snyde82] L. Snyder. Introduction to the configurable, highly parallel
computer. IEEE Computer Magazine, pp. 47-56, January*
1982.
[Soman85] A. K. Somani, V. K. Agarwal, and D. Avis. A generalized
theory for system level diagnosis. In Proc. ICCD'85, pp. 707-
711. 1985.
[Stark81] A. Stark. An investigation of computerized tomography by
direct Fourier inversion and optimum interpolation. IEEE
Transactions on Biomedical Engineering, 28: pp. 496-505,
1981.
[SteinGl] K. Steinbuch. The learning matrix. Kybernetik, 1961.
[Stewa73] G.W. Stewart. Introduction to Matrix Computations.
Academic Press, 1973.
[Stone71] H. S. Stone. Parallel processing with the perfect shuffle. IEEE
Transactions on Computers, C-20(No.2 , pp.153-161), Feb.
1971.
[Stran80] G. Strang. Linear Algebra and Its Applications, Second
Edition. Academic Press, 1980.
[Sung86] Τ. Y. Sung and Υ. H. Hu. VLSI implementation of real-time
Kalman filter. In Proc. IEEE ICASSP'86, Tokyo, Japan, pp.
2223-2226, 1986.
[Swart85] E.E. Swartzlander. High speed FFT processor
implementation. Appeared in VLSI Signal Processing edited by P. Cap-
pello et al., IEEE Press, 1985.
[Swart86] E.E. Swartzlander Jr. VLSI Signal Processing Systems.
Kluwer Academic Publishers, 1986.
[Szabo67] N. Szabo and R. Tanaka. Residue Arithmetic and Its
Applications to Computer Technology. McGraw Hill, 1967.
[Taha82] Hamdy A. Taha. Operations Research: An Introduction,
Third Edition. New York: Macmillan, 1982.
665
[Takah85] J. Takahashi. A ring processor architecture for highly parallel
Dynamic Time Warping. IEEE Transactions on ASSP, 1985.
Submitted to be published.
[Taked86] M. Takeda and J.W. Goodman. Neural networks for
computation: number representations and programming complexity.
Applied Optics, Vol. 25: pp. 3033-3046, September 1986.
[Tani78] Katsuji Tani and Tadao Murata. Scheduling parallel
computations with storage constraints. In Proc. 12th Asilo-
mar Con}. Circuits, Systems, and Computers, pp. 736-743,
November 1978.
[Tank86] D. W. Tank and J. J. Hopfield. Simple "neural" optimization
networks: An A/D converter, signal decision circuit, and a
linear programming circuit. IEEE Trans, on Circuits and
Systems Vol. 33: pp. 533-541, 1986.
[Taylo84] F. J. Taylor. Residue arithmetic: A tutorial with examples.
IEEE Computer Magazine, pp. 50-62, May 1984.
[Thomp79] C. D. Thompson. Area-time complexity for VLSI. Proc.
Eleventh Annual ACM Symposium on the Theory of
Computing, pp. 81-88, 1979.
[Thomp83] C. D. Thompson. The VLSI complexity of sorting. IEEE
Transactions on Computers, C-32: pp. 1171-1184, December
1983.
[Ting83] B.S. Ting and B.N. Tien. Routing techniques for gate array.
IEEE Transactions on Computer-Aided Design of Integrated
Circuits and Systems, October 1983.
[TI83] Texas Instruments. TMS32010 user's guide. 1983.
[TI85] Texas Instruments. TMS32020 user's guide. 1985.
[Tseng85] P. S. Tseng, K. Hwang, and V. K. Prasanna Kumar. A VLSI-
based multiprocessor architecture for implementing parallel
algorithms. In International Conference on Parallel
Processing, Chicago, IL, August 1985.
[Uhr86] L. Uhr. Parallel, hierarchical software/hardware pyramid
architectures. Computer Sciences Technical Report #646,
Computer Sciences Dept, University of Wisconsin, Madison,
1986.
[Ullma84] J. D. Ullman. Computational Aspects of VLSI. Computer
Science Press, 1984.
[Unive86] Johns Hopkins University. Designing a VHSIC-based signal
processor for future anti-radiation homing missiles. Technical
Report of Applied Physics Laboratory, April, 1986.
[Urquhar] R. B. Urquhart and D. Wood. Systolic matrix and vector
multiplication methods for signal processing. IEE Proc. Pt
F, pp. 623-631.
[Venet85] A. N. Venetsanopoulos. Digital image processing and
analysis. In T.S. Durrani and J.L. Lacoume, editors, Signal
Processing, North Holland, 1985.
666
[Vlont87] J. Vlontzos. A wavefront array processor using dataflow
processing elements. In Proc. IntV Conf. on Supercomputing,
Athens, Greece, June, 1987.
[Volde59] J. E. Voider. The CORDIC trigonometric computing
technique. IRE Transactions on Electron. Compute EC-8(3):
pp. 330-334, September 1959.
[Walla64] С S. Wallace. A suggestion for a fast multiplier. IEEE Trans-
actions on Electronic Computers, pp. 14-17, February 1964.
[Walth7l] J. S. Walther. A unified algorithm for elementary functions.
In Proc. AFIPS Conf., pp. 379-385,1971.
[Ward84] С R. Ward, A. J. Robson, P. J. Hargrave, and J. G.
McWhirter. Application of a systolic array to adaptive beam-
forming. IEE Proc., 131: pp. 638-645, October 1984.
[Ware84] F. Ware. Fast 64-bit chip set gangs up for double-precision
floating-point work. Electronics, pp. 99-103, July 1984.
[Warsh62] S. Warshall. A theorem on boolean matrices. J. ACM, Vol.
9(1), January 1962.
[White86] J. С White, et al. A high speed CMOS/SOS implementation
of a bit level systolic correlator. In IEEE ICASSP'86, pp.
1161-1164, Tokyo, Japan, April 1986.
[White85] H. J. Whitehouse. Signal Processing Technology. In Modern
Signal Processing, edited by T. Kailath, 1985.
[Wilki65] J. H. Wilkinson. The Algebraic Eigenvalue Problem. Oxford
University Press, London, 1965.
[Wils83] P. AVilson. Occam architecture eases system design.
Computer Design, November, 1983.
[Wils84a] P. Wilson. Thirty-two bit micro supports multiprocessing.
Computer Design, pp. 143-150, June 1984.
[Wils84b] P. Wilson. Digital signal processing with the IMS T424
Transputer. In Proceedings, Record 4> Wescon/84, L.A., October
1984.
[Wong82J D.Y. Wong, B.H. Juang, and A.H. Gray. An 800 bit/s vector
quantization LPC vocoder. IEEE, Transaction on ASSP, pp.
770-779, October 1982.
[Wong85] Yiwan Wong and J-M Delosme. Optimal systolic
implementations of N-dimensional recurrences. ICCD, pp. 618-621,
1985.
[YHHu85] Y.H. Hu and S.Y. Kung. Toeplitz Eigensystem Solver. IEEE
Transactions on Acoustics, Speech, and Signal Processing,
Vol. 33: pp. 1264-1271, 1982.
[Yoehi82] T. Yoshimura and E.S. Kuh. Efficient algorithms for channel
routing. IEEE Transactions on Computer-Aided Design of
Integrated Circuits and Systems, January 1982.
[YTHwa85] Y.T. Hwang. The design and implementation of a 16-bit
CMOS LSI multiplier. Master Thesis, The Institute of
Electronics, Chiao Tung University, Taiwan, 1985.
667
ПРЕДМЕТНЫЙ УКАЗАТЕЛЬ
Авторегрессионная модель 563
Активные структуры данных 534
Алгебраическая задача нахождения
путей 277
Алгоритм 57
- БПФ с прореживанием по времени 82
- Бута 496
- Витерби 206
- Гуибаса 300
- динамического, изменения
масштаба времени (ДИМВ) 596
- Леей неона 89
- наименьших квадратов 72, 73
- Уошэлла - Флойда 261
- Шура 89, 105
Алгоритмы обработки изображений 58
- ЦОС 14
Амортизация отказов 423
Анализ изображений 619
- речи 588
АРБУ-фильтр 162
Арифметика остаточных классов 505
- с плавающей запятой 502
АР-фильтр 161
Архитектура ПЭ 466
- системы команд 427
Архитектуры 16
Асинхронные матричные
процессоры 306
- протоколы связи 356
Ассоциативное распознавание
образов 629
Ассоциативный поиск 98
Базовые матричные операции 61
- операции ЦОС 57
Бегущий авторегрессионный
фильтр 78
- усредняющий фильтр 78
БИХ-система 74
БПМ-сечение 248
Быстрое преобразование Фурье 82
Ведущая ЭВМ 373, 516
Вектор невязки 71, 569
Векторизатор 122
Векторизующий компилятор 123
Векторное квантование 591
Винеровская фильтрация 88
Внешнее произведение 61
Волновой матричный
процессор (ВПМ) 160, 308
Восстановление изображений 602
ВМП-система STS-RSRE 563
Временная избыточность
с чередованием 422
Вычислительная система
FPS T-series 544
Вычислительный волновой фронт 314
Гарвардская архитектура 472
Гексагональный систолический
массив 273
Гибридные ИС на пластине 46
Гиперкуб 51
Гиперсеть 384
Глобально рекурсивные алгоритмы
107, 108
Граф вычислений (ГВ) 126
- зависимостей (ГЗ) 126
- потока данных (ГПД) 317
- - - регулярный 357
- потока сигнала (ГПС) 143
Двоичные матричные процессоры 525
Двумерная корреляция 92
- медианная фильтрация 608
- свертка 92, 621
Деконволюция 86
Дерево Уоллеса 498
Динамические сети 520
Дискретное преобразование Адамара
86
- Фурье 80
Допустимые линейные планы 147
Задача о кратчайшем пути 261
- - транзитивном замыкании 260
Закалка 291
Z-преобразование 74
Евклидова норма 71
Импульсная характеристика системы
73
Инвариантность ГЗ 133, 133
Исключение Гаусса - Жордана 179
Искусственные нейронные сети 280
Исправление одиночной ошибки 415
Итеративный метод 66
Итерационные условные моды 610
Кадр 126
Калмановская фильтрация 578
- - систолический массив 578
Канал 347
Каноническое отображение 132
КИХ-система 74
Классы языков высокого уровня 430
Клеточное матричное устройство
умножения 497
Клеточный матричный процессор
(САР) 528
Код Грея 384
Кодирование изображения 603, 618
- речи 588
Предметный указатель
669
Конвейер с чередованием
в систолических массивах 267
Конвейеризация 340
Конвейерная обработка 28
- скорость 105
Конвейерное устройство CORDIC 513
Конвейерный такт 218, 240, 330, 332
- - оптимальный 334
Корреляция 76
Кристалл GAPP фирмы NCR 483
- μΡ07281 фирмы NEC 483
Кристаллы ССБИС 488
QR-разложение 174
ЛИВ-системы 73
Линейный фазовый фильтр 79, 163
Локализованный граф зависимостей
128
Локально рекурсивные алгоритмы
107, 109
Локальное управление 410
- разложение 168
Марковское случайное поле 610
Массивно параллельные процессоры
525
Массивы ПЭ 375
Масштабирование 22
Матричные процессорные системы 516
- операции 57
- процессоры обработки изображений
556
- устройства умножения с
фиксированной запятой 494
Машина Больцмана 101
- WARP 568
Медианный фильтр 603
Метод алгебраической реконструкции
640
- векторного квантования 591
- взвешенных проверочных сумм 414
- Гаусса - Зейделя 77
- динамического программирования 95
- линейного предсказания 589
- максимальной апостериорной
вероятности 608
- модельного отжига 96
- наименьших квадратов 71
- последовательной верхней
релаксации 68
- предсказания 590
- преобразования 590
- релаксации 96
- Якоби 67, 578
Методика "разделяй и властвуй" 94
MIMD-архитектура 18
MIMD-процессор 161
Многокаскадные сети обмена 523
Многоскоростная систолическая схема
254
Модель ГПД 317
- программирования волновых
процессоров 341
- Хопфилда 281, 633
- Хопфилда - Танка 281
Модельный отжиг 291, 611
Модульность 27
Монолитные ИС на пластине 46
Μ ульти проекция 185
Назначение узлов 177
Нелинейное назначение 191
Нисходящее иерархическое
проектирование 444
Обменная перестановка 111
Обобщенное отображение 132
Обработка изображений 602
Обратная подстановка 67
Однокаскадные сети обмена 521
Оптическая обработка 48
Отказоустойчивость 393
- во время работы 396
- для линейных массивов 399
- на основе временной
избыточности 420
- - - графов 420
- - этапе компиляции 396
- при изготовлении 394
Отображение алгоритма 379
Параллельная обработка 28
Передаваемые данные 128, 136
Передаточная функция системы 75
Пирамидальные процессоры 548
Подтверждение связи 357
Полный коммутатор 520
Помеченные графы (ПГ) 324
- - временные 328
Поразрядная конвейеризация 514
Потоковая многопроцессорная система
160
Преобразование Ад а мара 448, 591
- Фурье 591
- Хафа 627
Принцип максимальной энтропии 567
Программа с однократным
присваиванием 124
Программируемость 28
Программная среда 444
Промежуточное представление 436
Процесс 346
Процессор Fujitsu МВ8764 478
Процессорное пространство 146
Пузырьковая сортировка 156
Разбиение 384
- массива 30
Разделение процессора 257
Распределение Гиббса 611
Распределенный матричный процессор
526
670
Предметный указатель
Распространяемые данные 128, 135
Расслоение 376
Регулярность 27
Регулярные итерационные алгоритмы
216
Реконструкция иображения 603
Реконфигурация 29
Рекурсивные алгоритмы 103, 125
- уравнения 76
Рекурсивный метод на основе
QR-разложения 570
Ресинхронизация сечением 218
RISC-архитектура 473
САПР матричного уровня 445
- процессора 446
Свертка 75
Сети обмена 377, 518
- Петри 324
- с шинной организацией 518
- Хопфилда 99
Сеточный матричный процессор
с множественной передачей
сообщений 547
Сжание данных 590
SIMD-архитектура 17
SIMD-компьютер 524
SIMD-процессор 157
Сингулярное разложение 69, 70
Синтез речи 588
Синхронный матричный процессор 306
Система счисления в остаточных
классах 506
Систолизация 221
- сечением 217
Систолический массив 208
- план 15
- процессор 158
Систолические массивы на разрядном
уровне 233
Скалярное произведение 61
Стандарт IEEE 504
Статические сети 519
Собственные значения 69
Совершенная тасовка 111
Сокращенный сеточный массив 548
Сопоставление с шаблоном 629
Сортировка 134
- вставками 154
- выбором 154
- рикошетом 192
Спектральное разложение 69
Спиральные систолические массивы
265
Способ Блэкмана и Тьюки 561
Стиль разработки 33
Сумматор с сохранением переноса 498
Схема Дадда 498
- CORDIC 510
- ЛПарГПос 386
- ЛПосГПар 385
Тасующая сеть 521
Теорема о перестраиваемое™ 402
- - пути восстановления 404
Теория сложности 104
Теплицева матрица 88
Технология "перевернутых
кристаллов" 47
Транспьютер 346
Треугольное разложение матриц 63
Улучшение изображений 602
Умножение в дополнительном коде
500
Умножение матриц 62
- с перекодирированием 495
Уравнение Винера - Хопфа 87
- Йела - Уолкера 564
Формирование диаграммы
направленности (ФДН) 566
Цифровые фильтры 77, 161
Эквивалентное преобразование
ГПС/ГПД 321
Экземпляр графа 187
Язык Оккам 346, 480
- SISAL 433
- FP 434
Яркостный переход 622, 641
ОГЛАВЛЕНИЕ
Предисловие редактора перевода 5
Предисловие 7
Глава 1. Введение И
1.1. Общие положения 11
1.2. Матричные процессоры для обработки сигналов
и изображений 13
1.3. Принципы разработки СБИС-архитектур 21
1.4. Обзор содержания глав книги 35
1.5. Другие близкие темы исследований 45
1.6. Заключение 52
1.7. Задачи 53
Глава 2. Алгоритмы обработки сигналов и изображений 57
2.1. Введение 57
2.2. Матричные алгоритмы 61
2.3. Алгоритмы цифровой обработки сигналов 73
2.4. Алгоритмы обработки изображений 92
2.5. Усовершенствованные алгоритмы и их применения 94
2.6. Матричные алгоритмы на СБИС 102
2.7. Заключение 115
2.8. Задачи 115
Глава 3. Отображение алгоритмов на матричные структуры 121
3.1. Введение 121
3.2. Параллельные выражения алгоритма 122
3.3. Методология канонического отображения 130
3.4. Методология обобщенного отображения ГЗ в ГПС 177
3.5. Заключение 198
3.6. Задачи 199
Глава 4. Систолические матричные процессоры 207
4.1. Введение 207
4.2. Систолические матричные процессоры 207
4.3. Отображение ГЗ и ГПС в систолические массивы 215
4.4. Анализ производительности и оптимизация структуры 237
4.5. Систолические массивы для решения задачи о
транзитивном замыкании и задач динамического
программирования 259
4.6. Систолические вычислители для искусственных
нейронных сетей 280
4.7. Заключение 292
4.8. Задачи 293
672
Оглавление
Глава 5. Волновые матричные процессоры 305
5.1. Введение 305
5.2. Общие представления о волновых процессорах 306
5.3. Отображение алгоритмов на волновые процессоры 313
5.4. Временной анализ и оптимальное распределение
очередей 323
5.5. Языки программирования для волновых процессоров 340
5.6. Проектирование аппаратного обеспечения 355
5.7. Заключение 359
5.8. Задачи 363
Глава 6. Разработка систем и программного обеспечения 370
6.1. Введение 370
6.2. Организация системы 372
6.3. Согласование алгоритмов с матричными процессорами 379
6.4. Отказоустойчивость матричных процессоров на СБИС 393
6.5. Языки прграммирования для матричных процессоров 424
6.6. САПР для матричных процессоров 443
6.7. Заключение 452
6.8. Задачи 453
Глава 7. Реализация матричных процессоров 464
7.1. Введение 464
7.2. Реализация на уровне процессора 466
7.3. Проектирование арифметических устройств 493
7.4. Реализация на уровне системы 516
7.5. Примеры матричных процессорных систем 524
7.6. Заключение 550
7.7. Задачи 552
Глава 8. Использование методологии проектирования
систолических вычислителей в обработке сигналов и изображений 555
8.1. Введение 555
8.2. Оценивание спектра, формирование диаграммы направлен
ности и калмановская фильтрация 559
8.3. Обработка речевых сигналов 588
8.4. Обработка изображений 602
8.5. Анализ изображений 619
8.6. Заключение 635
8.7. Задачи 636
Библиография 646
Предметный указатель 668
МАТРИЧНЫЕ ПРОЦЕССОРЫ
на СБИС