Текст
                    Сверхбольшие
I интегральные схемы
и современная
обработка сигналов
VLSI and Modern
Signal Processing
11	I
II
/
I
/
I


VLSI and Modern Signal Processing S.Y. KUNG, H.J. WHITEHOUSE andT. KAILATH Editors PRENTICE-HALL, INC., Englewood Cliffs, New Jersey 07632
Сверхбольшие интегральные схемы и современная обработка сигналов ПОД РЕДАКЦИЕЙ С. ГУНА, X. УАЙТХАУСА, Т. КАЙЛАТА ПЕРЕВОД С АНГЛИЙСКОГО ПОД РЕДАКЦИЕЙ В. А. ЛЕКСАЧЕНКО Ер Москва «Радио и связь» 1989
ББК 32.811.3 С 24 УДК 621.3.049.771.14:681.3 Переводчик и: Ю. С. Малофеев, К, Т. Михайлуца, В, В. Никонов, В. Г. Челпанов Редакция переводной литературы I I । Сверхбольшие интегральные схемы и современная обработка С 24 сигналов: Пер. с англ ./Под ред. С. Гука, X. Уайтхауса, Т. Кайла» та. — М.: Радио и связь, 1989. — 472 с.: ил. ISBN 5-256-00179-5. Книга специалистов из многих стран является введением в круг разно- образных проблем, возникающих при создании высокопроизводительных систем обработки информации. Рассмотрены типичные задачи обработки сигналов, иллюстрирующие возможности организации параллельных вычис- лений. Проведен обзор перспективных разработок специализированных процессоров на основе применения сверхбольших интегральных микро- схем: в виде систолической матрицы и со связью через систему програм- мируемых коммутаторов. Приведены примеры различного применения па- раллельных вычислительных систем и их конкретной реализации. Для инженерно-технических работников. с 1402030000-183 046(01)-89 68—89 ББК 32.811.3 ISBN 5-256-00179-5 (рус.) ISBN 0-13-942699-Х (англ.) © 1985 by Prentice-Hall, Inc., Englewood Cliffs, New Jersey 07632 © Перевод на русский язык, примечания. Малофеев Ю. С., Михайлуца К. Т., Нико- нов В. В., Челпанов В. Г., 1989 © Предисловие, примечания. Лексаченко В. А. 1989
ПРЕДИСЛОВИЕ РЕДАКТОРА ПЕРЕВОДА После нескольких десятилетий развития теории и техники радиосистем в среде радиоинженеров созрело понимание того, что эти системы состоят в основном из двух частей: датчика сигналов и вычислительного устрой- ства, осуществляющего обработку сигналов. Все остальное по сути предназ- начено для сопряжения этих частей и вывода информации. Первые радиосис- темы выполняли скромные задачи. Поэтому их вычислительная часть была проста и обработка сигналов осуществлялась аналоговыми устройствами. Разрабатываемые в настоящее время радиосистемы будут выполнять слож- ные задачи, решение которых под силу только современным цифровым вы- числительным машинам. В связи с этим радиоинженеры — разработчики современных радиосис- тем оказались в ситуации, когда им необходимо быть и специалистами по вычислительной технике, и программистами, и математиками-прикладника- ми. К сожалению, эта ситуация осложняется острым дефицитом научно-тех- нической литературы по вопросам применения средств вычислительной тех- ники в современных радиосистемах. Предлагаемая книга, являющаяся одной из первых в указанной области, представляет собой сборник статей известных зарубежных (в основном - американских) специалистов, написанных в форме научно-технических от- четов. Она является по существу введением в круг разнородных проблем, возникающих перед создателями современных высокопроизводительных систем обработки информации. Технической основой решения этих проблем являются новые возможности, предоставляемые технологией сверхбольших интегральных схем. Но не технологии, а математическим и алгоритмичес- ким аспектам создания вычислительных систем обработки сигналов посвя- щена эта книга. Здесь нет необходимости характеризовать ее содержание, которое кратко • изложено в предисловии редакторов к книге и во введениях к отдельным ее частям. Необходимо только отметить, что широкий круг рассмотренных вопросов и ’’отчетный” стиль отдельных глав не способствуют легкому чте- нию. Однако этот недостаток является обратной стороной главных досто- инств — актуальности рассматриваемых проблем и новизны предлагаемых решений. Активный исследователь может найти в книге много новых идей, которые окажут стимулирующее влияние на его деятельность. Книга полез- на также студентам старших курсов радиотехнических специальностей и инженерам, желающим повысить свою квалификацию в области обработ- ки сигналов. Переводчики приложили немало усилий по согласованию английских и русских терминов. Предисловие к книге, введение к части I и гл. 1, 2, 3, 6 пе- ревел К. Т. Михайлуца; гл. 4, 5, 19 - В. Г. Челпанов; введение к части И, главы 7—16, 20, 26 — В. В. Никонов; введение к части III, гл. 17, 18, 21 — 25 - Ю. С. Малофеев. 5
ЧАСТЬ I ОБРАБОТКА СИГНАЛОВ: ТЕОРИЯ И АЛГОРИТМЫ Современная обработка сигналов характеризуется усилением взаимодей- ствия нескольких областей науки и техники: анализа сигналов, теории сис- тем, статистических методов и численного анализа. Революция в технологии СБИС способствует слиянию областей разработки интегральных схем и вы- числительной техники. Объединение СБИС и современной обработки сигна- лов приводит к еще более поразительному взаимопроникновению этих об- ластей знаний. В каждой из них нам приходится пересматривать заново тра- диционные решения, которые когда-то были ’’оптимальными” в своей об- ласти. Это основная тема гл. 1, в которой приводится несколько примеров плодотворного взаимодействия между математическими решениями и су- ществующими многообещающими технологическими возможностями. В ка- честве примера рассмотрен известный алгоритм Левинсона, используемый в технике кодирования с линейным предсказанием (КЛП) для анализа и син- теза речи. В алгоритме Левинсона используется свойство стационарности процесса для уменьшения количества вычислительных операций с О(п3) до О(п2) при построении его модели /г-го порядка. В том случае, когда исполь- зуется один процессор, время вычисления пропорционально количеству вы- числительных операций. Естественно возникает вопрос о том. нельзя ли с появлением СБИС использовать параллельную обработку для увеличения скорости вычислений. Оказывается, что поскольку алгоритм Левинсона тре- бует формирования скалярных произведений и-мерных векторов, то даже при параллельной работе п процессоров время вычислений можно умень- шить только с О(п2) до О(п log п). Однако, используя другой, менее извест- ный (но более старый) алгоритм, можно избежать формирования скалярных произведений и уменьшить время вычисления при применении п процессо- ров до О (и). Более того, эта структура вполне удовлетворяет требованиям ее реализации в виде СБИС и в действительности образец такой СБИС уже создан (см. гл. 17). Этот другой алгоритм — алгоритм Шура обладает многими интересными свойствами, включая тесную связь с теорией длинных линий. В эпоху СБИС, когда стоимость запоминающих устройств резко снижается, модели линей- ных систем в виде длинных линий оказываются полезными альтернативами современным, более популярным, по крайней мере в теории систем и управ- ления, моделям, основанным на понятиях пространства состояний. Некото- рые из этих положений рассмотрены в гл. 1 и работах, указанных в списке литературы к ней. 8
Удивительной особенностью современной обработки сигналов является широкий диапазон математических идей, которые возникают при решении кажущихся ясными проблем. Однако основу составляют линейная алгебра и теория линейных операторов. К специфическим задачам, которые необхо- димо решать в реальном масштабе времени в современных системах обработ- ки сигналов, относятся матричные умножения для оценки ковариации, реше- ние линейных уравнений для адаптивной обработки, вычисление собствен- ных значений и векторов для определения направления с высокой разрешаю- щей способностью и адаптивного формирования лучей. Для каждого TV-мер- ного вектора входных данных эти задачи обычно требуют от 7V3 до 7V4 эле- ментарных операций (умножений и сложений). Выполнение этих вычислений с достаточной скоростью, для того чтобы справиться с потоком входных дан- ных, трудно даже в случае очень узкополосных сигналов. Глава 2 начинается с формулировки этих проблем, а затем в ней обсуждается архитектура парал- лельных матричных процессоров, позволяющая надеяться на решение этих проблем. Однако, прежде чем ринуться изобретать новые изящные структуры па- раллельных вычислителей для решения множества линейных алгебраичес- ких задач, следует учесть болезненный урок, полученный в теории цифро- вой фильтрации за последние два десятилетия: необходимо обращать самое пристальное внимание на такие вопросы, как накопление погрешностей округления даже в простых численных расчетах, появление осцилляций, вызванных переполнением, а также на предельные циклы в цифровых фильт- рах. Было установлено, что ряд предложенных систолических матричных процессоров, предназначенных для умножения матрицы на вектор и матри- цы на матрицу, рекуррентного оценивания, нахождения наибольшего общего делителя и т. д., по существу, представляют собой вариант прямой реализа- ции цифровых фильтров. Основное отличие этих процессоров от указанных цифровых фильтров состоит в ’’конвейеризации” вычислений, обеспечиваю- щей более высокую скорость обработки данных. Однако из теории цифро- вых фильтров хорошо известно, что прямые способы реализации всегда бы- ли уязвимы с точки зрения ошибок вычислений, в связи с чем от них отка- зывались в пользу каскадных способов реализации. Каскады ортогональ- ных секций особенно предпочтительны в связи с отсутствием проблем, свя- занных с предельным циклом и осцилляциями, вызванными переполнением. Можно получить конвейерные структуры каскадных ортогональных фильт- ров, и они могут оказаться достаточно эффективными на практике. В гл. 15 и работе [1-46] описан расчет и анализ таких структур. Численные задачи другого рода входят составной частью в проблему вы- числения собственных значений и собственных векторов, в особенности боль- ших матриц. В гл. 3 — 5 рассматриваются развитие и современное состояние спектрального оценивания с высокой разрешающей способностью и методов измерения угловых координат. Эти новые методы оценивания угловых ко- ординат и тесно связанные с ними методы адаптивного формирования луча оказались очень эффективными. Удивительно, что они основаны главным 9
образом на вычислении минимальных собственных значений и соответствую- щих им собственных векторов. г. Проблема собственных значений интенсивно изучалась многими теорети- ками начиная с 1947 г., когда собственные значения стали рассчитывать с помощью настольных калькуляторов. В гл. 6, которой завершается часть I, делается несколько убедительных замечаний по многим аспектам этой проб- лемы, включая вопрос о том, как эффективные параллельные вычисления будут использованы для получения полезной информации о собственных и сингулярных значениях. Т. Кайлат I I 1 ОБРАБОТКА СИГНАЛОВ В ЭПОХУ СБИС Т. Кайлат1 1.1. ВВЕДЕНИЕ Предложенное Кули и Тьюки почти два десятилетия назад быстрое преоб- разование Фурье (БПФ) в сочетании с накопленным к тому времени опытом в технологии цифровых систем привело к революции в обработке сигналов. Наряду с прочим эта революция характеризуется развитием нового направ- ления, которое получило название цифровой фильтрации или цифровой об- работки сигналов (см., например, хорошо известную книгу Оппенгейма и Шафера2). Около десяти лет назад пионерской работой Атала и его сотрудников из фирмы Bell Laboratory, а также Итакурой и Сайто в Японии идеи времен- ной обработки были вновь применены к анализу и синтезу речи (см., напри- мер, [45]). В сочетании с развитием'технологии интегральных схем это на- правление возвещает об еще одной революции в обработке сигналов, о чем свидетельствует, например, появление кристалла Speak-and-Spell фирмы 1 Texas Instruments и возрастающий интерес к параллельным алгоритмам и | архитектурам (см., например, специальный выпуск журнала IEEE Computer Magazine за январь 1982 г., посвященный быстрым параллельным вычисле- ниям). Основной особенностью нового направления является акцент на форму- I лировку оптимизационных критериев в задачах обработки сигналов. Цель состоит в том, чтобы, не связываясь преждевременно с конкретным спосо- I бом реализации, создать математическую модель с определенным критери- ем эффективности, удовлетворение которому будет определять последова- тельность операций обработки сигналов. Конечно, всегда имеются ограниче- 1 Стэнфордский университет, Станфорд, Калифорния. 2 Оппенгейм Л. В., Шафер Р. В. Цифровая обработка сигналов: Пер. с англ. - М.: Радио и связь, 1979. НО
ния при создании реалистичных, но не очень сложных математических моде- лей и подходящих критериев оптимизации. Однако подобные проблемы уже встречались и были удачно преодолены в статистической теории связи, уп- равления и идентификации. Специфические особенности задач обработки сигналов часто дела.ют же- лательным применение процедуры линеаризации, поэтому значительная часть теории и практики современной обработки сигналов в конечном счете свя- зана с решением систем линейных уравнений. На первый взгляд зто разоча- ровывает, поскольку подобные вопросы изучаются в течение настолько длительного времени, что сказать что-то новое о них, кажется, уже нельзя. Но дело в том, что для наиболее интересных физических задач непосредст- венное численное решение уравнений не представляет большой ценности; весь интерес заключается в специальной структуре уравнений и методах согласования с ней современных аппаратурных средств, позволяющих сок- ращать время нахождения решений и уменьшать сложность реализации. Так БПФ и структуры матричных процессоров оказали решающее влия- ние на традиционные представления о том, как находить эмпирические спект- ральные оценки. Аналогично этому модели с пространством состояний в теории управления привели в 60-х гг. к революции в возможностях обра- ботки больших массивов данных вследствие осознания того факта, что для обработки достаточно отслеживать изменения фиксированного конечно- мерного марковского вектора состояний. В настоящее время относительная доступность устройств памяти делает менее необходимым концентрацию предыдущей информации в фиксированном конечномерном векторе состоя- ний; теперь часто проще наращивать память, приводя в соответствие ее ем- кость с объемом данных. Проиллюстрируем это в данной главе. Появление однокристальных арифметических устройств с плавающей запятой может вскоре изменить некоторые из наших представлений о том, что является хорошим алгоритмом в той или иной конкретной задаче. Многие ухищрения, используемые для того, чтобы преодолеть эффекты ограниченной точности, становятся ненужными, когда появляется возможность проведения вычис- лений с удвоенной точностью. В этой главе попытаемся показать некоторую взаимосвязь между алгорит- мами обработки сигналов и технологией интегральных схем. В разд. 1.2 рассмотрим некоторые задачи обработки сигналов, связанные со стационар- ными стохастическими моделями, или, что то же самое, задачи, приводящие к линейным уравнениям с теплицевыми матрицами. Эта специальная форма уравнений, одна из первых в статистической обработке сигналов, была рас- смотрена в работах Винера и Левинсона в 40-50-х гг. Однако технологичес- кие ограничения на емкость элементов памяти, как об этом уже упомина- лось, привели к тому, что в 50- 60-х гг. основное развитие получили устрой- ства обработки типа калмановского фильтра с фиксированной памятью (см., например, [26]). Алгоритм Левинсона продолжали применять в зада- чах обработки сигналов в геофизике (сейсмологии), где было возможным использование больших вычислительных ресурсов; в конце 60-х гг. он опять нашел свое применение в задачах синтеза речи (Атал, Шредер, Итакура, Сайто 11
и др.) - Мы разовьем их выводы в разд. 1.2, показав, как теплицева форма при современной технологии СБИС и возможно оптической и волновой технологии приводит к очень изящным результатам. Хотя предположение о стационарности во многих случаях упрощает ана- лиз, часто встречаются ситуации, когда это предположение несправедливо. Мы рассматриваем такие ситуации в разд. 1.3 и показываем, как некоторые относительно новые теоретические исследования позволяют сохранить пре- имущества стационарного приближения для некоторых нестационарных задач обработки сигналов за счет использования дополнительной памяти. По различным причинам изложение будет кратким и не будет содержать доказательств, которые можно найти в работах, упомянутых в списке лите- ратуры. Цель состоит в том, чтобы проиллюстрировать некоторые аспекты развивающейся взаимосвязи теории и техники обработки сигналов. Книга содержит много других примеров на эту тему. 1.2. НЕКОТОРЫЕ АЛГОРИТМЫ ДЛЯ ТЕПЛИЦЕВЫХ МАТРИЦ Хорошо известные в настоящее время методы кодирования с линейным предсказанием (КЛП) для анализа речевых сигналов основаны на гипотезе о том, что речевые сигналы могут быть смоделированы как результат про хождения белого шума через линейный инвариантный во времени фильтр. Данная гипотеза основывается на том, что процессы переноса информации, по существу, случайны (на это впервые обратил внимание Норберт Винер). Применительно к анализу речевых сигналов воздух, выходящий из легких, можно представить как белый шум, который модулируется колебаниями голосового тракта (голосовых связок, нбеа, губ) и создает звуковые волны. Линейный инвариантный во времени фильтр может быть смоделирован различными способами,, однако по разным причинам первоначально внима- ние было сосредоточено на использовании моделей, в которых речь представ- ляется в виде стационарного дискретизированного по времени случайного процесса авторегрессии: У, + Лл j)', 1 -I- ' ’ • + Ах. ivEi-х ~ где {eJV (} — белый шум с нулевым математическим ожиданием. Проблемы, возникающие при моделировании, состоят в выборе порядка N, значений коэффициентов {Аи дисперсии’шума для наилучшего описания исследуемого речевого сигнала , t > 0}. Обычная процедура состоит в получении выборочной ковариационной функции нахождении коэффициентов! Л N,} из стационарного процесса !yt, г >0J и уравнения Юла—Уокера ГАх, X • ЛХ.1Л 1 . . >3 >3 о К. ?• 12 *Х *х «г = [() 0 /]. 0-1)
Допущения, лежащие в основе этой формулировки, более подробно ис- следуем в разд. 1.3 и найдем некоторые основания, чтобы не согласиться с ней. Однако одна из причин широкого распространения формулировки (1.1) состоит в том, что специальная с постоянными элементами вдоль диагона- лей (теплипева) форма матрицы в уравнении (1.2) приводит к удобному быстрому рекурсивному алгоритму решения уравнения — алгоритму Левин сона1 : Лдг х i (z) z -kNil 1 JJW. .40(zH = 1 ЗД. 1 (1-2) где Лдг) — Ддг,л + Av,n iz + + an 1 + ; = Aft. NZ^ + Aft, ft- -\ZN 1 + AN lz + 1; k An, л + AN jv- 1^2 + ' " + An, i^n + Av-n . (13a) ReN " " ’ ^+l = ^(l-^+1); К£ = *о- (1-36) Смысл состоит в последовательном нахождении решения [Av/- А= = 0, 1,... }, причем основные вычислительные сложности связаны с нахож- дением скалярного произведения в формуле для к^+^, вычисление которо- го требует N операций умножения и Л' — сложения. Таким образом, для вы- числения последовательности fkt, . .. ,kN] потребуется 1 + 2 + + N = N(N + 1) /2 или О(№) элементарных операций вычисления, что на порядок меньше, чем O(N3) операций вычисления, необходимых для решения произвольной системы линейных уравнений, не имеющей специальной теплицевой струк- туры (1.1). Алгоритм Левинсона можно использовать для создания семейства авто- регрессионных моделей возрастающего порядка, и нам необходимо только каким-то образом определить этот пояходящий порядок. Для этого сущест- вуют различные критерии (например, информационный критерий Акайка), а также некоторые соображения (например, практические конструкторские ограничения на реализацию интегральной схемы), которые здесь не рассмат- риваются. Следует обратить внимание на то, что алгоритм Левинсона облада- ет особой структурой, которая обеспечивает определенную гибкость в выбо- ре порядка. Традиционным устройством нахождения eN t является трансверсальный фильтр (например, на основе линии задержки с отводами) с коэффициента- ’ Предложен Левинсоном впервые в 1947 г. [37]; с этим алгоритмом могут быть связаны и некоторые другие имена, в частности имя Дурбина [1 8]. Можно отметить, что формула (1.2) представляет, по существу, классическую рекуррентную формулу для ортогональных полиномов на окружности единичного радиуса [57 ] . 13
Рис. 1.1. Реализация фильтра в виде линии задержки с отводами: а — выбеливающий фильтр; б ~ моделирующий фильтр mh^AN q, ... (рис. 1.1); необходимо только заметить, что во избежа- ние недоразумений передаточной характеристикой фильтра для расчета eN t должна быть не A^(z), а Лдг. ;v + AN n_ tz 1 + • • + z N = z N/4n(z) . Однако если нет уверенности в выборе порядка, а необходимо подсчи- тать, скажем, е^+2 t, то уже нельзя только повысить порядок трансверсаль- ного фильтра, а следует заменить все коэффициенты [ANq, ... ,AN Л4 на {^jV+2,0’ >-^7V+2 7V+2 } • Существует много примеров, когда, прежде чем остановиться на выборе определенного порядка N, желательно оценить отк- лик фильтра в некотором диапазоне изменения величины N, а это неудобно делать при трансверсальной реализации фильтра. Из выражения (1.2) сле- дует, что коэффициенты {к^ i = ,n} вместе с условием Ао (z) -Во (z) = = 1 дают другую параметризацию фильтра: знание этих величин позволяет определить AN(z) и, следовательно, коэффициенты {Ajyj } из (1.2). Если есть желание выбрать другой порядок, скажем 7V+2, то в этой параметриза- ции придется добавить еще только два коэффициента {к}у+1, fcy+jJ без из- менения ранее найденных величин. Это свойство инвариантности параметри- зации {кг-| можно использовать, осуществляя реализацию фильтров в терми- нах ] <г <Л'} , а не [а^ / }. Из выражения (1.2) следует, что фильтр можно создать в виде каскадного соединения решетчатых секций, как на рис. 1.2,а, или в некотором нормализованном виде (см. далее формулу (1.5)), как на рис. 1.2,6?. С помощью методов теории сигнальных графов легко осуществить обра- щение решетчатых фильтров. Результат такого преобразования — моделирую- щий фильтр — показан на рис. 1.3. Он имеет вид дискретной длинной линии и помогает объяснить, почему J часто называют коэффициентами отобра- ЖСНИЯ. При гакой физической интерпретации предполагается, что должно выпол- няться условие 1^-1 <1- (1.4) 14
a) Рис. 1.2. Реализация выбеливающих фильтров в виде решетчатого фильтра: а — ненормализованный вид; б — нормализованный вид Рис. 1.3. Моделирующие фильтры: а — решетчатый фильтр с обратной связью — нормализованный вид; б — фильтр в виде длинной надписи которое следует также из (1.36) (так как значения дисперсии должны быть неотрицательными) . UaAN(z) должны быть наложены определенные ограни- чения: корни полинома z^A (z) должны лежать в круге единичного радиуса, однако это условие не так просто перевести на интервал изменения коэффи- циентов {ах j j. По этой и другим причинам характеристики (нормализован- ного) решетчатого фильтра лучше аналогичных характеристик трансверсаль- 15
Гюго фильтра. Поэтому не удивительно, что фирма Texas Instruments выбра- ла для использования именно эту структуру при создании своих кристаллов синтезатора речи, имеющих большой успех [60]: модульная структура, ло- кальные соединения, ритмичный поток данных — все это сделало удобным реализацию данного фильтра в виде СБИС [27 — 30, 39]. 1.2.1. Методы реализации алгоритма CORDIC Для реализации каждого блока на рис. 1.2,а необходимы две операции ум- ножения и две — сложения. Поскольку операции умножения являются более дорогостоящими, были осуществлены дополнительные преобразования, чтобы ограничиться одной операцией умножения (см., например, [1.38, разд. 5.5]). По причинам вычислительного характера часто приходят к блоку с четырьмя умножителями, как это изображено на рис. 1.2,5. Однако оказы- вается, что этот блок в действительности может быть реализован вовсе без операций умножения. Чтобы показать это, вначале заметим, что при условии |/с| < 1 типичный блок решетчатого фильтра в нормализованном виде (см. рис. 1.2,6) можно характеризовать матрицей 1 -к 1 (1.5 а) Причиной для такого названия является свойство ej0* = j, j = 1 0 0 -1 (1.56) где * — знак комплексного сопряжения. Это свойство означает, что матрица 0 сохраняет ’’длину” любого вектора w* = [wM], на который она воздействует, при условии, что длина измеряет- ся в метрике J, т. е. ||0u||2= Hull2, II и II2 = II Uj II2 - I U2 I2 . Матрицу 0 часто называют J-ортогональной, а результат ее умножения на вектор — J-вращением или гиперболическим вращением в противополож- ность обычному круговому вращению. Как указывается в [31], Д. Волдер еще в 1969 г. [58] предложил простые схемы для осуществления вращений с помощью так называемых ’’коорди- натных цифровых вычислителей”, или CORDIC1. В этих схемах используют- ся только регистры, элементы сдвигов и сумматоры для итеративного расче- та таких функций, как arctg(y/x), х/с2 — у2, arctb(y/x), х cos а — — у sin а и т. д.; подобные схемы были использованы для этих целей во мно- гих микрокалькуляторах, например в НР-35 [11,54, 59]. 1 CORDIC — Coordinate Rotation Digital Computer. - Прим, перев.
В последние годы по алгоритму CORDIC строились различные одно- и дву- мерные вычислительные структуры систолического и волнового матричного типов на СБИС Сем., например, [2, 46, 47], а также гл. 15, 16 этой книги). Автор работ [14, 15] был одним из первых, кто привлек внимание к принци- пу CORDIC для обработки сигналов по алгоритмам типа БПФ, а недавно в ра- боте [20] было приведено описание СБИС, реализующей алгоритм CORDIC для арифметических вычислений. Следует отметить, что до того, как присту- пить к действительной реализации этого принципа (а также других схем вы- числений, как, например, схем матричных умножителей), следует рассмот- реть ряд факторов, таких как быстродействие, точность и др. Хочется подчеркнуть, что рассмотрение специальной математической структуры решетчатого блока позволяет построить новый макроблок для обработки сигналов. 1.2.2. Параллельные вычисления и алгоритм Шура Естественный вопрос, который возникает при использовании технологии СБИС, насколько можно ускорить процесс вычисления коэффициентов применяя параллельные вычисления, скажем, с помощью N процес- соров, работающих совместно. Надежда на успех состоит в том, что если одному процессору требуется некоторый отрезок времени на каждую эле- ментарную операцию вычисления, то, применяя TV процессоров, можно рас- считывать на получение ответа через период времени O(N), а не 0(1^), как в случае одного процессора. Однако нетрудно заметить, что длительность параллельной реализации алгоритма Левинсона составит О (TV log TV) из-за наличия операций вычисле- ния скалярного произведени/i, необходимых для формирования последова- тельности N процессоров могут выполнять А7 операций умножения, не- обходимых для формирования Ajy+1 последовательностей параллельно в еди- ницу времени, но необходимые при этом операции сложения потребуют по меньшей мере log TV шагов. Это кажется обескураживающим, но вселяет надежду на успех. Оказыва- ется, что существует математически эквивалентный алгоритм, предложенный Щуром [55], который позволяет избежать вычислений скалярных произве- дений при формировании {&г-} и тем самым обеспечить с помощью TV процес- соров вычисления за период времени <9 (TV). Алгоритм Шура был впервые предложен в 1917 г. в качестве теста для определения, того, является ли степенной ряд аналитическим и ограниченным в круге единичного радиуса. В нашем случае он приводит к простой трехша- говой процедуре [17, 35] расчета последовательности связанной с кова- риационной последовательностью ,, .. ,R0 = i. 1. Начнем с порождающей матрицы (символ * означает операцию транспо- нирования) 17
и сдвинем первую строку Gg вправо для того, чтобы получить Р* = Г° «<> K/V-. '* Г° -К. -KN 2. Вычислим k-i по формуле кг = { Gj} 2.2/ Г } 2.1 3. Сформируем матрицу 0(/С1) = — 1 и получим новую порождающую матрицу ~ [ 0 х х • ’ ’ х ct-e№,)cr= 0 0 х ... ,]> где х — элементы, точное значение которых в данный момент несуществен- но; Q известна как матрица J-вращения, поскольку 0(k)J0*(A) = J, J= ’ ° • Ее роль состоит во вращении в ./-метрике (т. е. в гиперболической метри- ке) второй строки матрицы G для того, чтобы она расположилась вдоль пер- вого координатного направления. Затем шаги 1, 2 и 3 могут быть повторены для получения значения к2 и новой порождающей матрицы G2 и т. д. Можно показать, что рассчитанные по алгоритму Illypa, имеют точно такие же значения, что и при расчете по алгоритму Левинсона. Заметим, од- нако, что алгоритм Шура требует выполнения последовательности умноже- ний век тора-строк и размера 2X1 на матрицу размера 2X2, которые могут быть выполнены параллельно на каждом этапе. Поэтому для реализации ал- горитма Шура с помощью N процессоров требуется период времени О (Д'), а не О (Д'log TV), как при выполнении алгоритма Левинсона. В действительнос- ти параллельная поточная вычислительная структура на СБИС, основанная на алгоритме Шура, уже разработана и создана (см. [29] и гл. 17 этой книги). 1.2.3. Разложение Холсцкого Алгоритм Шура тесно связан с разложением Холецкого ковариационной матрицы R в (1.1). Такое разложение применимо во многих вычислениях, связанных со стохастическими процессами. Множителем Холецкого С мат- рицы R называется единственная нижняя треугольная матрица с положитель- ными диагональными элементами, удовлетворяющая соотношению R=CC*. Матрица С непосредственно определяется алгоритмом Шура: г-й столбец С = первому столбцу Gz-, (1.6) где {С.;-| — приведенные порождающие матрицы, полученные с помощью алгоритма Шура. 18
Таким образом, в случае разложения Холецкого для теилицевых матриц имеется быстрый алгоритм, согласно которому выполняется <?(№) опера- ций вместо О (/V3) в общем случае. Следует упомянуть, что процедура Шура для быстрого разложения Холец- кого теилицевых матриц много раз переоткрывалась в различных контекс- тах. Так, в [3,40, 50, 5 J ] был, по существу, вновь найден алгоритм Шура при решении обратной задачи теории рассеяния в слоистой модели Земли. В тех- нике алгоритм Шура был, по-видимому, впервые использован Девильдом (Dewilde) в начале 70-х гг. при решении задачи синтеза функции полных сопротивлений пассивных систем. Его приложение к задачам статистическо- го оценивания было впервые описано в [17] ив дальнейшем использовано в [16, 33—35]; применение в теории цифровых фильтров опубликовано в [13] (см. гл. J 5 этой книги, а также [46,47]). Новые структуры, получен- ные в этих работах, по-видимому, являются лучшими претендентами для реализации в виде СБИС. 1.2.4. Интерпретация в виде длинной линии и обратные задачи теории рассеяния Хорошей иллюстрацией естественной связи между алгоритмом Шура и его реализацией в виде СБИС (или другими методами) служит графичес- кое представление этого алгоритма, изображенное на рис. 1.4. В этом слу- чае полученная ранее связь между матрицами С и {Gy} означает, что элементы г-го столбца представляют собой множитель Холецкого С. Следовательно, можно сказать, что данные на входах элементов задержки в любой момент времени I суть элементы Z-й строки множителя С. Между прочим, такая ин- терпретация в значительной мере снимает налет таинственности, которая иногда связана с быстрыми алгоритмами Холецкого для строк и столбцов. Интерпретацией в виде длинной линии предполагается, что расчеты могут быть выполнены путем возбуждения структур, подобных приведенным на Рис. 1.4. Формы представления алгоритма Шура: а — прямая форма; б — модель в виде длинной линий 19
рис. 1.4, с помощью световых или других электромагнитных волн в зави- симости от среды, выбранной для реализации. Отметим, что, используя графические представления рис. 1.4 и фундамен- тальные законы распространения волн и сохранения энергии, можно полу- чить простые доказательства всех предыдущих результатов и постепенно выяснить тонкие и полезные связи между теорией длинных линий, разложе- нием Холецкого (прямым и обратным), обратными задачами теории рас- сеяния и алгоритмами Шура [6]. Подобное представление в виде длинной линии оказалось также полезным при получении некоторых ортогональных каскадных схем реализации БИХ-фильтров1 с прекрасными характеристика- ми [46,47]. С другой стороны, к тем же результатам можно прийти, используя совер- шенно иной подход, если заметить, что разложение Холецкого есть не что иное, как метод проверки матрицы на положительную определенность; ес- ли теперь спросить, какие матричные структуры легко поддаются такой проверке, то придем к классу матриц, в котором семейство теплицевых мат- риц представляет только один частный случай [35]. При таком подходе все ранее упомянутые результаты по параллельным вычислениям и интерпрета- ции в виде длинных линий, а также их реализации можно распространить на значительно более широкий круг задач, что и рассмотрим кратко в разд. 1.3. 1.2.5. Алгоритмы удвоения Последний интересный результат, о котором здесь стоит упомянуть, сос- тоит в том, что алгоритм Шура может лежать в основе получения самой простой формы алгоритма ’’удвоения” (или алгоритма ’’разделяй и власт- вуй”) для расчета последовательности \ki | и для решения уравнений Юла— Уокера. Применяя алгоритмы быстрой свертки для объединения импульс- ных откликов пар соседних 0-секций на рис. 1.4, количество вычислитель- ных операций можно свести к 12ATog2A' [42,43] (точка пересечения данной зависимости с аналогичной зависимостью для прямого алгоритма Шура при решении теплицевых уравнений соответствует значению А'=128). Результа- ты, подобные O(ATog2Ar), были впервые получены в работах [4, 5, 41], од- нако в действительности алгоритмы были довольно сложными и, например, в работе [56] было подсчитано, что для метода Битмида (Bitmead) и Андер- сона коэффициент при членах A1og2Ar равен 7000! Алгоритм, основанный на процедуре Шура, не только дает меньший коэффициент, но также более пригоден для потенциальной реализации в виде СБИС. 1.3. РАСПРОСТРАНЕНИЕ РЕЗУЛЬТАТОВ РАЗД. 1.2 НА МАТРИЦЫ. БЛИЗКИЕ К ТЕПЛИЦЕВЫМ В начале разд. 1.2 отмечалось, чти обычным методом подгонки авторег- рессионных моделей к временным рядам является решение линейных урав- нений Юла—Уокера с теплицевой матрицей коэффициентов. Было упомяну- 1 БИХ-фильтр — фильтр с импульсной характеристикой бесконечной длительности. — Прим, перев. 20
то, что это не обязательно единственный или наилучший путь решения проб- лемы; сейчас поясним почему. Кратко проблема состоит в следующем: дана последовательность резуль- татов наблюдений [у0,... ,уг] ; необходимо выбрать набор коэффициен- тов {fli } так, чтобы £ е2, = minimum , (1.7) т где еп t — ошибка (остаток при попытке предсказать yt по п предыдущим значениям): e„.t = У, + «1У<1 + • + а„у,_„ . (1.8) Трудности возникают при 0<Т <и, так как в этом случае нет всех п преды- дущих значений. Один из выходов состоит в расчете остатков только для но по ряду причин (некоторые из которых сейчас станут понятными) мы часто рассматриваем случай Т<п, полагая, что отсутствующие значения {у_„, Т-и+1’ • • • ’ Т-1} Равны нулю. Одна из причин - предположение о том, что при 7’>и произвольность такого начального допущения не скажется сильно на результатах решения в целом. Это вполне разумно, но иногда мож- но сделать более кардинальное допущение: расчеты вести только для T<t < СТ’+и. полагая, что последующие значения {yj’+j, • • • ,Ут+n} также равны нулю. Далее покажем, какие для этого есть основания, но вначале запишем последовательность остатков в матричной форме: е = Ya, где ег = К. о <?„, । а=[1 о, ••• (1-9) Уо У1 Уг Уо Уt—п Ут п Ут Наименьшее среднее квадратическое решение а, которое минимизирует ||е||2, может быть теперь вычислено как решение ’’нормальных” уравнений: [Y7’Y]a=[R: 0 ОГ, (1.10) где Rf, = min||e||2. Теперь можно провести один из доводов для продолжения функции п0 °бе стороны данной выборки Го,... ,Уу} • Только в этом случае матрица коэффициентов Y^Y будет теплицевой и, в частности, 21
ковариационной матрицей выборок, использованной в уравнениях Юла— Уолкера в разд. 1.2. Можно, однако, возразить, что вообще нет необходимости принимать какие-либо допущения относительно несуществующих данных, и поэтому ис- пользовать лишь остатки { е ,..., у-} или, быть может, основываясь на допущениях только относительно прошлых данных, использовать {еп 0,... ..., еп т } . В любом случае матрица Y'Y уже не будет теплицевой, и поэтому окажется, что ’’изящные” результаты разд. 1.2 по уменьшению сложности вы- числений до О(№) или О (A'log 2 А') при наличии нескольких процессоров, а также при реализации решетчатых фильтров и интерпретации в виде длин- ных линий больше непригодны. Это было бы весьма грустно, если бы более детальное рассмотрение не показало, что дело можно в значительной степени исправить, введя понятие ’’смещения” матрицы [23 — 25], которое, как будет показано, определит естественное семейство структур ковариационных матриц, обеспечивающих быстрое разложение Холецкого [35]. Не будем излагать здесь изящную и всеобъемлющую теорию, которая бы- ла разработана. Ее детальное рассмотрение можно найти в уже упомянутой работе [35] и в работах [8,12, 31, 33, 36,42,44]. Тем не менее будет полезным привести некоторые основные положения. Определим ’’нижнюю матрицу сдвига” как Z-матрицу с единицами на первой поддиагонали и нулями в остальной части. С помощью Z определим смещение R формулой смещение R- R - ZRZr. (1-11) Причина такого названия состоит в том, что, за исключением границ, элемент (г,/) матрицы R —ZRZ2 есть [Аг- .• — ] - Когда R — теплицева мат- рица, только первые строка и столбец матрицы R — ZR7 ? будут ненулевыми. Определим ранг смещения R как ранг {R-ZRZ^} =а (1.12а) и инерцию смещения R как инерция {R-ZRZ7} = {1,-jj, (1.126) где J — диагональная матрица с членами +1 или —1. Для теплицевой матрицы « = 2 и J = 1. Матрицы Y'Y, которые появились в уравнениях в начале это- го раздела, имели {а = 1, J =0} при остатках [еп0,..., еп •?-} и {а = 3, J = = диаг {1,1}} при остатках . . . ,епТ] . 1.3.1. Обобщенные стационарные решетчатые секции Для матриц с рангом смещения а и инерцией смещения }l,-j} можно осуществить каскадную реализацию в виде общих решетчатых секций, но каждая секция будет определяться (а—1)-мерным вектором-строкой К (а не скалярной величиной, см. рис. 1.5) , удовлетворяющим условию 1-КЖ*>0. (1.13) 22
Рис. 1.5. Обобщенная решетчатая секция Величины {Д'- } могут быть найдены с помощью обобщенного алгоритма Шу- ра. Видно, что основная стоимость аппаратурной реализации связана с нали- чием а—1 элементов задержки вместо одного элемента, как в теплицевом случае; однако это не очень высокая цена при современном уровне техно- логии, особенно если мы сохраним достоинства регулярных структур с ло- кальными связями. 1.3.2. Нестационарные решетчатые секции По-другому реализовать решетчатую структуру можно с помощью обыч- ной двухлинейной решетки, но с изменяемыми во времени коэффициентами отражения. Действительно, можно показать [23], что такая решетчатая структура может быть использована для любого нестационарного процесса. Однако, применяя структуру со смещением, можно получить простые кор- ректирующие формулы для определения коэффициентов отражения с по- мощью только О (а) элементарных вычислительных операций на каждом ша- ге. Для 7V операций и 7Vкоэффициентов отражения это потребует О(№а) опе- раций вычисления, а не (?(7V3) , как в общем случае. Кратко остановимся на этих формулах. Коэффициент отражения н-й сек- ции удовлетворяет соотношению S(1 - »/n,r>?L)1/2/c«+l.r lO-A'n.r 1РиЛ i)'/2 + ’/„.«Pnu i, (114) где д ] -a-мерные векторы-строки, подчиняющиеся рекуррентным соот- ношениям Чп+i.i ~~ 1 Н/п. г ? кп f-1, г > В„, t -1} > (1.14 а) Мп+1.» = ПМил-о J , (1.146) а функция F ( •) определяется как Д{Л, В, С} = (1 - ВВтУ1'2(А - ВСТ)(1 - СС') 7/2 • Эти рекуррентные соотношения могут быть представлены так, как изобра- жено на рис. 1.6. 23
Рис. 1.6. Представление временной корректировки В частных случаях эти общие результаты могут быть существенно упро- щены [36]. Например1, значения t и ди f с точностью до масштабного коэффициента выбираются равными ’’начальному” остатку ent с нормиро- ванной дисперсией или имеющему соответствующую задержку ^’конечному” остатку 7И?_Г На рис. 1.6 величины t]nt и pnt — сигналы, передаваемые по линиям, соединяющим элементы решетки. В этом случае сам решетчатый фильтр может быть использован для адап- тации коэффициентов отражения. Расчеты дают следующий результат: где Фп f_j — величина, лежащая между 0 и 1. Эта величина имеет некоторую полезную статистическую интерпретацию (например, как логарифм отно- шения правдоподобия), которая была использована при решении специаль- ных прикладных задач [32]. Мы упомянули об этом, так как формула (1.14) для кп+1 с Фи?_] = 1 была первоначально получена многими автора- ми для так называемого приближенного адаптивного решетчатого фильтра, известного также как фильтр Итакуры—Сайто, или градиентного решетчато- го фильтра. Удивительно, приятно и важно, что имеется такая ’’изящная” форма (1.15) для точного решения, точного в том смысле, что минимизи- руется сумма квадратов остатков для каждого значения t; ее важность следует из того, что при точных решениях оценки по методу наименьших квадратов обладают свойствами состоятельности, несмещенности, быстрой сходимости и т.п. Поэтому данные и аналогичные им алгоритмы, такие как алгоритмы трансверсальной фильтрации фиксированного порядка, были ис- пользованы в задачах сопровождения сигнала, компенсации искажений в ка- налах, подавления отраженных сигналов и др. [8, 9, 10, 21, 48, 49, 53]. Спе- циализированные СБИС, по крайней мере для одной из этих прикладных 1 В оригинале ’’prewindowed least-squares”. — Прим. ред. 24
задач [19], уже разработаны, а другие, без сомнения, — в процессе проекти- рования. В качестве примера другого приложения можно упомянуть архитектуру систолической процессорной матрицы для адаптивных вычислений в калма- новском фильтре [22]; зта архитектура основана на специальном методе квадратного корня для оценки состояния. Другой областью, в которой используются идеи, подобные рассмотрен- ным в данной главе, является вычислительная томография [7]. Системы обработки речевых, связных сигналов, изображений также являются воз- можными областями применения: система моделирования и распознавания голоса, ко деры-декодеры, вокодеры, системы кодирования в остаточных классах и многие другие. Приложения к радио- и звуколокации рассматри- ваются более подробно в последующих главах. 1.4. ЗАКЛЮЧЕНИЕ Мы попытались рассмотреть некоторые из многих направлений, в которых могут успешно взаимодействовать, оказывая влияние друг на друга, матема- тические достижения в алгоритмах обработки сигналов и новые возмож- ности технологии СБИС. Такое взаимодействие приводит как к появлению новых способов физической реализации, так и к стимулированию новых тео- ретических достижений. Однако в этой главе был затронут только поверх- ностный слой, и поэтому есть много возможностей для стимулирования ис- следований в области обработки сигналов и методов теории систем и их при- менения в эпоху СБИС. Недавний отчет [47] показывает, кроме всего проче- го, тесную взаимосвязь между систолическими процессорными матрицами [39] и прямыми формами цифровой фильтрации и теорией систем. СПИСОК ЛИТЕРАТУРЫ [1] Н. М. Ahmed, “Signal Processing Algorithms and Architectures,” Ph.D. dissertation, Department of Electrical Engineering, Stanford University, Stanford, Calif., 1982. [2- ] H. M. Ahmed, J. M. Delosme, and M. Morf, “Highly Concurrent Computing Structures for Digital Signa) Processing and Matrix Arithmetic,” IEEE Comput. Mag., (Feb. 1982). [3] E. H. Bareiss, “Numerical Solution of Linear Equations with Toeplitz and Vector Toeplitz Matrices, Numer. Math., 13:404—424 (1969). [4] R. R. Bitmead, and B. D. O. Andersen, “Asymptotically Fast Solution of Toeplitz and Related Systems of Linear Equations,” J. Linear Algebra Appl., 34:103-116 (Dec. 1980). [5] R. P. Brent, F. G. Gustavson, and D. Y. Y. Yun, “Fast Solution of Toeplitz Systems of Equations and Computation of Pade Approximants,” J. Algorithms, 7(3):259-295 (1980). [6] T. Kaiiath, A. Bruckstein and D. Morgan, “Fast Matrix Factorizations via Discrete Transmission Lines,” submitted for publication, 1984. [7] M. Buonocore, “Fast Minimum Variance Estimators for Limited Angle Computed Tomography Image Reconstruction,” Ph.D. dissertation, Department of Electrical En- gineering, Stanford University, Stanford, Calif., 1981. [8] J. Cioffi, “Fast Transversal Filters for Communications Applications,” Ph.D. disserta- tion, Department of Electrical Engineering, Stanford University, Stanford, Calif., 1984.
[9] J. Cioffi, and T. Kailath, “An Efficient, Exact Least-Squares Fractionally Spaced Equal- izer Using Intersymbol Interpolation,” IEEE Journal on Selected Areas in Communi- cations, Special Issue on Voiceband Data Transmission, (May 1984). [10] J. Cioffi, and T. Kailath, “Fast Recursive Least Squares Transversal Filter Algorithms for Adaptive Filtering," IEEE Trans. Acoust. Speech Signal Process., ASSP-32 (1984). [11] D. Cochran, “Algorithms and Accuracy in the HP-35,” Hewlett-Packard J., 1972, pp. 10-11. [12] J. M. Delosme, “Algorithms and Architectures for Finite Shift-Rank Processes,” Ph.D. dissertation, Department of Electrical Engineering, Stanford University, Stanford, Calif., Sept. 1982. [13] E. Deprettere and P. Dewilde, “Orthogonal Cascade Realization of Real Multiport Digital Filters,” Circuit Theory Appl., 8:245-212 (1980). [14] A. M. Despain, “Fourier Transform Computers Using CORDIC Iterations,” IEEE Trans. Comput., C-23:993-1001 (1974). [15] A. M. Despain, “Very Fast Fourier Transform Algorithms for Hardware Implemen- tation,” IEEE Trans. Comput., C-2£(5):333-341 (1979). [16] P. Dewilde and H. Dym, “Schur Recursions, Error Formulas, and Convergence of Rational Estimators for Stationary Stochastic Processes,” IEEE Trans. Inf. Theory, I T-27(4)-.446-461 (1981). [17] P. Dewilde, A. C. Vieira, and T. Kailath, “On a Generalized Szego Levinson Realiza- tion Algorithm for Optimal Linear Predictors Based on a Network Synthesis Ap- proach,” IEEE Trans. Circuits Syst., CAS-25(9):663-675 (1978). [18] J. Durbin, “The Fitting of Time -Series Models,” Rev. Int. Inst. Stat., 28:233-244 (1960). [19] D. L. Duttweiler, “A Twelve-Channel Digital Echo Canceler,” IEEE Trans. Commun., COM-28-.641- 653 (1978). [20] G. L. Haviland and A. Tuszynski, “A CORDIC Arithmetic Processor Chip,” IEEE Trans. Comput., C-29( 2) :68-79 (1980). [21] W. S. Hodgkiss and J. A. Presley, “Adaptive Tracking of Multiple Sinusoids Whose Power Levels Are Widely Separated,” IEEE Trans. Acoust. Speech Signal Process., ASSP-29(3):710-721 (1981). [22] J. M. Jover and T. Kailath, “A Parallel Architecture for Kalman Filter Measurement Update,” Proc. IF AC Congress, Budapest, Hungary, July 1984. [23] T. Kailath, “Time-Variant and Time-Invariant Lattice Filters for Nonstationary Pro- cesses,” Proc. Fast Algorithms for Linear Dynamical Systems, Aussois, France, Sept. 21-25, 1981, pp. 417-464. Reprinted as Oulils et modeles mathematiques pour I'Automa- tique, I'Analyse de Systemes et le Traitement du Signal, Vol. 2,1. D. Landau, ed., CNRS, France, 1982, pp. 417-464. [24] T. Kailath, S. Y. Kung, and M. Morf, “Displacement Ranks of Matrices and Linear Equations,” J. Math. Anal. Appl., 6S(2):395-407 (1979). [25] T. Kailath, S. Y. Kung, and M. Morf, “Displacement Ranks of a Matrix,” Bull. Am. Math. Soc., I(5):769-773 (1979). [26] T. Kailath, Lectures on Wiener and Kalman Filtering, Springer-Verlag, New York, 1981. [27] H. T. Kung, “Let’s Design Algorithms for VLSI Systems,” Proc. First Caltech VLSI Symp., 1979, pp. 65-90. [28] H. T. Kung, “Why Systolic Arrays?” IEEE Computer, /5(1):37-Л6 (1982). [29] S. Y. Kung and H. Hu, “A Highly Concurrent Algorithm and Pipelined Architecture for Solving Toeplitz Systems,” IEEE Trans. Acoust. Speech Signal Process., ASSP-3I(1):66- 75 (1983). 26
[30] S. Y. Kung, K. S. Arun, R. J. Gal-Ezer, and D. V. Bhaskar Rao, “Wavefront Array Processor: Language, Architecture and Applications,” IEEE Trans. Comput., C-3/:1054-1066 (1982). [31] D. T. Lee, “Canonical Ladder Form Realizations and Fast Algorithms,” Ph.D. disserta- tion, Department of Electrical Engineering, Stanford University, Stanford, Calif., 1980. [32] D. T. Lee and M. Morf, “A Novel Innovations Based Approach to Pitch Detection,” Proc. 1980 IEEE Int. Conf. Acoust. Speech Signal Process., Denver, Colo., Apr. 9-11, 1980, pp. 40-44. [33] H. Lev-Ari, “Parameterization and Modeling of Nonstationary Processes,” Ph.D. dis- sertation, Stanford University, Stanford, Calif., 1983. [34] H. Lev-Ari, "Modular Architectures for Adaptive Multichannel Lattice Algorithms,” IEEE Int. Corf. Acoust. Speech Signal Process., Boston, Apr. 1983, pp. 455-458. [35] H. Lev-Ari and T. Kailath, “Lattice Filter Parametrization and Modeling of Non- stationary Processes,” IEEE Trans. Inf. Theory, IT-30, (Jan. 1984). [36] H. Lev-Ari, T. Kailath, and J. Cioffi, “Least-Squares Adaptive Lattice and Transversal Filter for Nonstationary Processes,” IEEE Trans. Inform. Theory, IT-30, (Mar. 1984). [37] N. Levinson, “The Wiener RMS (Root-Mean-Square) Error Criterion in Filter Design and Prediction,” J. Math. Phys., 25(41:261 278 (1947). [38] J. Markel and A. H. Gray, Jr., Linear Prediction of Speech, Springer-Verlag, New York, 1976. [39] C. Mead and L. Conway, Introduction to VLSI Systems, Addison-Wesley, Reading, Mass., 1980. [40] M. Morf, “Fast Algorithms for Multivariable Systems,” Ph.D. dissertation, Department of Electrical Engineering, Stanford University, Stanford, Calif., 1974. [41] M. Morf, “Doubling Algorithms for Toeplitz and Related Equations,” Proc. IEEE Int. Conf. Acoust. Speech Signal Processing, Denver, Colo., Apr. 9-11,1980, pp. 954-959. [42] D. R. Morgan, “Orthogonal Triangularization Methods for Fast Estimation Algo- rithms,” Ph.D. dissertation, Department of Electrical Engineering, Stanford University, Stanford, Calif., Dec. 1984. [43] B. Musicus, “Levinson and Fast Cholesky Algorithms for Toeplitz and Almost Toeplitz Matrices,” MIT Internal Report, submitted for publication, 1981. [44] B. Porat, “Contributions to the Theory and Applications of Lattice Filters,” Ph.D. dissertation, Dept, of Electrical Engineering, Stanford University, Stanford, Calif., 1982. [45] L. R. Rabiner and R. W. Schafer, Digital Processing of Speech Signals, Prentice-Hall, Englewood Cliffs, N. J., 1978. [46] S. K. Rao and T. Kailath, “Orthogonal Digital Filters for VLSI Implementation,” IEEE Trans. Circuits Systems, CAS-3I, (1984). [47] S. K. Rao and T. Kailath, “Digital Filtering in VLSI,” Technical Report ISL, Stanford Univ., Stanford, Calif., Jan. 1984. [48] V. U. Reddy, B. Egardt, and T. Kailath,” Optimized Lattice-Form Adaptive Line En- hancer for a Sinusoidal Signal in Broadband Noise,” IEEE Trans. Circuits Syst., CAS- 25:542-550 (June 1981). [49] V. U. Reddy, T. J. Shan, and T. Kailath, “Application of Modified Least-Squares Algorithms to Adaptive Echo Cancellation,” Proc. 1983 Int. Conf. Acoust. Speech Signal Process., Boston, 1983, pp. 53-56. [50] J. Rissanen, “Algorithms for Triangular Decomposition of Block Hankel and Toeplitz Matrices,” Math. Comp., 27:147-154 (1973). 27
[51] E. A. Robinson, “Dynamic Predictive Deconvolution,” Geophys. Prospect., 23319-191 (1975). [52] E. A. Robinson, “Spectral Approach to Geophysical inversion by Lorentz, Courier and Radon Transforms,” Proc. IEEE, 70:1039-1054 (1982). [53] E. Satorius and J. Pack, “Application of Least-Squares Lattice Algorithms to Adaptive Equalization,” IEEE Trans. Common., COM-29:! 36-142 (1981). [54] C. W. Schelin, “Calculator Function Approximation,” Am. Math. Monthly, 90:311-32-5 (1983). [55] I. Schur, “Ober Potenzreihen, die im Innern des Einheitskreises beschrankt sind,” J. Reine Angew. Math., 147:205-232 (1917). [56] H. Sexton, M. Shensa, and J. Speiser, “Remarks on a Displacement-Rank Inversion Method for Toeplitz Systems,” Linear Algebra Appl., 45:127-130 (1982). [57] G. Szego, Orthogonal Polynomials, 4th cd., Colloquium Publications, 23, American Mathematical Society, Providence, R. I„ 1975. Originally published in 1939. [58] J. E. Voider, “The CORDIC Trigonometric Computing Technique,” IRE Trans. Elec- tron. Compute EC-8(3):33O-334 (1959). [59] J. S. Walther, “A Unified Algorithm for Elementary Functions,” Proc. 1971 Spring Joint Comput. Conf., 1971, pp. 379- 385. [60] R. Wiggins and L. Brantingham, “Three Chip System Synthesizes Human Speech,” Electronics, 5/(18):109-116 r.1978). 2 ПРИМЕНЕНИЕ ПАРАЛЛЕЛЬНЫХ МАТРИЧНЫХ ПРОЦЕССОРОВ ДЛЯ ОБРАБОТКИ СИГНАЛОВ X. Уайтхаус, Дж. Спейзер, К. Бромли1 2.1. ВВЕДЕНИЕ Как было показано ранее, основные вычислительные процедуры при реше- нии большинства задач обработки сигналов в реальном масштабе времени могут быть сведены к набору операций над матрицами [1 — 3], Он включает умножение матрицы на вектор, умножение матрицы на матрицу и сложение, обращение матриц, решение линейных систем уравнений, приближенное решение линейных систем по методу наименьших квадратов, вычисление соб- ственных значений, нахождение сингулярного разложения матриц. Широкие исследования в области вычислительных методов линейной алгебры привели к созданию двух устойчивых, хорошо документированных пакетов стандарт- ных программ для выполнения этих операций с помощью однопроцессорных компьютеров последовательного действия. Один из этих пакетов, называе- мый UNPACK |4], предназначен для решения линейных систем уравнений и вычислительных задач, основанных на применении метода наименьших квадратов. Другой, называемый EISPACK [5], охватывает задачи вычисле- 1 Центр океанических систем ВМС, Сан-Диего, Калифорния. 28
ния собственных значений. Эти алгоритмы по вычислительным затратам достаточно сложны и требуют примерно N3 или А'4 операций умножения для каждого набора из N входных отсчетов. Дли сравнения современный алго- ритм обработки сигналов — БПФ — требует только Mog2 TV операций умно- жения и тем не менее его реализация в реальном масштабе времени на совре- менных однокристальных арифметических процессорных модулях ограничи- вается полосой звуковых частот. Очевидно, что потребуется на порядок уве- личить скорость вычислений, для того чтобы обеспечить выполнение в реаль- ном масштабе времени этих перспективных алгоритмов. Несмотря на гигантские достижения за последнее десятилетие в техноло- гии цифровых ИС, нельзя просто рассчитывать на дальнейшие успехи в произ- водстве быстродействующих элементов вычислительных устройств. В настоя- щее время уровень технического развития кристаллов СБИС обеспечивает реализацию технологических размеров от 1 до 2 мкм. Целью фазы П про- граммы ССИС (сверхскоростные ИС) Министерства обороны США служит уменьшение этих размеров до 0,5 мкм к 1987 г., что позволит увеличить функциональную скорость передачи данных (т.е. тактовую частоту, отне- сенную к плотности компоновки) на кристалл от 5 1011 Гц до 1013 Гц вен- тиль/см2 . По-видимому, потребуется по крайней мере еще три года усилий для такого повышения производительности, когда эта технология будет эко- номически выгодна. Так что можно ожидать немногим более 20-кратного улучшения функциональной скорости передачи данных кристаллов СБИС к 1990 г. Более того, в большинстве современных проектов показывается, что дальнейшее уменьшение размеров до 0,5 мкм и менее будет возможно только ценой значительных усилий. Авторы утверждают, что если исключить из рассмотрения непредвиденные в настоящее время успехи в технической реализации процессора сигналов, то увеличение на несколько порядков про- изводительности процессора для обработки в реальном масштабе времени алгоритмов UNPACK и EISPACK должно осуществляться эффективным использованием параллелизма при вычислениях. Самым непосредственным способом реализации параллельной обработки сигналов является простое присоединение ряда процессоров к общей шине. Действительно, большинство современных серийных микропроцессорных комплектов отличается такой ’’мультипроцессорностью”. Однако производительность повышается линейно с увеличением числа процессоров только до тех пор, пока не наступают ограничения, связанные с проблемами соединения с общей шиной. Согласно хорошо известному пред- положению Минского для широкого класса алгоритмов конфликт между Л процессорами с коллективным распределением ресурсов, соединенными с общей шиной, ограничивает повышение производительности величиной iog2A'. Современные конструкторы ’’суперкомпьютеров” использовали ряд параллельных структур и достигли повышения производительности в соответствии с законом Амдала (Amdahl)’. A'/log^A'. В 1978 г. С. Т. Кунг (Н. Т. Kung) представил свою пионерскую работу по архитектурам систоли- ческих процессорных матриц, в которой был достигнут исключительно высокий коэффициент повышения производительности, равный N [6]. 2S
Рис. 2.1. Графическое представление уве- личения быстродействия, обеспечиваемо- го перспективной архитектурой работаю- щих одновременно N процессоров: 1 — 100%-ная производительность (сис- толические решетки); 2 — закон Амда- ла (суперкомпьютеры); 3 — предложе- ния Минского (ограничения, связанные с конфликтами на шине в многопроцес- сорных системах) На рис. 2.1 графически представлено увеличение быстродействия при па- раллелизме для трех случаев. В работах [1 — 3] рассмотрены параллельные архитектуры и сделан вы- вод, что систолические и волновые матричные архитектуры [6, 7] обеспе- чивают наиболее перспективную совокупность характеристик при исполь- зовании технологии СБИС и ССИС для обработки сигналов в реальном масш- табе времени: параллелизм на уровне модулей с пропускной способностью, прямо пропорциональной числу вычислительных ячеек, простое управление, синхронный поток данных, локальные связи, достаточную гибкость для вы- полнения матричных операций, необходимых при обработке сигналов. Систолические и волновые процессоры имеют линейную структуру для умножения матрицы на вектор и решения линейных уравнений с треуголь- ными матрицами коэффициентов, а также гексагональную структуру для матричных операций умножения-сложения и /.//-разложения матриц. Эти архитектуры особенно привлекательны в случае разреженных ленточных матриц. В этой главе обсуждаются процессоры новой архитектуры для умножения заполненных матриц, для операций над блочными матрицами, а также при- кладные задачи вычисления функций неопределенности. Читателя, интере- сующегося аппаратурной реализацией систолической и волновой архитектур, отсылаем к работе [8], где описана одномерная процессорная матрица, содержащая 200 МО11-кристаллов, к работе [9], где описан макет двумерной процессорной матрицы, к гл. 8 этой книги, посвященной заказной систоли- ческой БИС, к гл. 22, в которой содержится описание двух заказных систо- лических СБИС, и к гл. 17, где имеется описание кристалла СБИС для реше- ния теплицевой системы уравнений [10]. Читателя, интересующегося систо- лическими матричными структурами для реализации более сложных алго- ритмов, чем те, которые описаны здесь, отсылаем к работам: [11] — по воп- 30
росам приведения матрицы к треугольному виду, [12] — о сингулярном раз- ложении, [13, 14] — о проблеме собственных значений и [10] - о решении теплицевых систем уравнений, 2.2. ЗАДАЧИ МЕТОДА НАИМЕНЬШИХ КВАДРАТОВ Рассмотрим метод наименьших квадратов применительно к задачам трех типов: детерминированной, стохастической с известными вторыми момента- ми и стохастической с неизвестными вторыми моментами, которые надо оце- нить. Покажем, что стохастическая задача с оцениваемыми вторыми момен- тами в вычислительном отношении идентична детерминированной задаче и поэтому основной метод решения для многих случаев обработки сигналов в реальном масштабе времени может быть основан на формировании и ре- шении нормальных уравнений путем систолических матричных умножений, умножения матрицы на вектор и обращения матриц. Известны другие мето- ды решения задач наименьших квадратов [19], а в работе [11] рассматри- вается систолическая реализация. Детерминированная задача состоит в выборе вектора х таким образом, чтобы минимизировалось значение в2 в уравнении е2 = || Ах — у||2 = хгАгАх—2угАх+ ||у||2, (2.1) где А — известная матрица, а у — известный вектор, индекс Т обозначает транспонирование матрицы или вектора. Стохастическая задача наименьших квадратов состоит в выборе детер- минированного весового вектора w для минимизации средней квадратичес- кой ошибки Е2: е| = E(w'z - d}1 = v? Rzw- 2R£ w + E(d2), (2.2) где z — случайный вектор; d — случайная величина. Скалярная случайная величина wyz представляет собой линейную комбинацию компонентов слу- чайного вектора z и используется как линейная оценка случайной величины d. Математическое ожидание обозначается символом Д, через Rz обозначе- на матрица вторых моментов случайного вектора z: Rz = Еггт. Аналогично вектор R(/z определяется как R^z =E(dz). Для того чтобы сравнить две задачи, предположим, что А имеет размер (Л'ХА), х—(5X1), y-(A'Xl), z-(AXl), w-(5Xl). Для стохастической задачи наименьших квадратов с оценкой вторых моментов предположим, что наблюдаются N отсчетов случайного вектора z и случайной величины d, например z (и, s) nd (и) при и = 1,. .., Ен s = 1,. .., 5. Стандартные несмещенные оценки вторых моментов даются выражениями (KJws2=i Ez(n, Si)z(H, s2), (2.3) /V я “ 1 Л 1 j (V (RazL. = Т7 Е d(n)7.(n, Sl) = - £ zr(s„ n)d(n), (2.4) 2 ’ n — 1 2 ’ n = 1 31
Таблица 2.1. Таблица соответствия величии в эквивалентных детерминированной и стохастической задачах Детерминирован- ный случай Стохастический слу- чай с оценкой вторых моментов Детерминирован- ный случай Стохастический слу- чай с оценкой вторых моментов 2V~0,5z (п, s) АГА R2 У («) A^-O’SJ(«) у7 А X(s) w(s) ПУН2 1 Л (Ed2) = — £</2(н). (2.5) Соответствующая ошибка для оценки d через w7’z определяется формулой е| = w7 Rz w-2R^z w+ (Ed2). (2.6) Соотношения, приведенные в табл. 2.1, иллюстрируют вычислительную эк- вивалентность стохастической задачи наименьших квадратов с оценкой вто- рых моментов и соответствующей детерминированной задачи. Поэтому до- статочно рассмотреть вычислительные методы только для детерминирован- ной задачи наименьших квадратов. 2.2.1. Применение метода наименьших квадратов к задачам гидролокации Метод наименьших квадратов применяется при решении трех проблем улучшения характеристик гидролокатора: подавления шума, подавления по- мех и спектрального анализа по методу максимума энтропии. При решении проблемы подавления шума полагают, что выходной сигнал гидрофона представляет собой линейную комбинацию напряженности окружающего акустического поля с составляющими локальных источников шума, такими, как, например, шум двигателей собственного корабля. Чтобы выделить только сигналы шума, вблизи от двигателей можно установить вспомога- тельные датчики. Для дальнейшего улучшения этого метода на входы устрой- ства подавления могут быть поданы задержанные копии сигналов каждого эталонного источника шума. Тогда линейные комбинации этих задержан- ных копий будут аппроксимировать отфильтрованный сигнал шума, при- нятый гидрофоном от источника после его распространения по корпусу корабля. Задача подавления помех аналогична задаче подавления шума, за исклю- чением того, что входными сигналами адаптивного устройства компенса- ции являются выходные сигналы лучеобразующих устройств. Для форми- рования одного луча без помех в заданное положение направляется обычный луч и формируется S ’’нулевых лучей”. Чувствительность нулевых лучей рав- на нулю при приеме сигнала с заданного направления, и они используются I для приема помех. В общем случае требуется столько линейно независимых 32
нулевых лучей, сколько помех необходимо подавить. Если выходы каждой из этих лучеобразующих схем объединить через весовой сумматор с выхо- дом лучеобразующей схемы, принимающей сигнал с заданного направления, то минимизация общей мощности уменьшит помехи в выходном сигнале. Если составляющие помехи не коррелированы с сигналом, принимаемым с заданного направления, то вклад полезного сигнала в выходную мощность остается постоянным. Однако при определенных условиях это допущение может нарушаться. При многолучевом распространении полезный сигнал может быть принят нулевым лучом так же, как и лучом, ориентированным в заданном направлении. В этом случае подстройка весовых коэффициентов, направленная на уменьшение общей мощности выходного сигнала, может привести к уменьшению как помех, так и полезного сигнала. Подавление шума и помех, как правило, осуществляется адаптивными трансверсальными фильтрами, реализующими метод градиентного спуска — алгоритм минимизации средней квадратической ошибки (МСКО) Уидроу [15]. Цель таких способов реализации — обеспечить адаптацию при неболь- шом числе операций умножения, т.е. при относительно простой аппаратур- ной реализации. Скорость адаптации уменьшается при большом разбросе собственных значений ковариационной матрицы данных [16], что, к сожале- нию, имеет место при сильных источниках помех. Это может привести к вре- мени сходимости, значительно превышающему период, в течение которого процессы, воздействующие на систему подавления, можно считать стационар- ными. В этом случае более быстрая сходимость может быть получена непос- редственным обращением ковариационной матрицы выборок и решением нормальных уравнений, что приведет к более эффективному (в статисти- ческом смысле) использованию имеющихся данных [17]. Современные методы спектрального анализа обеспечивают повышенную разрешающую способность при использовании параметрической модели сигнала. В методе максимума энтропии сигнал моделируется как выходной сигнал фильтра, имеющего только полюсы, на вход которого подан белый шум [18]. Обратным такому фильтру служит трансверсальный фильтр, преобразующий сигнал в белый шум, весовые коэффициенты которого рассчитываются путем решения задачи линейного прогноза сигнала на один шаг вперед. Известно, что для стационарного процесса ошибка прогноза по методу наименьших квадратов представляет собой белый шум. Тогда оце- ниваемая функция спектральной плотности пропорциональна величине, обратной квадрату передаточной функции прогнозирующего фильтра. Этот метод спектральной оценки, обеспечивающий повышенную разрешающую способность в том случае, когда модель применима и отношение сигнал- шум достаточно велико, может быть также использован для формирова- ния луча [18]. Задачи, решаемые с помощью метода наименьших квадратов примени- тельно к подавлению шума, подавлению помех и спектральному анализу методом максимальной энтропии, сведены в табл. 2.2. 33
Таблица 2.2. Таблица соответствия величин в методе наименьших квадратов примени- тельно к гидролокации Задача z d Подавление шума zx,...,zf (эталонные ис- Сигнал + шум точники шума) Подавление помех (адаптив- bt,...,by (выходные сиг- Ьо (выходной сигнал луча, нал обработка с фиксирован- налы ’’нулевых лучей”) ориентированного в заданном ными лучами) направлении) Спектральный анализ мето- х,,...,х4 (временные от- ху+1 дом максимума энтропии счеты сигнала) 2.3. ВСТРЕЧНО-ПОТОЧНЫЙ ПРОЦЕССОР Систолическую архитектуру можно рассматривать как результат реали- зации последовательности рекурсивных алгоритмов с помощью сети иден- тичных (или большей частью идентичных) вычислительных ячеек. При вычис- лении произведения матриц С = АВ каждый элемент cp(j матрицы С являет- ся скалярным произведением строки А и столбца В: N ем= Y.apshsq (2-7) 5= 1 Матричное умножение можно также рассматривать как рекуррентную процедуру: 4ч = 0, (2.8 а) = 1) + «psbs4 при s= t ...» А, (2.86) где — искомый результат. Такие операции сложения могут быть представлены в виде рекурсивных выражений, содержащих промежуточные члены, перемещающиеся вдоль структуры, или в виде накопления частичных сумм ”с замещением” [4,5]. Главной систолической ячейкой для операций линейной алгебры является процессор скалярного произведения [6], изображенный на рис. 2.2 в виде прямоугольной и гексагональной структур [6]. В оставшейся части этой главы будет использоваться гексагональное представление систолической ячейки. При соединении порта С’в через цепь обратной связи с Свх конфи- гурация ячейки будет особенно хорошо приспособлена для вычисления скалярного произведения по формулам (2.8). Если предположить, что Свх = = 0 в момент времени п-0, то при и =N значение Свых будет искомым ска- лярным произведением. Необходимо обратить внимание на то, что значение суммы в выражении (2.7) остается неизменным при перестановке индек- сов слагаемых. В этой главе в дальнейшем будут использованы две специаль- ные перестановки: обратная и циклическая. Встречно-поточный процессор (рис. 2.3) производит перемножение матри- цы на матрицу или умножение-сложение с помощью процессора, состоящего 34
Рис. 2.2. Геометрическое представление процессора для вычисления скалярного произведения ьгз b>z ьгз Рис. 2.3. Перемножение полных матриц встречно-поточным процессором из ячеек, подобных той, которая показана на рис. 2.2, осуществляя вычис- ление частичных сумм с замещением. Элементы строк матрицы А и элементы столбцов матрицы В вводятся в процессор через память интерфейсных уст- ройств. Последовательные строки и столбцы вводятся с единичной задерж- кой так, что в памяти имитируется набор линий задержки, создавая сдвиг на один временной такт между вводом последовательных строк и столбцов. Каждая ячейка процессора имеет конфигурацию, показанную на рис. 2.2, и вычисляет сумму скалярного произведения и начального значения Свых. Для вычисления произведения матриц значение принимается равным нулю в начальный момент времени, с2] и <?i2 принимаются равными нулю в момент времени 1, с13, с22 и с31 принимаются равными нулю в момент времени 2 и т. д., элементы Л'-й побочной диагонали принимаются равными нулю в момент времени к — 1. В момент времени k+N скалярные произве- дения всех элементов, соответствующих /с-й побочной диагонали, будут записаны в памяти. Если элементы изначально не равны нулю, то произво- дится матричное умножение-сложение: Сконеч =СТ1ач *В. Запись послед- него члена завершается за время Г = (N— 1) + (A— 1) +N=3N— 2. Это означа- ет, что встроечно-поточный процессор производит матричное умножение или умножение-сложение заполненных АХ А матриц за время ЗА—2 при исполь- зовании А2 ячеек, обеспечивая выигрыш в эффективности приблизительно в четыре раза по сравнению с обычной гексагональной систолической структу- рой матричного умножителя. Поскольку при обработке сигналов часто тре- буется перемножение заполненных матриц, этот выигрыш является значи- тельным. Встроечно-поточный процессор вычисляет матричное произведение (2.1) согласно рекуррентным соотношениям ,.Кт-1)+(*- DI = о .М ’ Cj"k ° = n) + (J-l) + (* „) + (> 1) + (* D.*> где обозначает содержимое ячейки (/, к) в момент времени п. (2.9) (2.10) 35
В момент времени n=(j — 1) + (А,— 1) + Nячейка (/,к) содержит (j.k)-n элемент матричного произведения. Если эффективность определить как число выполняемых умножений-сложений Эффективность =---------------------------------------, (2.11) число ячеек X суммарное время то можно увидеть, что при неконвейерном режиме эффективность встречно- поточного процессора составляет N(3N— 2), т. е. больше 1/3. Встречно-поточный процессор можно также использовать для умножения прямоугольных матриц. Если А имеет размер (./ХА), а В — размер (ЛЛХ/<*), то необходимый размер процессорной структуры равен J УК и последнее вы- числение заканчивается в момент времени N+ (.7 1) + (К— 1) =N+J +К— 2. В этом случае эффективность равна (NJK)/JK(N+J+K— 2) =Ni(N+J +К--2) и велика, когда ЛЛ велико по сравнению с J+K. В дальнейшем в этой главе будет показано, что часто имеется возможность конвейеризовать матричные умножения с помощью встречно-поточного процессора с достижением эф- фективности, близкой к 100%. Далее рассмотрим некоторые специальные случаи матричных умножений с использованием процессоров рассмотренно- го типа. 2.3.1. Вычисление внешнего произведения векторов с использованием встречно-поточного процессора Вычисление внешнего произведения двух векторов представляет собой важный вырожденный случай умножения матрицы на матрицу. В векторной и покомпонентной записи оно определяется выражениями С = аЬг, (2.12а) (2.126) «1 «ib* atbl «2 ГЬ* Л* ь*] = а2 bl а2 bl а2 bl (2.13) _«3_ «з bl а3 bl а3 bf_ Внешнее произведение двух векторов используется, например, при вычисле- нии преобразований Хаусхолдера [19] и функции неопределенности. Вычис- ление внешнего произведения встречно-поточным процессором иллюстриру- ется на рис. 2.4. Необходимое время вычисления составляет 2N—1. 2.3.2. Умножение ганкелевой матрицы на произвольную матрицу Умножение ганкелевой матрицы на произвольную матрицу определяется выражением «1 1 «12 «13 Ь-2 b-i bo АН = «21 «22 «23 Ь-1 bo bi (2-14) «31 «32 «33 Ьо bi b2 36
ьг b1 bo Рис. 2.5. Умножение ганкелевой матри- цы на произвольную матрицу с исполь- зованием встречно-поточного процессора с расширителем магистрали Рис. 2.4. Умножение ганкелевой матри- цы на произвольную матрицу Оно используется, например, при формировании междуканальной функции взаимной корреляции либо как одна из частей вычисления функции неопре- деленности. Поскольку ганкелева матрица имеет одинаковые элементы на побочной диагонали, она полностью определяется своими значениями край- него левого столбца и нижней строки. И, следовательно, ганкелева (NX.N)- матрица может быть представлена в виде вектора длиной 2N— 1. Для того чтобы использовать такую форму сжатия данных без увеличения времени, необходимого для загрузки встречно-поточного процессора, загрузку одной строки процессора производят с помощью специального ’’расширителя ма- гистрали” (рис. 2.5). Поскольку длинный вектор с помощью расширителя магистрали преобра- зуется в эквивалентную входную матрицу, требуемое время вычисления для такой структуры в точности такое же, как и для общего случая умножения матрицы на матрицу с помощью структуры, приведенной на рис. 2.3 (т. е. равно 3N— 2). 2.3.3. Умножение теилицевой матрицы на произвольную матрицу Элементы теплицевой матрицы, расположенные на какой-либо диаго- нали, одинаковы, поэтому ее перемножение с произвольной матрицей очень похоже на умножение ганкелевой матрицы на произвольную матрицу, но по смыслу больше соответствует многоканальной свертке, чем корреляции. Это иллюстрируется выражением АТ = ai 1 а21 «31 «12 «22 «32 «13 «23 «33 Ь ! bt bo b2 bt b 2 b-i b0 (2-15) 37
Ь7 Ь0 Ь-2 ь2 Рис. 2.7. Вычисление асимметричного внешнего произведения с использова- нием встречно-поточного процессора с расширителем магистрали Рис. 2.6. Умножение теплицевой матри- цы на произвольную матрицу с исполь- зованием встречно-поточного процессо- ра с расширителем магистрали а аппаратурная реализация с использованием встречно-поточного процессо- ра с расширителем магистрали показана на рис. 2.6. Необходимое время вы- числения составляет 37V— 2. 2.3.4. Асимметричное внешнее произведение векторов Вычисление асимметричного внешнего произведения1, представленного выражением cik = aihi-k, (2.16) полезно при вычислении функции неопределенности. Оно может быть реали- зовано как частный случай вычисления внешнего произведения с помощью встречно-поточного процессора с расширителем магистрали, как показано на рис. 2.7. Необходимое время вычисления равно 2N— 1. 2.3.5. Вычисление тройного асимметричного внешнего векторного произведения Тройное асимметричное произведение трех векторов определено выра- жением N 1 P(u, s)= £ «Л-Л-.- (2.17) к=0 Подобно асимметричному внешнему произведению, т ройное произведение также оказывается полезным при вычислении функции неопределенности. 1 В оригинале ’’skewed outer product”. Устоявшегося термина для конструкции (2.16) в литературе на русском языке нет. — Прим. ред. 38
Диагональная часть P(s, s) асимметричного тройного произведения называ- ется ’’тройной сверткой” и используется при формировании лучей [20]. Оно может быть вычислено как асимметричное внешнее произведение векто- ров а и b с последующим умножением на ганкелеву матрицу, соответствую- щую с. Полное время вычисления составляет 5N— 3. 2.3.6. Двумерное дискретное преобразование Фурье с использованием матричного процессора Умножитель матриц размера NXN может осуществить дискретное преоб- разование Фурье (ДПФ) N векторов размерности N как одно матричное ум- ножение. Если F - матрица ДПФ, определяемая выражением (2.18), то FX — матрица, столбцы которой представляют собой ДПФ столбцов матрицы X, a XF — матрица, строки которой являются ДПФ строк матрицы X. Анало- гично FXF представляет собой двумерное ДПФ матрицы X: Ггч = е^2я'’ч''л'. (2.18) 2.3.7. Вычисление функции неопределенности с использованием встречно-поточного процессора с расширителем магистрали Функция неопределенности Л12(г,/) = J 9^(1 + т)е>2я/' dt (2.19) является обобщенной функцией взаимной корреляции, зависящей как от сдвига относительной частоты, так и от задержки [21]. В табл. 2.3 показано, как вычисление функции неопределенности реализуется современными оп- тическими процессорами и как можно привести эти вычисления к комби- нации матричных операций, описанных в этой главе. Таблица 2.3. Методы вычисления функции неопределенности Двумерное преобразование Фурье [<71(0</*(г()е-^"“]ел2"'1л+ио dl du т-срез + r)]e i2n" dt Временное интегрирование + т)]еИ Ю’ dt Пространственное интегрирование j + г)] dt 39
Метод дискретного преобразования Фурье требует умножения матрицы на вектор, для того чтобы сформировалось одномерное преобразование Фурье g2, и получения внешнего векторного произведения для двумерного пре- образования Фурье. Метод т-срезов соответствует формированию асиммет- ричного внешнего векторного произведения с последующим матричным умножением. Временному интегрированию соответствует формирование поэлементного векторного произведения, асимметричного внешнего век- торного произведения, а затем умножения слева на теплиневу матрицу. Структура пространственного интегратора соответствует взвешиванию столб- цов матрицы с. последующим умножением справа на ганкелеву матрицу. Необходимое время вычислений может быть значительно уменьшено введением нескольких расширителей магистрали, а также выбором конфи- гурации устройств памяти, позволяющим избежать необходимости после- довательной записи строк или столбцов промежуточных матриц в память интерфейсных устройств. Кроме того, потребуется разбиение матриц на блоки, если число ячеек, на которые разбиваются анализируемые диапазо- ны задержек и частот, превышает размер процессорной решетки. 2.3.8. Умножение блочных матриц Часто требуется, чтобы с помощью процессора со структурой размера ;УХ X7V можно было выполнять умножение матриц размера больше, чем NXN. Алгебра таких операций элементарна. Используя блочное умножение матриц, как это показано в выражении N N N N N N N N А В\ С D/ F\ / АЕ + BG Н / ~ V ceTdg AF + ВН \ CF + DH / (2.20) желательно обеспечить увеличение скорости вычисления путем параллель- ного хранения и выборки промежуточных матричных произведений. По этой причине желательно дополнить встречно-поточный процессор, изображенный на рис. 2.3, ’’вертикальной памятью” с адресацией, ортого- нальной к плоскости структуры, так что полную матрицу размера NXN можно хранить и впоследствии перегрузить за один период обращения к па- мяти. При такой вертикальной памяти время записи и воспроизведения, необходимое для реализации блочного умножения матриц (2.20), пренебре- жимо мало, а время умножения матрицы размера 2А'Х2А'примерно в 8 раз больше времени умножения или умножения-сложения матриц размера NXN. Разбиение матриц на блоки можно продолжать, чтобы иметь дело с матрица- ми еще больших размеров, и оно ограничивается только допустимым прост- ранством вертикальной памяти. Несмотря на то, что известны методы умно- жения матриц размера 2?v'X2/V, при которых осуществляется менее 8 опе- раций умножения (Л^ХАО-матриц, они менее устойчивы в вычислительном отношении и, по-видимому, требуют значительно большего объема памяти для хранения промежуточных результатов. |40
2.3.9. Умножение матриц за время N встречнонюточным процессором с использова- нием Л'расширителей магистрали Ранее упоминалось, что скалярное произведение не меняется при цикли- ческой перестановке произведений, которые должны суммироваться. Это свойство используется для осуществления умножения матриц с помощью усовершенствованного встречно-поточного процессора, все ячейки которого в течение всего времени находятся в действии. Такой результат обычно до- стигается только тогда, когда возможна конвейеризация при обработке данных. Если в выражении (2.7) индекс суммирования интерпретировать как целое по модулю 7V, то значение суммы не изменяется, когда индекс сум- мирования циклически сдвигается на/, как в выражении N - J N - 1 zZ ^Jsask j'+naj + n,k > (2.21) s 0 n — 0 где C - BA. Реализация такого метода достигается следующим образом: 1; параллельной загрузкой А(°> = А из локальной вертикальной памяти; 2) параллельной загрузкой В<°), где = Ьц, через N расширителей ма- гистрали строк встречно-поточного процессора; 3} продвижением А наверх после каждого цикла умножения-сложения, - А'Д.л: 4) параллельной загрузкой В”, где В Д' = bjj±n. Управление адресами обычно осуществляется с помощью счетчиков по модулю N, для того чтобы имелся доступ к адресу каждой строки В. Сле- дует заметать, что /-я строка В<и> таким образом представляет расширенную и-ю диагональ матрицы В. Это достигается осуществлением циклического сдвига в адресных регистрах, используемых для загрузки строк В. 2.3.10. Обращение матриц Гексагональная систолическая процессорная структура может быть ис- пользована для разложения матриц в произведение нижней и верхней тре- угольных матриц [б], являющегося, ио существу, прямым ходом в методе Гаусса. Такая структура содержит процессоры для вычисления скалярных произведений совместно с одной особенной граничной процессорной ячей- кой, необходимой для выполнении операции деления. Было обнаружено [3,7], что если к прямоугольной структуре добавить дополнительные диаго- нальные связи между элементами, как показано на рис. 2.8, то она смо- жет функционировать как гексагональная структура. Также показано [6], что линейная систолическая структура с одним процессорным элементом, расположенным на границе, способным выполнять операцию деления, может служить для решения системы линейных уравнений с треугольной матрицей коэффициентов (т. е. для обратного хода при осуществлении метода Гаус- са) . Таким образом, структура (рис. 2.8), содержащая .NXN процессорных 41
Процессор скалярного произведения для матричного умно- жения и деления Рис. 2.8. Комбинированная прямоуголь- но-гексагональная структура. При LU- разложении используется только верх- няя ячейка элементов с диагональными связями между элементами и N граничными про- цессорами, может осуществлять обращение матриц размера NXN за время O(N) вначале как процессор гексагональной структуры, а затем — как N линейных процессоров. 2.3.11. Использование встречно-поточного процессора для обращения блочных матриц Требования при обращении блочных матриц с помощью встречно-поточ- ного процессора аналогичны требованиям при умножении блочных матриц, однако необходимо рассмотреть два дополнительных фактора: 1) сущест- вуют ли требуемые обратные блоки; 2) увеличивается ли необходимый объем памяти в результате использования блочного алгоритма обращения? Пусть матрица R размера 2А/Х2Д/разбита на блоки размера NXN следую- щим образом: В D (2.22) Тогда обратная матрица в предположении, что оба блока А и Побратимы, определяется выражением [22] /А-1 +А“1ВД~1СА-1 R~1 = \ -Д-’СА"1 -А^ВД-Л л-1 / ’ <2'23) Д 1 j где Д = D СА“1В. Во многих случаях применения к обработке сигналов R является симметричной и положительно определенной матрицей. Здесь об- ратимость R влечет обратимость А и D. Если используется последователь- ность вычислений, соответствующая рис. 2.9, то легко видеть, что встречно- поточный процессор, содержащий Л'ХА элементов с вертикальной памятью, А R» А”1 R R R R R +МТ R + МТ В В М = RB м М М М S = МД”1 С С С с О = CR т = дио т т D D Д = D -СМ Д”1 Д’1 Д”1 Д’1 Д-1 Рис. 2.9. Требования к памяти и расчет числа операций, необходимых для обращения блочной матрицы (2 операции обращения, 6 операций матричного умножения и умно- жения-сложения)
может вычислить обратную матрицу размера 2/VX2/V за время, примерно в восемь раз превышающее время, необходимое для обращения матрицы размера 7VX/V, без увеличения емкости памяти, за исключением той, кото- рая необходима для хранения представленной в блочном виде (27VX2A)- матрицы. 2.3.12. ДПФ с использованием встречно-поточного процессора Встречно-поточный процессор, содержащий процессорную матрицу разме- ра NXN, может быть использован для вычисления Б ПФ в системе счисления с основанием N и параллелизмом №. Это будет показано для ДПФ длиной №, определяемого формулой W2- 1 G*= = (2.24) « = 0 Лексикографическое упорядочение индексов в выражении п = ntN + п2 к — к j + к2 N Hj. п2, kt, к2 = 0, 1, ..., N — 1 , (2.25 а) (2.25 б) позволяет интерпретировать длинное одномерное ДПФ как частичное ДПФ, за которым следует поэлементное матричное умножение, за которым, в свою очередь, следует частичное ДПФ в ортогональном направлении [23]: /V - I N-1 Gkl +к2К= Y Iе i2nk2nllNe jzm^INg^N+^ «2 = 0 «1=0 V 7 Если эти действия выполняются с помощью комплексного встречно- поточного процессора, содержащего 7VX7V элементов с вертикальной памятью и N расширителями магистрали, то требуется примерно 2/V арифметичес- ких тактов для вычисления ДПФ длиной № или при ТИ=№ время вычис- лений составляет примерно 2Л/°>5 при использовании М процессорных ячеек. Поскольку операции умножения на е i2nk'n*iN1 могут быть выполнены па- раллельно в течение одного арифметического такта, они потребуют ничтожно малого времени по сравнению с временем операций матричного умножения, и поэтому дальнейшее усовершенствование этого процессора, по-видимому, только усложнит получение результата, не обеспечивая существенного выиг- рыша в скорости. 2.4. ЗАКЛЮЧЕНИЕ Показано, что новая систолическая архитектура — встречно-поточный процессор — обеспечивает эффективное перемножение заполненных мат- риц. Рассмотрены два типа усовершенствованных встречно-поточных про- цессоров: с трехмерной организацией памяти для хранения результатов промежуточных вычислений и с расширителем магистрали для параллель- ной загрузки в процессор строки или столбца матриц. Показано, что такие 43
процессоры эффективно выполняют умножение и обращение блочных мат- риц, одно- и двумерное дискретное преобразование Фурье, а также вычис- ление функции неопределенности. СПИСОК ЛИТЕРАТУРЫ [1] J. М. Speiser, and Н. J. Whitehouse, “Architectures for Real-Time Matrix Operations,” Proc. 1980 Government Microcircuits Appl. Conf., Houston, Nov. 1980, pp. 19-21. [2] J. M. Speiser, H. J. Whitehouse, and K. Bromley, “Signal Processing Applications for Systolic Arrays,” 14th Asiloniar Conf. Circuits, Syst. Comput., Pacific Grove, Calif., Nov. 17-19, 1980, IEEE Catalog 80CH1625-3, pp. 100-104. [3] S. Y. Kung, “VLSI Array Processors for Signal Processing,” MIT Conf. Adv. Res. VLSI, Cambridge, Mass., Jan. 1980. [4] J. J. Dongarra, el al., UNPACK User’s Guide, SIAM, Philadelphia, 1979. [5] B. S. Garbow, et al., Matrix Eigensystem Routines—EISPACK Guide Extensions, Springer-Verlag, New York, 1977. [6] H. T. Kung, “Systolic Arrays for VLSI,” in I. S. Duff and G. W. Stewart, eds., Sparse Matrix Proceedings, 1978, SIAM, Philadelphia, 1979. [7] S. Y. Kung, et al., “Wavefront Array Processor: Language, Architecture, and Appli- cation,” IEEE Trans. Comput., Special Issue on Parallel and Distributed Computers, C-.U(11): 1054-1066 (Nov. 1982). [8] G. A. Frank, J. Blackmer, and P. Kuekes, “A 200 MOPS Systolic Processor,” Proc. SPIE Symp., Vol. 298: Real-Time Signal Processing IV, San Diego, Aug. 1981. [9] J. Symanski, et al., “A Systolic-Array Processor Implementation,” Proc. SPIE Symp., Vol. 298: Real-Time Signal Processing IV, San Diego, Aug. 1981. [10] S. Y. Kung, and Y. H. Hu, “A Highly Concurrent Algorithm and Pipelined Architec- tures for Solving Toeplitz Systems,” IEEE Trans. Acoust. Speech Signal Process., 31(i):66- 76 (Feb. 1983). [11] W. M. Gentleman, and H. T. Kung, “Matrix Triangularization by Systolic Arrays,” Proc. SPIE Symp., Vol. 298: Real-Time Signal Processing IV, San Diego, Aug. 1981. [12] A. M. Finn, F. T. Luk, and C.. Pottle, “Systolic-Array Computation of the Singular Value Decomposition,” Proc. SPIE Symp., Vol. 341: Real-Time Signal Processing V, Arlington, Va., May 1982. [13] R. P. Brent and F. T. Luk, “A Systolic Architecture for Almost Linear-Time Solution of the Symmetric Eigenvalue Problem,” Cornell University Tech. Rep. TR82-525, Aug. 1982. [14] S. Y. Kung and R. J. Gal-Ezer, “Eigenvalue, Singular Value and Least Squares Solvers via the Wavefront Array Processors,” in L. Synder et al., eds., Algorithmically Special- ized Computer Organizations, Academic Press, New York, 1983. [15] B. Widrow, et al., “Adaptive Noise Cancelling: Principles and Applications,” Proc. IEEE, 6.7:1692 1716 (Dec. 1975). [16] L. J. Griffiths, “A Continuously-Adaptive Filter Implemented as a Lattice Structure,” 1977 IEEE Int. Conf. Acoust. Speech Signal Process., IEEE Catalog 77СШ197-3, pp. 683-686. [17] R. A. Monzingo and T. W. Miller, Introduction to Adaptive Arrays, Wiley, New York, 1980, Chap. 6: “Direct Inversion of the Sample Covariance Matrix.” [18] S. Haykin, ed., Nonlinear Methods of Spectral Analysis, Springer-Verlag, New York, 1979. 144
ri9] C. L. Lawson and R. J. Hanson, Solving Least Squares Problems, Prentice-Hall, En- glewood Cliffs, NJ., 1974. [20] J- M. Speiser, H. J. Whitehouse, and N. J. Berg, “Signal Processing Architectures Using Convolutional Technology,” Proc. SPIE Symp., Vol. 154: Real-Time Signal Processing, 1978, pp. 66-80. [21] A. W. Rihaczek, Principles of High-Resolution Radar, McGraw-Hill, New York, 1969. [22] E. Bcdewig, Matrix Calculus, 2nd ed., North-Holland/Interscience, New York, 1959. [23] H. J. Whitehouse and J M. Speiser, “Linear Signal Processing Architectures,” in As- pects of Signal Processing, with Emphasis on Underwater Acoustics, Part 2, D. Reidel, Dordrecht, The Netherlands, 1977. 3 СПЕКТРАЛЬНЫЙ АНАЛИЗ: ОТ ОБЫЧНЫХ МЕТОДОВ К МЕТОДАМ С ВЫСОКОЙ РАЗРЕШАЮЩЕЙ СПОСОБНОСТЬЮ С. Гун, Д. Рао, К. Арун1 3.1. ВВЕДЕНИЕ Спектральный анализ составляет основу большинства методов обработки сигналов, используемых обычно для выделения представляющих интерес сиг- налов. а также для получения информации из соответствующих данных. За- дача классического спектрального анализа состояла в оценке энергетическо- го спектра по конечному числу зашумленных отсчетов дискретного стохас- тического процесса или по нескольким значениям оценки его корреляцион- ной функции. Задача современного спектрального анализа в некоторых практических случаях, например в радио- и гидролокации, при обработке сигналов в фазированных антенных решетках, где спектр является линейча- тым, состоит в оценке положения спектральных линий. Как результат это- го понятия смещения и дисперсии, которые прежде относились к оценке формы спектра, теперь относятся к оценке частоты. Другой качественной характеристикой классического спектрального анализа является разрешаю- щая способность по частоте, которая определяет степень детальности иссле- дования спектра [1]. В современной постановке разрешающая способность есть способность различать и идентифицировать спектральные линии, кото- рые расположены близко по частоте [2]. Во многих современных случаях применения спектральный анализ приходится производить, имея в распоря- жении короткие записи данных (в радиолокации, например, в каждом от- раженном импульсе может содержаться всего несколько отсчетов), но тем не менее необходимы опенки с высоким разрешением, малыми смещением и дисперсией. 1 Университет Южной Калифорнии, Лос-Анжелес, Калифорнии. 45
Разрешающая способность по частоте в обычных методах, основанных на преобразовании Фурье, примерно обратно пропорциональна объему выбор- ки. Поэтому для улучшения разрешающей способности необходимо ввести некоторые дополнительные ограничения (или априорную информацию). С этой целью в современных методах данные моделируются как процесс на выходе линейной системы, на вход которой подан белый шум. Когда та- кая модель соответствует реальному сигналу, эти методы приводят к улуч- шению спектральных оценок. Цена, которую приходится платить за это улуч- шение, как правило, состоит в увеличении сложности вычислений по сравне- нию с таковой при обычных методах, основанных на использовании БПФ. Однако с появлением СБИС стоимость вычислительной аппаратуры умень- шилась, что явилось существенным стимулом для использования и развития с целью улучшения ее характеристик более усложненных в вычислительном отношении методов спектрального анализа. В этой главе вначале обсудим обычные методы анализа энергетического спектра, а затем в следующих разделах сосредоточим внимание на современ- ных методах, делая акцент на тех из них, которые подходят для разрешения узкополосных сигналов. Более подробное обсуждение этого вопроса можно найти в работах [3,4]. 3.2. ОБЫЧНЫЕ МЕТОДЫ СПЕКТРАЛЬНОГО АНАЛИЗА [5] Предположим, что процесс х(п) является стационарным в широком смысле действительным дискретным стохастическим процессом с нуле- вым математическим ожиданием. Нас будет интересовать спектр мощнос- ти, который представляет собой распределение мощности по частотам и определяется как [6] Р(со) = У гхх(п) е }ит, (3.1) п = — ОС где rxx (т) — корреляционная функция: гхх(ш) — Е[х(п)х(т + н)]; Е [ ] — оператор математического ожидания. Косвенный подход Блэкмана и Тьюки к оценке спектра мощности состо- ит в получении вначале оценки корреляционной функции на конечном ин- тервале, а затем в применении преобразования Фурье, по существу, в пред- положении, что остальные значения равны нулю: м-1 Р„т^) = Z ^(н)е'^. (3.2) и= -М+1 Очень часто перед преобразованием Фурье корреляционная функция под- вергается весовой обработке (взвешиванию) функцией окна (для сглажива- ния перехода к нулевым значениям) М- 1 Р^)= Е гхх(н)И'(«)е< ^п)- (3.3) п = -М+ 1 46
Спектр мощности можно определить и другим методом. На основании классической теоремы Винера- Хинчина [5] спектр мощности эргодическо- го процесса определяется как Р(щ) = lim Е -J- £ x(n)e inc> (3-4) Это выражение приводит к более непосредственному методу вычислений. На практике объем выборки N конечен; поэтому прямой метод вычислений осуществляется согласно (3.4) с конечным значением N, операция усред- нения по ансамблю опускается. Оценка спектра мощности, основанная на прямом методе, называется периодограммой (термин, впервые введенный Шустером [7]) и определяется как квадрат результата преобразования Фурье от данных конечной длины: Лт(«) - (3-5) Периодограмма совпадает с косвенной оценкой по формуле (3.2) в том случае, когда используется следующая смещенная оценка корреляционной функции: „ 1 5 1 Hw) = — X л(п)х(п + ш). О' л = 0 Рассмотренные методы стали популярны вследствие высокой эффективнос- ти вычислений по алгоритму БПФ. Однако предположение о нулевом значе- нии данных и корреляционной функции за пределами интервала наблюде- ния неестественно и ограничивает разрешающую способность величиной, приблизительно обратно пропорциональной объему выборки данных. Кро- ме того, резкий переход к нулю вызывает появление больших боковых лепестков в оценке спектра (явление Биббса). Правильный выбор функции окна может улучшить статистическую стабильность оценки и снизить уро- вень боковых лепестков, но ценой дальнейшего ухудшения разрешающей способности. Для более детального рассмотрения компромисса между раз- решающей способностью и уровнем боковых лепестков при выборе функ- ций окна мы отсылаем читателя к работам [5, 8, 9]. Можно показать, что как прямые, так и косвенные оценки спектра мощ- ности несостоятельны, т.е. их дисперсия не стремится к нулю при увеличе- нии объема выборки [5]. В работах [10, 11] с целью улучшения асимпто- тических статистических свойств оценки спектра независимо было предло- жено кусочное усреднение как своего рода усреднение по псевдоансамблю. В этом случае данные разделяются на сегменты, которые могут перекрывать- ся, и спектр мощности вычисляется для каждого сегмента. Результирую- щий спектр мощности получается усреднением по всем сегментам. Однако при этом разрешающая способность ухудшается еще больше. И так как в большинстве интересующих нас случаев объем выборки весьма мал, метод посегментного усреднения для них неприемлем. 47
Итак, к достоинствам всех традиционных методов спектрального оцени- вания относится высокая вычислительная эффективность алгоритма БПФ, но они не обеспечивают необходимой разрешающей способности. Разреше- ние по частоте ограничено из-за фундаментального соотношения неопре- деленности величиной, обратной интервалу корреляции в дискретном пре- образовании Фурье. Следовательно, единственное средство достижения вы- сокой разрешающей способности заключается в том, чтобы, располагая ма- лым отрезком корреляционной функции, продолжить ее за пределы данного отрезка, основываясь на некоторых априорных данных о входном процес- се. Современные методы моделирования данных как данных на выходе ли- нейной системы, на вход которой подан белый шум, по существу, обеспечи- вают экстраполяцию корреляционной функции за пределами интервала на- блюдения. 3.3. МЕТОДЫ, ОСНОВАННЫЕ НА МОДЕЛЯХ ИССЛЕДУЕМЫХ ПРОЦЕССОВ Во многих практических случаях физическая обстановка, обусловливаю- щая формирование отраженного сигнала, может быть достаточно точно смоделирована линейной системой невысокого порядка. Например, из- вестно, что при моделировании речи хорошей моделью механизма генери- рования речевых сигналов является линейная система, формирующая про- цесс авторегрессии из белого шума. В методах, основанных на моделях., такая априорная информация используется для улучшения разрешающей способности по частоте. При моделировании обычными методами предполагается, что корреля- ция равна нулю за пределами интервала наблюдения, но на практике, в особенности когда сигналы узкополосные и корреляционная функция близка к периодической, такое предположение совершенно не соответст- вует действительности. В рассматриваемых методах корреляционная функ- ция продолжается за пределы интервала наблюдения с помощью некоторых рекуррентных соотношений, определяемых параметрами модели. Эти пара- метры, получаемые на основе анализа корреляционной функции в пределах интервала наблюдения, полностью определяют ее поведение за пределами интервала, а также соответствующий спектр мощности. Следовательно, оценка спектра в современной постановке основана на оценке парамет- ров модели, а разрешающая способность таких параметрических спектраль- ных оценок очень высока, если модель выбрана удачно. В общем случае в линейной системе с рациональной передаточной функ- цией связь между входной и выходной величинами описывается линейным разностным уравнением р У(1) = v _ 1) 4- V _ :) + p i1 где входной величиной является а выходной {y(z)}. Эта модель из- вестна как модель авторегрессии скользящего среднего (АРСС). 48
Передаточная функция такой системы имеет вид H(z) = B(z)M(z) , где B(z) = 1 + ЕЬ,~'1 ; A(z) = 1 - Ей-z '• i - 1 * =1 В том случае, когда входной величиной {u(f)} является белый шум с дис- персией о2, спектр мощности у (?) представляет собой P(<j) = S(z) z=e-i где S(z) = <t2/7(z)H(z“1) = п2 B(z)B(z ') A(z)A(z~l) (3.7) Функция S(z) является также двусторонним z-преобразованием корреля- ционной функции у (t) в интервале от —00 до °°: S(z)^ Е № к- к~-х> Если й(и) - импульсная характеристика системы, то H(z~l) является z-преобразованием ’’инвертированной во времени” последовательности /г (—и). Следовательно, согласно выражению (3.7), если входное возденет вие системы/7 (z) описывается последовательностью п2/г (-и), выходная по- следовательность будет представлять собой корреляционную функцию г (т). Это означает, что Р 9 г(т) — Е at d™ ~ >) + о2 Е bj h( — т + i). (3.8) i=l i=0 Однако поскольку импульсная характеристика h (п) представляет собой каузальную последовательность, то h (—m+i)=0 для всех m>i. Как резуль- тат этого выражение (3.8) упрощается и принимает вид F r(m) ~ Е ~ i) Для всех т > q. (3.9) i — 1 Таким образом, при линейной .модели с рациональной передаточной функ- цией задание р последовательных значений корреляционной функции позво- ляет однозначно продолжить ее до бесконечности с помощью рекуррентно- го соотношения и поэтому модели АРСС могут существенно улучшить раз- решающую способность. Представляет интерес частный случай общей модели (3.6), когда A (z) ~ = 1. Такую модель обычно называют моделью скользящего среднего (СС). Длительность корреляционной функции при такой модели ограничена, что не позволяет получить лучшую разрешающую способность по частоте, чем при методах преобразования Фурье. 49
3.3.1. Модели авторегрессии Более известная модель, используемая при спектральном анализе, опи- сывается как частный случай выражения (3.6), когда В (z) = 1: р у(1) = £a, y(f - z) + г(П. (3.10) ;= 1 Здесь выходная функция y(t) формируется как линейная регрессия своих прошлых значений, и поэтому такая модель известна как модель авторег- рессии. (Кстати, общая модель, описываемая формулой (3.6), составлена из моделей авторегрессии и скользящего среднего и поэтому называется моделью авторегрессии скользящего среднего.) В моделях авторегрессии В (z) = 1, поэтому A(z)A(z ') z=ej<Aj и рекуррентное соотношение (3.9) выполняется при всех /с >0: р г(/с) = £ а, г(к — «), к > 0 - >= 1 При к = 0 рекуррентное соотношение (3.9) имеет вид '(°) = Е «Л-0 + <т2. i~ 1 Задавая М значений корреляционной функции {/(£)}, где М>р, можно оценить параметры {аг- } модели авторегрессии из приведенных рекуррент- ных уравнений для первых р значений из к. Они известны как уравнения Юла—Уокераили нормальные уравнения, иногда их называют уравнениями Винера—Хопфа в дискретном времени. В матричной форме они имеют вид Таким образом, параметрическая оценка с использованием модели авто- регрессии включает решение линейной системы с симметричной положитель- но определенной теплицевой матрицей, которое может быть выполнено очень эффективно с помощью уже известного алгоритма Левинсона [32, 34, 36 — 38,48]. Существует два способа обоснования модели авторегрессии. Первый сос- тоит в том, что, поскольку передаточная функция авторегрессионной модели имеет только полюсы, передаточная функция инверсного фильтра имеет только нули и его структура в точности совпадает со структурой фильтра, формирующего на выходе ошибку прогноза. Кроме того, коэффициенты линейного прогнозирующего фильтра, которые минимизируют данную ошиб- 50
ку, также удовлетворяют нормальным уравнениям. Следовательно, исполь- зование моделей авторегрессии эквивалентно линейному прогнозированию. Второй способ заключается в том, что при гауссовском приближении бес- конечное продолжение корреляционной функции по ее значениям, обуслов- ленное моделью авторегрессии, максимизирует энтропию соответствующих временных рядов. Другими словами, среди всех возможных продолжений временные ряды, соответствующие модели авторегрессии, являются наибо- лее ’’выбеленными” и имеют самый ’’плоский” спектр. Таким образом, метод авторегрессии эквивалентен очень популярному в настоящее время методу максимума энтропии [12, 13]. 3.3.2. Метод максимума энтропии s Этот метод, впервые предложенный в работе [12], основан на предполо- жении о том, что корреляционная функция экстраполирована так, что энт- ропия данных, характеризуемых этой функцией, максимальна. Эвристичес- кое объяснение выбора такого критерия состоит в том, что он максимизи- рует случайность или ’’белизну” процесса. Энтропия определяется как Н = I In [Р(со)] , J — 71 где P(w)= f г(и)е^“”. И = — ОО Для того чтобы найти максимум Н, возьмем производную от Н по {г (г), |f | -N+ 1, N+ 2, ... j . Это приведет к уравнению Г в e-j“m —----da> - О ДЛЯ I т | = N + 1, N + 2, ..., J_n Р(щ) которое означает, что Р-1 (со) определяется рядом Фурье с конечным числом членов, т. е. Р ‘(щ)= t Т(т)е (3.12) т = — р Учитывая неотрицательность Р"1 (со), в соответствии с теоремой фактори- зации спектра получаем р 1 р р X Т(т)е~У™=- £ а(щ)е>'"" £ п(щ)е~>т (3.13) т~- — р т —О т —О при некоторых {а (т) } [где а (0) = 1 и К — коэффициент]. Другими слова- ми, объединение (3.12) и (3.13) дает К р(со) = ~ • a(z)a(z ')|z=eJC4 51
Это доказывает, что метод максимальной энтропии дает авторегрессион- ное решение. Практическое вычисление коэффициентов включает решение уравнений (3.11). Можно показать, что энтропия определяется выражением [3] Н= lim |ln [detRJ = |ln [P.J, (3 14) /V-» x- где — корреляционная (NX.N) -матрица процесса; Рт — дисперсия ошиб- ки прогноза при прогнозировании процесса из бесконечного прошлого. Из (3.14) следует, что процесс с максимальной энтропией характеризу- ется максимальной величиной Рт, другими словами, он наименее предска- зуем. Поэтому метод максимальной энтропии обеспечивает получение наибо- лее ’’плоского” спектра, согласующегося с корреляционными характерис- тиками процесса. В самом простом случае, когда единственным ограничением, налагаемым на корреляционные характеристики, является заданное значение мощности сигнала г (О), процесс с максимальной энтропией — это процесс, подобный белому шуму с дисперсией г(0), так как он дает максимальную ошибку прогноза Рх [=г (0)]. Когда спектр задается значениями корреляции r(0), г (1),. . . , г (д), это эквивалентно заданию ошибок прогноза Р}, Р2,... , Рр, где Рк — диспер- сия ошибки прогноза процесса, на основе к прошлых значений. Поскольку ошибка прогноза может только уменьшаться (или в худшем случае оста- ваться неизменной), когда для него используется все большая часть прош- лого процесса, должно выполняться условие Р1с+1 <Р^. Следовательно, для наперед заданных (Р^ Р2,..., Рр) спектром с наибольшим значением Рт будет такой, в котором величина Р/( сохраняется на постоянном уровне Р при всех к >р. Спектр процесса авторегрессии обеспечивает такое постоян- ство, а следовательно, он также является спектром максимальной энтропии или наименее предсказуемым (самым ’’белым”) спектром, согласующим- ся со значениями корреляционной функции в первых точках. Теоретичес- кое обоснование критерия максимума энтропии дано в работах [53, 54], где показано, что для гауссовских процессов оценка по методу максимума энтропии минимизирует так называемую относительную энтропию или взаимную информацию Кульбака—Лейблера [55], определяющую степень различия между плотностью вероятности, соответствующей данной оценке, и плотностью вероятности процесса типа белого шума. 3.3.3. Метод Писаренко [15,16] Приведенная в 3.3.2 интерпретация метода максимума энтропии как ме- тода, обеспечивающего получение оценки в форме ’’самого плоского” спект- ра, ставит под сомнение возможность его применения к оценке положения спектральных линий. Например, максимизация энтропии бессмысленна, если априорно известно, что сигнал состоит только из свободных от шума синусоидальных составляющих, положение которых может быть предска- зано с нулевой ошибкой (Р„ =0), и характеризуется минимальной энтро- 52
пией. В этом случае стремятся к получению линейчатого, а не максимально плоского спектра. Кроме того, ограничения, налагаемые на корреляцион- ную функцию методом максимума энтропии, необоснованны, когда зара- нее известно, что присутствует некоррелированный аддитивный шум, так как в этом случае модель авторегрессии не соответствует корреляционной функции процесса. Рассматриваемая ковариационная матрица R представляет собой сумму ковариационных матриц сигнала RA. и ковариационной матрицы шума Rw (т.е. R = Rr + RZj). Интуиция подсказывает, что, прежде чем подстраивать модель к ковариационной матрице R, желательно уменьшить вклад в нее шумовой составляющей. Для простоты положим, что шум является белым (т.е. R„ = о21) . В этом случае модель авторегрессии, подстроенная к моди- фицированной ковариационной матрице (R —о21), дает увеличенную раз- решающую способность. Часто значение о2 неизвестно, и тогда приходится использовать оценку а2. Чем больше значение оценки о2, тем уже пики спектральной оценки, соответствующей матрице (R —а21), при этом умень- шается энтропия (так как уменьшается мощность ошибки прогноза ). Наибольшее значение о2, которое может быть вычтено так, чтобы матри- ца (R а21) оставалась неотрицательно-определенной, представляет собой наименьшее собственное значение матрицы R. В предельном случае, когда а2 — наименьшее собственное значение матрицы R, матрица (R —о21) становится сингулярной (но все еще неотрицательно определенной), = = 0 для всех к>р и энтропия минимальна. Для этого предельного случая ми- нимальной энтропии характеристики прогнозирующего фильтра определя- ются нуль-вектором матрицы (R —621) или, что то же самое, собственным вектором матрицы R, соответствующим наименьшему собственному числу. Этот метод был впервые предложен Писаренко [16] для решения задачи выделения синусоидальных сигналов в белом шуме. Рассмотрим подробно модель синусоидальных сигналов в шуме. Предположим, что имеется р комплексных экспоненциальных составляющих с амплитудами {<?,-, <=1, 2, .. . ,р} и частотами {со,-, i - 1, 2, . .. в смеси с некоррелированным белым шумом. Тогда теплицева (р + 1) X (р + 1) -матрица, образованная “точ- ными значениями корреляционной функции, в идельном случае должна иметь следующий вид: R = RX + R„ =FAF*+ o2I, где * — знак транспонирования с переходом к комплексно-сопряженным величинам; 1 1 1 е е е )<агр А= diag (q2, i = 1, 2,..., р). 53
Относительно данной модели можно сделать следующие замечания: 1) матрица FAF* имеет ранг р, и поэтому значение о2 должно быть соб- ственным значением (р + 1) X (р + I) -матрицы R; 2) в действительности значение о2 должно быть наименьшим собствен- ным значением, поскольку матрица (R—o2I] (=RX) — неотрицательно- определенная; 3) наконец, вследствие важной теоремы Каратеодори [35] корни, свя- занные с собственным вектором, соответствующим о2, будут равны [ei‘Ui, i = 1, />}. <0; =£ ш,. когда/ //. Из этих результатов вытекает метод Писаренко, основные этапы которо- го состоят в следующем: 1) вычислить наименьшее собственное значение матрицы R; 2) вычислить соответствующий собственный вектор а; 3) определить местоположение спектральных линий, решая уравнения a(z) =0; 4) определить мощность каждой синусоидальной составляющей, решая матричное уравнение где F получается из матрицы F исключением последней строки. Минимальные собственные значения матрицы R могут быть эффективно вычислены с помощью модифицированной итерационной схемы Релея, 'ос- нованной на теплицевой структуре матриц, которая может быть реализова- на в виде СБИС [32, 36]. Если число синусоидальных сигналов заранее неизвестно, то исследова- ние можно начать с теплицевой матрицы размера NXN и найти распределе- ние ее собственных значений. В идеальном случае наименьшее собственное значение будет иметь кратность (/V—р), а р можно оценить из распределе- ния собственных значений. Однако в большинстве практических случаев имеется множество собственных значений в окрестности наименьшего, а не одно кратное наименьшее собственное значение. Тогда непосредственное применение метода Писаренко невозможно. В этих случаях необходимо об- ращаться к таким методам, как MUSIC (Multiple Sigual Classification) [29] (см. подразд. 3.3.4) , или к методу теплицевой аппроксимации (см. разд. 3.4). Кроме модели авторегрессии и метода Писаренко для получения спект- ральных оценок с высокой разрешающей способностью использовались мо- дели авторегрессии скользящего среднего. Интересующихся читателей отсы- лаем к работам [19—21, 24, 33, 39-44, 49—51]. 3.3.4. Применение перечисленных методов при обработке сигналов в фазированных антенных решетках Рассмотренные методы, используемые в современных задачах спектраль- ной оценки, могут быть непосредственно применены к формированию лу- 54
чей и обработке сигналов в фазированных антенных решетках подводных пассивных гидроакустических систем. Одной из основных функций системы обработки сигналов в фазированной антенной решетке является определе- ние числа источников, имеющихся в среде, и их основных параметров, таких как направление и интенсивность излучения, с помощью сигналов, полу- ченных от N датчиков [26—28]. Связь спектральной оценки с оценкой углового положения становится очевидной, если заметить аналогию между задачей оценки положения спект- ральных линий по временному ряду и задачей оценки угловых положений по последовательности пространственных отсчетов. Здесь параметр в, характе- ризующий угловое положение источника, аналогичен частоте, а пространст- венные отсчеты, обеспечиваемые приемниками сигналов, играют роль вре- менных отсчетов [52]. Поэтому необходимы только некоторые подстанов- ки и изменения в интерпретации результатов перед тем, как использовать упомянутые методы спектрального оценивания. Для простоты полагаем, что для измерения используется линейная экви- дистантная решетка приемных элементов. В этом случае временная корре- ляционная матрица R должна быть заменена пространственной корреляцион- ной матрицей S (т. е. элементы матрицы S характеризуют корреляцию между сигналами приемных элементов). Переменная со, которой обозначалась час- тота, теперь связана с пространственным угловым направлением 0. Фазиру- ющий вектор определяется выражением а(0) = [1, eJ“ eJ'2“ ..., где теперь gj = 2(«'/X)sin б; d — расстояние между приемными элементами; X — длина волны принимаемого сигнала. Таким образом, вместо энергети- ческого спектра вычисляется пространственный спектр Р(0), а оценка поло- жения пиков в последнем приводит к оценке направления на источники. При обычном методе формирования лучей используется формула Рфл(б) =a*(0)Sa(0), (3.15) которая с учетом выражения для а(0) приводит к классической форме спектральной оценки V 1 Рфл(0) =a*(O)Sa(0)= Е ITW'We >"• Это выражение является преобразованием Фурье корреляционной функции 5 (и) с треугольным окном W (п) [см. (3.3) ]. Важно отметить, что аналогичный подход может быть распространен и на решетки случайным образом расположенных элементов. При этом фазирую- щий вектор а(0) будет зависеть от геометрии решетки и, как нетрудно по- нять, пространственная корреляционная матрица не обязательно будет иметь теплицеву структуру, т.е. корреляция между сигналами, принятыми г-м и /-м элементами в общем случае, будет отличаться от корреляции между сиг- налами, принятыми (г +А')-м и + элементами. За исключением этого, 55
соответствующий спектр по-прежнему определяется с помощью выраже- ния (3.15). Применяя распространенный метод, впервые предложенный Кейпоном [17, 18] для обработки сигналов в решетках, можно получить оценку [29] Рк (0) =------Ц------ к д*(0)8-*а(0) (3.16) Основная идея здесь состоит в том, чтобы определить вектор с, формиру- ющий луч, который имеет единичный коэффициент передачи в направлении в и в то же время обеспечивает минимальную выходную мощность c*Sc, так что вклад составляющих других направлений минимален. Оптимизация при условии с*а(0) - 1 приводит к минимальной мощности (a*(0)S“1a*(0))“1. В условиях обеспечения минимума выходная мощность в основном опреде- ляется мощностью составляющих направления 8, и это приводит к оценке Р(6), даваемой выражением (3.16). Для стационарного случая можно использовать также принцип максиму- ма энтропии. Он приводит к следующей оценке [29]: 1 Рмэ(6) =-------------, мэ а*(0)сс*а(0) где с — решение уравнений Винера—Хопфа с матрицей S, а также первым столбцом S"1 (с точностью до масштабного коэффициента) . При решении данной задачи может быть применен и метод Писаренко. С помощью процедуры, изложенной в подразд. 3.3.3, для оценки углового положения источников можно использовать собственный вектор матрицы S, соответствующий минимальному собственному значению. Однако более распространенный в этой области подход основан на определении разложе- ния собственных значений и собственных векторов матрицы S по методу, предложенному в [27 — 31]. Эти методы похожи,-но несколько отличаются друг от друга фактическим использованием собственных векторов. Так, например, согласно методу .MUSIC, предложенному в работе [29], осуществ- ляется следующая оценка: 1 PMtsic(e) ~ ' где — матрица, образованная из собственных векторов, связанных с N—M наименьшими собственными значениями корреляционной матрицы S (здесь М — число целей). Очень похожий метод был независимо предло- жен в работах [27, 28]. Теоретически N—M наименьших собственных зна- чений должны совпадать по величине, но на практике они только очень близки. Таким образом, в отличие от метода Писаренко, в котором исполь- зуется только один собственный вектор, здесь применяются все собствен- ные векторы, соответствующие самым малым собственным значениям. 56
». В работе [30] предложен другой метод, базирующийся на основных собственных векторах. В общем случае эти методы легче в реализации, а также менее чувствительны к флуктуации параметров, чем метод Писарен- ко. В двух последующих главах эти методы рассматриваются более детально. 3.4. МОДЕЛИРОВАНИЕ СИГНАЛОВ НА ОСНОВЕ СИНГУЛЯРНОГО РАЗЛОЖЕНИЯ Среди методов, рассмотренных в разд. 3.3, наиболее распространенные и хорошо разработанные методы, основанные на преобразовании Фурье, харак- теризуются значительным смещением оценки и невысокой разрешающей способностью. Метод максимума энтропии и метод Писаренко обеспечива- ют существенно лучшую разрешающую способность. Однако оказывается, йто для оценки спектральных линий с высокой разрешающей способностью более предпочтительным является подход, основанный на разложении по соб- ственным значениям (такой, как метод MUSIC [29], рассмотренный приме- нительно к обработке сигналов в фазированной антенной решетке). В присутствии окрашенного шума, при наличии корреляционных погреш- ностей, а также при конечной точности вычислений в окрестности наимень- шего собственного значения возникает множество собственных значений, а не одно кратное собственное значение, и простой метод Писаренко оказы- вается неприменимым. Метод Писаренко очень чувствителен к корреляцион- ным ошибкам и ошибкам, обусловленным ограниченной точностью [47], и поэтому требуются более устойчивые модели. Метод моделирования сигналов на основе сингулярного разложения, ко- торый быстро привлек к себе большое внимание, был предложен в работе [22]. Суть его состоит в том, что для нахождения характеристик прогнози- рующего фильтра определяются собственные векторы матрицы R, соответ- ствующие наибольшим собственным значениям, а не наименьшему, и затем вычисляются частоты синусоидальных составляющих. Можно избежать вычисления корней полинома, если моделировать сину- соидальные сигналы в шуме методами пространства состояний. Это дает свободу выбора координат, а ппимеры моделирования [56] убеждают нас в том, что при этом могут быть получены и лучшие характеристики. Модель синусоидальных сигналов в шуме допускает очень специфичес- кое представление в пространстве состояний. Например, для чисто синусои- дальных сигналов исходные данные могут быть описаны выражениями x/l + l = Fxfc> n = hxfc> где хл — вектор состояния, т.е. (иХ!)-матрица; F и h - постоянные матри- цы размера и Хи и 1Хи соответственно, а собственные значения матрицы F должны лежать на окружности единичного радиуса. Данные полностью за- даются тройкой (F, х0, h), но эта тройка определяется только с точностью до преобразования подобия. Заслуживает интереса представление с диаго- нальной матрицей F. Тогда F=diag(e,"‘ eJ°2 ••• е'ы”)> h"’ • х'о’ = pt • eJ7", 57
где ojp Pj и <p- — частота, амплитуда и фаза соответственно z-й составляю- щей экспоненциальной функции; z-й элемент вектора обозначен верхним индексом z. Нетрудно показать, что г (tn) = hPF*z"h*=hF'”I’h*,rt7> О, где матрица дисперсии R удовлетворяет условию Р = FPF1. Анализ ковариационной теплицевой матрицы R показывает, что она фак- торизуется следующим образом: r(0) r(i) z-(zz) rd) НО) ИО) И1) z-(zz) Hl) ИО) [Ph*, F~’Ph*, . ..,F”Ph*] = A0S%. Это разложение на произведение матрицы наблюдаемости 0 и матрицы JA по- казывает, что матрица R сингулярна. Она имеет ранг р, если частоты различ- ны (т. е. если сог- i и рг- ^0 для всех i). При использовании метода теплицевой аппроксимации [23, 46] первый шаг состоит в получении оценки ковариационной матрицы R, которая в об- щем случае имеет полный ранг. Это достигается сингулярным разложением матрицы R, а разложение матрицы R в матрицах 0 и 5? осуществляется так, как показано далее. Пусть сингулярное разложение матрицы R есть r = UE2V = [UjUJ Е? О О Е2 V2 где £, — (рХр)-матрица; Е2 — (A-p)X(/V-p)-матрица. Матрица наблюдаемости получается из главных сингулярных векторов (Л и главных сингулярных значений Е2. В присутствии белого шума сингу- лярные значения изменяются, несмотря на то, что сингулярные векторы ос- таются неизменными. Фактически все сингулярные значения увеличиваются на величину, равную дисперсии шума, и поэтому самое малое сингулярное значение нужно вычесть, чтобы скомпенсировать этот эффект, т.е. Е? = Е?-о^1, где — самое малое сингулярное значение матрицы R. Следовательно, матрица типа матрицы наблюдаемости определяется вы- ражением 0 = Ц • Ej, 58
тогда как R = E, Vj. Такая аппроксимация матрицы (R — 0^,1) в виде произведения 6 • Зй яв- ляется оптимальной в спектральной норме [25,46]. Второй шаг включает определение параметров модели. В идеальном слу- чае матрица 0 будет иметь точную структуру матрицы наблюдаемости и (рХр)-решение F матричного уравнения = 01 будет существовать. Однако вследствие аппроксимации точного решения не существует и приходится прибегать к решению по методу наименьших квадратов, когда минимизируется значение II0F -01||£-, где индекс Е обозначает эвклидо- ву норму, а 01 получается путем смещения 0 на одну строку вверх. Это при- водит к следующим наименьшим средним квадратическим оценкам пара- метров: F =0+ -01, Ь определяется первой строкой матрицы 0, Ph* определяется первым столбцом матрицы .'З?, где знак t означает псевдообращение. Собственные значения матрицы F определяют частоты синусоидальных сигналов. Исходя из имеющихся данных можно либо оценивать значения корреля- ционной функции, используя методы несмещенной оценки и конструируя теплицеву ковариационную матрицу R, либо, как в [47, 22], просто опре- делять R = (DD')/(2(L - 7V+1)), где уН) Х2) у(Л - N + 1) о y(N) X2) ХЗ) y{L - N + 2) y/L- 1) y(L - 2) y(/V - 1) D = Х-3) J<4) y(L - N + 3) y(L - 2) y(L- 3) • y(N - 2) y(N) y(N + 1) • y(L} y(L - N + ina- 1) XI) Теперь приведем пример моделирования из работы [56], чтобы проде- монстрировать эффективность метода главных компонентов. Рассматривае- мая задача состоит в выделении синусоидального сигнала (фактически за- дача разрешения двух близко расположенных комплексных экспоненциаль- ных функций) из аддитивного белого шума по 25 входным отсчетам. Был 59
Таблица 3.1 [56] Метод теп- лицевой ап- проксима- ции Частоты, кото- рые нужно раз- решить Отношение сигнал-шум, ДБ Относи тельное число не- удач Средняя квадрати- ческая ошибка Среднее значение Среднее квадрати- ческое от- клонение (0,97; 1,03) 0 7/200 0,020154 0,952043 0,009113 R (0,98; 1,02) 10 2/200 0,003738 0,979278 0,003090 (0,99; 1,01) 20 100/200 0,008007 0,995135 0,001359 (0,97; 1,03) 0 72/200 0,023608 0,959822 0,016156 R (0,98; 1,02) 10 9/200 0,007115 0,980397 0,005831 (0.99; 1,01) 20 5/200 0,003163 0,990353 0,002752 применен метод теплицевой аппроксимации матрицы R размера 11X11 и матрицы R размера 13X13 для двухсот реализаций нсевдошумовой после- довательности. В табл. 3.1 приведены результаты в виде среднего значения', среднего квадратического отклонения, средней квадратической ошибки оценки частоты, а также числа неудач в разрешении спектральных линий. Другими параметрами моделирования являются ранг аппроксиманта (порядок модели) и отношение сигнала к шуму. Хотя ранг можно опреде- лить, исследуя сингулярные значения, для удобства расчетов ранг заранее полагается равным 2. Отношение сигнал-шум определяется как отноше- ние мощности каждой экспоненциальной составляющей к дисперсии шума. Результаты показывают, что метод теплицевой аппроксимации матрицы R (несмещенная оценка) весьма эффективен при малых отношениях сиг- нал-шум, в то время как метод теплицевой аппроксимации матрицы R — при больших отношениях. Например, для отношения сигнал-шум 0 дБ,метод теплицевой аппроксимации матрицы R дает 7 неудач в 200 испытаниях, а для отношения сигнал-шум 20 дБ метод теплицевой аппроксимации матрицы R - 5 неудач в 200 испытаниях. 3.5. ЗАКЛЮЧЕНИЕ Изобретение алгоритма БПФ около двадцати пет назад внесло первый главный вклад в развитие методов цифровой обработки сигналов. За по- следние два десятилетия БПФ сыграло большую роль в теории обработки сигналов. Например, в спектральном анализе методы, основанные на преоб- разовании Фурье, традиционно доминировали главным образом вследствие вычислительной эффективности БПФ, существования обширной библиоте- ки программ для вычисления БПФ, доступности в приобретении быстродей- ствующих процессоров БПФ. Однако сегодня наличие СБИС благодаря ис- пользованию высокой степени параллелизма позволит сравнительно недо- * Среднее значение и среднее квадратическое отклонение оценок вычислялись толь- ко в тех случаях, когда достигалось разрешение, средняя квадратическая ошибка вы- числялась во всех случаях. 60
рого обеспечить достижение больших вычислительных мощностей в систе- мах обработки сигналов. Это определенно должно породить множество новых более сложных но вычислительным затратам алгоритмов, основан- ных на моделях сигналов, подобных алгоритмам, рассмотренным в этой гла- ве. Было показано, что при правильном выборе модели можно достичь значительно лучших характеристик, чем при обычном спектральном методе БПФ, в особенности для малых выборок. Многообещающим является то обстоятельство, что вычисления для современных методов обработки сиг- налов зачастую сводятся к матричным операциям, таким как разложения по собственным и сингулярным значениям, вычисление корреляционных мат- риц и обращения матриц, которые с высокой эффективностью могут выпол- няться при параллельном вычислении с помощью СБИС. Особенно важно, что сингулярное разложение обеспечивает вычислительную стабильность [45] и открывает дорогу дальнейшему развитию методов обработки сиг- налов. СПИСОК ЛИТЕРАТУРЫ [1] А. V. Oppenheim and R. W. Schafer, Digital Signal Processing, Prentice-Hall, En- glewood Cliffs, N J., 1975. [2] O. L. Frost, “Power Spectrum Estimation,” Proc. 1976 NATO Advanced Study Institute Signal Process. Emphasis Underwater Acoust., Portovener, Italy, Aug. 3O-Sept. 11, 1976. [31 S. S. Haykin, ed., Nonlinear Methods of Spectral Analysis, Springer-Verlag, New York, 1979. [4] S. M. Kay and S. L. Marple, Jr., “Spectrum Analysis—A Modern Perspective,” Proc. IEEE, 69(1l):1380-T418 (Nov. 1981). [5] G. M. Jenkins and D. G. Watts, Spectral Analysis and Its Applications, Holden-Day, San Francisco, 1966. [6] A. Papoulis, Probability, Random Variables, and Stochastic Processes, McGraw-Hill, New York, 1965. [7] A. Schuster, “On the Investigation of Hidden Periodicities with Application to a Sup- posed 26 Dav Period of Meteorological Phenomena," Terrest. Magn., 3:13 41 (Mar. 1898). [8] F. J. Harris, “On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform,” Proc. IEEE, 66:5183 (Jan. 1978). [9] A. H. Nuttall, “Some Windows with Very Good Sidelobe Behavior,” IEEE Trans. Acoust. Speech Signal Process., ASSP-29:84-89 (Feb. 1981). [10] M.S. Bartlett and J. Medhi, “On the Efficiency of Procedures for Smoothing Periodo- grams from Time Series with Continuous Spectra,” Riomelrika, 42:143150 (1955). [11] P. D. Welch. “The Use of Fast Fourier Transform for the Estimation of Power Spectra: A Method Based on Time Averaging over Short Modified Periodograms,” IEEE. Trans. Audio Electroacoust., ЛС-/5:7О73 (June 1967). [12J J. P. Burg, "Maximum Entropy Spectral Analysis,” Ph.D. dissertation, Stanford Univer- sity, Stanford, Calif., 1975. [13] T. J. Ulrych and T. N. Bishop, “Maximum Entropy Spectral Analysis and Autoregres- sive Decomposition,” Rev. Geophys. Space Phys., /3:183 -200 (Feb. 1975). <> I
[14] A. van den Bos, “Alternative Interpretation of Maximum Entropy Spectral Analysis,” IEEE Trans. Inf. Theory, IT-17493 494 (July 1971). [15] V. F. Pisarenko, “On the Estimation of Spectra by Means of Nonlinear Functions of the Covariance Matrix,” Geophys. J. R. Astron. Soc., 2^:511-531 (1970). [16] V. F. Pisarenko, “The Retrieval of Harmonics from a Covariance Function,” Geophys. J. R. Astron. Soc., 33:347 366 (1973). [17] J. Capon, “High-Resolution Frequency-Wavenumber Spectrum Analysis,” Proc. IEEE, 57:1408 1418 (Aug. 1969). [18] R. T. Lacoss, “Data Adaptive Spectral Analysis Method,” Geophysics, 36:661-675 (Aug. 1971). [19] D. Graupe, D. J. Krause, and J. B. Moore, “Identification of Autoregressive Moving Average Parameters of Time Series,” IEEE Trans. Autom. Control, АС-20Л04-Ю2 (Feb. 1975). [20] G. E. P. Box and G. M. Jenkins, Time Series Analysis: Forecasting and Control, Holden- Day, San Francisco, 1970. [21] J. A. Cadzow, “Spectral Estimation: An Overdetermined Rational Model Equation Approach,” Proc. IEEE. 70(9):907 -939 (Sept. 1982). [22] D. W. Tufts and R. Kumarcsen, “Estimation of Frequencies of Multiple Sinusoids: Making Einear Prediction Perform like Maximum Likelihood,” Proc. IEEE, 70(9) :975- 989 (Sept. 1982). [23] S. Y. Kung, "A Toeplitz Approximation Method and Some Applications,” I nt. Symp. Math. Theory Networks Syst., Santa Monica, Calif., Aug. 5- 7, 1981. [24] S. Y. Kung and K. S. Arun, “A Novel Hankel Approximation Method for ARMA Pole Zero Estimation from Noisy Covariance Data,” Topical Meet. Signal Recovery. Optical Society of America, Jan. 1983. [25] S. Y. Kung, “A New Identification and Model Reduction Algorithm via Singular Value Decomposition,” 12th Asilomar Conf. Circuits, Syst. Comput., Pacific Grove, Calif Nov 1978. [26] A. B. Baggeroer, “Sonar Signal Processing,” in A. V. Oppenheim, ed., Applications of Digital Signal Processing, Prentice-Hall, Englewood Cliffs, N.J., 1978, pp. 331-437. [27] G. Bienvenu and L. Kopp, "Adaptivity to Background Noise Spatial Coherence for High Resolution Passive Methods,” Proc. IEEE ICASSP, Denver, Colo., 1980, pp 307-310. [28] G. Bienvenu and L. Kopp, “Source Power Estimation Method Associated with High Resolution Bearing Estimation,” Proc. IEEE ICASSP, Atlanta, Ga., 1981, pp. 153-156. [29] R. Schmidt, “Multiple Emitter Location and Signal Parameter Estimation,” Proc. RADC Spectral Estimation Workshop, Rome, N.Y., 1979, pp. 243-258. [30] N. L. Owsley, “Modal Decomposition of Data Adaptive Spectral Estimates,” Yale Univ. Workshop Appl. Adaptive Syst. Theory, New Haven, Conn., 1981. [31] D. H. Johnson and S. R. DeGraaf, “Improving the Resolution of Bearing in Passive Sonar Arrays by Eigenvalue Analysis.” IEEE Trans. Acoust. Speech Signal Process., /LSSP-30(4):638 647 (Aug. 1982). [32] S. Y. Kung and Y. H. Hu, “A Highly Concurrent Algorithm and Pipelined Architecture for Solving Toeplitz Systems,” IEEE Trans. Acoust. Speech Signal Process., ASSP- 3/:No. 1, pp. 66 76(Feb. 1983). 62
[331 [34] Д А. Всех and L. L. Scharf, “Covariance Sequence Approximation for Parametric Spectrum Modeling,” IEEE Trans. Acoust. Speech Signal Process., ASSP-29(5):\M2- 1052 (Oct. 1981). T Kailath, “A View of Three Decades of Linear Filtering Theory,” IEEE Trans. Inf. Theory, I T-2O(2}:146 179 (Mar. 1974). p5j G. Szego, “Ein Grenszwertsatz iiber die Toeplitzschen Determinanten einer reellen positiven Funktion,” Math. Ann., 76:490 503 (1915). [36] S. Y. Kung and Y. H. Hu, "Highly Concurrent Toeplitz System Solver for High Resolu- tion Spectral Estimation,” Proc. ICASSP, Boston, Apr. 1983, pp. 1422 1425. [37] bl. Levinson, “The Wiener rms (root mean square) Error Criterion in Filter Design and Prediction,” J. Math. Phys., vol. 25, pp. 261-278, Jan. 1947. [38] N. Levinson, “A heuristic exposition of Wiener’s mathematical theory of prediction and filtering,” J. Math. Phys., vol. 26, pp. 110 119, July 1947. [39] H. P. Zeiger and A. J. McEwen, “Approximate Linear Realizations of Given Dimension via Ho’s Algorithm,” IEE.E Trans. Autom. Control, AC-19:153 (1974). [40] P. Faurre, “Stochastic Realization Algorithms,” in R. K. Mehra and D. G. Lainiotis, eds.. System Identification: Advances and Case Studies, Academic Press, New York, 1976. [41] H. Akaike, “Markovian Representation of Stochastic Processes by Canonical Vari- ables,” SIAM J. Control, /.?(1):162 173 (Jan. 1975). [42] H. Akaike, “Markovian Representation of Stochastic Processes and Its Application to the Analysis of Autoregressive Moving Average Processes,” Ann. Inst. Stat. Math. 26:363-387(1974). [43] T. Kailath, “The Innovations Approach to Detection and Estimation Theory,” Proc. IEEE, _W:68O 695 (May 1970). [44] D. Mcginn and D. H. Johnson, “Reduction of All-Pole Parameter Estimation Bias by Successive Autocorrelation,” Proc. ICASSP, Boston, Apr. 1983, pp. 1088 1091. [45] V. C. Klemma and A. J. Laub, “The Singular Value Decomposition: Its Computation and Some Applications,” IEEE Trans. Autom. Control, AC-25(2):I64 176 (Apr. 1980). [46] S. Y. Kung, K. S. Arun, and D. V. Bhaskar Rao, “State Space and SVD Based Approxi- mation Methods for the Harmonic Retrieval Problem,” J. Optical Soc. of America, 73:1799-1811 (Dec. 1983). [47] T. J. Lllrych and R. W. Clayton, “Time Series Modeling and Maximum Entropy,” Phys. Earth Planet. Interiors, /2:188-200(1976). [48] Y. H. Hu, “New Algorithms and Parallel Architectures for Toeplitz Systems, with Applications to Spectrum Estimation,” Ph.D. dissertation. University of Southern Cali- fornia, Los Angeles. [49] U. B. Desai and D. Pal, "A Realization Approach to Stochastic Model Reduction and Balanced Stochastic Realizations,” I6th Annu. Conf. Inf. Sci. Syst., Princeton University, Princeton, N.J., Mar. 1982. [50] S. Y. Kung and K. S. Arun, “Approximate Realization Methods for ARMA Spectral Estimation,” IEEE Int. Symp. Circuits Syst., Newport Beach, Calif., May 1983. [51] J. White, “Stochastic State Space Models from Emperical Data,” Proc. IEEE Int. Conf. Acoust. Speech Signal Process., Apr. 1983, pp. 243 246. [52] W. F. Gabriel, “Spectral Analysis and Adaptive Arrays Superresolution Techniques,” Proc. IEEE, Vol. 68, pp. 654-666, June 1980. [53] J. E. Shore, and R. W. Johnson, “Axiomatic Derivation of the Principle of Maximum 63
Entropy and the Prindpie of Minimum Cross-Entropy,” IEEE Trans. Info. Theory, /T-26tl):26-37 (Jan. 1980). [54] J. E. Shore, “Minimum Cross-Entropy Spectral Analysis,” IEEE Trans. Acoustics, Speech and Signal Processing, Vol. ASSP-29, no. 2, pp. 230 237, April 1981. [55] S. Kullback and R. A. Leibler, “On information and sufficiency,” Annals of Mathemat- ical Statistics, Vol. 22, pp. 79 86, 1951. [56] S. Y. Kung, D. V. Bhaskar Rao, and K. S. Arun, “New state space and singular value decomposition based approximate modeling methods for hormone retrieval,” IEEE ASSP Spectrum Estimation Workshop II, Tampa, Florida, Nov. 1983, pp. 266-271. 4 СПЕКТРАЛЬНЫЙ АНАЛИЗ С ВЫСОКОЙ РАЗРЕШАЮЩЕЙ СПОСОБНОСТЬЮ. ПОДЧЕРКИВАНИЕ ОСНОВНЫХ МОД Н. Аузли1 4.1. ВВЕДЕНИЕ Методы спектрального анализа с высокой разрешающей способностью нашли широкое применение в одноканальных системах [1], а также в мно- гоканальных системах с антенными решетками [2]. Появившиеся совсем недавно методы пространственно-временного спектрального анализа в сис- темах с антенными решетками являются го существу дальнейшим разви- тием известных процедур анализа спектра мощности [3,4]. Среда этих ме- тодов основными являются: во-первых, метод фильтрации, при которой фор- мируется неискаженный выходной сигнал с минимальной дисперсией (МД) и который тесно связан с методом максимального правдоподобия [1, 2], во-вторых, метод максимума энтропии (МЭ), обобщающий целый класс методов линейного сглаживания и прогнозирования с минимальной сред- ней квадратической ошибкой [5, 7]. Для этих методов характерно отсут- ствие априорной информации о размерности векторных пространств состав- ляющих сигнала или шума, подлежащих анализу. Такая априорная информа- ция о сигнале задается в виде сведений о полосе частот, об угловом, радиаль- ном участках для соответствующих параметров сигнала. Априорная инфор- мация о том, что шум может быть приведен к белому и что размерность подпространств, порожденных сигналами и принятыми данными, невелика по сравнению с размерностью анализируемых данных, может использовать- ся для увеличения разрешающей способности устройства спектральной оценки. Разрешающая способность при этом будет ограничиваться лишь временем наблюдения. Описываемый здесь метод адаптивного спектраль- ного анализа основан на ’’модальном” разложении ковариационной мат- 1 Центр подводных систем ВМС, Нью-Лондон, Коннектикут. 64
рицы данных наблюдения. При данном подходе процедуры, которые мо- гут быть выражены через ортонормальное [8—10] или сингулярное разло- жение [10] или разложение Холецкого ковариационной матрицы, в отли- ime от процедур ортогонализации Грама—Шмидта [11] и аналогичных проце- дур могут быть реализованы в виде решетчатых фильтров [12]. Использование ортонормальных разложений по собственным векторам для пространственно-временного спектрального анализа развивалось от непараметрической и адаптивной обработки сигналов антенных решеток [13 — 15] до спектральной оценки с высокой разрешающей способностью [9, 10, 15—22]. Часто считают, что эти методы специфически основаны на Ортогональных разложениях шумового процесса и суммы шумового про- цесса с сигнальным. Однако в этой главе два различных варианта таких устройств спектральной оценки с высокой разрешающей способностью строятся согласно выражениям, формально описывающим МД- и МЭ-оцен- ки. Дополнительная априорная информация, позволяющая увеличить раз- решающую способность устройств оценки МД- и МЭ-типов, заключается в том, что, во-первых, шум является некоррелированным или может быть приведен к белому и, во-вторых, составляющие анализируемого сигнала являются узкополосными. В этой главе даны разложения по ’’основным модам” ковариационной матрицы входных данных и обратной матрицы. Затем даются соотноше- ния для МД- и МЭ-оценок с использованием модальных разложений и выра- жения для определения ширины пика в спектре мощности по уровню 3 дБ от максимального значения. В заключительной части главы приведены дан- ные о применении устройств спектральной оценки МД- и МЭ-типов для оценки дальности до источника сигнала в системах с антенной решеткой. 4.2. МОДЕЛЬ СИГНАЛА Пусть ковариационная матрица TV-мерного стационарного векторного процесса с нулевым средним и дискретным временем х(Т) определяется выражением R= E{x(r)x(t)'}’ (4.1) где штрих обозначает транспонирование с переходом к комплексно-сопря- женным величинам. На практике, конечно, может использоваться усреднен- ная по времени оценка матрицы R вместо усредненной по ансамблю анало- гичной величины, определяемой (4.1). Предполагается, что ковариационная матрица R содержит составляющие сигнала и шума, т. е. R = P + o2I7V, (4.2) где Р — ковариационная матрица сигнала рангом К (К <£ <7V); а2 — диспер- сия некоррелированного шума; — единичная матрица размера NXN. Ко- вариационная матрица сигнала может быть представлена двумя способами. В первом случае при использовании представления с помощью фактических сигналов матрицу Р можно записать в виде 65
p= Z Z^D(Op)D(Opy. (4.3) P = 1 4 ~ 1 При втором способе с использованием разложения на основные моды по- лучим к Р= (4-4) * =1 Согласно (4.3) ковариационная матрица представляется через множество TV-мерных сигнальных векторов {D(ep): р = 1, 2, ... ,L} , не обязательно линейно независимых. Величина ор(? характеризует взаимную корреляцию р-й и q-й комплексных огибающих сигнала с нулевыми средними значения- ми. Согласно (4.4) ковариационная матрица сигнала представлена через собственные векторы Mt, М2,..., Мд, соответствующие собственным чис- лам > Х2 > .. •> Хд. Сигнал предполагается узкополосным, что позволяет разделить его опи- сание во временной и пространственной областях [23]. Два важных приме- ра описания сигнала в каждой из этих областей определяются следующими выражениями для и-го элемента вектора сигнала D(0p). В случае спект- рального анализа временных рядов с постоянным интервалом дискрети- зации Д D( 6Р) = exp (-j2 7tf„ nA), (4.5) И где f — дискретные частоты. В случае пространственного спектрального анализа для линейной антенной решетки, элементы которой расположены вдоль оси X, D(0p) = exp (-,/2л/тр„)= = ехр J2rtf(rP + х>> - 2rexn cos Р,У12 с (4.6 а) (4.6 6) ~ exp -L J2lt^rp ~ Х” cos Pp + (sin" Рр1(.2гр№1 ) . (4.6 в) Пространственная модель р-й составляющей сигнала на частоте f в (4.6) характеризуется временем распространения трп волнового фронта от р-го источника сигнала до n-го элемента антенной решетки. Предполагается, что скорость распространения волнового фронта в однородной среде рав- на с, источник находится на расстоянии гр под углом /Зр относительно нор- мали к оси JV-элементной антенной решетки. Геометрические соотношения иллюстрируются на рис. 4.1. Выражение (4.6 в) получено из (4.6 6) с по- мощью разложения в ряд Тейлора выражения для времени распространения (r2 + X2-2rpX„cosgpj1/2 (4-7) 66
рис. 4.1. Геометрические соотношения для линей- ной ^элементной антенной решетки с расположе- нием элементов по оси X. Координаты источника сигнала р :г - дальность, Р - угол визирования ( ( ( по переменной Хп при условии, что гр > Хп. Оценка временной задержки распространения фронта волны Dpi. п(Р) ^рт Трп (4.8) между т-м и м-м элементами решетки {т, и = 1, 2,..., TV J, а также соответ- ствующей совокупности L значений параметров дальности и утла визирова- ния является проблемой, представляющей в настоящее время значительный интерес [24, 25]. Эта проблема эквивалентна задаче оценки геометрических параметров источников сигналов Рригр (р = 1,2,..., £ ) [30]. Рассматриваемые здесь оценки как частоты, так и времени задержки яв- ляются функциями оценки ковариационной матрицы, определяемой, на- пример, выражением 1 1 R=- £x(t)x(t)'. (4.9) ' (=i Однако в следующих разделах предполагается, что известно точное значе- ние ковариационной матрицы (4.2), а в разделе, посвященном оценке даль- ности, влияние конечного времени усреднения Т рассматривается эмпири- чески. Прежде чем приступить к рассмотрению основного вопроса, обратим- ся к двум формам представления ковариационной матрицы R и обратной матрицы R-1. Обозначим через М матрицу размера NX.K, столбцами которой являются собственные векторы1 Мд. матрицы Р, через X — диагональную (КУРС) -матрицу с диагональными элементами, значения которой равны ненулевым собственным значениям Хд, и определим модифицированную ковариационную матрицу2 как R(e) =еМХМ’ + а21Л/. (4.10) 1 Соответствующие ненулевым собственным значениям. — Прим. ред. 2 В оригинале enhanced data covariance matrix — дословно ’’улучшенная ковариацион- ная матрица данных”. Автор, очевидно, полагает, что улучшение заключается в том, что при е > 1 происходит как бы ’’подчеркивание” основных мод. Ввиду отсутствия в литературе на русском языке соответствующего термина мы переводим его как ’’модифицированная ковариационная матрица”. - Прим. ред. 67
Выражение для обратной матрицы примет вид 1 / V1 R(er'=-s + — X 1 М’ <7 \ е J (4.11а) (4.11 б) м*м’ Скалярный параметр е в дальнейшем будет называться коэффициентом мо- дификации. Очевидно, что R(l) =R. Для получения оценки R(e)~l в выра- жение (4.11) можно подставить оценку собственных векторов и собствен- ных чисел. Рассмотрим теперь другую форму R(e) =еСС' + o2I/v. (4.12) Здесь С — матрица, получаемая в результате разложения Холецкого Р=СС* ковариационной матрицы сигнала Р. Алгоритм, реализующий указанную процедуру, рассматривается в разд. 4.3. Выражение для обратной матри- цы можно представить в виде R (е) ~ [Ijv С (С'С + ’ 1К) С' ] = о е (4-13) 4.3. СПЕКТРАЛЬНЫЙ АНАЛИЗ В этом разделе представлены два подхода к обеспечению высокой раз- решающей способности при спектральном анализе. Оба метода следуют из формулировки задачи квадратичной минимизации с линейными ограни- чениями. При этом предполагается, что: 1)подпространство сигналов име- ет размерность /<; 2) шум является процессом с нулевым средним и неза- висимыми одинаково распределенными значениями; 3)спектральная разре- шающая способность должна быть максимальной. Максимизация разрешаю- щей способности эквивалентна утверждению о том, что коэффициент моди- фикации е должен быть наибольшим. Это обусловлено тем, что увеличение в эквивалентно увеличению отношения сигнал-шум (ОСШ), что является основным требованием для увеличения разрешающей способности. 4.3.1. Оценка спектра по методу минимальной дисперсии Для этой процедуры необходимо найти вектор W линейного фильтра, обеспечивающий решение следующей задачи минимизации с ограничениями: минимизиров ать °мд = £{l W'x(f)|2: е}, (4.14 а) °МД = w'K(e)VV, (4.146) гдеИ(е) определяется выражением (4.10); максимизировать спектральную разрешающую способность (т. е. е-*°°). Ограничение: неискаженный (единичный) отклик 68
1 = W'D(6). Решение: и=ивд- ___R(e)~'D(0) < W~D(0)'R(e) ’D(O) ’ К -< W = ^(0, e) D(0) — ад, D(0)M* -I L к = 1 (4.14 b) (4.15 a) (4.15 6) (4.15 b) где <7(0, e) = к N- ^ад,е)|м;о(0)|2 kl (4.16) b(k, e) — (4-17) Оценка спектра мощности по минимуму дисперсии определяется формулой (4.14а) при W = WMд, откуда Рмд(0) = D(0)'R(e)-’D(Oj = (4Л8) = <т20(О, е). (4.19) Модифицированная оценка спектра по методу МД может быть получена на основе процедуры (4.18) при подстановке вместо b (к, е) Нтад, е)=1, (4.20) -у что дает рммд(0) = —----------------- • (4 21) N- Z|A/'D(0)|2 к 1 Заметим, что (4.15 6) является решением, обеспечивающим требование минимизации только при одном ограничении (4.14в). В том случае, когда используется дополнительная информация о размерности пространств сиг- нала и шума, решениями являются выражения (4.15 в) и (4.19). И наконец, отметим, что требование максимальной разрешающей способности удовлет- воряется при выполнении условия (4.20), которое приводит к оценке (4.21). 4.3.2. Оценка спектра по методу максимума энтропии Для задач сглаживания и прогнозирования требуется найти такой вектор фильтра W, при котором n-й элемент х(<) (обозначим его черезхп(г)) оце- нивается в смысле минимальной средней квадратической ошибки линейной комбинацией остальных N— 1 элементов вектора х (t). Эта задача в совокуп- 69
пости с требованием обеспечения максимальной разрешающей способно ости при условии, что ковариационная матрица имеет структуру (4.10), моожет быть сформулирована в виде следующей задачи оптимизации с ограняиче- ниями: минимизировать о^э = Е W' х(Г)|2 : е} , (4.222а) где R(e) определяется выражением (4.10), максимизировать спектральную разрешающую способность (т.е. е-*'*00)- Ограничение: сглаживание или прогнозирование в точке п 1=W'I„, (4.222 6) где 1п — действительный TV-мерный вектор, состоящий из нулевых элементное, за исключением n-го, равного 1. Решение этой задачи с учетом только ограничения (4.22 б) имеет вид WM3 ~ R(e)~4 (4.223) Подставляя в (4.23) выражение (4.10) для матрицы R(e), получааем WM3=0(«,₽) К 1„ - X Цк, е)М'к1„Мк к= t (4.224) где д(п, е) = 1 - £b(/<,e)|M;in|2 к=1 (4.225) Предположим теперь, что вектор входных данных х(т) состоит из выСтю- рочных отсчетов, равномерно распределенных с интервалом Д как для вре- менной последовательности при анализе спектра частот, так и для простран- ственных выборок сигнала в случае анализа пространственного спектра. Про- цессы в обеих задачах являются стационарными. Под пространственнгёой стационарностью предполагается отсутствие источников излучения в блииж- ней зоне. Это требование сводит данное обсуждение только к задачам оцс-н- ки угловых положений источников. Учитывая эти замечания, а также тто, что x(t~ п) определяется как наименьшая средняя квадратическая оцезн- ка хп (/) =х (t — и), получаем выражение для ошибки оценки в виде t„(t) = x(t — и) — x(t — и) = (4.2С-6) N 1 = x(t - н) + X W?x(t - к) к~О (4.277) для 0<«<7V— 1, где является к-м элементом А'-мерного весового вект>~о- Ра ^МЭ’ а инДекс * обозначает операцию комплексного сопряжения. Максг и- мизации подлежит энтропия (неопределенность) процесса остаточной оши* б- ки ей (t) путем соответствующего выбора вектора W. Предположим, что х (Г* ) моделируется в виде процесса авторегрессии, формируемого с помощь >ю 70
фильтра из белого шума е„ (г), с дисперсией о^э = [I„R 1 (е) 1„] 1. В резуль- тате z-преобразования (4.27) примет вид Е (z) = z"( 1 + Z' Wt z” *W), (4-28) ” \ n=o / k&n Е(г) = ^"У^*г"-кХ(2); (И< = 1), (4.29) к-0 En(z)= A„(z^)X(z). (4.30) Тогда соответствующая оценка спектра мощности по максимуму энтропии для х (t) будет определяться выражением о ' 0nR(g) ‘1J 1 Рмэ(0-щ)- M1(Z-1)|2 z=ejk° (4-31) [i;R(e) 4j 1 ' |W^3D(w)|2 (4.32) »»R(g)~4n |i;R(e) lD(<0)|2‘ (4.33) Выражение для определения к-го элемента вектора D(gj) имеет вид </*(о?) = exp [— jcj(ji — A.)AJ, (4 34) где при анализе частотного спектра со=2л/’. Для пространственного спектраль- ного анализа (4.34) принимает форму dk(to) = схр [—jco(n — k)d], (4.35) где d — расстояние между равномерно распределенными в пространстве элементами антенной решетки; <x> = 2tt/cos((3/c) . Заметим, что процесс оценки спектра мощности по методу МЭ не может быть реализован без временной задержки на п выборочных отсчетов. Это обусловлено особен- ностью процесса формирования сигнала, что иллюстрируется рис. 4.2. Член z-1 представляет операцию единичной задержки, которая является реали- зуемой, а член z — операцию единичного опережения, которая не может быть реализована без осуществления задержки. Действительно, временная задерж- ка неявно присутствует при реализации метода МЭ, при котором требуется, чтобы оценивание матрицы R(e)-1 производилось с задержкой для обеспе- чения усреднения по времени. Заключительный этап сводится к подстановке модифицированной кова- риационной матрицы (4.11 б) в соотношение (4.33), в результате чего полу- чается 71
1 - _ ' k= 1 W) = — d(n, e) (4.36) Модифицированный (с подчеркиванием основных мод) вариант (4.36) по- лучается в виде Рммэ,если принять b (к, е) = 1. Теперь можно обобщить применение оценок РМд (0) и Рмэ (0) на более общий вид вектора сигнала D(0). Очевидно, чтобы значение Рмэ(0) было оценкой частотного спектра (пространственного спектра), необходим пос- тоянный интервал дискретизации Д (d). Тем не менее зто не исключает ис- пользования в общем случае процедуры (4.24) для получения вектора фильтра WM3, обеспечивающего среднюю квадратическую оценку х (t). Более того, выражение (4.32) вполне пригодно в качестве меры ортого- нальности между WM3 и D(gj) . Этот критерий проверки степени ортого- нальности оказывается полезным как при равномерной дискретизации с линейной зависимостью преобразуемой переменной, так и при неравномер- ной. Неравномерная дискретизация такого типа может привести к квадра- тичной зависимости преобразуемой переменной, как, например, при ана- лизе дальности. Для иллюстрации сказанного рассмотрим простой случай, когда 76=1. Нетрудно показать, что в этом случае М| =D(0(,)/\^6 Подстав- ляя это выражение в (4.36), получаем оценку 1 О 1' I - —D(0o)D(0o)' D(0) ^мэ(®) = (4-37) 2 N которая принимает наибольшее значение при 0=0О. На самом деле (4.37) | стремится к бесконечности, когда ©=0О, если подчеркивается модаМ] (т.е. если £>(1, е) = I). Это объясняется тем, что в случае одиночного источника I излучения lim R(e) 1 = 'n - D(0c)D(0o)' = R(oo)"* (4.38) 72
и при 0=00 нетрудно видеть, что вектор сигнала D(0O) находится в нуле- вом пространстве матрицы R(oo) ', обусловливая бесконечную величину отклика в оценке спектра мощности. 4.4. РАЗРЕШАЮЩАЯ СПОСОБНОСТЬ Разрешающую способность процедур, основанных на критериях МД и МЭ, можно проанализировать при большом 0CJ11 и продолжительном времени ус- реднения Т, используя выражение (4.10) для оцененной корреляционной мат- рицы данных. Для одиночного источника гауссовского сигнала при ОСШ=а модифицированная ковариационная матрица будет определяться выражением R(e) = aeD(0o)D(0o)' + 1Л . (4.39) Здесь параметр 0О в зависимости от области применения будет равен частоте сигнала (f), волновому числу (к) или дальности (г). На базе процедур, приведенных в [1,26], можно измерить ширину пика спектральной оценки по уровню 3 дБ для одиночного сигнала, принимаемого на фоне белого шу- ма. Значение 6,при котором ДимдС^о + (^/2)] ^ммд(^о) urn (^/2)] определяется как ширина отклика по уровню 3 дБ для модифицированных процедур МД и МЭ соответственно. Третья оценка РМО ["о + <<V2)J = D[0O + (l)/2)]'R(e)D[0o + (<5/2)] (4.41) называется модифицированной обычной оценкой спектра. Выражение (4.41) получается в результате равномерного взвешивания данных: РмоГ°0 + 0/2)] = Е{I D[0O + (<5/2)]'хД) I2: е\ (4.42) Ширина отклика по уровню 3 дБ рассмотренных оценок спектра представ- лена в табл. 4.1. Результаты измерения дальности относятся к трехэлемент- ной антенной решетке (Л<= 3) с одинаковым межэлементным расстоянием d для анализа как волновых чисел, так и дальности. Ширина отклика 5 ис- пользуется здесь в качестве параметра, характеризующего разрешающую способность метода спектрального анализа для разрешения двух близко рас- положенных спектральных составляющих одинаковой интенсивности. Для одного сигнала в присутствии некорреляционного шума ни один из способов обработки, базирующихся на критериях МД и МЭ, не может дать лучшей (в смысле минимума дисперсии) оценки частоты сигнала (волнового чис- ла, дальности), чем та, которая обеспечивается обычным преобразованием Фурье. В действительности при одном сигнале и ограниченном времени усреднения методы с высокой разрешающей способностью могут давать большую дисперсию оценки, чем обычная оценка Бартлетта [1]. Только в 73
Таблица 4.1. Выражения для ширины отклика по уровню 3 дБ при спектральном ана- лизе с высокой разрешающей способностью Метод анализа Область применения для измерения частоты волнового числа (линейная АР) дальности (TV—3) Модифицированный обычный ts та II г II ® =м 5. г-. 21 !? CM II- z ( r \2 3 - i I n \d sin PJ Модифицированный минимума дисперсии р” { 1 \ //= ni2: [У Z /б" z / r A2 2 V Nea \NtiNJ И м i II- \ ea n \d sin /<J Модифицированный максимума энтропии 2 / 1 \ Nea \NnAj Р = <2: 2 2 Nea Nnd P = 0: /—— 2\ Nea Nml —- ( r Y ea n \d sin pJ случае многих сигналов методы ММД и ММЭ более эффективны, посколь- ку благодаря улучшению разрешающей способности уменьшается состав- ляющая суммарной средней квадратической ошибки, обусловленная смеще- нием. Эти положения иллюстрируются примером в последнем разделе главы. Наконец, следует отметить зависимость параметра 5 от ОСШ=д для каждо- го из трех указанных методов спектрального анализа. Ширина отклика 5 при обычном методе обработки не зависит от ОСЫ, тогда как при исполь- зовании критериев МД и МЭ значение этого параметра изменяется обратно пропорционально VОСШ или ОСШ соответственно. 4.5. ВЫЧИСЛЕНИЕ МОДИФИЦИРОВАННЫХ СПЕКТРАЛЬНЫХ ОЦЕНОК Возможны два подхода к реализации устройств оценки, основанных на использовании модифицированных критериев минимума дисперсии и мак- симума энтропии [27]. Первый из них базируется на стохастическом гра- диентном алгоритме поиска для адаптивной оценки К наибольших собствен- 74
ных значений и соответствующих собственных векторов. При этом подходе выходные функции ’’модального” фильтра Ук(1) = M*.(Z)x(r),£= 1,2,. . ,К, (4.43) используются с целью максимизации среднего значения оценки собствен- ного числа [8]: 1Л(О|2 = М^)х(Г)х'(г)М* . (4.44) Это достигается подстройкой оценки собственного вектора в момент вре- мени t, т.е. Мд.(г), где Л = 1, 2, . . . , К, для максимизации (4.44) с учетом ограничений, обусловленных ортогональностью; M*(f)Mm(z) = ёкт , 1 <Л, т<К, (4.45) и нормированностью; I |2 = 1, 1 <7С. (4.46) Этот подход по вычислительной сложности предпочтительнее второго (о ко- тором будет сказано далее), поскольку как объем памяти, так и число опе- раций умножения-суммирования пропорционально только произведению NK. Однако эффективность устройства такого градиентного поиска сущест- венно ухудшается с уменьшением ОСШ, что можно объяснить шумом в це- пи обратной связи. При втором подходе осуществляется прямое вычисление оценки (4.9) ковариационной матрицы данных R. Используя одну из известных программ (например, EIGCII [19]), можно определить все N собственных векторов и собственных значений матрицы R. С другой стороны, поскольку размер- ность N может быть большой (а размерность пространства сигналов К обыч- но меньше Д'), численными методами можно получать только первые К соб- ственных значений и собственных векторов R. Тем не менее объем памяти и вычислительная сложность растут пропорционально N2. В качестве одной из вариаций метода прямых вычислений оценка R мо- жет определяться по формуле (4.12). Оценка диагонального элемента и21у может быть получена, а затем вычтена из матрицы R(e). В результате мат- рица P(e)=R — о21Л,- (4.47) может быть разложена по методу Холецкого. Такое разложение исполь- зовалось в выражении (4.13), которое, в свою очередь, применялось при оценке спектра на основе критериев МД и МЭ в виде R(e=oo)-* = _L[[ ССС'СГ’С']. (4.48) о Хотя процедура несложна, возникают определенные трудности при оценке и вычитании диагональной матрицы о21дл Один из алгоритмов, реализую- щих указанную процедуру, приведен в [18]; согласно этому алгоритму 75
осуществляется итеративное вычитание составляющей из диагональных эле- ментов матрицы R до тех пор, пока результирующая матрица не станет сингулярной. Полученная таким образом сингулярная матрица использует- ся в качестве оценки матрицы Р, затем определяется ее ранг и выполняется разложение Холецкого. В действительности оценка R, полученная при конеч- ном времени усреднения, не будет содержать собственные значения = = о2 при К +1 <7V, как в модели (4.12). Подобная ошибка моделирования приведет к преждевременному окончанию упомянутого процесса. Результа- том являются более слабое подчеркивание основных мод и значительная вычислительная сложность из-за большой размерности задачи разложения (число столбцов в матрице С слишком велико, а составляющие сигнала недостаточно разнесены). Последний вариант метода прямого вычисления сводится к оценке орто- гонального дополнения {Мд; :к=К+[, К+2,... ,7V} к основным модам {Мд :к = 1,2,... ,К] . Эта оценка основывается на соотношении л ^MkMi = IN= (4.49 а) к — t = *£ М* + к =Х+1 м* М* (4.49 б) или = £ М,М'. fc = 1 к = к +1 (4.50) При подчеркивании основных мод подстановка (4.11 б) в (4.50) дает 1 / К \ I х R(e= о,)-* = - I„- £m,mU=- £ MfcMi (4.51) а \ к=1 / к —К+1 и модифицированные оценки по критериям МД и МЭ могут быть описаны выражениями [16—18,28] ^ммд(6)= К » (4.52) £ |D(0)'MJ2 = 1 к = К+ 1 = 1 ^ммэ(О) = (4-53) 2 Приведем интуитивное объяснение соотношений (4.52) и (4.53). Векторы Му., входящие в них, располагаются в векторном подпространстве, ортого- нальном подпространству, порожденному основными модами. Поэтому, когда вектор D(0) располагается в подпространстве сигнала, выполняет- ся соотношение M^D(0) =0 при К+ 1 C/V и значения функций, определяе- мые (4.52) и (4.53), могут стать (по крайней мере, теоретически) бесконеч- 76
ними. Очевидно, что таких бесконечных значений не может быть из-за невоз- можности точной оценки основных мод или их ортогональных дополнений при конечном времени усреднения. Этот вопрос рассматривается более пол- но в разд. 4.6. 4.6. ОЦЕНИВАНИЕ ДАЛЬНОСТИ С ВЫСОКОЙ РАЗРЕШАЮЩЕЙ СПОСОБНОСТЬЮ При пассивном методе обнаружения источника сигнала с использованием линейной антенной решетки возникает задача оценки двумерного спектра мощности (по дальности и углу визирования), получаемого в результате обработки выборки выходных сигналов решетки объема Т. Здесь рассматри- ваются три спектральные оценки: 1) на основе преобразования с равномер- ным взвешиванием и усреднением, названным здесь фокусировкой луча (ФЛ) [29, 30]; 2) по методу МД; 3) по методу МЭ [10]. Вектор антенной решетки, формирующий сфокусированный на источник сигнала луч, D(0) = = П(О при известных частоте f и утле визирования р определяется соотно- шением (4.6 6). На рис. 4.3 показана схема такого преобразующего устрой- ства. Устройства оценки по критериям МД и,МЭ отличаются только опера- циями над оценкой корреляционной матрицы R. Основное внимание в этом разделе уделено определению спектральной оценки дальности с учетом того, что аналогичные характеристики эффектив- ности можно получить и для случая измерения угловой координаты. Спект- ральные оценки дальности методами ФЛ, МД и МЭ анализируются в срав- нении с их модифицированными вариантами, в которых используется раз- ложение на основные моды (МФЛ, ММД и ММЭ). При этом наибольший интерес представляют результаты сравнения средней квадратической ошиб- ки оценки дальности с ее нижней границей при наличии как одного, так и двух источников сигнала. Для одиночного гауссовского сигнала на фоне пространственно некор- релированного изотропного гауссовского шума с нулевым средним значе- Рис. 4.3. Схема устройства с фокусировкой луча для оценки дальности г,, источника сигнала 77
нием и дисперсией о2 минимальная граница Крамера—Рао для дисперсии оценки дается формулой [31 ] , (2л\2 <т2 1 ( Д \ ~| 1 д2 = 2N — ) 4----------- -- у ( У О!2 - Nd2 Г , (4.54) \ Л / И2 1 + N(a2/a2) \пе, J J , где N — число элементов антенной решетки; X - длина волны сигнала; о2/о2 — отношение сигнал-шум (ОСШ) на выходе элемента антенной ре- шетки; Т — число выборок на интервале наблюдения; г — х„ cos р = (г2 + х2 - 2x„r cos Р)'12 ’ (4‘55) 1 N <4-56) В качестве простого примера для моделирования линейной антенной решет- ки были выбраны следующие параметры: г =4000Х; (3 = 90°; W=3. Рас- сматривалась эквидистантная решетка с межэлементным расстоянием d = 75Х. Зависимости средней квадратической ошибки оценки дальности от ОСШ при выбранных параметрах для различных спектральных оценок дальности представлены на рис. 4.4. Необходимо отметить, что действительная эффек- тивность выше эффективности, характеризуемой нижней границей. Это обус- ловлено двумя причинами. Во-первых, как для получения результата (4.54), Рис. 4.4. Зависимость средней квадратической ошибки оценки дальности от ОСШ для различных устройств спектральной оценки 78
так и для построения устройств обработки применялась модель комплекс- • ного гауссовского сигнала (т.е. с некогерентной огибающей), тогда как при моделировании использовался когерентный сигнал фиксированной частоты. Во-вторых, выбиралась схема оценки со строб-импупьсами дальности. Из этого следует, что результаты моделирования будут согласовываться с ожи- даемыми значениями нижней границы либо при большом ОСШ, либо при значительном времени усреднения Т. При малых ОСШ и непродолжительном времени усреднения дисперсия оценки дальности стабилизируется. Этот эф- фект объясняется тем, что строб-импупьсы дальности располагаются на участке, где возможно появление пика в спектре, так, чтобы исключались аномальные ошибки при высоком ОСШ и большой длительности Т. При длительности строб-импульса, равной q, низком ОСШ или малой продол- жительности Т гистограмма оценки становится практически постоянной, а результирующее значение дисперсии оценки приближается к q2/12. В [32] рассматривается аналогичная проблема, когда сгроб-импульсы дальности служат для предотвращения выбора боковых лепестков в функции взаим- ной корреляции. Использование строб-импульса дальности в данном случае обусловлено тем, что расположение истинного пика в функции отклика инвариантно к X. Из этого следует, что на основе зависимости отклика от частоты можно произвести разрешение побочных пиков в спектре. Наибо- лее важный вывод из результатов моделирования, представленных на рис. 4.4, состоит в том, что каждое устройство оценки с высокой разрешающей способностью обеспечивает такую же среднюю квадратическую ошибку, как и система с фокусировкой луча. Исключение составляет устройство обработки, обеспечивающее максимум энтропии. Устройства МЭ и ММЭ оценки при высоком ОСШ имеют меньшую эффективность, приближаю- щуюся к эффективности при гауссовском сигнале, хотя фактически присут- ствует когерентный сигнал. По мере уменьшения ОСШ эффективность МЭ оценки приближается к эффективности оценок ФЛ и МД. Это согласуется с предположением об относительной эффективности МЭ оценки [33]. Для оценки способности разрешения двух пиков в спектре мощности, обусловленных сигналами, используются две метрики: ширина пика 6 отк- лика от одного источника на уровне 3 дБ от максимального значения, как показано на рис. 4.5, и средняя квадратическая ошибка измерения даль- ности одного источника сигнала в присутствии другого. В табл. 4.1 приведе- ны значения ширины пика в спектре мощности по уровню 3 дБ для различ- ных рассматриваемых методов. Эффективный коэффициент модификации е для оценки дальности является функцией ОСШ и времени наблюдения Т. На рис. 4.6 представлены зависимости ширины основного пика от ОСШ для рассмотренных ситуаций. Для сравнения на рис. 4.6,а показаны теоре- тические данные для МД и МЭ оценок, свидетельствующие о хорошем сов- падении теории и эксперимента при высоком ОСШ (> -3 дБ) и большом времени усреднения (Т^ 25). Возможности повышения разрешающей способности при использовании модифицированных оценок ММД и ММЭ, как убедительно показано на рис. 4.6, зависят как от времени усреднения, так и от ОСШ. В табл. 4.2 пред- 79
Рис. 4.5. Типичная форма спектра на выходе устройства оценки методом ФЛ. Дальность источника сигнала гв =4000Л, диапазон дальности (3000 -5000) Л ставлены эмпирически найденные значения коэффициента модификации дан оценок МД и МЭ в зависимости от этих двух параметров. Из данных табл. 4.2 видно, что разрешающая способность увеличивается с ростом Т. Более того, данные говорят о том, что потенциальные возможности оцен- ки МД выше, чем оценки МЭ. Однако абсолютные значения ширины пика по уровню 3 дБ для оценок МЭ и ММЭ оказываются еще несколько меньше, чем для оценок МД и ММД соответственно. Наблюдаются несколько мень- шие значения средней квадратической ошибки при оценках МД; и ММД, Таблица 4.2. Коэффициент модификации для оценок МД и МЭ (г =2000 Л) т Коэффициент модификации оценка МД оценка МЭ ОСШ-3 ОСШ-6 ОСШ 9 ОСШ-3 ОСШ-6 ОСШ-9 4 1,68 1,74 1,74 1,16 1,39 1,29 25 10,12 12,96 6,76 5,2 4,86 4,0 400 156,25 125,0 90,25 18,66 12,33 9,0 Рис. 4.6. Зависимости ширины пика 6 в спектре мощности, измеренные на уров- не 3 дБ, от ОСШ: а) Т = 400; б)Т = 25 -+ 80
81
чём при соответствующих оценках МЭ. Наконец, важно отметить, что оба типа модифицированных оценок позволяют обеспечить очень высокую разрешающую способность при достаточно большом времени усреднения. Это справедливо даже для уровней ОСШ < - 3 дБ. Для анализа эффективности оценки дальности при наличии двух источ- ников сигнала обозначим их дальности как rt и г2. Будем считать, что х(г) является /V-мерным вектором антенной решетки при числе источников J-2. Предположим, что сигналы источников и шум не коррелированы. Ковариационная матрица вектора сигнала х(/) определяется выражением R = Е[х(/)х(/)'] = (4.57) = ^[aDfr^Dfr,)' + (1 - a)D(r,)D(r2)'J + a2\N , (4.58) где 0<«< 1 характеризует относительную мощность источников сигналов. Поскольку сигнал х(г) полагается комплексным, гауссовским с нулевым средним значением, плотность вероятности х(/) имеет "вид ^(х(П/гн г2) =-ЙТБ7 ехР Г x</rR (4-59) 7Г | К| Нижняя граница дисперсии для несмещенной оценки вектора дальности г определяется cov(r) =J~I (г), где J (г ) - информационная матрица Фише- ра размера 2X2. Элемент // матрицы J (г ) определяется выражением Р2Цх/г) <>, ГГ, где т /.(х/г) = — MN log л — N log | R| — У x(/)'R 'x(z). n 1 Используя равенство (4.60) (4.61) (4.62) ^Цхл) t’r, di j = tr R * R drt можно получить соотношения для J11; J22 и Ji2, являющиеся функциями фокусирующих векторов, ОСШ, числа элементов антенной решетки и объ- ема выборки. Дш большого ОСШ и <^rz- (/ = 1,2) [3,34] хМа2 J12 — 0 , DV (4.64) I82
где / = г- ~ Х„ cos /А >/гГ+ Xl - 2г, Х„ cos //, и = I, 2, ...,/V; /=1,2, (4-65) (4.66) (4-67) Остальные составляющие определяются нижней границей дисперсии при одиночном источнике сигнала. Нижними границами дисперсии оценки Г\ и г2 являются ./у/ и У 22 соответственно. Эти выражения позволяют понять характер изменения эффективности при оценке дальности нескольких ис- точников сигналов. Например, если д=0, то нижние границы дисперсии для г, и г2 оказываются такими же, как в случае одиночного источника сиг- нала, и определяются выражением (4.54). Если |g| /0, то можно показать, что нижние границы дисперсии для гд и гг будут больше. На самом деле, и J22 являются монотонно возрастающими функциями |д|. В качестве иллюстрации эффективности методов с высокой разрешающей способностью при оценке дальности двух источников сигналов на рис. 4.7 по- казано типичное семейство спектральных характеристик, полученное при Рис. 4.7. Типичные формы спектров для двух источников сигналов, дальности ко торыхг, =3500Хиг2 =4000Х; ОСШ =9 дБ; Г=100; N=5; d=15X 83
моделировании. При моделировании полагалось, что ОСШ =9 дБ; /’=100; 7V=5; d = 15X; = 3500Х и г2=4000Х. В верхней части рисунка для обоих источников сигнала показаны интервалы среднего квадратического откло- нения в оценке дальности, центрированные относительно истинного значе- ния дальности каждого из источников. Как видно из рис. 4.7, форма выход- ных сигналов показывает возможность разрешения двух источников сиг- налов, за исключением случая е = 1 для оценок ФЛ, МД и ММД. При моди- фицированных оценках используются две основные моды (К =2), для ко- торых оцениваются собственные значения и собственные векторы. Уровень отклика на дальности г2 = 4000Х ниже, чем на /д = 35ООХ, так как на даль- ности г2 сказывается влияние уменьшения разрешающей способности, в ре- зультате чего точечный источник ведет себя как протяженный с той же мощностью. Очевидно, что модифицированные оценки при е=°° демонст- рируют высокую разрешающую способность. Невозможность разрешения двух источников сигналов с помощью оценок ФЛ, МД и ММД при е = 1 обус- ловливается критическим значением ошибки смещения от 200 до ЗООХ и полностью искаженным видом спектра. 4.7. ЗАКЛЮЧЕНИЕ Представлены две процедуры спектрального анализа с высокой разрешаю- щей способностью, основанные на использовании широко известных крите- риев минимума дисперсии и максимума энтропии. Эти процедуры демонст- рируют более высокую и ограничиваемую только временем наблюдения раз- решающую способность, чем процедуры оценки МД и МЭ. Наличие только такого ограничения должно существенно повлиять на применение метода спектрального анализа в тех случаях, когда основную роль шрает ошибка смещения, а не случайные флуктуации оценки. СПИСОК ЛИТЕРАТУРЫ [1] R. Т. Lacoss, “Data Adaptive Spectrum Analysis Methods,” Geophysics, 36(4):661-675 (Aug. 1971). [2] J. Capon, “High-Resolution Frequency-Wavenumber Spectrum Analysis,” Proc. IEEE, 57: 1408-1418(1969). [3] N. L. Owsley and G. Swope, “High Resolution Range Estimation with a Linear Array,” Proc. IEEE EASCON '82, Washington, D.C., Sept. 1982. [4] N. L. Owsley, “An Overview of Optimum Adaptive Control in Sonar Array Pro- cessing,” in K. S. Narendra and R. V. Monopoli, eds., Applications of Adaptive Control, Academic Press, New York, 1980, pp. 131-164. [5] J. P. Burg, “Maximum Entropy Spectrum Analysis,” 37th Annu. Meet. Soc. Explor. Ceophys., Oklahoma City, Okla., 1967. [6] J. P. Burg, “The Relationship between Maximum Entropy and Maximum Likelihood Spectra," Geophysics, 37(2) :375-376 (Apr. 1972) [7] A. Vanden Bos, “Alternative Interpretation of Maximum Entropy Spectral Analysis,” IEEE Trans. Inf. Theory (Corresp.), 77-/7:493 494 (July 1971). [8] N. L. Owsley, “Adaptive Data Orthogonalization,” Proc. IEEE ICASSP, Tulsa, Okla., Apr. 1978, pp. 109-112. 84
[9] N. L. Owsley, “Modal Decomposition of Data Adaptive Spectral Estimates,” Yale у Univ. Workshop Appl. Adaptive Syst. Theory, K. S. Narendra, ed., May 1981. [10] N. L. Owsley and J. F. Law, “Dominant Mode Power Spectrum Estimation,” Proc. IEEE ICASSP, Paris, Apr. 1982. [11] D. Tufts and R. Kumaresen, “Data-Adaptive Principal Component Signal Processing,” Proc. 1980 IEEE CDC, Albuquerque, N.M., Dec. 1980. -K [12] L. J. Griffiths, “A Continuously Adaptive Filter Implemented as a Lattice Structure,” Proc. IEEE ICASSP, Hartford, Conn., 1977. [13] W. S. Liggett, “Passive Sonar; Fitting Models to Multiple Time Series,” in J. W. R. Griffiths et al., eds., Signal Processing, Academic Press, 1973. [14] N. L. Owsley, “A Recent Trend in Adaptive Spatial Processing for Sensor Arrays: Constrained Adaptation,” in J. W. R. Griffiths, et al., eds., Signal Processing, Academic Press, New York, 1973. [15] H. Mermoz, “Complementarity of Propagation Model Design with Array Processing,” in G. Tacconi, ed., Aspects of Signal Processing, D. Reidel, Dordrecht, The Netherlands, 1977. [16] A. Cantoni and L. Godara, “Resolving the Directions of Sources in a Correlated Signal Field Incident on an Array,” J. Acoust. Soc. Am., 67(4):1247-1255 (Apr. 1980). [17] G. Bienvenu and L. Koop, “Adaptive High Resolution Spatial Discrimination of Pas- sive Sources,” in L. Bjorno, ed., Underwater Acoustics and Signal Processing, D. Reidel, Dordrecht, The Netherlands, 1981. [18] R. Klemm, “High-Resolution Analysis of Nonstationary Data Ensembles,” Signal Pro- cessing: Theories and Applications, Elsevier-North Holland Publishing Co., Oct. 1980, pp. 711-714. [19] International Mathematical and Statistical Libraries Inc., Eigensystem Analysis, 9th ed., Vol. 2, IMSL, Houston, 1982, Chap. E. [20] D. Tufts and R. Kumarasen, “Singular Value Decomposition and Spectral Analysis,” Proc. IEEE ASSP Workshop Spectral Anal., McMaster University, Hamilton, Ont., Aug. 1981. [21] D. Johnson, “Improving the Resolution of Bearing in Passive Sonar Arrays by Eigen- value Analysis,” Proc. First ASSP Workshop Spectral Anal., McMaster University, Hamilton, Ont., Aug. 1981. [22] W. Gabriel, “Adaptive Superresolution of Coherent RF Spatial Sources,” Proc. First ASSP Workshop Spectral Anal., McMaster University, Hamilton, Ont., Aug. 1981. [23] S. Pasupathy and A. N. Venetsanopoulos, “Optimum Active Array Processing Structure and Space-Time Factorability,” IEEE Trans. Aerosp. Electron. Syst., AES-10(6):77O- 778 (Nov. 1974). [24] Special Issue on Time Delay Estimation, Part II, Trans. IEEE Acoust. Speech Signal Process., ASSP-29(3) (June 1981). [25] L. Ng and Y. BarShalom, “Time Delay Estimation in a Multitarget Environment,” Proc. 21st IEEE CDC, Orlando, Fla., Dec. 1982. [26] О. B., Gammelsaeter, “Adaptive Beamforming with Emphasis on Narrowband Im- plementation,” in L. Bjbrno, ed., Underwater Acoustic and Signal Processing, NATO ASI Series C, D. Reidel, Dordrecht, The Netherlands, 1981, pp. 307-326. [27] N. L. Owsley, “Adaptive Data Orthogonalization,” Proc. IEEE ICASSP, Tulsa, Okla., Apr. 1978, pp. 109-112. 85
[28] R. Schmidt, “Multiple Emitter Location and Signal Parameter Estimation,” Proc. RADC Spectral Estimation Workshop, Rome, N.Y., 1979. [29] G. C. Carter, “Time Delay Estimation for Passive Sonar Signal Processing,” IEEE Trans. Acoust. Speech Signal Process., ASSP-29(3):463-470 (June 1981). [30] N. L. Owsley and G. R. Swope, “Time Delay Estimation in a Sensor Array,” IEEE Trans. Acoust. Speech Signal Process., ASSP-29(3):5l9-523 (June 1981). [31] W. J. Bangs and P. Schultheiss, “Space-Time Processing for Optimal Parameter Esti- mation,” in J. W. R. Griffiths et al., eds., Signal Processing, Academic Press, New York, 1973, pp. 591-604. [32] J. P. fanniello, “Threshold Effects in Time Delay Estimation Using Narrowband Sig- nals,” IEEE ICASSP 1982, Paris, May 3,1982, pp. 375-379. [33] A. B. Baggeroer, “Confidence Intervals for Maximum Entropy Spectral Estimates,” in Aspects of Signal Processing, Part I, NATO Advanced Study Institute, D. Reidel, The Netherlands, 1976. [34] G. Swope, Ph.D. thesis, Rensselaer Polytechnic Institute, Aug. 1982. 5 ПРИНЦИПЫ ОБРАБОТКИ СИГНАЛОВ АНТЕННЫХ РЕШЕТОК, ОБЕСПЕЧИВАЮЩИЕ ВЫСОКУЮ РАЗРЕШАЮЩУЮ СПОСОБНОСТЬ Г. Бьенвеню1, А. Мермо2 5.1. ВВЕДЕНИЕ Одной из главных функций подводных пассивных приемных систем яв- ляется определение числа источников сигналов, а также параметров этих источников. Основным способом при этом является пространственная обработка сигналов, позволяющая производить разрешение источников излучения, используя их пространственные характеристики. Традиционный метод анализа сигналов в системах с антенными решетками реализуется на базе диаграммообразующей схемы; с целью повышения эффективности устройств этого типа были созданы адаптивные диаграммообразующие схемы. Этот метод обеспечивает увеличение КНД антенной решетки, который асимптотически ограничивается лишь отношением сигнал-шум на выходе антенного датчика. Недавно появились более эффективные методы, получив- шие название методов с высоким разрешением. Увеличение эффективности этих методов по сравнению с предшествующими методами обработки осно- вано на учете дополнительных предположений относительно среды распрост- ранения. Тем не менее эти методы позволяют вводить свободные параметры для модели среды распространения, что увеличивает их гибкость. Теория адаптивной обработки сигналов антенных решеток как клас- сическая теория построения диаграммообразующих схем базируется только 1 Фирма Thomson-CSF, Кань-сюр-Мер, Франция. 2 Фирма Telecommunications, Си-Фур-ле-пляж, Франция.
на информации об источниках излучения и условиях распространения излу- ченных сигналов. При этом источники сигналов полагаются точечными. Сигналы от таких источников, пройдя через антенную решетку, сохраняют идеальную пространственную когерентность. В общем случае форма волно- вого фронта (после его преобразования элементами решетки} является известной функцией координат (угловых и дальности) источника сигнала. Предполагается, что передаточная функция антенного элемента также пол- ностью известна. Это последнее условие характеризуется вектором источ- ника сигнала D(/)- Пусть вектор г (Г) является вектором, представляющим совокупность сигналов, принятых N антенными элементами. Этот вектор будет характеризоваться также матрицей-столбцом |-+(t) = 1Л(Г), Г„(О, • rN(t)], (5.1) где г + (Л — транспонированный и комплексно-сопряженный вектор; ги(г) — сигнал, принятый и-м элементом решетки. Корреляционная матрица приня- того сигнала определяется выражением С(т) = £[г(/)г+(/ + т)], (5.2) где £(-) — математическое ожидание. Матрица взаимных спектральных плотностей (МВСП) принятого сигнала обозначается через Г(Л- Известно, что г (Л является преобразованием Фурье матрицы С (г). С учетом сде- ланных замечаний МВСП для одиночного источника обладает вполне опре- деленными свойствами, которые можно выразить следующим соотноше- нием: r(/) = y(/)D(/)D+(/), (5.3) ще D(f) - вектор, определяемый передаточными функциями каждого элемента антенной решетки для сигнала источника. Эта совокупность пере- даточных функций нормируется так, чтобы значение квадрата модуля век- тора D(/) было равно TV; 7(f) является спектральной плотностью сигнала, Принятого от источника. Вектор О(Л характеризует форму волнового фронта и может быть вычислен, если априорно задано угловое положение в источника сигнала. Ранг матрицы Г(Л равен единице, что соответствует полной пространственной когерентности. Последнее предположение сос- тоит в том, что источники сигналов взаимно не коррелированы и не кор- релированы с шумовым фоном. С учетом сделанных замечаний общая МВСП выходных сигналов элемен- тов антенной решетки может быть записана в виде к г (/) = Гш (Л + Z 7. (/)D, (/)D;+ (/) , (5.4) i= 1 где Г (/) — МВСП шума; К — число элементов антенной решетки. Методы, обеспечивающие высокую разрешающую способность (ВРС), требуют для своей реализации ряда предположений, касающихся харак- теристик среды распространения. В частности, всегда имеется некоторая информация о пространственной когерентности фонового шума. В резуль- 87
тате учета такой информации эффективность систем с ВРС выше эффектив- ности адаптивных антенных решеток. Вначале рассмотрим основные прин- ципы работы систем с ВРС при весьма существенных ограничениях, а затем покажем, как эти принципы можно распространить на более широкий круг задач. 5.2. ОСНОВНЫЕ ПРИНЦИПЫ МЕТОДОВ, ОБЕСПЕЧИВАЮЩИХ ВЫСОКУЮ РАЗРЕШАЮЩУЮ СПОСОБНОСТЬ Основными предположениями при реализации методов ВРС являются: 1) для источников сигналов те же, которые уже использовались для адап- тивных антенных решеток и были рассмотрены во введении с дополнитель- ным условием: число источников К должно быть меньше числа элементов N антенной решетки; иными словами, сложность антенной решетки долж- на соответствовать сложности среды распространения; 2) для фонового шума отсутствие пространственной когерентности, т. е. МВСП шума будет определяться как Гш(/)=оШ (5-5) где o(f) — неизвестная спектральная плотность шума; I — единичная матри- ца пространственной когерентности шума. Тогда общая МВСП будет определяться выражением к <N г (Л = О (f) I + гс (Л = о (f) I + Z у,- и )D, (./ )DЛ (Л (5.6) i — 1 5.2.1. Разложение матрицы взаимных спектральных плотностей В основе систем с ВРС лежит анализ собственных векторов и собственных значений МВСП. Собственный вектор V(f) и соответствующее ему собствен- ное значение Л (Л удовлетворяют соотношению K<N T(/)V(/) = a(/)V(J) + £ МЛОДЛОГ (/)¥(/) = Z(/)V(/). (5.7) i = i Отметим следующие важные факты: 1. Матрица Г (Л имеет К собственных векторов V, (/) (/ е [1, А"]), кото- рые также являются собственными векторами МВСП сигналов, т. е. Гс (f ). Они соответствуют К ненулевым собственным значениям Xcz-(/) матрицы ГС(У), характеризуемой рангом К. Соответствующие собственные значения определяются выражением Ш) = ЛЛЛ + лл- Эти К собственных векторов формируют некоторый базис в /С-мерном подпространстве, порожденном К векторами источников сигнала Ц- (/); указанное подпространство будет называться подпространством сигналов. Можно записать два фундаментальных соотношения °.(Л = Х«дуДЛ, (5.8) ;=1 88
f у,( Л D.( Л D? (/) = £ [2,(Л - <т(/)]V + (/)¥,-(/). (5.9) Г/ 2. Матрица Г (/') имеет N—K собственных векторов ¥;-q(/) (z G [/С + 1, TV]), ортогональных всем предыдущим векторам и всем векторам источни- ков сигналов, т.е. ¥;+о(/)Ос(Л = 0, »е[К +(5.10) Соответствующие собственные значения, обусловленные только шумом, равны o(f) и, очевидно, меньше любого собственного значения, соответ- ствующего одновременному присутствию сигнала и шума. В свою очередь, йи N—K собственных векторов формируют другой базис, который опре- деляет ортогональное (к подпространству сигналов) подпространство шума, -и 5.2.2. Методы, обеспечивающие высокую разрешающую способность 1 Методы ВРС базируются на следующих наблюдениях. 1. Зная собственные значения МВСП, можно определить: а) число источников сигналов, равное разности между числом элементов антенной решетки и числом равных наименьших собственных значений; б) подпространство сигналов и соответствующее ортогональное подпрост- ранство путем разделения собственных векторов на две группы: не соответ- ствующие и соответствующие этим наименьшим собственным значениям. Следует отметить, что для получения этих результатов требуются только предположения о пространственной некогеррентности шума и когерентности сигналов. 2. Координаты источников сигналов можно определить, выбирая либо подпространство сигналов (соотношения (5.8), (5.9)), либо ортогональное подпространство (формула (5.10)). В обоих случаях используется вектор модели источника сигнала D(/, 0), где угол 0 характеризует положение источника. Этот вектор удовлетворяет принятым предположениям. Если при этом используется подпространство сигналов, то восстанавливается МВСП сигналов, описываемая выражением к Еи,(л-^/)^(/)¥,+ (л, (5-и) I- 1 где о(/) определяется одним из наименьших собственных значений Г (Л- Параметры источника сигнала 0, и yz- (/) можно получить из уравнения [1,2] к к Z [МЛ - Л./)]¥( (./)¥ + (/) = £ у, ( /)!)(/; 0,)D Ч/, 0,) • (5-12) i-l i=l Следует отметить, что классические методы типа общепринятых для форми- рования диаграммы направленности [3] (в частном случае источников с ортогональными векторами), методы максимального правдоподобия и максимума энтропии могут быть модифицированы так, что в них будут использоваться только собственные векторы из подпространства сигналов 89
[4]. Если исходным является ортогональное подпространство [5, 6], то ко- ординаты источников сигналов определяются по проекции вектора модели источника сигнала на это ортогональное подпространство G(0) = £ |V^U)D(/.e)|2. (5.13) i - к +1 При изменении угловой координаты 0 функция G (0) обращается в нуль каждый раз, когда 0 соответствует угловой координате источника сигнала 0,- Нули G(0) определяют угловые координаты источников сигналов. Зная их, можно определить и спектральные плотности [7]. 5.2.3. Практическое использование оценки матрицы взаимных спектральных плотностей Рассмотренные ранее свойства, безусловно, лишь асимптотически при- ближаются к реальным, поскольку на практике можно получить лишь оцен- ку МВСП принятого сигнала: Г(/). Для нахождения действительного зна- чения Г(/) потребуется бесконечное время (и полная стационарность). Поэтому возможно получить только оценки параметров источников сигна- лов. На практике N—K наименьших собственных значений не являются стро- го одинаковыми. Поэтому решение о числе источников или, что эквивалент- но, о размерности подпространства сшналов и его ортогонального допол- нения оказывается прерогативой теории обнаружения. В работе [8] было показано, что при предположении, что действительные сигналы являются гауссовскими, на основе обобщенного отношения правдоподобия можно сформулировать тест для определения числа источников сигналов. В осно- ве этого теста лежат только собственные значения Г (f) оценки максималь- ного правдоподобия матрицы Г (/'). Было показано также, что свойства, характеризующие Г(/~), остаются справедливыми и для ее оценки Г(/'). В частности, соотношения (5.8) — (5.10) остаются справедливыми, когда 7/(/), Dz-(f) и o(f) соответственно заменяются их оценками максимального правдоподобия и когда Xz-(/), Vz- (f) и V,-0 (f) заменяются собственными значениями и собственными векторами оценки МВПС Г (/'). 5.2.4. Основное свойство метода, обеспечивающего высокую разрешающую способность Разделение данных антенной решетки на два подпространства (подпрост- ранство сигналов и его ортогональное дополнение) определяет основное достоинство метода ВРС, а именно: разрешающая способность больше не ог- раничивается отношением сигнал-шум 7Z (f) /о (f), как это имеет место в адаптивной антенной решетке. Разрешающая способность возрастает с уве- личением времени наблюдения до бесконечности. Поэтому асимптотически по мере увеличения времени усреднения два источника сигнала могут быть разрешены, как бы близко они не находились и как бы слабы (по сравне- нию с фоновым шумом) не были их сигналы. Это свойство иллюстрирует- 90
Б-'(е) Рис. 5.1. Зависимости выходной спектральной плотности уд (использование ан- тенной решетки) и значений функции G“‘ (в) (метол ортогонального подпрост- ранства) от угла визирования для двух источников: а) Р —80; б)Р=200; в)Р = 400 ся на рис. 5.1, где показаны результаты моделирования. Приемной антенной является линейная 12-элементная эквидистантная решетка. Два источника сигнала бесконечно удалены от антенны и имеют угловые координаты 0, рав- ные 0 и —5,3° соответственно. Для обоих источников ОСШ = 0 дБ. Посколь- ку используется оценка МВСП, функция G(0), определяемая выражением (5.13), дает в направлениях на источники сигналов точки минимума, а не нули. Оценкой МВСП является r(./) = i £х,(./)Х+(./), (5.14) ' < = 1 где Xz- (/’) — дискретное преобразование Фурье вектора входного сигнала г (Г), вычисляемое для последовательных промежутков времени длитель- ностью Т. Поэтому время наблюдения равняется РТ. Зависимости спект- ральной плотности выходных сигналов антенной решетки уд и значений функции С"1 от угловой координаты в представлены на рис. 5.1 (функция G’-1 (в) имеет пики в тех точках, в которых G(0) имеет минимумы). Преж- де всего можно заметить, что применение адаптивной антенной решетки не обеспечивает разрешения этих двух источников сшналов, тогда как метод с использованием ортогонального (к сигналам) подпространства эту зада- чу решает. Более того, очевидно, что возможности разрешения при исполь- зовании функции G(0) улучшаются с увеличением времени наблюдения, в то время как выходные характеристики адаптивной антенной решетки остаются неизменными. Физические ограничения ’’бесконечного” увеличения разрешающей спо- собности в таких системах с ВРС обусловлены неполнотой информации о флуктуациях как пространственной когерентности фонового шума, так и формы волнового фронта источника сигнала. В следующем разделе будет показано, каким образом можно более гибко подходить к указанным здесь ограничениям, с тем чтобы расширить область применения систем с ВРС. 91
5.3. ОБОБЩЕНИЯ МЕТОДОВ, ОБЕСПЕЧИВАЮЩИХ ВЫСОКУЮ РАЗРЕШАЮЩУЮ СПОСОБНОСТЬ Первая задача, которую необходимо решить для реализации методов ВРС, заключается в выделении подпространства сигналов и ортогональ- ного ему подпространства, поскольку именно с этим связаны потенциаль- ные возможности ВРС. Однако выделение этих подпространств основано на отсутствии пространственной когеррентности фонового шума. Поэтому необходимо ослабить это ограничение. После выделения подпространств наилучшим возможным способом встает вторая задача определения положения источников сигналов. Для ее решения необходимо иметь модели волнового фронта, характеристики которых были бы наиболее близки к реальным. 5.3.1. Выделение подпространства сигналов и ортогонального подпространства. Моделирование пространственной когерентности фонового шума (ПКФШ) Влияние ПКФШ. В реальных условиях работы антенной решетки фоно- вый шум на выходах двух элементов решетки может быть коррелирован- ным. Вследствие этого их МВСП не является единичной. В наиболее общем случае МВСП фонового шума может быть записана в виде riu(/)=o(/)J(/), (5-15) где J (/) - нормированная матрица когерентности. При этом собственные векторы и собственные значения не обладают ранее рассмотренными свой- ствами. В качестве примера, иллюстрирующего это замечание, определим, что будет, когда шум, вызванный воздействием ветра на поверхность воды, оказывается преобладающим в фоновом шуме в случае пассивной гидро- акустической приемной антенной решетки. Для двух элементов такой ре- шетки, расположенных на расстоянии d друг от друга в горизонтальной плоскости, взаимная спектральная плотность может быть представлена выражением 2"'н1’ Ь U) = o(f) ----- у„ (2nfd/c). (5.16) litja/c где с — скорость распространения звука в воде; ут( • ) — функция Бес- селя т-го порядка; значение т зависит от состояния моря. В математическом эксперименте моделировались сигналы 12-элементной эквидистантной антенной решетки, расположенной в горизонтальной плос- кости. В табл. 5.1 приведены собственные значения (при бесконечном вре- Таблица 5.1 d=O,l 2,67 2,22 1,38 1,11 0,76 0,61 0,58 0,55 0,54 0,53 0,52 0,52 </=0,3 2,24 2,02 1,14 1,10 0,96 0,93 0,87 0,85 0,83 0,78 0,24 0,03 92
мени наблюдения) шумового поля, обусловленного только фоновым шу- мом при ш=0, для величин межэлементного расстояния решетки d, равных О,ЗА и 0,7Л. Если бы МВСП фонового шума была единичной, то и все соб- ственные значения были бы одинаковыми. Однако из табл. 5.1 видно, что они существенно различны. На рис. 5.2 представлены проекции вектора VM(/) (который соответ- ствует максимальному собственному значению МВСП, полученнному в ре- зультате оценки (5.14) при Р=400) на направление вектора модели сигнала Р(/, в) как функции от угловой координаты n(0 = |D+(./,«)VM(f)|2. (517) Шумовое поле образовало фоновым шумом и шумом источника с углом визирования 4° и ОСШ = —15 дБ. В этом случае собственный вектор, соот- ветствующий максимальному собственному значению теоретической МВСП, совпадает с вектором источника сигнала и формирует такую же диаграмму, как и классическая дааграммообразующая схема. Антенная решетка обла- дает теми же параметрами, что и указывались ранее; при этом межэлемент- ное расстояние выбиралось равным 0,5Х. На рис. 5.2 приведены четыре Рис. 5.2. Зависимости проекции вектора V (/) от угла визирования в для одно- го источника сигнала и коррелированного шума: Г(/) — теоретическое значение; Г(() — оценка при Р= 400; а)Ш=0,5; б)т — 0,2; в)ш = 0,5; г)Ш=0,8 93
Рис. 5.3. Диаграммы значений функции (!"' (0) для шумового поля, характери- зуемого зависимостями на рис. 5.2 (метод ортогонального подпространства): с) 771=0,2; 6)771=0,8; в)т=0,5 диаграммы. Первая из них теоретическая. Три другие соответствуют различ- ным условиям пространственной когерентности фонового шума, характе- ризуемым значениями параметра т, равными 0,5; 0,2 и 0,8 соответственно. При in = 0,5 согласно принятым условиям МВСП является единичной матри- цей. И действительно, диаграмма Н(0) в этом случае идентична теоретичес- кой диаграмме. При /?1 = 0,2 отличие Н(0) от теоретической диаграммы не- значительное. Однако при ??? = 0,8 диаграмма совершенно отличается от пре- дыдущих. На рис. 5.3 для тех же исходных данных представлены результаты вы- числений при использовании метода ортогонального подпространства. По- казанные диаграммы являются функциями G~l (0) (см. (5.13)); при этом наблюдаются пики, а не минимумы. Эффективность здесь несколь- ко снижается, когда матрица пространственной когерентности фонового шума становится отличной от единичной (/72^0,5). Адаптация к пространственной когерентности фонового шума [9]. Ког- да матрица пространственной когерентности фонового шума J(/9 известна и не является единичной, можно показать, что все сводится к предыдущей проблеме. Действительно, поскольку J (/") является эрмитовой положитель- но определенной матрицей, то можно найти матрицу C(f), для которой С (f)3(f)C+ (/)=!. (5.18) Когда исходная МВСП преобразуется с помощью С(/), получается выра- жение Гс 09 = С (Л Г (О с+ (/) = о (/ ) с (/)!(/) с+ (/) + + z (5.19) I = 1 Учитывая, что С(/)Ц- (/) — вектор (который можно обозначить через DC1- 0 ), и используя соотношение (5.18), получаем I к ГСОЭ = o0')I+ I yi(./)D,.i(./)Dt(/). (5.20) 94
Таким способом фоновый шум становится пространственно ’’выбеленным”, а собственные значения и собственные векторы преобразованной МВСП (5.20) обладают указанными ранее теоретическими свойствами. Конечно, для определения координат источника сигнала будет необходимо исполь- зовать преобразованный вектор источника сигнала - Df(/,0) = C(/)D(/,0). (5.21) Кроме того, можно показать, что нет необходимости точно знать о прост- ранственной когерентности фонового шума. Достаточно, чтобы она согла- совывалась с общей структурой или моделью, в которой несколько пара- метров могут оставаться неизвестными. Такая модель МВСП записывается в виде J (f, ш), где m — вектор неизвестных параметров. Пусть С (f, m) является матрицей, такой, что С (Г, m) J (Л т) С+ (Л т) = I, (5.22) а т0 — истинное значение вектора параметров фонового шума. Выражение для преобразованной с помощью матрицы C(f, m) МВСП будет иметь вид ГД/', т) =С(/', т)Г (/)С+(7, т), (5.23) и, следовательно, ГС(Л т)=о(/)С(/, m)J(f, т)С+(/,т) + + L 7/ (О С (f, т) Ц- (/) Dt(/') С+ (f, т). (5.24) Очевидно, что если вектор т изменяется и принимает различные значе- ния, то при достижении ими значения т0 фоновый шум становится абсо- лютно некогерентным. Следовательно, если собственные значения матри- цы rc(f, m) представить в виде графиков в зависимости от ш, то N—K наименьших собственных значений станут равными при m=m0. Действуя таким образом, возможно найти значение т0 и пространственно ’’выбе- лить” фоновый шум среды. Конечно, на практике имеется лишь оценка Г(/) матрицы Г (/') и, когда собственные значения fc(/,m)=C(/,m)f(/)C+(/,m) (5.25) представляются в виде графика в зависимости от т, вместо идеального вы- беливания можно наблюдать сходимость наименьших собственных значений к общему пределу. Эта сходимость проявляется в большей степени по мере увеличения времени наблюдения. Значение m в точке сходимости одновре- менно дает: 1) оценку го0 параметра т0 шума и 2) число источников сиг- налов. Подпространство сигналов и ортогональное ему подпространство опре- деляются собственными векторами оценки МВСП, полученной в результа- те преобразования с использованием C(f, го0)- Таким путем получается оценка МВСП сигналов 95
Рис. 5.4. Зависимости собственных значений шума и сигналов двух источников от параметралкогерентности т при в, =0°, в г =4°, 7(f) /o(f) =-10 дБ; й) Г if); б)Г(/) при/’=80; 6) Г (/) при Р = 400 Рис. 5.5. Диаграммы G"1 (0) для шумового поля, характеризуемого зависимос- тями на рис. 5.4 (метод ортогонального подпространства) Г N ) €"*(/, М z [%(/) - а(/)]^(Л^+ (ЛИС+(/; m0)J 1 , (5.26) (.1=1 J где N — оценка числа источников сигналов; — TV наибольших собствен- ных значений матрицы Гс(/~, m0); Vf(f) — TV собственных векторов, соот- ветствующих TV наибольшим^ собственным значениям матрицы Гс(/, ш0); о (/) — среднее значение К — N наименьших собственных значений. Для проверки возможностей метода было проведено моделирование' на очень простом примере описанной ранее антенной решетки. Модель про-’ странственной когерентности фонового шума характеризовалась соотноше- нием (5.16) и соответствовала модели шума водной поверхности. Это мо- дель с одним неизвестным параметром т. Поле сигналов создается двумя ис- точниками с углами визирования 0 и 4°; ОСП1 = —10 дБ; параметр простран- ственной когерентности шума и? =0,5. На рис. 5.4 представлены три вида зависимостей собственных значений от параметра т: а) полученных теоре- тически; б, в) при использовании оценки МВСП согласно (5.14) . Нетрудно видеть, что для теоретической МВСП при /л = 0,5 минималь- ные собственные значения одинаковы, а два наибольших собственных зна- чения соответствуют сигналам источников. При использовании оценки точ- ка сходимости минимальных собственных значений наблюдается при зна- чении параметра иг =0,5. Причем качество сходимости улучшается с увели-
чением времени наблюдения Р. На всех рис. 5.4 ясно видны графики двух собственных значений, соответствующих источникам сигналов, которые располагаются выше графиков ’’шумовых” собственных значений. Резуль- таты расчетов по методу ортогонального подпространства (как и ранее, приводятся значения функции G’1 (0)) даны на рис. 5.5. Наилучшие резуль- таты получаются, конечно, при т = 0,5. Таким образом, благодаря парамет- рическому моделированию пространственной когерентности фонового шу- ма области применения метода ВРС значительно расширились и стали адек- ватны действительным условиям работы антенной решетки. Следующий подраздел посвящен анализу предположений относительно параметров волновых фронтов самих сигналов при использовании метода ВРС, когда параметры D(/ ,0) оказываются неизвестными. 5.3.2. Использование подпространства сигналов [3] Матрица взаимных спектральных плотностей сигналов, как это следует из (5.26), является вырожденной (с нулевыми собственными значениями), однако, конечно, неотрицательно-определенной. Ранг этой матрицы равен числу источников сигналов, а векторы источников полагаются линейно независимыми. В действительности эта матрица является суммой МВСП отдельных источников. Матрица взаимных спектральных плотностей каждого источника явля- ется диадаым произведением соответствующего вектора источника сигнала на себя. Поэтому проблема состоит в том, чтобы узнать, можно ли получить векторы источников сигналов, имея МВСП источников. Необходимость обращения к модели сигналов. Следует отметить, что ан- тенная решетка как таковая в лучшем случае позволяет определить только векторы отдельных источников. Для того чтобы, зная параметры волново- го фронта, перейти к определению положения источника сигнала в среде рас- пространения, потребуется дополнительная информация о передаточных функциях среды от источника до элементов антенной решетки. Другими словами, необходимо иметь модель среды распространения для описания волнового фронта как функции координат источника сигнала. Если форма волнового фронта уже получена на основании МВСП источников сигналов, то потребуется найти координаты и спектр источника путем идентификации параметров измеренного фронта волны с соответствующими параметрами волнового фронта, заданного моделью. Невозможно определить положение источников без модели среды. Однако даже перед этим этапом локализации необходимо знать: не потре- бует ли первая задача описания волновых фронтов на основе МВСП допол- нительной информации о параметрах волновых фронтов, а следовательно, и о среде распространения? Иначе говоря, можно ли вычислить векторы не- известных источников сигналов только на основе МВСП? Точный ответ на этот вопрос: нет, нельзя. Тем не менее на основе МВСП можно найти векторы источников сигналов только в виде функций от ряда неизвестных скалярных параметров. Число таких параметров равно К(К— 1)/2, и можно сказать, 97
что для полного определения параметров волновых фронтов не хватает только произвольной унитарной матрицы порядка К. Для определения этой матрицы необходимы некоторые априорные знания или предположения о характере волнового фронта или о сложности среды распространения, иными словами, необходима некоторая модель. Одноэтапная процедура вычисления координат источника сигнала. Один из возможных подходов сводится к решению задачи определения векторов источников сигналов и их координат с помощью одноэтапной процедуры. С одной стороны, имеется выражение для векторов источников, полученное на основе экспериментальной МВСП, но только как функции К (К- 1)/2 неизвестных скалярных параметров. С другой стороны, строится модель, которая дает другое выражение для векторов источников сигналов, где неиз- вестными параметрами оказываются: К значений спектральной плотности; ЗК координат источников сигналов; ’’свободные” скалярные величины, которые используются для описания среды распространения в рамках априорной структуры, но без указания чис- ленных значений параметров. Эти параметры являются одинаковыми для всех источников сигналов, и их общее число полагается равным Z. Поэтому для идентификации выражений К векторов источников сигналов (каждый из них содержит Л составляющих) имеется: (47C+Z) неизвестных скалярных величин ’’модели”; К (К — 1) /2 неизвестных скалярных величин МВСП. Поскольку число возможных скалярных уравнений равно KN, то в резуль- тате идентификации можно получить значения всех неизвестных скалярных величин, если KN = 4К +Z + [/С (К - 1) /2]. (5.27) Таким образом число параметров, ’’характеризующих среду распростране- ния” Z в рамках выбранной модели, не может быть больше Z =K[N-(K+7)/2]. (5.28) Это число растет с увеличением числа элементов антенной решетки N. Иными словами, число элементов решетки /V согласно (5.28) определяет число параметров Z, характеризующих среду распространения. Чем больше Z, тем сложнее среда. Нетрудно видеть, что число параметров Z возрастает также с увеличением числа источников сигналов К, которых, как предпо- лагается, значительно меньше N. Поэтому среда распространения поддает- ся более полному описанию, когда число элементов решетки и число источ- ников сигналов велико. Например, для 50-элементной антенной решетки и 11 источников сигналов получается Z =410, а при 21 источнике число па- раметров Z = 720. Однако эти значения могут рассматриваться только как приблизительные, так как должен выполняться ряд других условий. На- пример, координаты должны быть действительными числами (заметим, что рассматриваемые ранееKN уравнений являются комплексными). 98
Двухэтапная процедура вычисления координат источников сигналов. Другой возможный подход к решению этой задачи основывается на том, 1|то количество априорной информации для описания только векторов источников сигналов оказывается намного меньше количества информа- ции, требуемой для построения модели среды распространения. Например, можно согласиться с тем, что без существенных упрощений любой вектор ис- точника сигнала может быть представлен в виде когерентной суммы плос- ких и (или) сферических волн. Поэтому, прежде чем делать какие-либо предположения относительно модели среды распространения, можно опре- делить общую структуру векторов источников сигналов. Общее число сво- бодных параметров должно соответствовать системе из KN уравнений с К (К — 1) /2 неизвестными параметрами. Следовательно, это общее число параметров составляет KN - [Л' {К - 1) /2 ] = К pV- К (К (5.29) Таким образом, для каждого вектора источника сигнала в принципе должно быть N— (К — 1) /2 свободных параметров для их представления суммой плоских и (или) сферических волн. Используя априорную информацию относительно сложности К волновых фронтов, одним из них можно по- ставить в соответствие больше элементарных волн, чем другим. Таким образом, как и при одноэтапной процедуре, в конце осуществ- ляется идентификация с использованием численных выражений для всех векторов источников сигналов, требующих лишь минимума априорных сведений. При этом каждый вектор источника моделируется как сумма векторов элементарных волновых фронтов. Затем, на втором этапе вычис- лений, необходимо использовать модель среды распространения, которая, конечно, должна быть совместима со всеми ранее рассчитанными векторами источников сигналов. Поскольку на каждый источник сигнала (как и при одноэтапной процеду- ре) приходится четыре скалярных параметра, число параметров Zz, харак- теризующих среду распространения, будет определяться выражением KN=4K + 7.'. (5.30) Необходимо отметить, что Z ’ оказывается немного больше Z при одноэтап- ной процедуре, поскольку из-за наложения ограничений (даже незначитель- ных) на общую форму волновых фронтов образуется большее "множество свободных” параметров для среды распространения. Очевидно, что аналогичный подход используется в задаче описания среды с известными источниками сигналов (по координатам и спектральной плот- ности) . Такие источники не требуют параметров вообще, и свободных пара- метров для описания среды распространения оказывается больше. 5.3.3. Использование метода ортогонального подпространства Для получения модели волновых фронтов методом ортогонального подпространства можно (как это делалось и ранее) использовать парамет- ры среды распространения. Тогда модель вектора источника сигнала будет 99
зависеть от этих параметров и характеризоваться вектором D (/, 6, Z), где вектор Z представляет параметры среды распространения. Для определе- ния координат источника сигнала необходимо теперь найти минимумы функции А (до, z)= |v,u./jd(./;o, z)i2 i = N + I (5.31) не только по 6, но также и по Z. 5.3.4. Результаты экспериментальных исследований Для иллюстрации рассмотренного метода здесь представлены результа- ты эксперимента с очень простой антенной решеткой при гидролокации сиг- налов на фоне шума. Использовалась линейная 5-элементная эквидистант- ная (с межэлементным расстоянием 1 м) решетка, расположенная в гори- зонтальной плоскости. Производилась оценка МВСП в диапазоне частот 850 Гц с разрешающей способностью 5 Гц при накоплении 10 последова- Рис. 5.6. Экспериментальные диаграммы изменения звукового поля под водой в зависимости от угла визирования 0 для трех источников сигналов: с) — классическая диаграммообразующая схема (/С) ; адаптивная решетка (Л) ; метод ортогонального подпространства (7(0); б) — диаграммы (!"' (0) 100
Рис. 5.7. Экспериментальные результаты приема акустических сигналов трех источников: а — диаграммы изменения звукового поля в зависимости от угла визирования О для параметра когерентности шума /77=0,5 (классическая диаграммообразующая схема (Л*); адаптивная решетка (Л); метод ортогонального подпространства (7(0); б — диаграмма изменения собственных значений в зависимости от пара- метра т (сходимость двух наименьших собственных значений наблюдается при Д7=О,4); в — диаграммы значений функции (7**1 (0) в зависимости от угла визи- рования 0 (наилучшие результаты при /77 = 0,4 и 1,5) 101
тельных оценок спектра. Использовались три источника сигналов. Графики изменения напряженности звукового поля в зависимости от угла визирова- ния для классической диаграммообразующей схемы, адаптивной антенной решетки и для метода ортогонального подпространства G(6) приведены на рис. 5.6. Предполагалось, что фоновый шум некогерентен. Другая ситуация, при которой по-прежнему присутствуют три источника, но предпринята попытка смоделировать пространственную когерентность фонового шума, проиллюстрирована на рис. 5.7. Выбрана модель шума морской поверхности, описываемая соотношением (5.16). Нетрудно заме- тить сходимость для двух наименьших собственных значений при ш = 0,4. Очевидно, что три наибольших собственных значения соответствуют трем источникам сигналов. Тогда согласно данным рис. 5.7,в наилучший резуль- тат достигается при /77=0,4. Эта эксперименты ”на море” иллюстрируют преимущества методов высокой разрешающей способности перед методами исследования с помощью классической и адаптивной антенной решеток. 5.4. РЕАЛИЗАЦИЯ МЕТОДА ВЫСОКОЙ РАЗРЕШАЮЩЕЙ СПОСОБНОСТИ В этом разделе описывается реализация наиболее общей структуры метода ВРС и дается оценка ее вычислительной сложности. 5.4.1. Общая структура Общая структура алгоритма, реализующего метод ВРС, показана на рис. 5.8. Его можно разделить на три основных этапа. Если первый и тре- тий этапы очевидны, то второй этап (включающий операцию фокусирова- ния) требует вычислений новых типов. Первый этап: обработка входных данных. Па этом этапе осуществляет- ся предварительная обработка входных данных для получения величин, необходимых для реализации ВРС, а именно оценок МВСП. При этом ис- пользуются обычные операции. На первом шаге выполняется преобразование Фурье выходных сигналов N элементов антенной решетки. Затем, если число частотных составляющих при спектральном анализе равно L, то выбирается L идентичных параллель- ных каналов обработки. Этот параллелизм сохраняется в структуре общей схемы обработки. Второй шаг обработки входных данных сводится к оценке МВСП с по- мощью соотношения (5.14): [ <п+1>Р г„(./;.) = - У хд./;.)хл.О. Г г- ЯГ Вектор (матрица-столбец) X, ((р) имеет N составляющих, являющихся выходными отсчетами преобразования Фурье на частотах fe (еЕ [1, /.]). Вычисления выполняются путем матричного умножения и накопления. При типовой обработке сигналов антенной решетки оценивание МВСП обычно не производится; исключение составляет адаптивная обработка 102
Рис. 5.8. Общая структура алгоритма, реализующего метод высокой разрешаю- щей способности сигналов решетки в частотной области на основе непосредственного обра- щения оценки МВСП. Второй этап: специфические вычисления при методе ВРС. Основные вы- числения метода ВРС являются новым типом обработки сигналов антенной решетки и обычно сводятся к вычислительным процедурам линейной ал- гебры. Они состоят в нахождении собственных значений для оценки МВСП. 103
При этом можно использовать различные методы. Однако, вероятно, наибо- лее подходящим для эрмитовых матриц является метод, при котором вход- ная матрица сначала приводится к трехдиагональному виду Гт с помощью метода Хаусхолдера, а затем используется QR-метод. Эта процедура широ- ко описана в литературе [10]. Здесь рассмотрим ее основные этапы. Преобразование к трехдиагональной форме осуществляется с помощью аналогичных N— 2 шагов Гт = Цу._2 ...Ujfu, ...иЛ,_2=иги. (5.32) Матрицы Ц, а следовательно, и Uявляются унитарными. Они должны вычис- ляться на каждом шаге. QR-метод основан на рекурсивном алгоритме, с помощью которого матрица Гт приводится к верхней треугольной форме при бесконечном увеличении числа итераций. Трехдиагональная матрица запоминается. Приве- дение к треугольному виду получается с помощью унитарных прсобразова1- ний подобия, такого же, как при получении предыдущей трехдиагональной матрицы. В результате собственные значения и собственные векторы Г мо- гут быть легко получены из собственных векторов верхней треугольной матрицы. Собственные значения и собственные векторы верхней треуголь- ной матрицы вычисляются прямым способом. На первой итерации Гт при- водится к верхней треугольной матрице Rj с помощью аналогичных N- 1 шагов: R1=U‘v_J...U}fT = Q1rT. (5.33) Матрицы СТ?, а следовательно, и Qi являются унитарными. Пусть Г) = R} Qi. На второй итерации Гt приводится к верхней треугольной матрице R2 = =Q2r, , из которой получается Г2 =R2Q2, и т. д. Можно показать, что на р-й итерации fxRQ =Q+...Q|r Qi ...Q =W*f W . (5.34) р Р Р Р * т 1 р р т р ' Итерации прекращаются при достижении заданной точности. Матрицы U и W будут унитарными. Собственные значения Г будут равняться собствен- ным значениям Гр, находящимся на главной диагонали. Если обозначить через V собственные векторы матрицы Гр, то собственными векторами матрицы Г будут UWpV. Собственные векторы и значения вычисляются на двух основных шагах обработки, обеспечивающей ВРС. Первый шаг сводится к оценке параметров т0(/е) пространственной когерентности фонового шума. Следующие операции должны выполнять- ся для некоторого заданного числа значений моделируемого параметра ш: а) комплексное умножение матриц для вычисления матрицы [соотно- шение (5.23)] Гси (/е, ш) = С (Ге, m)f„c+(fe, m); (5.35) б) вычисление собственных значений матрицы Гси (Q,, т); 104
в) расчет простой функции собственных значении для нахождения оценки т0 (/<>)• с Второй шаг сводится к построению подпространства сигналов и его орто- гонального дополнения. Для выполнения этой операции потребуются соб- ственные значения и собственные векторы матрицы Гсп [fe, m0(/e)]: под- пространство сигналов определяется собственными векторами, свя- занными с наибольшими собственными значениями, а ортогональное подпространство — остальными [TV—A*(fe)] векторами. Как показано в [8] ,К(/'е) определяется простой функцией собственных значений. Третий этап: оценка параметров источников сигналов. Оценка парамет- ров источника для каждого элемента разрешения по частоте может быть по- лучена различными методами. Могут использоваться подпространство сиг- налов или ортогональное подпространство. В каждом случае сложность вычислений в большей или меньшей степени зависит от использования неиз- вестных параметров среды распространения Z в модели вектора источника. 1 . Метод ортогонального подпространства. Оценки углового положения исто’гняков ё, определяются значениями 0, связанными с К (fe) максиму- мами функции (5.31) параметров 0 и Z: G ~\fe, 0, Z) = Z I VZ0(4)D(/e, 0, Z)|21 * _i = K(/e)+l J (5.36) В тех случаях, когда тесло параметров 0 и Z невелико, в частности когда модель не включает параметры среды распространения, максимумы мо- гут быть определены с помощью последовательного просмотра значений G-1 (fe, 0, Z) с шагом по 9 и Z, зависящим от разрешающей способности. Эта операция основана на получении скалярных произведений комплексных векторов. Это очень похоже на классическую диаграммообразующую схему, однако требует большого объема вычислений из-за нахождения [TV— K(fe)} скалярных произведений и из-за малых приращений параметра 0, необходи- мых при высокой разрешающей способности. 2 .Методы подпространства сигналов. Существует несколько методов, основанных на использовании подпространства сигналов. В работе [4] описан метод, в котором не учитываются параметры среды распростране- ния Z и который также основан на поиске максимумов функции от скаляр- ных произведений комплексных векторов. Метод [1] основан на подгонке модели МВСП сигналов к оценке этой матрицы также без учета параметров среды распространения. В работе [3] показана возможность введения пара- метров среды распространения в модель, в результате чего получается сис- тема NK(fe) уравнений с NK(fe\ неизвестными, если тесло неизвестных параметров распространения Z =K(f^ [TV— K(fe) +7/2]. Этот метод в об- щем случае требует решения системы йелинейных уравнений. Сложность вычислений зависит от структуры вектора модели источника сигнала. 105
5.4.2. Оценка сложности вычислений После соответствующего преобразования входные сигналы полагаются комплексными в полосе частот {—В, В). Отсчеты сигналов берутся с часто- той 2,5 В. Обработка входных данных. Спектральный анализ осуществляется на ба- зе процедуры усреднения периодограмм. Пусть Д/ = ]/Т — требуемая спект- ральная разрешающая способность. Если обозначить через L число анализи- руемых элементов разрешения по частоте (положительных частот), то £ = =B/&f. Если спектральный анализ выполняется с периодом Т/2, то 7УБПФ на 2,5£ точек должны вычисляться за время 7/2. Оценки МВСП Г (£е) вычисляются для каждого элемента разрешения по частоте. Поскольку Г (/е) является эрмитовой матрицей, процедура оценки потребует выполнения L идентичных операций, состоящих из PN\ (N+1)/2] операций комплексного умножения и сложения. Эти вычисления выполня- ются за время ££/4. Специфические вычисления метода ВРС. В первую очередь вычисляют- ся собственные значения и собственные векторы матриц. Сложность вычис- лений зависит от размера матриц (т. е. от числа элементов антенной решет- ки Л), требуемой точности и числа самих матриц. Обычно для вычисления собственных значений при 32 элементах решетки требуется около 10s опе- раций умножения и сложения, а для расчетов собственных значений и соб- ственных векторов — примерно 2Х105 аналогичных операций. Эти значения изменяются примерно пропорционально 7V2’5. Для устойчивости вычислений должны использоваться 32-разрядные вычислительные устройства с пла- вающей запятой. 1. Оценка параметра пространственной когерентности фонового шума. Для L элементов разрешения по частоте и М значений параметров должны вычисляться^ матрица ^cn(fe, m), что потребует около Л^2 (3/V+1)/2 операций ком- плексного умножения и сложения; собственные значения Гсп (fe, ш), что потребует около 207V2’5 операций умножения и сложения. При оценке параметров фонового шума потребуется пренебрежимо ма- лое число операций по сравнению с их числом в предыдущих расчетах. Эти ML идентичных операций выполняются последовательно с периодом, равным времени стационарности фонового шума; этот период, как правило, больше периода оценивания £7/4 матрицы Г (fe) . 2. Определение подпространства сигналов и его ортогонального допол- нения. Для £ элементов разрешения по частоте должны выполняться сле- дующие операции с периодом £774: вычисление матрицы Lcn(fe, Шо)> что потребует № (37V+1) /2 операций комплексного умножения и сложения; вычисление собственных значений и собственных векторов этой матрицы, что потребует около 20/V215 операций умножения и сложения; оценка числа источников сигналов, что потребует пренебрежимо малого числа операций по сравнению с их числом в предыдущих расчетах. 106
Оценка параметров источников сигналов. Более трудно оценить вычисли- тельную сложность процедуры оценивания параметров источников сигналов. Это объясняется тем, что она зависит от числа неизвестных параметров среды распространения. Но эти параметры в общем случае требуют вычис- ления скалярных произведений комплексных векторов. Примером одного из простейших методов является метод ортогонального подпространства без использования параметров среды распространения. При выполнении процедуры просмотра значений для каждого элемента разрешения по частоте потребуется около [TV— K(fe)} (7V+1)© операций комплексного умножения и сложения, где ® — число значений 0. Если же для повышения эффектив- ности системы учитываются параметры среды распространения, то объем вычислений должен существенно возрасти. В этом случае можно обратить- ся к более подходящим методам поиска. 5.5. ЗАКЛЮЧЕНИЕ Методы, обеспечивающие высокую разрешающую способность, могут при- меняться для решения задач приема акустических сигналов под водой с по- мощью пассивной антенной решетки благодаря их более высокой разрешаю- щей способности, чем при обычных и адаптивных методах формирования луча. Однако при этом необходимо тщательнее моделировать среду распрост- ранения, что требует введения дополнительных параметров и их последую- щей оценки. Появление этих новых методов привело к разработке устройств новой архи- тектуры, характеризуемых двумя основными особенностями. Первая сос- тоит в значительном увеличении сложности вычислений по сравнению с их сложностью в обычной диаграммообразующей схеме. Если в обычном уст- ройстве обработки диаграмма формируется сразу же после осуществления на входе БПФ, то методы высокой разрешающей способности требуют до- полнительных операций оценки матрицы взаимной спектральной плотности и решения проблемы нахождения собственных значений этой матрицы. Вторая особенность заключается в том, что большинство вычислительных опера- ций относится к матричным операциям: вычисление скалярных произве- дений комплексных векторов, умножение комплексных матриц и получение собственных значений эрмитовых матриц. Поэтому новые методы парал- лельных вычислений, такие как обработка сигналов с помощью систоли- ческих процессорных структур [11], могут обеспечить приемлемое решение задач пространственно-временной обработки сигналов элементов антенной решетки. СПИСОК ЛИТЕРАТУРЫ [1] W. S. Ligget, “Passive Sonar: Fitting Models to Multiple Time Series,” Proc. NATO AS/ Signal Process., Academic Press, Loughborough, U.K., 1972, pp. 327 345. [2] H. Mermoz, “Imagerie, correlation et modeles,” Ann. Telecommun., 3/(1 2):17 36, (jan.-fev. 1976). 107
[3] N. L. Owsley, “A Recent Trend in Adaptive Spatial Processing for Sensor Arrays,” Proc. NATO AS I Signal Process., Academic Press, Loughborough, U.K., 1972, pp. 131-164. [4] N. L. Owsley, and J. F. Law, “Dominant Mode Power Spectrum Estimation,” Proc. ICASSP 82, Paris, May 3-5, 1982, pp. 775-778. [5] G. Bienvenu, “Influence of the Spatial Coherence of the Background Noise on High Resolution Passive Methods,” Proc. ICASPP 79, Washington, DC., Apr. 2-4, 1979, pp. 306-309. [6] R. Schmidt, “Multiple Emitter Location and Signal Parameter Estimation,” Proc. RADC Spectrum Estimation Workshop, Oct. 1979, pp. 243-258. [7] G. Bienvenu and L. Kopp, “Source Power Estimation Method Associated with High Resolution Bearing Estimation,” Proc. ICASSP 81, Atlanta, Ga., Mar. 1981, pp. 153- 156. [8] G. Bienvenu and L. Kopp, “Optimality of High Resolution Array Processing Using Eigensystem,” IEEE Trans. Acoust. Speech Signal Process., Oct. 1983, pp. 1235-1248. [9] G. Bienvenu and L. Kopp, “Adaptivity of Background Noise Spatial Coherence for High Resolution Passive Methods,” Proc. ICASSP 80, Denver, Colo., Apr. 9-11, 1980 pp. 307-310. [10] J. N. Franklin, Matrix Theory, Prentice-Hall, Englewood Cliffs, N.J., 1968. [11] K. Bromley, I. J. Symanski, J. M. Speiser, and J. H. Whitehouse, “Systolic Array Processor Developments,” Proc. CMV Conf. VLSI Syst. Comp., Carnegie-Mellon Uni- versity, Pittsburg, Pa., Oct. 19 -21, 1981. 6 ЗАМЕЧАНИЯ ПО ПОВОДУ ВЫЧИСЛЕНИЯ СОБСТВЕННЫХ ЗНАЧЕНИЙ МАТРИЦ Б. Парлетт' 6.1. ВВЕДЕНИЕ Как показано в предыдущих главах этой книги, вычисления собственных значений матриц начинают играть важную роль в современной обработке сигналов. С другой стороны, есть ученые и инженеры, которые тратят зна- чительные суммы денег (миллионы долларов) и большую часть своей твор- ческой жизни на вычисления собственных векторов и собственных значений матриц. Инженерам-разработчикам структур необходимо знать собственные частоты и оптимальные режимы; специалисты квантовой химии рассчиты- вают вывести химические свойства молекул, зная их возможные состояния и соответствующие им энергии; океанографы могут оценить эффективность своих моделей, сравнивая предсказанные приливы и отливы с результатами 'наблюдений. Использование СБИС для расчета собственных значений мат- риц поможет расширить исследования в некоторых из перечисленных на- 1 Калифорнийский университет, Беркли, Калифорния. |108
правлений. В конце главы кратко рассмотрим влияние новой технологии на разработку перспективных алгоритмов, а пока вернемся к началу. Какова на сегодняшний день обстановка с последовательными и вектор- ными компьютерами? В последующих разделах попытаемся изложить основ- ные особенности, не вдаваясь в детали и без особого педантизма. Всю проб- лему следует разделить на две части в соответствии с двумя очевидными, но неодинаково осознанными критериями. Матрицы могут быть большими и малыми (см. разд. 6.3), и их собственные значения могут быть действи- тельными или комплексными. Более того, свойством, которое порождает действительные собственные значения, в большинстве случаев является сим- метрия действительной матрицы. В данной главе прописными буквами будут обозначены матрицы, строч- ными — векторы. Мы старались симметричными буквами обозначать сим- метричные матрицы, строчными греческими буквами — порядковые номера. 6.2. ПРИВЕДЕНИЕ К СТАНДАРТНОМУ ВИДУ В большинстве случаев симметричные матрицы, для которых исполь- зуются программы вычисления собственных значений, не должны были бы появляться в реальных задачах. Это можно объяснить следующим. Во многих случаях требуется найти решение (X, z) уравнения вида (H-XM)z =0, где Н и М — действительные симметричные матрицы и одна из них (или не- которая линейная комбинация из них) положительно определена. Целеустремленный пользователь послушно преобразует Н и М в одну симметричную матрицу в соответствии с рекомендациями, данными спе- циалистами в их книгах и статьях [12, 20]. Наиболее распространенная ме- тодика преобразования для положительно определенной матрицы М состо- ит в ее разложении по Холецкому: М = LLf, где t — знак транспонирования; L — нижняя треугольная матрица. Затем формируется матрица А = L'1 H(Lf)~* и исходное уравнение приводится к виду (А — А1)у = 0, у = Lrz. Теперь понятно, что эта процедура почти всегда плохая. Почему плохая? Если кратко, то потому, что А обычно намного больше Н и М (по норме), и потому, что, как правило, требуется только несколько наименьших соб- ственных значений матрицы А. Когда матрица А имеет большой размер (например, 1000X1000), это плохо. Во-первых, существуют фундаменталь- ные ограничения на относительную точность, с которой могут быть вычис- лены наименьшие собственные значения матрицы. Во-вторых, их труднее вычислить, чем большие собственные значения. В-третьих, любая структура 109
расположения нулевых элементов матриц Н и М будет утрачена при конст- руировании матрицы А. Предположим, что необходимо найти только собственные значения матриц Н и М, близкие а. Правильная процедура состоит в определении (но не фор- мировании) матрицы А=М1/2 (Н—оМ)"1 М1/2 . Но, пожалуйста, не обращай- те матрицу! Чтобы сформировать вектор х = Av при любом векторе v, необ- ходимо только решить линейную систему вида (Н —oM)x=M1/2v относи- тельно х, как бы это ни было трудно. Для этого можно воспользоваться алгоритмом определения наибольших собственных значений матрицы А. Они связаны с искомыми собственными значениями (Н, М) простыми зависимостями (см. [6 или 12, стр. 325]). Теперь вернемся к рассмотре- нию одной матрицы. 6.3. ВОЗМОЖНОСТИ СОВРЕМЕННЫХ ПРОГРАММ Определение. Матрица размера иХп считается малой (в данной вычисли- тельной системе), если эта матрица и матрица, составленная из ее собствен- ных значений, могут быть записаны в оперативном запоминающем устрой- стве (с произвольной выборкой) как обычные квадратные таблицы. В про- тивном случае матрица считается большой. Это очень полезное различие. Существует глубокое различие между мето- дами, используемыми в этих двух случаях (для больших и малых матриц), а также между самими проблемами, которые приводят к матрицам. Для больших вычислительных систем (типов CDC 7600, 6600, IBM 370/195, 165) матрица размера 100X100 элементов считается малой. Для мини-ЭВМ матрица размера 50X50 элементов может оказаться- большой. Тем не менее можно с уверенностью сказать, что матрица размера 1000Х XI000 элементов является большой, и следует заметить, что специалисты по квантовой физике хотели бы рассчитывать спектры матриц размера 2р, где р достигает значений 20, 30, 40 и даже больше. Многие специалисты по численному анализу считают, что задача определения собственных значе- ний для малых матриц решена. Есть одна нерешенная теоретически задача (сходимость смещенных QR-разложений для матриц, отличных от нормаль- ной) , и я не осведомлен о каких-либо других узких местах в вычислениях. Несколько цифр могут подтвердить это мнение. На ЭВМ IBM 370/165 все собственные значения и все собственные векторы случайной симмет- ричной матрицы размера 80X80 могут быть вычислены за 5,25 с. Интерес- но, что расчет одного наибольшего собственного значения занимает почти 1 с (0,88 с). Для несколько устаревшей модели ЭВМ CDC 6400 вместо 5,25 с требуется уже 32,64 с, т.е. более полминуты. Следует добавить, что эти 80 собственных векторов будут ортогональны с достаточной для практи- ческих расчетов точностью. Ошибки вычислений собственных значений мат- рицы лежат в пределах нескольких единиц младшего разряда для наиболь- шего записанного в памяти ЭВМ собственного значения.-Интересно было бы узнать о тех важных вычислительных задачах, для которых такая скорость вычислений недостаточна. На ум приходят только задачи вычисления в реальном масштабе времени. 110
Другим поводом для размышлений является то, что для малых матриц нет смысла использовать специальную структуру нулевых элементов (их так называемую структуру разрешенное™). Единственное исключение составляет случай, когда матрица имеет очень малую ширину ленты (на- Пример, трехдиагональная, пятидиагональная). Другими словами, при ис- пользовании малых матриц имеется достаточный запас вычислительной мощ- ности, который нс требует анализа специальных свойств матриц (за исклю- чением трехдиагональности и теплицевости). Что еще удивляет многих, так это то, что вычислять все собственные значения малой заполненной действительной симметричной матрицы (с п 30) так же просто, как и умножать эту симметричную матрицу на дру- гую! Короче, собственные значения матрицы вычислить проще, чем осущест- вить умножение. Точнее, требуется п3 операций скалярного умножения для получения результата. Допустим, что в предыдущем абзаце мы опустили прилагательное ’’сим- метричный”. Тогда утверждение неправильно, но не полностью. Конечно, собственные значения могут быть комплексными. Тем не менее они все мо- гут быть вычислены за время, меньшее того, которое необходимо для полу- чения пяти произведений матрицы на матрицу (т.е. 5и3 операций действи- тельного умножения). Опять-таки значение п должно быть достаточно вели- ко, чтобы главные члены преобладали над другими, например п =20, но все еще должно оставаться малым. Такое положение дел было бы невероятно в 1955 г. В чем же дело? Сов- местные усилия небольшой группы специалистов в период с 1958 г. по 1970 г. позволили сделать доступными библиотеки программ: EISPACK [5, 16] для задач вычисления собственных значений матриц, LINPACK [4] для решения линейных уравнений и задач вычислений по методу наименьших квадратов, IMSL [9] и NAG ([11] в Европе) для любых задач. Пакеты программ хорошо документированы и прошли надежное тестирование. Я считаю, что точность вычислений с помощью, скажем, программ EISPACK так высока, как только можно пожелать. Это может вызвать недоумение у тех, кто знаком с чрезвычайными трудностями вычисления канонической формы Жордано, когда она содержит блоки размера больше чем 1X1. Важно объяснить эту загадку. Коды программ EISPACK обеспечивают получение собственных векторов и собственных значений матриц, которые не точно равны собственным векторам и собственным значениям заданной матрицы, а с некоторой погрешностью. Если матрица В имеет размер пХп, то выходной результат в действительности соответствует матрице В—Е, где Е — неизвестная матрица, но ||Е|| -е • ||В||. Это существенное ограни- чение связано с тем, что при использовании ЭВМ осуществляются не точные арифметические вычисления. Специалисты по численному анализу предус- мотрели алгоритмы, неопределенность результатов вычислений которых не больше, чем в п раз, превышает неопределенность при запоминании исход- ной матрицы. Так что внимание следует сосредоточить на влиянии неопреде- ленности в численных значениях элементов матрицы на собственные зна- чения. 111
Определение. Числом обусловленности простого собственного значения X называется секанс угла между строчными и столбцовыми собственными век- торами, соответствующими Л. Подробнее см. [19, гл. 2]. Это число есть так- же норма спектрального проектора на собственное пространство, соответ- ствующее X, и является коэффициентом при старшем члене при разложении в ряд возмущения собственного значения X. Число обусловленности соб- ственного значения X, связанного с жордановой клеткой, равно — Все собственные значения всех симметричных матриц полностью обусловь лены (т.е. число обусловленности равно I). Изменение собственного зна- чения ограничено спектральной нормой изменения матрицы. Пакет программ EISPACK обеспечивает почти предельно возможную точность при вычислениях малых матриц. Действительно, неопределенность в плохо обусловленных задачах может быть очень велика. Тем не менее точность вычисления хорошо обусловленных собственных значений мат- рицы не ухудшается из-за наличия плохо обусловленных значений в той же матрице. 6.4. ПОЛОЖЕНИЕ ДЕЛ ПРИ РЕШЕНИИ ПРОБЛЕМ, ПРИВОДЯЩИХ К БОЛЬШИМ МАТРИЦАМ Картина резко меняется, когда матрица (на входе) и результаты (на вы- ходе) не могут быть размещены в запоминающем устройстве с произволь- ной выборкой. Такие задачи, как уже упоминалось во введении, весьма актуальны для пользователей. К настоящему времени разработано несколь- ко хороших методов, продолжается активный поиск новых методов, но по- ка в нашем распоряжении нет ничего подобного пакету' программ EISPACK. Некоторые хорошие методы реализованы в пакетах программ Университе- та шт. Индиана, предназначенных для специальных целей (например, NAST- RAN, ADINA для структурного анализа) и анализа процессов обмена в кван- товой химии [3J. В общем случае пользователю следует обращаться к ката- логу [18], начатому в 1982 г. Необходимо подчеркнуть два аспекта проблемы. 1. Следует использовать любую структуру разреженности матрицы для достижения успеха в решении задачи. 2. Эффективность метода в значительной степени зависит от самой вы- числительной системы (от наличия виртуальной памяти или обмена информа- цией между запоминающими устройствами первого и второго уровней). Информация, которую требуется получить при исследовании больших матриц, менее разнообразна, чем при исследовании малых матриц. В основ- ном преобладают случаи анализа симметричных матриц. Автору неизвестны случаи необходимости определения всех собственных значений и всех соб- ственных векторов, правда, известна одна прикладная задача, при решении которой используется весь спектр матрицы. В основном требуется только несколько собственных значений (их может быть 3, а может быть и 50) в ле- вой части спектра (вблизи 0) и соответствующих собственных векторов. В 1978 г. одна техническая компания потратила 12000 дол. на машинное 112
время для определения 30 собственных значений и собственных векторов при решении задачи с п = 12000. Эта сумма не включает стоимость разра- ботки программы. . Ешь прекрасный способ использования разреженности матрицы, позволя- ющий не разрабатывать различные методы для каждого практически важ- ного распределения в ней нулевых элементов. Пользователь составляет про- грамму, в которой каждый «-мерный вектор v на входе преобразуется в и-мерный выходной вектор и по правилу u=Av. Затем рассчитываются соб- ственные значения и собственные векторы при введении в программу соот- ветствующих для данной задачи векторов v. При данном методе доступ к линейному оператору А и его преобразование невозможны. В этом случае пользователь должен привлечь к вычислениям все, что известно относитель- но оператора А, чтобы сделать вычисление u( = Av) наиболее эффектив- ным. На практике оператор А не будет простой матрицей. В типичном случае оператор А содержит диагональную матрицу D, структурированную матри- цу Н и параметр сдвига о, так что A = D(H — aD2)“1D. Выходной вектор и определяется в три этапа : 1) формируется вектор w = Dv; 2) решается матричное уравнение (Н oD2)x = w относительно х; 3) формируется вектор u=Dx. На этапе 2 для решения матричного уравнения можно использовать какой- либо итерационный метод, если другие методы непригодны. Выполнение этапа 2 для больших матриц иногда требует использования дополнительно- го ЗУ. Эго простое, но существенное преобразование уравнения (Н —XD2)z = = 0 к стандартному виду (А — Х1)у = 0 всегда используется в структурном анализе. Не удивительно, что векторные компьютеры (в частности, типа Сгау-1 и Cyber 205) очень удобны для решения задач, в которых векторы длинные и заполненные, а матрицы — разреженные. Надежный путь решения матричного уравнения (Н — ХМ) z = 0 состоит в использовании алгоритма QZ в виде серийного пакета прикладных про- грамм. Однако согласно этой процедуре определяются все собственные значения независимо от того, нужны они или нет, и разрушается симмет- рия. Кроме того, она требует размещения в быстродействующем ЗУ двух матриц размера /гХя. Поэтому эта процедура используется только для малых матриц, как будет описано в следующем разделе. На этом заканчиваем обзор. В разд. 6.5 опишем в общем виде основные методы, а сейчас дадим несколько общих советов ’’охотникам” за собствен- ными значениями. Если ваши матрицы малы, то (в США) пользуйтесь паке- том программ EISPACK и руководством к нему [5, 16]. Для большинства задач требуемое число арифметических операций лежит в пределах от Л3 до ЮЛ'3. Если вы имеете дело с большими матрицами, то следует обратить- ся к каталогу программного обеспечения [18] для разреженных матриц. 6.5. МЕТОДЫ АНАЛИЗА МАЛЫХ МАТРИЦ Все методы, реализованные в пакете программ EISPACK, основаны на двухстороннем преобразовании исходной матрицы А. Такие методы целе- 113
сообразно применять при наличии ЗУ большой емкости с произвольной вы- боркой, которым снабжен последовательный центральный процессор ЭВМ. Более того, как для симметричных (что не удивительно), так и для не- симметричных (что удивительно) матриц преобразования представляют собой исключительно ортогональные операции конгруенции вида В-»РВР', где Р — ортогональное преобразование (т.е. PPf =PfP=I). Остановимся на этом последнем утверждении более подробно. Из линей- ной алгебры известно, что для упрощения задачи можно осуществить преоб- разование подобия так как собственные значения матрицы В при таких преобразованиях сохраняются. Однако в том случае, когда элементы матрицы В являются неопределенными и присутствуют погрешности округ- ления, необходимо учитывать характер преобразования F. Оказывается, что любая неопределенность в элементах матрицы В увеличивается пример- но в cond(F) : || F|| • ||F“* || раз, где cond(F) - число обусловленности матрицы F. Поскольку 1 <cond(F) < 00, то при вычислениях на ЭВМ сле- дует ограничиваться преобразованиями с небольшими значениями величи- ны cond (F). Самая надежная стратегия, конечно, состоит в том, чтобы обес- печить cond(F) =1, Достоинство ортогональной матрицы Р состоит в том, что: 1) Р~1= Pf (т. е. обращение матрицы является тривиальным); 2) cond (Р) = 1; действительные симметричные матрицы всегда могут быть приведены к диагональному виду соответствующим ортогональным преобразованием подобия, но лучшая форма, к которой можно привести в общем случае матрицы, отличные от нормальных, — это треугольная. И последнее замечание относительно терминологии. Копгруенция — это преобразование вида B~*FBFZ ; в том случае, когда преобразование F орто- гонально, копгруенция является преобразованием подобия. Методы Якоби [12, с. 2021 состоят в выполнении последовательности простых преобразований Р (называемых плоским вращением), в резуль- тате каждого из которых становится равной нулю (или сильно уменьшается) одна пара внедиагональных элементов матрицы, например пара, расположен- ная на позиции (/',/) и (/,/) Симметричная матрица постепенно приводится к диагональному виду. Конечно, элементы матрицы, которые становятся нулевыми на одном этапе преобразования, теряются на последующих этапах. Тем не менее процесс сходится достаточно быстро при правильной страте- гии выбора последовательности пар элементов (/, z). Для матриц, в которых доминирует главная диагональ, методы Якоби являются идеальными, но для обычных матриц их быстро действие в два- три раза меньше [12, гл. 9], чем обеспечивает наиболее подходящий метод, называемый QR-jwerodozM Хаусхолдера. Последнее справедливо для обычных последовательных ЭВМ. Метод Хаусхолдера реализуется в два этапа [12, с. 202]. 1. С помощью последовательности (и —1) операций ортогональной кон- груенции симметричная матрица А приводится к трехдиагональному виду Т, а несимметричная матрица В приводится к матрице Хассенберга 114
2. С помощью другой последовательности матриц Р уменьшается число ненулевых внедиагональных элементов матриц Т и Н без ’’повреждения” нулевых элементов. Последний внедиагональный элемент уменьшается очень быстро. Когда он становится пренебрежимо малым, согласно программе просто игнорируются последние строка и столбец матрицы (такая процеду- ра называется автоматическим понижением порядка матриц). К концу дан- ного этапа матрица Т становится диагональной. Даже в случае несиммет- ричной исходной матрицы ее собственные значения лежат на диагонали ре- зультирующей верхней треугольной матрицы. Для неспециалиста важным является то, что для полупения матрицы Т требуется (2/3) п3 операции умножения с плавающей запятой, а для полу- чения матрицы Н — (5/3) и3 операций умножения [20]. Для выполнения второго этапа требуется приблизительно Юл2 операций умножения в случае симметричной исходной матрицы и примерно (5/2)п3 операций умножения в случае несимметричной матрицы. Не было случая, чтобы при выполнении программы возникали какие бы-то ни было затруднения. Методы устойчивы и обеспечивают сходимость, а программы неоднократно испытывались. Необходимо обратить внимание на один технический момент. Когда дей- ствительная матрица имеет комплексные собственные значения, матрица Н будет действительной, все операции вычислений на втором этапе будут дей- ствительными, но не все внедиагональные элементы матрицы будут стремить- ся к нулю. На самом деле матрица приводится к блочно-треугольному виду с диагональными блоками размера 2X2 для каждой комплексно-сопряженной пары собственных значений. Это очень эффективный способ сохранения ариф- метических операций действительными, но получения при этом комплексных величин. В том случае, когда необходимо получить собственные векторы (при симметричной исходной матрице), произведения всех Р матриц могут быть накоплены по мере их образования для получения таким образом ор- тогональной системы собственных векторов, как бы близки ни были при этом собственные значения. Стоимость накопления этих произведений пре- вышает стоимость остальных вычислений. Иногда требуется найти всего несколько собственных значений; в этом случае можно использовать другие методы. Если при симметричной исход- ной матрице необходимо точно определить более одной четвертой части спектра, то для увеличения быстродействия лучше прибегнуть к QR-методу Хаусхолдера для определения сразу всех собственных значений, чем нахо- дить нужные собственные значения матрицы по одному [16, с. 80]. При несимметричной исходной матрице ситуация еще сложнее. Если нужно найти только одно собственное значение, то в соответствии с принципом действия 115
программ EISPACK необходимо определить их все. Эта ситуация встречает- ся в известной задаче о показателе устойчивости: лучший из известных спо- собов определения одного из собственных значений с наибольшей действи- тельной частью малой матрицы состоит в вычислении всех собственных зна- чений; а затем в их исследовании. При других методах тратится много уси- лий на то, чтобы убедиться, является ли полученное собственное значение искомым, из-за чего они не могут соперничать с упомянутым выше. (Пока- затель устойчивости — это действительная часть этих собственных значений). Все это весьма удивительно! 6.6. ОБРАТНАЯ ИТЕРАЦИЯ Существует одна техническая задача, которую часто неправильно интер- претируют. Представьте, что пользователь ищет все собственные значения в заданном интервале симметричной трехдиагональной матрицы размера 100X100. Предположим, что их всего три. Эти значения можно найти с помощью простого метода, называемого методом деления пополам. Пробле- ма состоит в вычислении соответствующих собственных векторов. Наиболее предпочтительный метод заключается в использовании одного шага обрат- ной итерации, а именно решении матричного уравнения (Т Х) s = b относи- тельно s, где X — найденное собственное значение, а b — вектор, выбранный так, чтобы он зависел от X и не был ортогонален искомому собственному вектору. Полагаем, что значение X вычислено с достижимой по практике точностью, так что матрица Т —X является практически сингулярной. Тем не менее единственным компьютерным решением матричного уравнения (Т —Х)х = 0 будет нулевое, так что необходимо использовать некоторое очень малое, но ненулевое значение правой части Ь. Программа TINVIT из пакета EISPACK, которая реализует этот метод, дает хорошую аппрокси- мацию собственного вектора, соответствующего X. Это можно проверить апостериори, так как величина II (T-X)s|| = ||Ь|| Ils || ||s || известна и она должна иметь один порядок малости с Е • || Т||, где е — едини- ца округляемого разряда. В чем трудности? Предположим, что два собственных значения Xi и Х2 почти совпадают. В этих случаях вектор b изменяется очень мало при заме- не Xj на Х2 и, следовательно, вычисленный собственный вектор s2, хотя и не очень близок к вектору sj, к сожалению, далеко не ортогонален вектору Sj. Конечно, как показывает результат их вычитания, векторы и s2 пре- красно аппроксимируют собственные векторы матрицы Т. Плохо то, что векторы Si и s2 лежат в плоскости, которая является собственным прост- ранством с достижимой на практике точностью. Поэтому в действительности любая линейная комбинация векторов Sj и s2 будет такой же хорошей ап- проксимацией, как и вектор s2. 116
Отсюда возникает миф о существенной трудности вычисления ортого- нальных собственных векторов для очень близких собственных значений матрицы, в то время как на самом деле трудности связаны только с мето- дом обратной итерации. Недостаток заключается в том, что вектор b явля- нется очень гладкой функцией X. Раз причина выяснена, ее нетрудно устра- 9‘нить. Действительно, в последней версии программы TINVIT учтены труд- ->-ности получения почти ортогональных последовательностей собственных векторов. Однако, чтобы включить процедуры оценок и ортогонализации, в жертву пришлось принести элегантность и простоту первоначального мето- да. Как упоминалось в разд. 6.5, накопление произведений всех QR-преоб- разований дает полное множество практически ортогональных собственных векторов. г- 6.7. О МЕТОДАХ РЕШЕНИЯ ПРОБЛЕМЫ СОБСТВЕННЫХ ЗНАЧЕНИЙ БОЛЬШИХ СИММЕТРИЧНЫХ МАТРИЦ Преобразования подобия разрушают любую структуру разреженности матрицы А и, как известно, для больших матриц в явном виде не исполь- зуются. Кажется, вес специалисты по численному анализу отдают предпочте- ние алгоритму Ланцоша. Однако большинство инженеров пользуется сво- ими любимыми вариантами метода одновременной итерации, который они называют итерированием подпространства. Здесь будут более или менее подробно рассмотрены оба зти метода. Вычислители-химики используют либо метод итерирования подпространства, либо специальные методы, ко- торые не являются общими, но применимы для решения их специфических задач [3]. Пока нет ничего сравнимого с пакетом программ EISPACK и не ясно, появится ли вообще, если учесть сильное влияние на эффективность вычис- лений конкретной компьютерной системы. Нужно подчеркнуть, что как ме- тод Ланцоша (LAN), так и метод итерирования подпространства (SI) отно- сятся к обобщенным методам и допускают существенные вариации при их использовании. В этом они противоположны QR-алгоритму, который оставляет мало возможностей для вариаций. Проблема выбора сдвига при реализации QR-алгоритма решена, в то время как в методе SI в нем есть что-то от искусства. Многие (но не все) большие матрицы являются разреженными (т. е. имеют менее 20 ненулевых элементов в одной строке). Такие матрицы час- то можно хранить в быстродействующем (сверхоперативном) ЗУ вычисли- тельной системы при условии, что используются компактные структуры данных для записи ненулевых элементов. Тем не менее важные вычисления, в которых каждое произведение Au требует обмена данными между пер- вичным (сверхоперативным) и вторичным (оперативным) запоминающими устройствами, находятся на пределе возможностей современных компьютер- ных систем. Специалисты в области квантовой химии имеют дело с просты- ми симметричными матрицами с л~104 и 107, которые хранятся в файлах или на лентах. Химикам помогает то, что грубая аппроксимация нескольких 117
нужных собственных векторов априорно известна; это большое достоинство. Многие химики работают на компьютерных системах средней производитель- ности, и их трудности связаны, скорее, с особенностями операционной сис- темы, чем с методом вычислений. Программное обеспечение, разработанное большинством специалистов по собственным значениям, встроено в их специализированные пакеты про- грамм, и трудно понять, как они могут воспользоваться более совершенной программой вычисления собственных значений больших матриц, разработан- ной для универсальных ЭВМ. Им придется, конечно, в этом подробно разоб- раться, а затем ввести эти программы в свои системы. Однако эту работу следует предпринимать только в том случае, если будут видны перспективы в улучшении на порядок надежности, быстродействия или требований к объему памяти. 6.8. МЕТОД ИТЕРИРОВАНИЯ ПОДПРОСТРАНСТВА ДЛЯ РЕШЕНИЯ УРАВНЕНИЯ (К - ХМ) z = О Этот метод представляет собой любопытную версию блочного метода обратной итерации с перемежающимися сдвигами (более детально см. [12, гл. 14, 15]). Пользователь должен выбрать множество изр ортонормирован- ных начальных векторов. Пусть это будут столбцы некоторой матрицы X размера иХр. Выбрать р не так легко, но пусть р<50. Подпространство, о котором идет речь в названии раздела, является подпространством столб- цов матрицы X. Внутренний цикл алгоритма SI, по существу, состоит в сле- дующем: 1) решить матричное уравнение (K gM)Y = MX для (иХр)-матрицы Y; 2) сформировать (рХр)-матрицы К = YfKY и M = YrMY; 3) определить все собственные значения малых матриц (К — оМ) G = MGD, где матрица D является диагональной и G — матрица размера рХр, составлен- ная из собственных векторов; 4) положить Х= YG; 5) проверить на сходимость элементы матрицы D. Существует ряд существенных видоизменений этой схемы, но они не важ- ны для данного обзора (более подробно см. [1 и 12, гл. 14]). Если элементы матрицы D сходятся к предельным значениям, соответст- вующие векторы матрицы X являются удовлетворительной аппроксимацией собственных векторов. Типичными значениями являются п = 500, р = 20. Иногда значение р доста- точно велико и приходится использовать оперативное ЗУ на первом шаге. Если р выбрано слишком малым, то число шагов для достижения сходимос- ти резко возрастает. В алгоритме SI в неявном виде предусмотрена обработка матрицы (К —оМ)“1М, которая является несимметричной, но самосопряженной со скалярным произведением с матрицей М, что является достаточным для того, чтобы собственные значения были действительными. (Скаляр- ное произведение с матрицей М определяется как (х, у) = yzMx.) 118
6.9. АЛГОРИТМ ЛАНЦОША [12, гл. 13] Пусть А = А/г, г — произвольный начальный вектор, q0 =0, Pi =||г ||. При- ведем внутренний цикл базисного алгоритма Ланцоша: для к = 1,2,... до сходимости, выполнить 1. q* <- «7Рк- 2. г«-Л<|*. 3. r<-г - т 4. Занести i н оперативное ЗУ. ' 5. a**-q[r. 6. г <- г - qA ак. 7- Л + 1Мг||. 8. Проверку на сходимость. Заметим основную особенность этого цикла. Он изобилует векторными операциями, линейными комбинациями и скалярными произведениями. Величины аг- и Рг- рассматриваются как элементы трехдиагональной матрицы «1 Р2 Р1 И2 “2 Рз Рз Рк Рк %к которая с каждым шагом увеличивается на одну строку и один столбец. Пусть Q^=(qi, Ц2, , q^). Наиболее важным является соотношение AQfc - О&Тд. - 0 - Pfc+i q^+ieI- + Fk, где связано с погрешностями округления и всегда мало. Здесь вектор е£= (0, 0, . . . , 0,1) содержит к элементов; все другие векторы имеют дли- ну п. При абсолютно точных вычислениях но в действительности такою не бывает. Тем не менее это несоответствие только замедляет выполнение алгоритма, но не препятствует сходимости. На самом деле происходит то, что некоторые собственные значения мат- рицы Тд. при увеличении к стремятся к собственным значениям матрицы А. Если -Q и s представляют собой собственную пару матрицы Tfc, т.е. Тд-s = stf, II s П = 1, 119
то аппроксимируемый собственный вектор, соответствующий $, есть у = = Qfcs. Существует граница погрешности вычислений Пусть s (к) — последний элемент s. Существует собственное значение матрицы А, удовлетворяющее условию В большинстве прикладных задач величина /3% никогда не бывает малой, так что сходимость обусловлена уменьшением |s (к) | по мере того, как к увеличивается. Для вычисления s (к) необходимо только найти собственный вектор трехдиагональной (кХк) -матрицы. На самом деле существуют мето- ды даже более быстрого нахождения s (к). Здесь мы опять опустили много- численные детали, чтобы выделить основные особенности. Матрица А часто совпадает с матрицей, описанной в разд. 6.4, поэтому второй шаг (г <- Aq^) в основном определяет стоимость вычислений по ал- горитму Ланцоша. Достоинство этого алгоритма состоит в том, что в отли- чие от алгоритма итерирования подпространства, при котором на каждом шаге вычислений одна матрица X заменяется на другую, здесь информация не отбрасывается. Теория сходимости алгоритма Ланцоша хорошо разрабо- тана, и крайние собственные значения матрицы А часто сходятся после вы- полнения примерно 2\/н шагов. При реализации алгоритма Ланцоша в сверхоперативной памяти ЭВМ тре- буется хранить только три или четыре «-мерных вектора совместно с дан- ными, необходимыми для выполнения процедуры г *-Aq. Однако при необ- ходимости нахождения собственных векторов векторы qj, q2 > • • • > долж- ны быть извлечены из оперативного ЗУ для образования вектора У = (М = q,s(l) + q2s(2) + • • 4- qks(fc). В настоящее время продолжаются работы, направленные на превращение алгоритма Ланцоша в надежную программу. В то же время известна хоро- шая документированная программа, носящая имя LASO2, разработанная Д. Скоттом в Национальном энергетическом центре программного обеспе- чения Национальной лаборатории Аргонны. 6.10. СИНГУЛЯРНЫЕ ЗНАЧЕНИЯ (ДЛЯ МАЛЫХ МАТРИЦ) В большинстве вычислительных центров имеются очень хорошие про- граммы доя вычисления малых матриц. Наиболее известная из них находит- ся в библиотеке программ UNPACK (но не EISPACK). Сингулярное разло- жение действительной матрицы В размера тХи есть В = USV1, где матрица U размера тХг и матрица V размера «Хг являются ортонормированными, 120
т.е- UfU=¥f¥ = Ir и Z = diag(a1;... ,аг), где оу>0. Здесь г — ранг матри- цы В. Ясно, что BfB = ¥Z2¥f, откуда следует, что [ofy — ненулевые собственные значения матрицы BfB, столбцы матрицы ¥ являются соответствующими собственными векторами. Нет необходимости записывать матрицу IV В в явном виде. Программа UNPACK эквивалентна QR-методу Хаусхолдера применительно к матрице BZB, но фактически явно преобразуются только элементы матрицы В [4, гл. 11 ]. При этом программа выполняется в два этапа. 1. Последовательность п — 1 простых двусторонних ортогональных преоб- разований B-»FZBQ используется для того, чтобы преобразовать матрицу В к диагональному виду Ъ X X Е XX X X X 2. Другая последовательность матриц Р и Q используется для уменьшения ненулевых внедиагональных элементов без искажения каких-либо нулевых элементов. Сингулярные векторы (так названы столбцы матриц U и ¥) оп- ределяются путем накопления произведений матриц Р и Q по мере их ис- пользования. Это устойчивый компактный алгоритм, реализуемый с гаран- тией. Сингулярное разложение дает наиболее информативный и надежный метод решения линейных задач по методу наименьших квадратов, но в то же время это наиболее дорогостоящий метод, мощность которого во много раз превышает потребности ряда прикладных задач. Если т>п, то число опера- ций умножения, которое требуется для вычисления матриц би ¥, а также расчета S, приблизительно равно 2?и2 (и — щ/3) + 5/н2н; при п-т число этих операций составляет примерно 6л3 (что эквивалентно шести операциям умножения матрицы на матрицу). Заметим, что матрицы U и ¥ образованы с помощью операций вида U UP, ¥ <- ¥ Q, где Р и Q практически ортогональны. Следовательно, матри- цы U и ¥ должны быть практически ортонормированы, а поэтому левые и правые сингулярные векторы должны быть ортогональны, как бы близко сингулярные значения ни располагались. 121
6.11. СИНГУЛЯРНЫЕ ЗНАЧЕНИЯ (ДЛЯ БОЛЬШИХ МАТРИЦ) Эта проблема по-прежнему пока что изучается. Не существует доступно- го стандартного программного обеспечения. Задачи, решаемые методом наи- меньших квадратов, характеризуются значениями п ~300000 и т= 2000000, но при этом всего несколькими ненулевыми элементами в матрице В [10]. Для решения задач методом наименьших квадратов полное сингулярное раз- ложение производить не надо. Поэтому используются другие, более дешевые методы. Один из таких методов состоит в вычислении QR-разложения (не следует путать с QR-алгоритмом) с перестановкой столбцов матрицы. В том случае, когда матрица имеет полный ранг, наиболее просто использовать множитель Холецкого С матрицы BZB (т.е. В'В = СгС, где С — верхняя тре- угольная матрица размера и Хи) для решения нормальных уравнений. При абсолютно точном вычислении матрица ВС-1 является ортогональной и ее столбцы дают ортонормированный базис пространства столбцов матрицы В. Существует несколько хороших параллельных алгоритмов для вычисле- ния множителя Холецкого положительно определенных матриц [21]. Одна- ко будут ли они пригодны в случае, когда п 300000, не ясно! С возмож- ностями применения параллельных алгоритмов для малых значений п можно познакомиться в работе [24]. 6.12. О ПРОБЛЕМЕ СОБСТВЕННЫХ ЗНАЧЕНИЙ ДЛЯ БОЛЬШИХ НЕСИММЕТРИЧНЫХ МАТРИЦ В настоящее время нет эффективного, надежного метода для вьщеления некоторых или вычисления всех собственных значений больших разрежен- ных несимметричных матриц и очень мало хороших доступных средств про- граммирования. Это является предметом активных исследований [13 — 15], но экономические побудительные мотивы здесь кажутся не столь важными, как в случае симметричных задач. Обзор этих исследований можно найти в работе [18]. Особо важный специальный случай, который оправдывает вни- мание к несимметричным задачам, связан с наличием возмущений в симмет- ричных задачах. 6.13. ВОПРОСЫ НА БУДУЩЕЕ Не удивительно, что в методах, которые оказались наиболее удачными для применения в последовательных компьютерах, в полной мере учиты- ваются основные особенности этих компьютеров: легкий доступ процес- сора к ЗУПВ большой емкости и легкость реализации сложных циклов в программах. Было бы удивительным, если бы эти методы были пригодны и для параллельных процессоров. Кажется, что все исследования в области параллельных алгоритмов сфоку- сированы на том, чтобы превзойти возможности последовательных ЭВМ при решении стандартных малых задач (при п <100), таких как умножение матрицы на матрицу или решение линейных уравнений. Однако именно эти 122
малые задачи не интересуют специалистов по вычислительным методам, ко- торые считают, что все их требования в области малых задач удовлетворе- ны. Их исследования направлены на решение больших задач: либо на совер- шенствование общих методов, либо на разработку специальных приемов для наиболее важных частных случаев, таких как решение квадратичных X мат- риц (Х2А + ХВ + С)х = 0, или на использование суперкомпьютеров типа Сгау-1 вместо последовательных компьютеров. Все, что я читал о методах вычисления собственных значений с помощью параллельных алгоритмов, посвящено обработке заполненных матриц (см., например, [8]). Однако большинство больших матриц являются разрежен- ными и мог бы оказаться пригодным любой алгоритм, учитывающий разре- женность, если стараться сохранить емкость оперативной памяти. Задачи обработки изображений и распознавания образов — это задачи об- работки заполненных матриц. Рассмотрим кратко задачу вычисления 50 наибольших сингулярных значений (и векторов) матрицы В размера 1000Х Х500 элементов. Данные содержат 106/2 чисел. (Если эти числа известны только с точностью до одной десятичной цифры, то кажется не совсем удач- ным тратить 106/2 машинных слов для их запоминания.) Применение об- щих приемов, таких как использование нормальных уравнений или парал- лельных алгоритмов [7, 23], является ’’стрельбой из пушки по воробьям”. Согласно им выполняется вся работа, необходимая для нахождения всех 500 сингулярных значений. Возможно ли здесь использовать априорные зна- ния? Важной помощью было бы указание 10 или 20 столбцов матрицы В с наибольшей нормой. Это позволило бы в последовательных ЭВМ использовать блочный ал- горитм Ланцоша с порядком блока 10 или 20 для оператора BfB. Нет необ- ходимости образовывать произведение матриц BZB для вычисления матрич- ного произведения В?(ВХ). Здесь достаточно 20 или 10 итераций для схо- димости 50 наибольших собственных значений матричной формы BfB, а чис- ло арифметических операций примерно равно тому, которое необходимо для образования BfB. Каким образом в параллельных алгоритмах можно эффективно учесть изменение числа необходимых сингулярных значений? Очень малые изменения в приближениях, соответствующих большой задаче, могут сильно повлиять на эффективность других методов. Здесь есть одна трудность. Как могут систолические алгоритмы с очень однородным потоком информации эффективно адаптироваться к измене- ниям в конкретной задаче или имеющейся информации? Если они не смогут адаптироваться, то могут ли они быть эффективными для больших задач? СПИСОК ЛИТЕРАТУРЫ [1] K.-J. Bathe, and S. Ramaswarmy, “An Accelerated Subspace Iteration Method,” Comput. Methods Appl. Meeh. Eng., 23:313-331 (1980). [2] K.-J. Bathe, and E. Wilson, Numerical Methods in Finite Element Analysis, Prentice- Hall, Englewood Cliffs, N.J., 1976. 123
[3] E. R. Davidson, “The Iterative Calculation of a Few of the Lowest Eigenvalues and Corresponding Eigenvectors of Large Real Symmetric Matrices,” J. Comp. Phys., 17&1- 94 (1975). [4] J. J. Dongarra et al., UNPACK User's Guide, SIAM, Philadelphia, 1979. [5} EISPACK The associated guide is published as Lecture Notes in Computer Science, Vol. 51, by B. S. Garbow et al, Springer-Verlag, New York, 1977. [6] T. Ericsson and A. Ruhe, “The Spectral Transformation Lanczos Method in the Nu- merical Solution of Large, Sparse, Generalized, Symmetric Eigenvalue Problems,” Math. Comp., 34:1251-1268 (1980). L7] A. M. Finn, F. T. Luk, and C. Pottle, Systolic Array Computation of the Singular Value Decomposition (preprint), 1981. I [8] D. Heller, “A Survey of Parallel Algorithms in Numerical Linear Algebra,” SIAM Rev 20:740-177 (1978). [9] International Mathematical Statistical Library (IMSL), Sixth Floor—GNB Building, 7500 Bellaire, Houston, TX 77036. [10] P. Maissl, A Priori Prediction of Roundoff Error Accumulation in the Solution of a Super-Large Geodetic Normal Equation System, NOAA Prof. Paper 12, NOAA, Rock- ville, Md., 1980. I [11] Numerical Algorithms Group (NAG), 7 Banbury Road, Oxford OX2 6NN, England. [12] B. N. Parlett, The Symmetric Eigenvalue Problem, Prentice-Hall, Englewood Cliffs, NJ., 1980. (Called SEP in this paper.) •' I [13] B. N. Parlett, and D. Taylor, A Lookahead Lanczos Algorithm for Vnsymmetric Matrices, Math. Comp., 44 (to appear). i [14] A. Ruhe, “The Two-sided Amoldi Algorithm for Nonsymmetric Eigenvalue Problems,” in B. Kagstrom and A. Ruhe, eds., Matrix Pencils, Springer-Verlag, New York, 1982. | [15] Y. Saad, Chebyshev Acceleration Techniques for Solving Nonsymmetric Eigenvalue Problems, Math. Comp., 41 (to appear). [16] В. T. Smith, et al., Matrix Eigensystem Routines—EISPACK Guide, Lecture Notes in Computer Science No. 6, Springer-Verlag, New York, 1974. [17] G. W. Stewart, A Bibliographic Tour of the Large Sparse Generalized Eigenvalue Problem, in J. R. Bunch and D. J. Rose, eds.. Sparse Matrix Computations, Academic Press, 1976, pp. 113-130. [18] M. Heath, ed., Sparse Matrix Software Catalog (1982), available from Mathematics and Statistics Research Dept., Oak Ridge National Laboratory, Oak Ridge, TN. p4
П9] J. Н. Wilkinson, The Algebraic Eigenvalue Problem, Oxford University Press, New L York, 1965. [20] J- H. Wilkinson, and C. Reinsch, 1971. Handbook for Automatic Computation, Vol. II: Linear Algebra, Springer-Verlag, New York, 1971. [21] R- P- Brent, and S. P. Luk, “Computing the Cholesky Factorization Using a Systolic Architecture,” Proceedings of the 6th Australian Computer Science Conference, Sydney, Feb. 1983. [22] L. Snyder, “The Role of the CHiP Computer in Signal Processing,” Proceedings of USC workshop on VLSI and Modern Signal Processing, Nov. 1982, p. 133. [23] S. Y. Kung and Gal-Ezer, in this volume. [24] R. Schreiber, “A Systolic Architecture for Singular Value Decomposition,” Proc, of 1st International Colloq. on Vector and Parallel Computing in Scientific Applications, INRIA, Paris (1983).
I ЧАСТЬ II ПАРАЛЛЕЛЬНЫЕ МАТРИЧНЫЕ ПРОЦЕССОРЫ: АРХИТЕКТУРА И ЯЗЫКИ ВВЕДЕНИЕ Темой части II являются архитектуры параллельной обработки, реали- зованные в виде СБИС. Практическое значение большинства теоретических исследований в области обработки сигналов, включая работы, обсуждаю- щиеся в ч. I, определяется в конечном счете их вычислительной осуществи- мостью. При обработке данных в реальном масштабе времени это особенно сильно зависит от возможностей параллельной обработки: от скорости и объема обрабатываемой информации, предоставляемых существующими вычислительными машинами. Появление устройств с высокой плотностью компоновки, высокоскоростных СБИС, а также средств автоматизирован- ного проектирования ускорило революцию в архитектурном проектирова- нии. Хотя при высокой степени интеграции возможно обеспечить макси- мальный параллелизм, и тем самым почти неограниченное аппаратное обес- печение при очень низкой стоимости, имеются отдельные ограничения, обус- ловленные технологией реализации связей, сложностью разработки, тести- рования и т.д. Следовательно, имеется настоятельная потребность в новой методологии проектирования систем на СБИС. С целью увеличения потен- циальных возможностей СБИС в области обработки сигналов системное про- ектирование должно охватывать широкий спектр дисциплин и координиро- вать разработку языка программирования, архитектуры вычислителя и его практического применения. До недавнего времени решение больших вычислительных задач обеспе- чивалось высокопроизводительными суперкомпьютерами, включая конвей- ерные компьютеры, матричные процессоры и многопроцессорные системы. Разработка этих вычислительных систем требует тщательного исследования способов организации параллельных вычислений, эффективного програм- мирования и оптимизации ресурсов. Однако универсальное назначение этих машин ведет к усложнению системной организации и резко повышает ’’на- кладные расходы” в системных операциях. Эти ЭВМ не пригодны для обра- ботки в реальном масштабе времени, где должна быть обеспечена высокая производительность. Удовлетворить требования высокоскоростной обработки сигналов могут специализированные вычислители. Имеются два типа специализированных вычислителей. Первый характеризуется негибкой и жестко специализирован- 126
ной структурой. Второй допускает программируемость и реконфигурируе- мость. ”Жесткие” процессоры применимы при обработке сигналов в реаль- ном масштабе времени, так как они обеспечивают высокую скорость обра- ботки. Однако специализация аппаратных средств часто приводит к длитель- ным циклам проектирования и высокой стоимости. С появлением современ- ного алгоритмического (архитектурного) анализа программируемые (ре- конфигурируемые) параллельные процессоры сигналов стали не только практически реализуемыми, но и во многих случаях более экономичными, чем ’’жесткие” машины. Поэтому в ч. II существенное внимание уделяется этим параллельным процессорам, точнее, исследуются различные аспекты анализа параллельных алгоритмов, разработки параллельных архитектур и языков программирования параллельных алгоритмов. Эти фундаменталь- ные исследования, по нашему мнению, должны обеспечить теоретическую основу будущих вычислительных систем обработки сигналов на СБИС. С учетом революционных изменений в технологии СБИС должны исполь- зоваться новые проработанные концепции и методы архитектурного (алго- ритмического) проектирования современных систем обработки сигналов. Основным требованием методологии проектирования сверху вниз являет- ся фундаментальное понимание разработчиком методов анализа алгоритмов. Хотя для последовательных алгоритмов эта область исследований хорошо проработана, для случая параллельной обработки требуются большие ново- введения. Новые идеи необходимы в выявлении параллелизма, связей, за- висимости данных, оценки свойств и общности между алгоритмами. Например, пока реализация внутренних соединений в СБИС остается проблемой, локальность рекурсивных алгоритмов будет иметь решающее значение и роста эффективности можно ожидать тогда, когда алгоритм подготовлен с учетом сбалансированного распределения работ и с соблюде- нием требования локальности (т.е. коротких линий связи). Распределение нагрузки и потока информации является основным направлением в разра- ботке СБИС-алгоритмов и, в конечном счете, приводит к новым проектам архитектуры и языка. Впервые эти понятия для СБИС-алгоритмов появились при разработке систолических матриц в публикации Н. Т. Kung, С. Е. Leiser- son. ’’Systolic Array (for VLSI)” [Sparse Matrix Proc., SIAM, 1978]: ’’Систо- лическая система представляет собой сеть процессоров, которые ритмически обрабатывают и пересыпают данные через систему. Физиологи используют слово ’’систола” для обозначения ритмических регулярных сокращений сердца, которое прокачивает кровь по артериям сквозь тело. В систоличес- кой вычислительной системе функции процессора аналогичны функциям сердца. Каждый процессор регулярно ’’проталкивает” данные с входа на вы- ход, в каждый момент времени выполняет некоторый вид вычислений так, что в сети сохраняется регулярный поток данных”. Для читателей, занимающихся обработкой сигналов, данный материал проливает свет на то, как применять анализ алгоритмов для разработки архитектуры системы обработки сигналов. Из-за относительно высокой стоимости осуществления соединений в СБИС наибольший эффект дают 127
анализ и классификация параллельных алгоритмов с учетом этих соеди- нений. Алгоритм называется рекурсивным, если в нем повторяются операции одного и того же типа над последовательно поступающими входными дан- ными. В параллельном рекурсивном алгоритме входные и выходные данные снабжаются как пространственными, так и временными индексами. Индекс времени выходных данных всегда на единицу больше индекса входных дан- ных. Пространственные индексы выходных и входных данных связаны ре- гулярным образом. Говорят, что параллельный алгоритм является локаль- но связанным, если пространственные индексы входных данных некоторой рекурсивной операции ограничены наперед заданной величиной. При такой классификации подавляющее большинство алгоритмов обработки сигналов принадлежит к группе локально-рекурсивных. Учитывая общие черты этого класса алгоритмов, можно облегчить проектирование процессорных матриц на СБИС, предназначенных для обработки сигналов. В частности, локаль- ность этих алгоритмов допускает возможность локализовать не только связи, но и управление матрицей процессоров. Более точно это означает, что активизицией всех вычислительных процессоров в структуре можно уп- равлять локально по схеме, подобной схеме потокового вычисления. Поня- тие потоковых вычислений не является чем-то новым в обработке сигналов. Например, схема таких вычислений естественно возникает при представлении алгоритма БПФ и цифровой фильтрации графами потоков сигналов. Интерес- но, что дополнительная гибкость локального управления приводит к поня- тию волнового процессора — локально связанной и самотактируемой (асин- хронной) структуре, которая может быть запрограммирована для парал- лельного выполнения любых локальных рекурсивных алгоритмов. В гл. 7 представлен эволюционный переход от трансверсальной фильтра- ции к систолической и волновой матричной обработке. Анализ алгоритма и архитектуры сначала рассматривается на примере разработки одномерного БИХ-фильтра и затем распространяется на двумерные систолические и вол- новые матрицы. В главе делается упор на целостную методологию проекти- рования систем на СБИС, которая тесно связана с разработкой языков, ар- хитектуры и их практическим использованием. Рассматриваются также преимущества (самотактируемых) управляемых данными вычислений и их языковая поддержка при волновом (систолическом) типе программного обеспечения. Для развития параллельных матричных процессов необходим скачок в развитии программного обеспечения и техники автоматизирован- ного проектирования. Для отображения параллельных алгоритмов в аппара- туру верхний уровень алгоритмического анализа должен обеспечить мощное абстрактное представление пространственно-временных действий с их естест- венным параллелизмом, в то время как нижний уровень должен конкретно определять аппаратурное обеспечение. Эта тема обсуждается в гл. 7, в кото- рой вводится понятие HIFI проектирования (иерархическая интерактивная потокографовая интеграция). Такое проектирование включает в себя деком- позицию рекурсивных алгоритмов, абстрактные системы обозначений, по- токографовые (структурные) и функциональные (поведенческие) описания, 128
процедуры преобразования, обеспечение взаимно однозначного соответст- вия графических и текстурных кодов и кремниевой компиляции. Для устранения узких мест при реализации высокоскоростных вычисле- ний предлагалось много специализированных архитектур. В таких разработ- ках следует учитывать ряд факторов, влияющих на их полезность и эконо- гмическую эффективность. Особенно важным является достижение компро- мисса между специализацией и программируемостью процессорной матрицы. «В гл. 8 этот вопрос рассматривается вначале с общих позиций, а затем на спе- циальных примерах. Общее обсуждение охватывает широкий спектр проб- лем технологии выполнения, применения, алгоритмов, архитектуры, проек- тирования аппаратуры, систем автоматизации проектирования, циклов из- готовления и интеграции системы. Для иллюстрации роли упомянутых об- лцих факторов внимание акцентируется на разработке процессорного бло- ка — программируемого систолического кристалла. Для удовлетворения требованиям, предъявляемым различными задача- ми обработки сигналов, желательна и нередко необходима высокая гиб- кость специализированной архитектуры. Это — программируемость, пере- страиваемость конфигурации, возможность декомпозиции и отказоустой- чивость. В гл. 9 представлены высокопараллельный процессор сигналов (РВП-процессор) с перестраиваемой конфигурацией. Он состоит из совокуп- ности параллельно работающих процессорных элементов, расположенных с регулярными интервалами в двумерной решетке программируемых ком- мутаторов. Коммутаторы, имеющие локальную память, позволяют динами- чески объединять массив процессорных элементов в систему с произвольной топологией. В главе демонстрируются гибкость и удобство РВП-процессора в организации вычисления БПФ или общих алгоритмов систолического типа. Очень важно то, что РВП-процессор может быть эффективно реализован на СБИС и благодаря перестраиваемости конфигурации и высокой отказоус- тойчивости удобен для изготовления на одной полупроводниковой пластине. Системы на СБИС благодаря высокой степени параллелизма могут обес- печить определенную отказоустойчивость, несмотря на наличие дефектов в пластине кремния. В гл. 10 представлены некоторые новые идеи обеспече- ния отказоустойчивости БИС параллельных матричных процессоров. В ней предлагается подход на основе структурной отказоустойчивости — естествен- ного способа обеспечения отказоустойчивости в локально связанных струк- турах. В общем случае отказоустойчивость требует введения избыточности в двух формах: увеличение объема оборудования или увеличение времени вычислений. При использовании СБИС-технологии ддя выполнения высоко- параллельных и отказоустойчивых систем более естественна временная из- быточность, на которой основан метод структурной отказоустойчивости. Этот метод как для одномерных, так и для двумерных структур оказывает- ся эффективнее интегральной технологии изготовления процессора на одной полупроводниковой пластине. При проектировании СБИС обычно делается предположение о том, что число портов ввода превышает некоторые характерные размеры входных данных. Однако в реальных случаях это предположение не всегда выпол- 129
няется. В гл. 11 рассматриваются важные вопросы отображения вычисли- тельных задач большой размерности на ограниченные структуры процессор- ных элементов и дается обзор современных подходов. Наиболее эффектив- ные методы декомпозиции требуют использования нескольких процессор- ных модулей. В этом случае весьма желательны программируемость и гиб- кость управления матрицей. Эта область исследований только развивается и содержит еще много нерешенных проблем. В алгоритмах, подходящих для реализации на СБИС, используются парал- лельность, присущая как прикладным задачам, так и архитектуре вычисле- ния при соблюдении локальности (т.е. короткие линии связи) и сбаланси- рованного распределения работ (по процессорам). Для описания СБИС-ал- горитма требуется точная система обозначений, позволяющая отразить его естественный параллелизм. Абстракция вида ’’функции” и ’’состояния” должны позволить изменять состояние машины способом, свободным от по- бочных эффектов. Кроме того, спецификация потока данных в локальных синхронизируемых алгоритмах требует адекватного механизма связи. К то- му же система обозначений должна быть проблемно ориентирована (т.е. адаптирована на нужный уровень абстракции процесса проектирования). Важным достоинством точных описаний является то, что они могут быть исполнены на некотором вычислительном устройстве, и это свойство обес- печивает проблемно ориентированную диагностику прототипа СБИС-алго- ритма. В гл. 12 предложена исполнимая спецификация алгоритмов для СБИС в духе функционального npoi раммирования. Она основана на вычислитель- ной концепции ’’пространства данных”, введенной автором несколько лет тому назад в виде формальной модели абстрактных машин. Пространство данных определяется в терминах ансамбля функций довольно общего вида, ассоциативной памяти и ансамбля функций, выражающих определение ’’процессора”. Система обозначений позволяет определять рекурсивные типы и является аппликативной в том смысле, что в процессе вычисления пере- ходов из состояния в состояние и самих состояний отсутствуют побочные эф- фекты, влияющие на состояния. Для выражения локальной синхронизации введены синтаксические понятия: ’’подпространства” в виде отдельных вы- числительных подструктур и ’’синхронизируемые типы”, которые обеспе- чивают потоковый механизм связи. Предлагаемая система обозначений бы- ла реализована и использована в качестве средства дальнейшей разработки исполняемой спецификации алгоритмов и тестирования на высоком уров- не в различных прикладных задачах, решаемых с помощью СБИС. В гл. 13 вводится иерархическая методология точного описания и про- верки систем на СБИС. В ней предлагается представление алгоритмов сис- темой пространственно-временных рекуррентных соотношений с указан- ной семантикой (семантикой с фиксированной запятой). Диапазон приме- нения языка широк, и одни и те же обозначения используются для систем, начиная от уровня транзисторов и кончая уровнем взаимодействующих процессов. Другими словами, предлагаемое представление может служить и как система параллельного программирования, если рассматриваются 130
взаимодействующие процессы, и как система описания аппаратурной реали- зации при исследовании интегральных схем. Цифровая обработка сигналов основана на фундаментальной математи- ческой теории, используемой в процессе разработки программ. Благодаря центральной роли понятий сигнала и системы хорошо структурированная программа обработки сигналов организована как совокупность ’’сигналов” и ’’систем”. В гл. 14 рассматривается три представления дискретно-времен- ных сигналов в программах. В частности, вместе с представлением абстракт- ных сигналов вводится новый язык представления сигналов — SRL, который удовлетворяет множеству желаемых критериев представления сигналов. Имеется обширная литература по проектированию цифровых фильтров для систем обработки сигналов. Недавно возобновился интерес к изучению структур фильтров с целью выявления параллелизма. В гл. 15 предлагается подход, использующий графы предшествования для систематического рас- познавания потенциально достижимого максимального параллелизма данной структуры. В дополнение к высокой пропускной способности, получаемой путем организации параллелизма и многоуровневого конвейера, высокое качество числовых характеристик достигается с помощью особых ортого- нальных арифметических операций. Подход демонстрируется созданием мо- дуля CORDIC с двойным конвейером: глобальным между процессорными элементами (ПЭ) и локальным на уровне разрядов. Применение этого модуля для организации ортогональных фильтров или волновых матриц позволяет получить максимальную пропускную способность. Большинство подходов в обработке сигналов приводит к интенсивным арифметическим вычислениям. Поэтому для решения специальных приклад- ных задач важно уметь выбирать соответствующие арифметические устрой- ства. В гл. 16 дается широкий обзор арифметических устройств различной архитектуры для цифровой обработки сигналов на СБИС и проводится их сравнение по разным параметрам. Глава предоставляет необходимые све- дения, позволяющие выбрать нужное устройство из разработанных к настоя- щему времени вариантов. 7 СБИС-ОБРАБОТКА СИГНАЛОВ: ОТ ТРАНСВЕРСАЛЬНОЙ ФИЛЬТРАЦИИ К ПАРАЛЛЕЛЬНОЙ ОБРАБОТКЕ С Гун1 7.1. ВВЕДЕНИЕ Успехи микроэлектронной технологии СБИС и появление методологии автоматизации проектирования привели к революционным изменениям в 1 Университет Южной Калифорнии, Лос-Анджелес, Калифорния. 131
области обработки сигналов. При этом область СБИС-обработки сигналов естественно оказалась в фокусе будущих технологических исследований. Чтобы перекинуть мост от теории и алгоритмов обработки сигналов к ар- хитектуре процессоров и их реализации на СБИС, очень важно понимать как требования современной обработки сигналов к вычислительным системам, так и ограничения со стороны технологии СБИС. Это потребует взаимного обогащения теории обработки сигналов и теории разработки и проектирова- ния вычислителей. С одной стороны, постоянно растущие требования к эффективности и сложности алгоритмов и обработке сигналов в реальном масштабе времени указывают на потребность в огромной вычислительной мощности как по объему, так и по быстродействию. Наличие дешевых, компактных и быстро- действующих СБИС делают высокоскоростную параллельную обработку данных большого объема практичной и экономичной [1]. Это позволяет достичь сверхвысокой производительности и предвещает технологический рывок в области обработки сигналов в реальном масштабе времени. С другой стороны, совершенно очевидно, что потенциальные возможнос- ти СБИС могут быть использованы только при условии четкого представле- ния области их применения. Поэтому следует отметить, что традиционные методы разработки архитектуры вычислителей не совсем подходят для проектирования высокопараллельных СБИС-процессоров. Например, высо- кая стоимость разработки проекта наводит на мысль о целесообразности использования структуры из повторяющихся модулей. Однако поскольку главной технологической трудностью является обеспечение соединений в СБИС-системах, что связано с увеличением занимаемого пространства, мощ- ности и затрат времени, то приходится ограничиваться только локальными связями [1]. Традиционный способ построения параллельных вычислителей и языков также не подходит для системы обработки сигналов в реальном масштабе времени [18] из-за большого числа вспомогательных операций, связанных с распределением вычислительных ресурсов и препятствующих повышению производительности. В многопроцессорных системах на СБИС необходимо использовать локальные связи, чтобы уменьшить взаим1гую зависимость процессоров и задержки, вносимые чрезмерно длинными соединениями. Эта вынужденная локальность препятствует введению глобальной передачи данных и глобальной синхронизации. Получающиеся в результате распреде- ленное управление, локальные связи и управляемые данными вычисления становятся все более и более привлекательными как по аппаратному, так и программному обеспечению. Такие соображения привели к разработке нескольких специализированных устройств обработки сигналов с архитек- турой, ориентированной на исполнение в виде СБИС. Эта глава посвящена алгоритмическому анализу, лежащему в основе развития архитектуры таких устройств, и компромиссам, связанным с их реализацией на СБИС. В разд. 7.2 дается обзор отдельных схем обработки сигналов, допускающих СБИС-исполнение, включая трансверсальный фильтр, систолическую матрицу, потоковый процессор и волновую матрицу. 132
g разд- 7-3 рассматривается методология нисходящего проектирования и исследуется отображение алгоритмов в архитектуру вычислителей. Далее иллюстрируется развитие принципов проектирования от основной канони- ческой формы БИХ-фильтра [2] к систолической и волновой процессорной матрицам. В разд. 7.4 исследуется обработка с использованием двумерной волно- вой процессорной матрицы. На основе понятия волнового фронта вычисле- ний демонстрируется такой подход к проектированию, который позволяет тесно координировать разработку языка и архитектуры. 7.2. МАТРИЧНЫЕ СБИС-ПРОЦЕССОРЫ ДЛЯ ОБРАБОТКИ СИГНАЛОВ 7.2.1. Трансверсальная фильтрация Кроме БПФ, возможно, самым полезным в технике цифровой обработки сигналов является цифровая КИХ- и БИХ-фильтрация. КИХ-фильтр с пере- даточной функцией м H(z)= Ybiz~~‘ «= i часто реализуется на линии задержки с отводами, как показано на рис. 7.1, и иногда называется трансверсальным фильтром [3]. Следует отметить, что эта обычная схема требует глобальных связей (для операций сумми- рования) . Однако при разработке СБИС отдается предпочтение модульным системам с локальными связями, такими как в систолических [5, 6] или волновых матрицах [7]. 7.2.2. Систолические матрицы Систолическая система представляет собой сеть процессоров, которые работают синхронно и передают данные сквозь систему [6]. Например, как показано в [5], несколько основных процессорных элементов (ПЭ), выполняющих операцию ’’скалярное произведение” (Y+- Y+A*B), может быть локально соединено для выполнения КИХ-фильтрации способом, по- добным трансверсальной фильтрации. Для эффективного выполнения мат- Рис. 7.1. Трансверсальный фильтр на основе линий задержки с отводами 133
ричного умножения, L ^-разложения и других матричных операций может быть построена двумерная систолическая матрица процессорных элементов. Основной принцип систолической обработки заключается в том, что все данные во время их регулярной и ритмичной передачи через матрицу могут быть эффективно обработаны во всех ПЭ. Важными свойствами систоли- ческой матрицы являются модульность, регулярность, локальность связей, высокая степень конвейеризации вычислений и высокая синхронность парал- лельной обработки. Такая матрица не требует управления, совмещает опера- ции ввода-вывода с вычислениями, и, следовательно, ускорение вычислений может быть достигнуто без увеличения требований к пропускной способ- ности ввода-вывода [6]. Однако имеется несколько спорных проблем, касающихся систолических матриц. Во-первых, систолические матрицы требуют глобальной синхрони- зации (т.е. глобального распределения синхронизирующих импульсов). Это может привести к расфазировке синхросигналов в системах с большим числом СБИС. К тому же в полностью систолических системах время вы- полнения операций стараются делать одинаковым. Например, для систоли- ческой матрицы, выполняющей операцию свертки [5], локальная переда- ча данных длится то же время, что и операция умножения-сложения (т.е. один полный такт). Это часто приводит к излишним затратам процессорно- го времени, поскольку практически необходимое время передачи данных всегда незначительно. Другим важным вопросом являются описание алго- ритма на языке параллельной обработки и программирование сложных по- токов данных. Названные проблемы служат причиной пересмотра хорошо известных асинхронных схем, обычно применяемых в ЭВМ с потоковым управлением. 7.2.3. Потоковая многопроцессорная система Потоковый мультипроцессор [8, 9] представляет собой асинхронный управляемый данными мультипроцессор, который работает по программе, выраженной через систему обозначений потока данных. Так как выполне- ние команд такого процессора ведется под управлением данных (порядок исполнения команд зависит только от имеющихся в распоряжении опе- рандов и требуемых ресурсов), независимые команды могут выполняться одновременно, не препятствуя друг другу. Основными преимуществами потоковых мультипроцессоров по сравнению с обычными являются простое представление параллельных процессов, относительная независимость про- цессорных элементов, широкое использование конвейерной организации, ограниченное использование централизованного управления и глобальной памяти. Например, в [9] показано, что мультипроцессор с потоковым управле- нием может выполнить умножение матриц за время, пропорциональное <Э(Л), т. е. так же, как и систолическая матрица. Однако для универсальных пото- ковых мультипроцессоров сложными проблемами являются реализация соединений процессоров и конфликты при одновременном доступе к памяти 134
[9] . Эти проблемы могут быть решены, если при обработке с потоковым уп- равлением использовать идеи локальности и регулярности [7], что факти- чески приведет к концепции волновой матричной обработки. 7.2.4. Волновая процессорная матрица Волновая матрица представляет собой программируемый матричный процессор, который сочетает в себе отличительные черты потоковых процес- соров (асинхронность и управляемость данными) и систолических матриц (регулярность, модульность и локальность связей). Для матричных процес- соров на СБИС желательно иметь эффективный язык программирования с использованием пространственно-временных понятий. Потребность в мощ- ном описательном инструменте особенно ощутима, когда встречаются более сложные алгоритмы, такие как алгоритмы нахождения собственных и сингу- лярных значений матриц. Хотя первоначальная систолическая концепция основана на движении данных между процессорами в матрице, это, к сожа- лению, еще не приводит автоматически к простому языковому описанию. В противоположность этому введение понятия ’’волновая обработка” дает более простые описания движения данных в одномерных и двумерных мат- рицах. Точнее, в волновых моделях используются асинхронность и управ- ляемость данными потоковых машин и локальность и регулярность систоли- ческих матриц. Это приводит к разработке языка матричного потока данных (matrix data flow language - MDFL) [7], предназначенного для описания сложных последовательностей взаимодействий и движения данных. Некото- рые примеры будут даны в последующих разделах. 7.3. ОТ АНАЛИЗА АЛГОРИТМОВ К РАЗРАБОТКЕ АРХИТЕКТУРЫ Цикл разработки СБИС может включать в себя следующие этапы иссле- дования: 1 — спецификацию применения — описание требований области при- менения, 2 — теории и алгоритма, 3 — структуры вычислителя и языка, 4 — архитектуры процессора, 5 — автоматизированное проектирование, компо- новку и изготовление, 6 — размещение кристаллов в системе. Поэтому нисходящее проектирование должно начинаться с полного понимания сути перечисленных этапов разработки. 7.3.1. Анализ рекурсивных алгоритмов Говорят, что рекурсивный алгоритм является локальным, если разность пространственных индексов в двух последовательных рекурсиях находится в заданных пределах. В противном случае говорят, что алгоритм глобаль- ный; для такого алгоритма будет всегда требоваться вычислительная струк- тура с глобальными связями. Типичным примером рекурсивного алгоритма глобального типа является алгоритм вычисления БПФ. Принцип БПФ (при прореживании во времени) основан на последовательном разделении данных, скажем {х (/’)}, с четными и нечетными индексами. Эта схема разделения будет приводить к глобальной 135
связи между данными. Бопее точно, рекурсии БПФ могут быть записаны как (с использованием вычислительной схемы ”с замещением” [2]) X(m+D(p) _ + W^X<m’(g), X<m+1>(g) = x(m)(p) - WN^m\Q), где p,q,r — параметры, изменяемые от стадии к стадии. Длина предполага- емой глобальной линии связи будет пропорциональна величине |р — q\. На последней стадии достигается максимум длины, когда |р-^|=тУ/2. (На- пример, для 1024-точечного БПФ эта максимальная величина равна 512.) Очевидно, алгоритм БПФ не может быть реализован в вычислителях со структурой локального типа, таких как систолические или волновые мат- рицы. Более интересным примером является проектирование БИХ-фильтров. В общем случае БИХ-фильтр характеризуется следующей передаточной функцией: N 1 + Ya-‘z~' i = I Трансверсальный фильтр есть просто частный случай БИХ-фильтра, когда знаменатель в H(z) равен 1. Соответствующий рекурсивный алгоритм час- то записывают в виде разностного уравнения /V N y(fc) = Е 4* - т)Ъ(т} + Е у(к - щ)п(т). т=1 т=1 Эта форма представления включает в себя глобальную индексацию и, таким образом, ведет к реализации алгоритма глобального типа в канони- ческой форме [3, 4], показанной на рис. 7.2,я. Тем не менее эта схема легко может быть преобразована в схему локального типа; следовательно, также может быть преобразован и алгоритм, представленный уравнением (7.1). Видоизмененная схема показана на рис. 7.2,6. Для проверки того, что схема на рис. 7.2,с определяется той же самой передаточной функ-, цией, что и схема на рис. 7.2,6, просто проверим передаточные функции f/W (zj/U^ (z) и IVW (z)/i/W (z).Очевидно, они не изменяются при модификации. По индукции, для i ~N-A, N- 2, . . . , 1 можно показать неизменность передаточных функций (z)/6'W (z), wW (z)/tXO (z), что и завершает доказательство. Следует отметить, что при видоизмененной прямой форме всегда имеются устройства задержки между сумматорами и поэтому требуются только локальные связи. 7.3.2. Систолическая патрица для БИХ-филырации Покажем, что видоизмененная форма представления в действительности эквива- лентна схеме систолической матрицы (рис. 7.3,о), за исключением масштаба времени. Так как задержка в половину единицы времени (z-1/2) не является общепринятой, дальнейшим шагом (рис. 7.3,с) является Изменение масштаба времени введением 136
Рис. 7.2. Прямая форма проектирования БИХ-фильтра, требующая глобальных связей (с), и видоизмененная прямая форма с локальными связями (б) переменной z* по формуле z—1”=zt“1. При этом элемент задержки z”’, умножитель и сумматор в каждой секции, ограниченной штриховыми линиями на рис. 7.2,6, обра- зуют ПЭ ’’скалярного произведения” [5] (рис. 7.3,6). Полная схема систолической матрицы, реализующей БИХ-фильтр, показана на рис. 7.3,в. Заметим, что из-за изме- нения масштаба времени входные данные {'г‘| должны чередоваться с ’’пустыми” так- тами (см. рис. 7.3, в), а скорость обработки становится равной 0,5 Г-1. Имея теперь локализованную матрицу, можно, в свою очередь, вывести локальную версию алгоритма (7.1). Обозначая верхним индексом временную переменную, а ниж- ним индексом - пространственную, соответствующие движения данных в указанной систолической структуре можно представить следующими рекуррентными выражения- ми локального типа [при а (0) ~Ъ (0) =0]: ги+1 = ^1с(«)+2п+1’ (7.2 а) = Хк^ b (л) + Yk+l, (7.2 б) (7.2в) справедливыми для всех п, кроме и =0, корда Xk*l=Xk + Zk. (7.2 г) 137
a) б) ^УоУгУг'" б) Рис. 7.3. Изменение единицы времени zI/2=z,“* (а); систолический ПЭ (б) и систолический матричный процессор для БИХ-филыра (в) Начальные условия имеют вид z»=o, г»=о. Граничными являются условия Z2V+1=0, ==0- Входная последовательность записывается как Х2^~1=х(к), (7.3 а) в ыходна я поел е до вате л ьно сть Y^=y(k). (7.3 6) Интересно, что корректность систолической матрицы может быть легко установ- лена путем выполнения z-преобразования выражений (7.2) и (7.3) и некоторых три- виальных алгебраических преобразований. Заметим, что скорость обработки указанного систолического процессора равна 0,5Г"* (т.е. результат на выходе появляется только в один из каждых двух времен- ных тактов). Эта скорость меньше той, которая получается при прямой форме реали- 1138
зации (1,0 Г-1), поскольку только на передачу данных (Х-+Х!) требуется затратить один полный такт времени — столько же, сколько на операции умножения и сложения, что является ненужным расточительством. Имеется два способа решения этой проб- лемы. Первый состоит в использовании многоскоростной систолической матрицы, а второй — в использовании волновой матрицы, основанной на асинхронном, управля- емом данными вычислении. 7.3.3. Многоскоростная систолическая матрица Многоскоростная систолическая матрица представляет собой обобщенную систолическую матрицу, в которой различные потоки данных могут переда- ваться через матрицу с различной скоростью, что позволяет выполнять раз- личные основные операции за различное время. Если в примере с БИХ- фильтром принять А за единицу времени при передаче данных, а Т — при ум- ножении-сложении, то при z-преобразовании появятся две различные пере- менные zj-1 и zj’, соответствующие задержкам А и Т в схеме, приведен- ной на рис. 7.2,в, z-1/2 в прямых цепях (для X) заменится на z7', в цепях обратной связи (для Y и Z) — на zj1 • Такое изменение приводит к много- скоростной систолической матрице, показанной на рис. 1.3,а, б. В этой схе- ме данные X движутся ритмично со скоростью 1/Д, а данные Y и Z — со скоростью 1/Т. Поскольку передаточной функцией процессорной матрицы будет H(z " ), где z" = z]"1 + zj1, то входные {х0, хг, х2 , •. • } и выходные {у о, У1, У 2 последовательности движутся со скоростью 1/(7’+А). В соответствии с теорией реализации многоскоростных систем [18] од- ной и той же передаточной функции H(z" ) соответствует множество струк- тур многоскоростных матриц. Это обстоятельство стоит подчеркнуть в свя- зи с тем, что одни структуры могут быть в цифровом исполнении лучше других [18]. Многоскоростная систолическая матрица на самом деле представляет собой не что иное, как синхронизированную версию волновой матрицы (см. подразд. 7.3.4). Такая матрица может применяться при совмещенной порязрядной и пословной систолической или волновой обработке. Хорошим примером этого служит (синхронная) волновая матрица, реализующая ал- горитм CORDIC для QR-разложения [12], где в квадратной процессорной матрице вертикальным волновым фронтом распространяются слова (много- разрядные), в то время как по горизонтали распространяются отдельные разряды. (В этом случае распространяемые по горизонтали разряды управ- ляют углами поворота в алгоритме CORDIC [19].) 7.3.4. Волновая матрица БИХ-фильтра Когда проблема синхронизации систем становится критической, можно прибегнуть к волновому подходу, используя асинхронные, управляемые данными вычисления. Наша цель состоит теперь в замене вычислений в систолической матрице с глобальной синхронизацией на асинхронную, уп- равляемую данными модель, показанную на рис. 7.4. Операция, соответ- ствующая каждой вершине на рис. 7.4, выполняется тогда, и только тогда, когда готовы требуемые операнды. Так как обработка асинхронна, ссылка 139
Рис. 7.4. Элемент волновой обработки — асинхронная, управляемая данными модель, согласно которой операции выполняются, только если готовы соответ- ствующие данные (а) и волновая структура для БИХ-фильтра (О') на время становится излишней. Непосредственным преимуществом этой модели является то, что передача данных занимает время, незна- чительное по сравнению с временем, необходимым для арифметической об- j работки. Точнее, достигаемая пропускная способноть при волновой обра- ботке приблизительно равна 1,0Т“1 (т.е. в два раза выше, чем в чисто систолической матрице, предоставленной на рис. 7.3). Теперь мы имеем другой способ представления рекурсии. Для этого , верхний индекс А (в круглых скобках) будем интерпретировать как но- мер волнового фронта (или номер рекурсии), так как индекс времени 'больше не нужен. Новое представление (7.1), имеет вид (в предположе- нии, что а (0) = b (0) = 0) . Y™ = X™b(n) + У<‘+1”, (7.4а) Z™ = Х*к'«(н) + Z< V/ >, (7.4 6) Xw = Х(к) + Z£‘. (7.4 в) Согласно (7.4 в) инициируется в ведущем ПЭ (и = 0) и распрост- раняется вправо по процессорной матрице, активизируя операции (7.4 а) 140
и (7.4 6) во всех управляемых данными ПЭ. Как показано на рис. 7.4, об- новленные данные подаются в обратном направлении для следующей рекурсии (или для следующего волнового фронта). Другой важной особенностью является то, что модели с управлением данными допускают использование простого потокового языка. На языке MDFL описание (для неограниченного поля ПЭ) имеет вид BEGIN FETCH X, RIGHT; FLOW X, LEFT; MUL X, b, D; MUL X. a, E; FETCH Y, RIGHT; ADD D, Y, Y; FETCH Z, RIGHT; ADD, E, Z.Z; FLOW Y, LEFT; FLOW z. LEFT; END Заметим, что приведенная программа записана на локальном уровне, т. е. в расчете на один процессорный элемент. После формального введения по- нятия волнового фронта можно использовать глобальный уровень языка MDFL, полагая, что один волновой фронт обрабатывается всеми процес- сорами. Представление алгоритма в виде последовательности волновых фронтов упрощает его понимание, и поэтому глобальный язык MDFL умень- шает трудности программирования. 7.4. ВОЛНОВАЯ МАТРИЧНАЯ ОБРАБОТКА С точки зрения нисходящею проектирования следует учитывать тот факт, что громадное большинство алгоритмов обработки сигналов обла- дает упомянутыми свойствами рекурсивности и локальности. В самом де- ле, большая часть вычислительных потребностей для обработки сигналов и прикладных математических проблем может быть сведена к основным матричным операциям и другим родственным алгоритмам [10, 11]. Свой- ственный этим алгоритмам параллелизм требует намного большей произво- дительности параллельных вычислений, чем та, которую способна обеспе- чить одномерная матрица. Первым важным архитектурным достижением в этой области являются двумерные систолические структуры для матрично- го умножения, обращения матриц и т.п. (полный обзор читатель найдет в [6]). В этом разделе сосредоточим внимание на алгоритмическом анализе, ко- торый приведет к согласованному языковому и архитектурному проектиро- ванию, необходимому для двумерного матричного процессора. На самом де- ле именно алгоритмический анализ матричных операций впервые приведет нас к понятию двумерного волнового вычислительного фронта. Все рас- смотренные ранее алгоритмы разлагаются на последовательные рекурсии 141
и могут быть отображены в соответствующие волновые фронты в однород- ной вычислительной сети. (Волновой фронт соответствует одной стадии ре- курсии) . Конвейеризация последовательности вычислительных волновых фронтов приводит к непрерывному продвижению волны данных и волны вычислительного процесса. 7.4.1. Последовательные математические рекурсии Проиллюстрируем последовательность математических рекурсий на при- мере матричных операций. Пусть А =агу, В =Лг/, С = АХВ — матрицы размера NXN. Матрица А может быть разложена на столбцы Ир а матрица В — на строки By, и, следовательно, С — A1BI +А2В2 + ... + А ]уВ]у. Матричное умножение может быть осуществлено за Nрекурсий: = + (7.5 а) а!'1’ = «« , (7.5 б) (7.5 в) где к = 1, 2,. .., N, и это приводит к множеству из А волновых фронтов. Конвейеризация вычислительных волновых фронтов [7]. Рассмотрим вычислительный волновой фронт для первой рекурсии в матричной опера- ции умножения. Предположим, что регистры всех ПЭ в начальный момент установлены в нуль: С$” = 0 для всех (i, j). Исходные значения матрицы А хранятся в модулях памяти слева (в столб- цах) , а матрицы В в модулях памяти сверху (в строках). Процесс начи- нается с ПЭ, обозначаемого символом (1,1) : C'/l = + flll *^11 ' Вычислительный фронт распространяется к ближайшим соседним ПЭ (1,2) и (2, 1), которые будут выполнять параллельно операции СЙ = Сй + flll * Ь12 , ей = ей 4- а21 * bt, Следующий фронт активности будет у процессорных элементов (3, 1), (2, 2) и (1,3). Так создается движущийся вниз по процессорной матрице вычислительный волновой фронт. Этот вычислительный волновой фронт подобен электромагнитному волновому фронту (оба они подчиняются принципу Гюйгенса), так как каждый процессор действует как источник вторичного излучения, создающий движущийся волновой фронт. Заме- тим, что при распространении волны предполагается локализованный по- ток данных. После того как волновой фронт проходит через все ячейки ПЭ, первая рекурсия считается выполненной (рис. 7.5). По мере распространения первой волны можно выполнить вторую ре- ,142
Первая волна---- вторая волна---- курсию параллельно поточной организацией второго волнового фронта не- медленно после первого. Например, процессор (z, /) будет выполнять опе- рацию С-?’ =(?••* + <J- * b и т.д. Конвейеризация возможна потому, что волновые фронты двух после- довательных рекурсий никогда не пересекаются, так как в каждый момент времени выполняющие рекурсию процессоры будут различны и тем самым устраняются любые проблемы гонок. Напомним, что волновые фронты мо- гут распространяться различными способами. Важно только, чтобы точно соблюдался порядок последовательных действий. Это правило обеспечивает- ся природой потоковой волновой обработки. Поэтому реальный способ распространения практически не имеет значения. В действительности при использовании локальной синхронизации волновой фронт может быть криво- линейным и тем не менее будет обеспечена правильная последовательное™ вычислений. 7.4.2. LU-разложение При LU-разложении данная матрица С должна быть представлена в виде С = АХВ, (7.6) 143
где А — нижняя, а В — верхняя треугольные матрицы. Рекуррентные выра- жения имеют вид (77а) ~ П’ (7.7 б) скк >Ф = <Ы, (7.7 в) где к -1,2,... ,7V; к <-i ; к < j <7V. Проверяя процедуру посредством вычислений по формуле (7.7а) в об- ратном порядке, убеждаемся в том, что с = с<°> = Y = АВ, где А— {ат1} — {а'£1}, В = {Ьяв} = {&„’} - матрицы на выходе системы об- работки (сравните с (7.6)). Сравнение (7.5) и (7.7) указывает на сходство этих процедур. В действи- тельности, волновой фронт для LU-разиожения (7.7) будет диалогичен вол- новому фронту на рис. 7.6, за исключением следующего: 1. Так же, как и при матричном умножении, данные а® и bW> распро- страняются вправо и вниз соответственно. Однако а получается в резуль- тате вычислений, что вызывает дополнительную задержку; см. (7.76) [в то время как bVf> прямо получается из предыдущей рекурсии; см. (7.7 в)]. 2. В самой простой схеме вторая рекурсия может начинаться в ПЭ (2, 2) [третья в ПЭ (3, 3) и т.д.]. Тем не менее для удобства аппаратной реали- зации все рекурсии лучше начинать в ПЭ (1, 1). В любом случае активное пространство обрабатывающей структуры сжимается (сокращается) от од- ной рекурсии к другой. (Это неизбежно приводит к некоторым потерям в эффективности использования процессора [7].) 7, 4.3. Нахождение собственных. значений с помощью волновой обработки Во многих случаях применения обработки сигналов, таких как спект- ральное оценивание при формировании луча с высоким разрешением, сжа- тие данных об изображении и т.д. [20, 21], алгоритмы определения соб- ственных значений сингулярных чисел матриц выступают как чрезвычайно мощный эффективный инструмент. Согласно [22] ”QL и QR-алгоритмы... являются наиболее эффективным способом получения всех собственных значений небольших симметрических матриц”. Может ли QR-алгоритм со- хранять зту эффективность при отображении его в виде некоторого парал- лельного алгоритма на квадратную или линейную многопроцессорную струк- туру? Ответ на этот вопрос будет дан в следующем разделе с помощью по- нятия вычислительного волнового фронта. 7. 4.4. Линейная многопроцессорная структура для приведения симметрической матрицы к трехдиагональному виду Вначале согласно QR-алгоритму матрица путем последовательных преоб- разований приводится к тре.хдиагональному виду, а затем согласно QL [QRJ- 144
алгоритму быстро уменьшается значение внедиагональных элементов до тех пор, пока они не станут пренебрежимо малыми. На каждом шаге алго- ритма к предыдущему результату применяется довольно сложное преобра- зование подобия, что дает последовательность матриц, сходящуюся к диаго- нальной матрице [22]. Приведение к трехдиагональному виду симметричес- кой матрицы А= {а (г, /)} выполняется с помощью преобразования подобия: W=Q*A*Qr, где W — трехдиагональная, Q — ортогональная матрица. Как правило, Q является произведением N— 2 ортогональных матриц: q = q(A~2) 1) * ... * q(0 , таких, что Q<P) обращает N—p—1 нижних элементов в р-м столбце матрицы А в нуль. Аналогично [Q® ]т обращает в нуль7У—р —1 верхних правых элементов в р-й строке матри- цы А. Требование локальности, которое обсуждалось ранее, обусловливает применение вращений Гивенса для приведения матриц к трехдиагональному виду. Упомянутый оператор QW, по существу, вновь разбивается на по- следовательность операторов Р), каждый из которых обращает в нуль элемент а (а, р) - Итак, =Q(P+2-P) *Q(P+3,P) * .. ,*qW P). Каждый оператор Q07-P) представляется в форме столбцы: q — 1 q строки: 1 n(q, РУ S(cP р) «_ 1 — S(q, р) C(q, р) q 1 1 Важно учитывать следующее: 1. Умножение слева матрицы А на Q(4- Р) изменяет только q — 1-ю и q-ю строки матрицы А. После операции вращения элементы этих двух строк принимают следующие значения: a’r{q - 1) C(q,p) S(q, р) 1Гщ(д - 1) _-%р) C(<bP)JL flrk) где а'г — вектор-строка произведения Р> А. Заметим, что a’ (q, р) = 0. 2. Умножение справа А2 = (QXA) на QT изменяет столбцы матрицы А2 с номерами q — 1 ив, которые принимают значения \a"{q ~ C(q, р) S(q, р) ~S(q, р) C(q, р) 145
Рис. 7.6. Распространение строчного вол- нового фронта 21 31 61 Рис. 7.7. Распространение столбцового волнового фронта где а'с (/<) — вектор-столбец матрицы A2Q . Так как А — симметрическая матрица, эта операция является в основном повторением многих операций со строками в процессе умножения QXA. Исключениями являются четыре элеменга, расположенные на пересечении строк и столбцов q и q — 1. 3. Последовательность операций не является жесткой, и поэтому допусти- ма конвейеризация волнового фронта. Характеризуя волновые свойства этого процесса, можно различить волны двух типов. К первому типу относятся волны, связанные с операциями над строками, так называемые строчные волны, а ко второму типу — волны, связанные с вычислениями на границах и операциями над столбцами. По- следние могут рассматриваться как отраженные волны, движущиеся вдоль диагонали, и в дальнейшем будут называться столбцовыми. (Учитывая сим- метрию задачи, можно удалить ПЭ выше главной диагонали, сохранив тре- угольную структуру без потерь какой-либо информации.) {.Распространение строчного волнового фронта. Природу волнового фронта можно понять из рис. 7.6, на котором изображены фронты актив- ности, связанные со строчными операциями, приводящими к обнулению элементов первого столбца. 2. Распространение столбцового волнового фронта. На рис. 7.7 показана последовательность столбцовых волн. Первый столбцовый волновой фронт может быть инициирован тогда, и только тогда, когда первая строчная вол- на достигает конца (т. е. последних двух элементов в последних двух стро- ках) . Первая задача этого фронта состоит в изменении содержимого столб- цов с номерами А'и N— 1 с помощью оператора j Т столбцОвая вол- на может продвигаться на один шаг после того, как строчная волна закончи- ла операции с последними элементами строк N— 1 nN- 2. В процессе вычис- лений операции над строками с номерами q и q — 1 должны заканчиваться 146
доначала соответствующих операций над столбцами. Это следует из того, что операции над столбцами требуют данных, которые являются выходными в операциях над строками. Аналогично операции над столбцами, соответст- вующие обращению в нуль (N-p — 1) элементов строки (строчная волна), должны заканчиваться до начала операций над строками, относящихся к об- ращению в нуль столбца р + 1 (столбцовая волна р + 1). Из рис. 7.6 и 7.7 можно, таким образом, увидеть, что по сути дела в любой момент времени самое большее два ПЭ в каждом столбце активно выполня- ют операции вращения. Поэтому предлагаем применять описанную процеду- ру, используя структуру процессорных элементов линейного или билиней- ного вида. Вычислительные задачи назначаются ПЭ так, что первая строка ПЭ формирует параметры и выполняет операции над строками, в то время как вторая строка ПЭ выполняет операции над столбцами. Хотя физическая конфигурация процессорной матрицы изменилась от квадратной к линейной, природа вычислительного волнового фронта оста- лась неизменной и теоретическое направление распространения вычисли- тельной активности сохранилось. Таким образом получено отображение вир- туальной квадратной конфигурации в билинейную структуру реальной ма- шины. Отметим, что билинейная структура будет обеспечивать время выпол- нения O(N2), как и квадратная (или треугольная), что доказывает ненуж- ность последней. Одним из самых популярных методов определения собственных значений симметрической трехдиагональной матрицы является итерационный метод диагонализации. Он состоит в серии простых преобразований подобия, в результате которых сохраняются симметричность и ленточность матрицы и в то же время уменьшаются значения внедиагональных элементов, что при- водит матрицу к диагональному виду с элементами, которые и являются искомыми собственными значениями. Этот алгоритм может быть легко отображен на линейную процессорную матрицу с волновой обработкой [12, 13]. В связи с нехваткой места для детального обсуждения волновой обработ- ки при вычислении собственных значений и сингулярных чисел и решении теилицевых систем рекомендуем читателю для ознакомления с этими вопро- сами обратиться к работам [13 — 15]. Эти методы представляют также ин- терес применительно к решению проблемы формирования луча с высоким разрешением [20]. 7.4.5. Применение волновой обработки Понятие волновой обработки применимо ко всем алгоритмам, которые обладают рекурсивностью и локальностью. Такие алгоритмы могут быть разбиты на три группы. 1. Алгоритмы основных матричных операций [7, 13]: матричное умноже- ние; LU-разложение; вращение Гивенса; обратная подстановка; обращение матриц; определение собственных значений; определение сингулярных чисел. 147
2. Специальные алгоритмы обработки сигналов [7, 14, 15]: решения теп- ' лицевых систем; линейной свертки; рекурсивной фильтрации; цикличес- кой свертки; дискретного преобразования Фурье. 3. Другие алгоритмы [12]: решения уравнений в частных производных; сортировки и т. д. 7.4.6. Архитектура и язык волновой обработки Понятие волнового фронта вычислений, являясь прочным теоретическим фундаментом для разработки процессоров с высокопараллельной структу- рой и языков параллельной обработки, имеет две отличительные черты. 1. Использование понятия волнового фронта приводит к архитектуре, основанной на волновой обработке, которая удовлетворяет принципу Гюй- генса и обеспечивает то, что волновые фронты никогда не пересекаются. Более точно, передача информации между каждым ПЭ и его ближайшими соседями является взаимно согласованной. Всякий раз, когда данные гото- вы, передающий ПЭ информирует приемник об этом факте, и приемник принимает данные по мере необходимости, а отправителю сообщается о том, что данные использованы. Эта схема может быть выполнена средст- вами простого протокола установления связи [7, 12, 18]. Волновая архи- тектура способна обеспечить режим асинхронного ожидания й, следова- тельно, инвариантна к временной неопределенности, связанной с локаль- ным тактированием, случайной задержкой при передаче и флюктуацией вре- мени вычислений [12, 17 — 19]. Короче говоря, это понятие, по определе- нию, приводит к асинхронной структуре с вычислениями, управляемыми потоком данных, которая хорошо согласуется с технологией СБИС [7, 16]. 2. Использование понятия волнового фронта помогает значительно умень- шить сложность описания параллельных алгоритмов. Для этого предназна- чен язык MDFL [7] описания вычислительных волновых фронтов и соот- ветствующих потоков данных большого класса алгоритмов, обладаю- щих ранее упомянутыми свойствами локальности и рекурсивности. Вместо программы для каждого процессора в структуре язык MDFL позволяет программисту обращаться к всему фронту процессоров. В противополож- ность тяжелому бремени составления расписаний решения задач, разделения ресурсов и управления взаимодействием процессоров, часто встречающихся при программировании универсальных многопроцессорных систем, введе- ние понятия волнового фронта может облегчить описание параллельных и конвейерных алгоритмов и значительно уменьшить сложность параллель- ного программирования. Полное описание перечня операторов языка MDFL и подробности син- таксиса могут быть найдены в более ранних публикациях [7, 12]. Напри- мер, полная MDFL-программа для умножения матриц имеет следующий вид: Программа матричного умножения на языке MDFL Размер структуры: NX.N 148
Выполняемая операция: С = АХ В к-й волновой фронг. c®=c^~1'i+aikbkj,k=l,2,.. .,N. Исходные данные-, матрица А хранится в модуле памяти (МП) слева (хранит- ся строка за строкой). Матрица В хранится столбец за столбцом в МП сверху. Выходные данные: результат получается в регистрах С каждого ПЭ. 1: BEGIN SET COUNT N; REPEAT; WHILE WAVEFRONT IN ARRAY DO 5: BEGIN FETCH A, LEFT; FETCH B, UP; FLOW A, RIGHT; FLOW B, DOWN; (* Now form С: = C + A x B) 10: MULT A, B, D; ADD C. D, C; END; DECREMENT COUNT; UNTIL TERMINATED; 15: ENDPROGRAM. Мощность и гибкость программирования на языке MDFL для волновых процессоров лучше всего демонстрируется широким перечнем алгоритмов, которые могут быть запрограммированы на этом языке [7]. Примеры про- грамм приведены в [7, 12]. Т.5. ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ И СРЕДСТВА АВТОМАТИЗАЦИИ ПРОЕКТИРОВАНИЯ ДЛЯ РАЗРАБОТКИ СБИС-СТРУКТУР Для развития высокопараллельных матричных процессоров совершенно необходим рывок в программном обеспечении и технологии автоматизиро- ванного проектирования. С одной стороны, наиболее важным архитектур- ным вопросом при разработке СБИС-структур является обеспечение мо- дульности, связей и системной синхронизации. С другой стороны, алгорит- мы должны обладать свойствами рекурсивности и локальности. Таким об- разом, совместное архитектурное и алгоритмическое рассмотрение форми- рует основу для развития программного обеспечения и техники автомати- зированного проектирования структур процессоров на СБИС. Алгоритмические свойства естественно приводят к систолическим и вол- новым процессорным матрицам, в которых эффективно используется боль- шое число модульных и локально связанных СБИС-процессоров. Для разра- ботки гибких и экономичных структур необходимо тщательное исследова- ние требований, относящихся к программному обеспечению матричных процессоров. Основная проблема состоит в том, чтобы найти выразитель- ную, легко понимаемую форму записи параллельного алгоритма, допускаю- 149
щую возможность компиляции из нее эффективных СБИС-схем и (или) ма- шинных команд. Для этого предлагаем методологию, которая позволяет, используя мощную абстрактную систему обозначений иерархически и рекур- сивно переходить от алгоритмов к графам потока сигналов (ГПС). Пред- лагаем также процедуры преобразования ГПС в систолические или волновые матрицы и, в конечном счете, в их аппаратную реализацию на СБИС. Основой системы проектирования HIFI (иерархической интерактивной по- токографовой интеграции) [24] является представление параллельных алгоритмов в форме, которая бы легко понималась человеком и давала возможность компилировать из них эффективные СБИС-схемы и (или) машинные команды для процессоров. По существу, структурные свойства параллельных рекурсивных алгоритмов указывают на осуществимость иерархического и итеративного потокографового метода проектирования матричных процессоров на СБИС. Метод проектирования HIFI основан на этом иерархическом итеративном и рекурсивном отображении. Во-первых, требуется, чтобы способ описания алгоритма позволял выражать парал- лельное пространственно-временное распределение операций, встречающихся в алгоритмах обработки сигналов, в простой и ясной форме. Затем из этого алгоритмического описания выводится детальное структурное описание, основанное на предварительном определении примитивных модулей. Имеются два основных класса параллельных алгоритмов обработки сигналов: локально рекурсивные и ’’идеальной тасовки”; оба класса ос- нованы на рекурсивном вычислительном принципе ’’разделяй и властвуй”. Эти структурные свойства приводят к идее системы проектирования HIFI, в которой осуществляется тесная взаимосвязь между представлением ре- курсивных алгоритмов в абстрактном виде, графовым и функциональным описаниями, процедурами преобразования, взаимооднозначным отображе- нием между графическими и текстурными кодами, моделированием, вери- фикацией и кремниевой компиляцией. Система проектирования HIFI предлагает разработчику механизмы для временного и структурного разложения алгоритмов и процессов. С помощью этих двух методов разработчик может выполнить пошаговое усовершенст- вование при иерархическом проектировании [24]. В окончательном виде система HIFI будет обладать следующими свойствами: 1) выразительностью: система HIFI должна дать средства для описания параллельных пространственно-временных процессов, встречающихся в ал- горитмах обработки сигналов в естественном виде; 2) отсутствием чрезмерной детализации: иерархическое описание и чет- кое разделение между разработкой виртуальной и физической машины должны позволить разработчику акцентировать свое внимание на соответ- ствующем уровне детализации; 3) простотой : ядро проектируемой системы, т.е. проектируемые объ- екты и операции над ними, должно быть простым, однако нужно позабо- титься о том, чтобы операции были достаточно мощными. Наряду с алгоритмическими принципами в языке, используемом, в сис- теме проектирования HIFI, большое значение придается аппликативному 150
функциональному описанию. Здесь под термином ’’аппликативное” просто подразумевается отсутствие последствия. (Другими словами, здесь нет па- мяти и, следовательно, краевых эффектов). В действительности при таком проектировании используется расширенная система функционального про- граммирования (ФП). Система функционального программирования пред- ставляет собой простую аппликативную систему, в которой ’’программы” — простые функции без переменных; она основана на фиксированном мно- жестве комбинационных форм, называемых функциональными формами. В терминологии системы проектирования HIFI вершины графов потока сигналов описываются на языке формального функционального програм- мирования (ФФП) [25] с усилением понятия состояния (в котором отра- жается ’’история” системы). Программа, написанная на таком языке, может воздействовать на поведение последующих программ, изменяя содержимое памяти системы [25]. Это приводит к модели в виде аппликативной систе- мы с изменяемым состоянием (АСИС)1. В системе HIFI сложный граф по- тока сигналов предлагается рассматривать как совокупность анпликатив- ных систем с изменяемым состоянием, что позволяет разработчику мыслен- но охватить множество задач, выполняемых параллельно. Несколько упрощая (для наглядности), можно сказать, что граф потока сигналов, состоящий из вершин, соответствующих как бы мгновенному вы- полнению операции, и ребер, соответствующих временной задержке, доста- точен для представления совокупности аппликативных систем с изменяе- мым состоянием. Кроме того, такой граф явно показывает структуру СБИС- матрицы. Далее кратко излагаются основные вопросы методологии проекти- рования в системе HIFI [27]. 7.5.1. Отображение алгоритмов в процессорные матрицы В большинстве прикладных задач обработки сигналов многократно ис- пользуются несколько основных алгоритмов с широким набором данных. К ним относятся алгоритмы преобразования Фурье, корреляции, матрично- го умножения, обращения матриц, метод наименьших квадратов. Поэтому необходимо провести полный Классификационный анализ наиболее часто встречающихся параллельных алгоритмов. Например, два известных клас- са алгоритмов могут быть вдентифицированны как локально рекурсивные и идеальной тасовки. Оба класса принадлежат к важным схемам вычислений, в которых используется рекурсивный принцип ’’разделяй и властвуй”, в конце концов приводящий к иерархическому и рекурсивному методу опи- сания. Мы подчеркнули рекурсивную природу алгоритмов обработки сигналов. Инструментом прямого представления последовательности рекурсий яв- 1В оригинале ’’applicative state transition system (AST system)”. С нашей точки зрения, русский эквивалент ’’аппликативная система с изменяемым состоянием” наиболее точно передает смысл, вложенный в этот термин его изобретателем Бэкусом в рабо- те [25]. — Прим. ред. 151
ляется граф потока сигналов, точнее, вход-выход вершин в графе указыва- ет на порядок вычисления, а ребра, соответствующие задержке, обозначают разделение и упорядочение двух последовательных рекурсий. Эта точка зрения хорошо согласуется с точкой зрения Бэкуса, выраженной в статье [25], в которой он предлагает освободить программирование от ’’стиля Неймана” с помощью так называемых аппликативных систем с изменяе- мым состоянием. Таким образом, система HIFI лежит в основе разработки методов автоматизации программного и аппаратного обеспечения, посколь- ку, во-первых, граф потока сигналов обеспечивает мощный абстрактный ап- парат для выражения параллелизма и, во-вторых, несмотря на это, пере- ход от графов к реальным систолическим волновым матрицам достаточно прост [27]. 7.5.2. Сети, основанные на графах потоков сигналов и аппликативных системах с изменяемым состоянием Согласно системе обозначений, принятой в графе потоков сигналов, вершины соответствуют операциям, выполняемым с нулевой задержкой, и описываются в терминах аппликативных функциональных систем. Ребра временной задержки и функциональные вершины представляются сово- купностью аппликативных систем с изменяемым состоянием [25, 26, 28]. В совокупности они полностью выражают последовательность операций внутри и между рекурсиями. Необходимо заметить, что оператор задерж- ки D здесь рассматривается как оператор, указывающий последователь- ность действий (в противоположность синхронным устройствам), и может быть представлен или глобально тактируемой задержкой, или самотакти- руемым, управляемым данными разделителем (сравните с теоремой об эквивалентных преобразованиях [27, разд. V]) .* 7.5.3. Рекурсивные структуры и состояния Рекурсивное свойство алгоритмов естественно приводит к полезному понятию состояния, совместимому с тем, что используется в аппликатив- ных системах с изменяемым состоянием. Короче говоря, аппликативные отображения часто удобо разложить на рекурсивно определяемые ’’подотоб- ражения”. Определение состояния содержит в себе необходимую и достаточ- ную информацию о предыстории вычислений. В примерю на рис. 7.2 состоя- ние естественно ассоциируется со значениями или объектами, приписанны- ми ребрам-задержкам. Эти рекурсивные вычислительные схемы приводят к определенным примитивным структурам межсоединений. Семантика формальной записи таких структур может быть сделана очень сжатой и точной. (Семантика структурных примитивов также будет позволять дальнейшее структурное уточнение.) Например, введение понятия локальной рекурсивно сти при- водит к локально связанным структурным примитивам, применимым к большинству алгоритмов обработки сигналов, таких как свертка, корре- ляция, LU- и QR-разложения. 152
7.5.4. Иерархическое описание Методология иерархического проектирования на основе потоковых графов оказывается очень эффективной при описании сетей большой сте- пени сложности. При такой методологии вершины графа описываются иерар- хически либо их ’’поведением” (ашшикативный тип описания), либо соот- ветствующим этому поведению потоковым графом (структурный тип) [29, 30]. Чтобы описания были физически реализуемыми, вершины прими- тивного уровня должны быть описаны через модули с физически реализуе- мым поведением. Варьируя уровнем примитивных модулей, разработчик может выбрать предпочтительный уровень детализации. Структурное опи- сание будет задано отображениями ’’выход-вход”, в то время как описа- ние поведения примитивного уровня будет задано отображениями ’’вход- выход”. Иерархическое описание включает в основном последовательное пошаго- вое уточнение функциональных вершин. Иллюстрацией мощности такого описания может служить имеющееся в распоряжении разработчика право замены вершины линейным множеством вершин и создание при этом струк- туры новой размерности. Например, процессорная матрица для LU-разло- жения (см. [27, рис. 11]) имеет в действительности двухуровневое иерархи- ческое представление: первый уровень — горизонтальная одномерная струк- тура с N вершинами, а на втором уровне каждая вершина, кроме того, разло- жена на N вершин. Эта же схема непосредственно применима для вычислений QR разложения и двух- (или трех-) мерной корреляции изображения и т.д. 7.5.5. Переход к СБИС-матрицам с конвейерной обработкой и устойчивостью к отказам В работе [27] развиты некоторые систематические процедуры преобра- зования графа потока сигналов в конвейерные структуры типа систоличес- ких или волновых матриц, приводящие к реализации их в виде СБИС-аппа- ратуры. Они включают в себя автоматическую процедуру систолизации (по так называемым правилам локализации сечений), оптимальное планирова- ние, волновое квитирование и т.д. Иерархический аипликативный подход определяет простоту и гибкость, необходимые доя того, чтобы расчленять большую задачу на подзадачи, пригодные к решению на небольших процес- сорных матрицах, и (или) для того, чтобы обеспечить отказоустойчивость. Эти дополнительные свойства могут иметь решающее значение для эффек- тивности таких структур. Правила локализации сечений потенциально очень полезны для разра- ботки отказоустойчивых структур. Для систолических структур без обрат- ной связи показано, что изменение задержки в сечениях позволяет получить высокую степень отказоустойчивости. Исследование, проведенное в [27], дает теоретическую основу для повышения отказоустойчивости процессор- ных матриц с обратной связью с помощью процедуры изменения задержек в сечениях. Интересно то, что при незначительной модификации свойство самосинхронизации волновых структур позволяет достичь того же уровня отказоустойчивости без какого-либо изменения задержек. 153
7.5.6. Средства автоматизации проектирования и системы графического проектирования Основная причина использования графического подхода заключается в простоте человеческого восприятия (лучше раз увидеть, чем сто раз услы- шать). Человек способен сразу воспринять основную структуру изображе- ния. Именно поэтому многие типичные конструкции, как, например, ’’про- цессорной матрицы”, имеют естественное графическое описание. В частности, в системе проектирования HIFI многие структурные преобразования про- цессорных матриц имеют графическую основу [24]. Важно отметить, что в настоящее время терминальные графические устройства претерпевают быст- рую эволюцию, которая делает их более доступными и более удобными для пользователей; разработка графических стандартов, таких, например, как GKS1, позволила развивать программное обеспечение графики незави- симо от аппаратных средств. Язык графических команд, предназначенный в основном для структур- ных спецификаций, будет простым языком аппликативного типа, похожим на язык функционального программирования, предложенный Бэкусом. При этом становится весьма простым взаимно однозначное соответствие между графикой и текстурным кодом. Текстурный код является в основном средством формального описания рисунка. Другая важная роль языка проектирования, наряду с тем, что он является инструментальным сред- ством и средством общения с разработчиком, состоит в обеспечении гра- фического интерфейса HIFI систем. При использовании графического терминала проектировщик будет ви- деть объект проектирования, допустим, граф потока сигналов. Он сможет отделить от этого объекта часть, например вершину или ветвь, и применить те или иные операции к выделенным объектам. В результате получится но- вый объект с новым формальным описанием. В качестве расширения графического языка будут введены различные функции редактирования, которые позволят разработчику создавать различ- ные версии или изменять текущую версию вычислительной структуры. Ба- за данных системы проектирования, содержащая всю информацию о проек- те, включая его историю, явится исходной точкой для развития полного программного инструментария, включая упомянутые средства графическо- го проектирования. В развитии графических средств наше внимание будет акцентироваться на взаимно однозначном соответствии потоковых графов и текстурных конструкций. Например, имя array будет появляться как в графической, так и текстурной конструкции. Для документирования эта- пов проекта [29], а также для установления связи HIFI-систем с другими технологическими системами будет полезно создание языка структурного описания графов потоков сигналов. Преобразование текстурных форм будет являться одной из функций, обеспечиваемых средствами HIFI-систем. 1 GKS — graphic kernal system — базовая графическая система, являющаяся стан- дартом двумерной машинной графики. — Прим. ред. 154
Краткие выводы. Иерархические системы автоматизации проектирования, в основе которых лежат графы потока сигналов, весьма удобны для проек- тирования СБИС-структур. Если рассматривать программное обеспечение, то предлагаемый подход подготовил почву для развития техники проектиро- вания аппликативного типа. Эта техника (например, аппликативные системы с изменяемым состоянием и потоковые языки) будет оказывать большое влияние на программное обеспечение СБИС-структур. На этой основе может быть создано несколько целостных систем автоматизации проектирования средств программного и аппаратного обеспечения вместе с инструменталь- ными средствами моделирования. Это позволит пользователю моделиро- вать проектируемые системы на различных уровнях с помощью разнооб- разных графических автоматизированных рабочих мест (АРМ). 7.6. ЗАКЛЮЧЕНИЕ Появление СБИС вызвало резкий скачок в развитии техники обработки сигналов от обычной трансверсальной фильтрации к двумерной обработке. Мы проиллюстрировали развитие архитектуры СБИС-систем на основе ал- горитмического анализа и с помощью введения понятия волновой обработ- ки показали, как органично вписываются схемы вычислений с управлени- ем данными во многие алгоритмы обработки сигналов. Для архитектурно- го проектирования особенно полезны вычисления с управлением данными, так как при этом отпадает необходимость в глобальной синхронизации, являющейся потенциальным барьером при проектировании систем сверх- большой степени интеграции. Сравнение синхронных и асинхронных СБИС- систем [14, 15] показывает, что асинхронная обработка предпочтительна для крайне больших систем. Однако требуются дальнейшие исследования для определения предельных размеров процессорных матриц. Будущая тех- нология реализации СБИС на единой полупроводниковой пластине потре- бует реконфигурации цепей соединений для обхода отказавших ПЭ. Это должно привести к большей неопределенности задержки, что делает гибкую волновую обработку привлекательнее чисто систолической. В известном смысле волновые матрицы совмещают в себе достоинства глобально синхро- низируемых систолических матриц и асинхронной потоковой организации в универсальных ЭВМ. Методология нисходящего проектирования требует согласованной раз- работки алгоритмов, языка и архитектуры. В волновой матрице алгоритми- ческий анализ определяет структуру языка, который, в свою очередь, опре- деляет архитектуру вычислительной сети. Естественным, хотя и изыскан- ным, этапом, может стать ’’кремниевая компиляция” структур языка MDFL [23], которая значительно усовершенствует систему автоматизации проек- тирования для СБИС-систем. В заключение отметим, что перспектива построения высокоскоростных (программируемых) параллельных процессоров сигналов на волновых СБИС-матрицах кажется многообещающей. 155
СПИСОК ЛИТЕРАТУРЫ [1] С. Mead and L. Conway, Introduction to VLSI Systems, Addison-Wesley, Reading, Mass., 1980. [2] A. Oppenheim and R. Schafer, Digital Signal Processing, Prentice-Hali, Englewood Cliffs, N.J., 1975. [3] L. R. Rabiner and B. Gold, Theory and Application of Digital Signal Processing, Prentice-Hall, Englewood Cliffs, N.J., 1975. [4] T. Kaiiath, Linear Systems, Prentice-Hall, Englewood Cliffs, N.J., 1980. [5] H. T. Kung, “Let’s Design Algorithms for VLSI Systems,” Proc. Caltech Conf. VLSI, Jan. 1979, pp. 65-90. [6] H. T. Kung, “Why Systolic Architectures?” IEEE Computer, /5(l):37-46 (Jan. 1982). [7] S. Y. Kung, K. S. Arun, R. J. Gal-Ezer, and D. V. Bhaskar Rao, “Wavefront Array Processor: Language, Architecture, and Applications,” IEEE Trans. Comput., Special Issue on Parrallel and Distributed Computers, C-31(ll):1054-1066 (Nov. 1982). [8] J. B. Dennis, “Data Flow Supercomputers,” IEEE Comput., Nov. 1980, pp. 48-56. [9] К. P. Gostelow and R. E. Thomas, “Performance of a Simulated Data Flow Com- puter,” IEEE Trans. Comput., C-29( 10):905-919 (Oct. 1980). [10] S. Y. Kung, “VLSI Array Processor for Signal Processing,” Conf. Adv. Res. Integrated Circuits, MIT, Cambridge, Mass., Jan. 28-30, 1980. [11] J. M. Speiser and H. J. Whitehouse, “Architectures for Real Time Matrix Operations,” Proc. COMAC, Nov. 1980. [12] R. J. Gal-Ezer, “The Wavefront Array Processor and its Applications,” Ph.D. disserta- tion, University of Southern California, Dec. 1982. [13] S. Y. Kung, and R. J. Gal-Ezer, “Eigenvalue, Singular Value and Least Square Solvers via the Wavefront Array Processor,” In L. Snyder et al., eds., Algorithmically Specialized Computer Organizations, Academic Press, New York, 1983. [14] S. Y. Kung and Y. H. Hu, “A Highly Concurrent Algorithm and Pipelined Architecture for Solving Toeplitz Systems,” IEEE Trans. Acoust. Speech Signal Process., 3/(1) (Feb. 1983). [15] Y. H. Hu, “New Algorithms and Parallel Architectures for Toeplitz System: With Applications to Spectrum Estimations,” Ph.D. dissertation, University of Southern Cali- fornia, Dec. 1982. [16] S. Y. Kung and R. J. Gal-Ezer, “Hardware Architectures of the Wavefront Array Processor,” Proc. Int. Comput. Symp., Taiwan, Dec. 1982. [17] M. Franklin and D. Wann, “Asynchronous and Clocked Control Structures for VLSI Based Interconnection Networks,” Proc. 9th Annu. Symp. Comput. Architecture, Austin, Tex., Apr. 1982. [18] S. Y. Kung and R. J. Gal-Ezer, “Synchronous vs. Asynchronous Computation in VLSI Array Processors,” Proc. SPIE Conf, Arlington, Va., May 1982. [19] A. L. Fisher and H. T. Kung, “Synchronizing Large Systolic Arrays,” Proc. SPIE Conf, Arlington, Va., May 1982. [20] N. L. Owsley, “High Resolution Spectrum Analysis by Dominant Mode Enhancement,” in S. Y. Kung, T. Kaiiath, and H. J. Whitehouse, eds., Modern Signal Processing and VLSI Architectures, Prentice-Hall, Englewood Cliffs, N.J., 1983. 156
[21] 8. Y. Kung, ed., “VLSI and Modern Signal Processing,” Proc. USC Workshop on VLSI Mod. Signal Process., Los Angeles, Nov. 1-3,1982. [22] B- N. Parlett, The Symmetric Eigenvalue Problem, Series in Computational Mathemat- ics, Cleve Moler (Adv.), Prentice-Hall, Englewood Cliffs, N.J., 1980. [23] P- B. Denyer and D. Renshaw, “Case Studies in VLSI Signal Processing Using A.Silicon Compiler,” Proc. IEEE ICASSP, Boston, 1983, pp.939-942. [24] S. Y. Kung, J. Annevelink, and P. Dewilde, “Hierarchical Iterative Flow-graph Design [or VLSI Array Processors.” IEEE International Conference on Computer-Aided Design, Santa Clara, Calif., Nov. 1984. [25] J- Backus, “Can Programming Be Liberated from the Von Neumann Style? A Func- tional Style and Its Algebra of Programs.” Communications of the ACM 21 (1978), 613-641. [26] A. B. Cremers, and T. N. Hibbard, “Problem-Oriented Specification of Concurrent Algorithms.” Proceedings of U.S.C. Workshop on VLSI and Modern Signal Processing, Los Angeles, Calif., Nov. 1982, pp. 64-68. [27] S. Y. Kung, “On Supercomputing with Sytolic/Wavefront Array Processors.” Invited paper. Proceedings of the IEEE Vol. 72, 7 (July 1984). [28] A. B. Cremers, and S. Y. Kung, “On Programming VLSI Concurrent Array Processors.” Proc. IEEE Workshop on Languages for Automation, Chicago, 1983, pp. 205-210, also in INTEGRATIONS, the VLSI Journal, Vol. 2, No. I, March, 1984. [29] W. Y-P. Lim, “HISDL-A Structure Description Language.” Communications of ACM 25,11 (Nov. 1982). [30] W. Y-P. Lim, and С. К. C. Leung, “Computer Hardware Description Language and their Applications.” In, T. Uehara and M. Barbacci, Eds., North Holland Pub., 1983, pp. 233-242. 8 СПЕЦИА] 1ИЗИРОВА ИНЫЕ СБИС-АРХИТЕКТУРЫ. ОБЩЕЕ ОБСУЖДЕНИЕ И АНАЛИЗ ОПЫТА А. Фишер, С Кунг1 8.1. ВВЕДЕНИЕ Занимающимся исследованием в области организации ЭВМ становится очевидным, что начинается новая эра в развитии техники цифровой обработки данных. Также становится очевидным, что мы возвращаемся назад, к концепции специализирован- ного вычислительного устройства. В будущем появится ряд специализированных, но программируемых вычислительных устройств для военного и промышленного приме- нения. В дальнейшем в связи с еще более широким распространением машинных расче- тов использование специализированных устройств для выполнения таких операций, как, например, поиск файла, будет экономически более выгодным, чем использование для этих целей времени универсальных компьютеров [2]. 1 Университет Карнеги-Меллона, Питтсбург, шт. Пенсильвания, 157
Основным фактором при разработке любого инструментального сред- ства является достижение компромисса между универсальностью приме- нения и производительностью. Почти во всех случаях универсальное инстру- ментальное средство является менее эффективным в конкретном случае, чем средство, разработанное специально для этого случая. На практике необходимый компромисс определяется экономическими факторами: высокая (для одной прикладной задачи) стоимость разработки специали- зированного устройства сопоставляется с низкой эффективностью универ- сального устройства. В области обработки сигналов предпочтение отдается специализирован- ным устройствам из-за жестких требований, связанных с обработкой в реальном масштабе времени. Для осуществления такой обработки обычно требуется выполнение сотен миллионов операций умножения в секунду, а универсальные системы с такой производительностью стоят миллионы долларов каждая. К счастью, многие программы обработки сигналов могут быть сконструированы из относительно небольшого множества примитив- ных операций. Такой подход, основанный на использовании специализиро- ванных строительных блоков, может оказаться золотой серединой в спектре универсальных и специализированных устройств. В равной мере важным фактором при специализированном подходе является применяемая технология. В этом отношении СБИС имеют осо- бые достоинства: дешевизна транзисторов и возможности обеспечения многофункциональности при малом объеме могут резко уменьшить стои- мость многих систем и эксплуатационные расходы по сравнению с обеспе- чиваемыми системами, реализованными на ИС средней и малой степени ин- теграции. Если же говорить о производительности, то технология СБИС способствует использованию массового однородного параллелизма, так как приращение стоимости при воспроизведении схем существующих про- цессорных элементов очень мало. Тем не менее на практике специализированный подход является более трудным, чем многие себе представляют. Специализированные вычислитель- ные устройства предлагались с первых дней применения цифровых вычис- лений, как высказано в цитате в начале этого раздела, но только недавно появилась технология массового производства специализированных компь- ютеров. В этой главе рассматривается двухсторонний подход к проблемам разработки и применения таких устройств. Во-первых, обсуждаются в общем виде факторы, определяющие успех специализированного подхода в вычис- лениях. Во-вторых, иллюстрируется влияние этих факторов на примере раз- вития особой архитектуры специализированного устройства — программи- руемого систолического кристалла (programmable systolic chip — PSC), разработанного в университете Карнеги-Меллона. 8.2. СЛАГАЕМЫЕ УСПЕХА Подход, основанный на использовании специализированной аппаратуры, может быть успешным только при выполнении определенных условий. Ука- 158
жем некоторые из условий, которые, как мы полагаем, являются наиболее важными. Интерес к специализированным устройствам основывается на успехе в развитии технологии аппаратурных средств за последние 20 лет; без техно- логии средней и большой степени интеграции, по существу, не было бы ни- каких альтернатив универсальным вычислительным машинам. Именно но- вая технология открывает возможность аппаратной реализации многих боль- ших систем. К тому же быстрое изменение природы технологии выдвигает трудную задачу отображения систем в аппаратуру. Хотя полупроводниковое производство, вообще говоря, стимулировалось потребностями в дешевых блоках памяти и процессорах для универсальных систем [47], развитая технология может с таким же успехом использоваться для создания спе- циализированных систем. Таким образом, разработчики специализированных систем оказываются часто в довольно удачном положении, так как им при- ходится исследовать возможности использования некоторой существующей технологии, а не разрабатывать новую. Наличие соответствующей технологии является основой для выполнения специализированных систем, но для системных разработчиков важна и ско- рость выполнения по этой технологии. В общем случае период времени для выполнения специализированной системы и ее применения для получения значительных результатов должен быть коротким, иначе имеется риск, что система никогда не будет использована. Во-первых, ее компоненты могут устареть до того, как система станет действующей и, таким образом, ее пре- имущества перед универсальными системами потеряются. Во-вторых, требо- вания к специализированной системе могут измениться в течение длительно- го этапа разработки. Быстрые строки внедрения весьма важны для специа- лизированных систем. Поэтому неотъемлемыми на этапе разработки явля- ются развитые в последние годы средства автоматизации проектирования. Кроме того, создание простых правил проектирования и методологии струк- турного проектирования [45] позволит относительно неопытным разработ- чикам быстро и уверенно проектировать свои собственные кристаллы СБИС. Большую помощь при оценке проекта могут оказать структурные подходы к тестированию и отладке [24]. При условии, что для быстрого и экономичного выполнения имеются тех- нология и средства автоматизации проектирования, возникает вопрос: что же выполнять в виде аппаратуры для той или иной области применения? Область применения должна быть достаточно развитой в том смысле, что в ней дол- жен быть накоплен достаточный опыт для выделения основных программ вычислений, специализированное исполнение которых значительно повысит общую производительность системы. Нужно быть убежденным в том, что нет других алгоритмов и программных решений, которые были бы практичнее подхода, связанного с применением специализированной аппаратуры. Нужно быть уверенным в том, что внутренние циклы могут быть легко отделены от циклов последующих вычислений так, что осуществление связи управля- ющей ЭВМ и будущего специализированного устройства не окажется узким местом. Кроме того, внутренние циклы должны быть типовыми в том смыс- 159
ле, что будут использоваться длительное время, оправдывая усилия, направ- ленные на аппаратную реализацию. Таким образом, хорошее понимание ус- ловий применения является важным для обоснования специализированных разработок. Одним из способов оценки степени нашего понимания вычислительных потребностей отдельной области является проверка уровня проектируемых или готовых элементов (’’строительных блоков”) аппаратуры. Наличие ’’строительных блоков” для выполнения высокоуровневых системных функций является показателем степени развитости области применения. По этой оценке техника обработки сигналов является относительно разви- той областью: выпускаемые промышленностью специализированные крис- таллы, такие как кристалл цифрового процессора сигналов фирмы NEC [45, 51, 60], кристалл быстрого преобразования Фурье фирмы AMI, крис- талл умножителя фирмы TRW и кристалл аналого-цифрового преобразова- теля фирмы TRW, выполняют широкий диапазон функций на разных сис- темных уровнях. После определения задач, которые будут выполняться на СБИС, необхо- димо разработать новые алгоритмы с высокой степенью параллелизма и ре- гулярности, с малым числом внешних, цепей связи и адаптированные к раз- личным требованиям ввода-вывода [33]. Для СБИС-исполнения больше не является важной минимизация числа операций умножения, как было до сих пор; соответствующие меры сложности должны отражать противоре- чивые требования к площади кристалла, времени обработки и мощности [56]. Площадь кремния, необходимая для реализации алгоритма, сильно зависит от его степени регулярности [43], а требуемое время выполнения алгоритма равным образом сильно зависит от степени параллелизма. Таким образом, большинство классических проблем будут требовать новой сово- купности алгоритмов. Примерами являются метод исключения Гаусса [25, 36], вычисление наибольшего общего делителя [7], рекуррентный алгоритм Винера—Левинсона [9, 40]. Для реализации алгоритмов на СБИС должна быть разработана соответ- ствующая архитектура. Оптимизация архитектуры для выполнения узкого класса алгоритмов обычно не очень трудна, однако разработка архитектуры, позволяющей эффективно реализовать широкий класс алгоритмов, уже не тривиальная задача. Проблемой является достижение баланса противоречи- вых требований, таких как универсальность системы и простота програм- мирования, гибкость и эффективность, производительность и стоимость разработки и изготовления. ’’Оптимальность архитектуры” зависит от тех- нологии выполнения системы и целей, для которых она предназначена. По- этому не следует заблуждаться относительно ’’универсальности” конкрет- ного архитектурного подхода. Много интересных архитектурных идей бы- ло предложено и осуществлено; сложной задачей является точное понима- ние достоинств и недостатков каждого подхода при выборе архитектуры, удовлетворяющей данным условиям. Назначением каждой специализированной системы должно быть ее эф- фективное использование в законченных общих системах. Прежде чем та-
кая специализированная система будет построена, ее параметры должны быть оценены исходя из целевого назначения системы, а после ее построе- ния она должна быть встроена в общую систему так, чтобы ее можно было легко использовать. Например, применение кристалла сортировки требует дополнительной памяти для хранения промежуточных результатов, главной универсальной ЭВМ с программой, управляющей процессом сортировки, аппаратного и программного обеспечения связи кристалла с остальной системой. Без надлежащей аппаратуры и программного интерфейса включе- ние заказного кристалла в законченную систему может быть задачей более сложной, чем разработка самого кристалла, и требует иного мастерства, чем при разработке кристалла. Проблема включения в систему (интег- рирования), решаемая в настоящее время в основном эвристическими ме- тодами, вероятно, одна из наименее полно разработанных проблем, от реше- ния которых зависит успех специализированного подхода. Из-за этой проб- лемы только небольшое число заказных кристаллов, разработанных в уни- верситетах и исследовательских лабораториях, интегрированы в законченные работающие системы. Большинство общих методов включения заказных устройств в главные системы основаны на построении интерфейса между этим устройством и стандартной шиной, такой как UNIBUS. Наличие про- грамм стандартного интерфейса для этих шин решает только некоторые из проблем взаимодействия. Необходимы также дополнительные средства интерфейса, включая память большой емкости для хранения часто исполь- зуемых данных и интерфейсный процессор для пересылки данных от адрес- ной памяти к заказной СБИС и выработки сигналов управления. 8.3. ПРОГРАММИРУЕМЫЕ СИСТОЛИЧЕСКИЕ КРИСТАЛЛЫ: АНАЛИЗ ОПЫТА В этом разделе иллюстрируются некоторые из вопросов, обсуждавшихся в разд. 8.2 на примере проекта, выполненного в университете в Карнеги-Мел- лона, к которому причастны авторы. Проект заключается в разработке и реа- лизации программируемого систолического кристалла (ПСК) [20, 21] — однокристального специализированного микропроцессора, предназначенного для создания разнообразных систем систолической архитектуры. Кристалл ПСК является как специализированным, в том смысле, что он разработан для создания специализированных систолических систем, так и универсаль- ным, в том смысле, что он является программируемым микропроцессором. Пример ПСК иллюстрирует также широту сферы применения специализи- рованных устройств. Сначала дадим обзор некоторых свойств и особеннос- тей систолических матриц, а потом опишем ПСК и осветим некоторые вопро- сы, возникшие в процессе его разработки. 8.3.1. Обзор систем систолической архитектуры Вычислительные задачи могут быть концептуально разбиты на два клас- са: вычислительно ограниченные и ограниченные по вводу-выводу. Если полное число вычислительных операций больше полного числа элементов, предназначенных для ввода и вывода, то задачи относятся к классу вычис- 161
вместо схемы: Рис. 8.1. Основной принцип систоличес- кой системы имеем: 100 нс 100 нс ^Память [- Не Иолше чем 5-10'в оп./с Возможного 30-Ю’60П./С Систолическая матрица лительно-ограниченных; в против- ном случае они являются ограни- ченными по вводу-выводу. Напри- мер, алгоритм однократного умно- жения матрицы на матрицу пред- ставляет собой вычислительно огра- ниченную задачу, так как каждый элемент одной матрицы умножает- ся на все элементы строки или столб- ца другой матрицы. С другой сторо- ны, сложение двух матриц является задачей, ограниченной по вводу-выводу, так как полное число операций сложения не превышает полного числа элементов в обоих матрицах. Ясно, что любая попытка ускорения вычислений, ограниченных по вводу-выводу, должна быть основана на увеличении пропускной способности памяти. Пропускная способность памяти может быть увеличена или путем исполь- зования более быстродействующих элементов памяти (которые могут быть дорогостоящими), или расслоением памяти (что может создать до- полнительные проблемы управления памятью). Ускорить вычисления, ог- раниченные по вводу-выводу, однако, часто можно относительно простым и недорогим способом: использованием систолического подхода. Систолическая система состоит из некоторого множества связанных друг с другом ячеек, каждая из которых выполняет некоторую простую опера- цию. Поскольку при проектировании и реализации простые регулярные структуры связи и управления имеют существенные преимущества перед сложными структурами, ячейки в систолической системе, как правило, объединены в виде систолической матрицы или систолического дерева. Информация в систолической системе передается между ячейками в кон- вейерном режиме, а связь с внешней средой осуществляется только через ’’граничные ячейки”. Например, в систолической матрице только ячейки, расположенные на ее границе, могут иметь порты ввода-вывода. Основной принцип систолической архитектуры, и систолической матри- цы в частности, показан на рис. 8.1. При замене простого процессорного эле- мента (ПЭ) матрицей ПЭ, или ячеек (по терминологии данного подразде- ла), вычислительная производительность может быть увеличена без уве- личения пропускной способности памяти. Функция памяти на схеме рис. 8.1 аналогична сердцу: она ’’прокачивает” данные (а не кровь) через матрицу ячеек. Суть этого подхода состоит в том, что один раз взятые из памяти данные могут быть эффективно использованы в каждой ячейке в процессе передачи их от ячейки к ячейке вдоль матрицы. Такая организация возмож- на для широкого спектра задач, относящихся к классу ограниченных по вводу-выводу, где многочисленные операции выполняются над каждым элементом данных одним и тем же повторяющимся способом. 162
Хотя прохождение данных через матрицу является синхронным на уровне алгоритма [30], машинная реализация систолического алгоритма может быть выполнена как синхронно, так и асинхронно. Там, где это возможно, синхронная схема из-за ее простоты обычно предпочтительнее. При совре- менной технологии глобальная синхронизация возможна для всех систоли- ческих матриц, за исключением крайне больших двумерных; в некоторых случаях системы систолической архитектуры, такие как линейные матри- цы, могут использоваться для расширения области применения синхронных схем даже в случае, когда задержка в линии передачи велика [19]. Возможность неоднократного использования каждого элемента введен- ных данных (чем обеспечивается высокая вычислительная производитель- ность при небольшой пропускной способности памяти) является как раз одним из многих достоинств систолического подхода. Характерны и другие достоинства, такие как возможность расширения модуля, простота и регу- лярность потоков данных и команд управления, использование простых одинаковых ячеек, устранение глобальной передачи и разветвления и (воз- можно) более высокое быстродействие [33]. Далее приводится список задач (алгоритмов), доп> скающих систоличес- кую реализацию. При перечислении этих задач преследовалась двоякая цель: отослать читателей, интересующихся применением систолического подхода к решению частных задач, к первоисточникам и показать широту примене- ния этого подхода. 1. Обработка сигналов и изображений: а) фильтрация с конечной и бесконечной импульсными характеристиками иодномерная свертка [13, 17, 29, 31]; б) двумерная свертка и корреляция [5, 34, 37, 38, 61]; в) дискретное преобразование Фурье [2.9, 31]; г) интерполяция [37]; д) одно- и двумерная медианная фильтрация [18]; е) геометрические преобразования [37]. 2. Матричная арифметика: а) умножение матрицы на вектор [14, 36]; б) умножение матрицы на матрицу [36, 58]; в) приведение матриц к треугольному виду (решение систем линейных уравнений, обращение матриц) [25, 36]; г) решение треугольных систем линейных уравнений [36]; д) решение теплицевых систем линейных уравнений [9, 40]; е) QR-разложение (вычисления, связанные с методом наименьших квад- ратов) [6, 25, 28]; ж) сингулярное разложение [10]; з) решение проблемы собственных значений [11,52]; 3. Прикладные задачи невычислительного характера: а) задачи со структурами данных в виде стека и очереди [26], задачи перебора [4, 48, 53], очередей с приоритетом [42], сортировки [42, 53]; 163
б) алгоритмы поиска на графе — определение транзитивного замыкания [27], поиск деревьев минимальной связности [3], определение компонен- тов связности [50]; в) геометрические алгоритмы - генерация выпускной оболочки [15]; г) распознавание языков — сравнение цепочек (символов) [22], регу- лярных выражений [23]; д) динамическое программирование [27]- е) алгоритмы работы с многочленами — умножение и деление многочле- нов [32], определение наибольшего общего делителя для многочленов [7]; ж) нахождение наибольшего общего делителя целых чисел [8]; з) операции реляционной базы данных [35, 41]; и) моделирование методом Монте-Карло [59]. 8.3.2. Программируемый систолический кристалл Из-за регулярности структуры и простоты основных компонентов стои- мость разработки и практического использования систолических матриц должна быть незначительной по сравнению со стоимостью разработки дру- гих систем той же производительности. Однако это преимущество в дейст- вительности утрачивается, поскольку конкретный систолический алгоритм обычно разрабатывается для конкретного применения и, следовательно, стоимость разработки не может быть компенсирована выпуском большого числа элементов, что характерно для производства универсальных процес- соров. Поэтому необходимо обсудить несколько вариантов достижения компромисса между универсальностью и производительностью. При реше- нии прикладных задач с жесткими требованиями к производительности, таких как обработка сигналов, часто оправдано использование полностью заказных ИС, в то время как в других областях можно обойтись сущест- вующими более гибкими средствами. Разработанные систолические процес- соры перекрывают спектр этих областей применения. Первыми реализова- ны [22, 38] были полностью заказные устройства, ориентированные на конк- ретный алгоритм, например кристалл коррелятора фирмы GEC [17]. Сред- ней степенью гибкости обладают систолический процессор фирмы ESL [5, 61] и готовящееся к выпуску семейство кристаллов фирмы ESL для выполнения операций матричного умножения с плавающей запятой; они программируются на широкий перечень задач обработки сигналов. Практи- чески универсальным процессором является систолическая матрица испы- тательного стенда военно-морского центра океанских систем (США) [12, 54, 55], которая собрана из микропроцессоров общего назначения и обеспе- чивает одно- и двумерную структуру связи процессорных элементов (ячеек). Другим гибким подходом, использованным при проектировании ПСК, яв- ляется разработка ’’строительных блоков” широкого применения. В преддверии развития автоматизированных систем проектирования, ко- торые могли бы создать эффективные принципиальные схемы на основе математических описаний высокого уровня, полезно иметь некоторые средства компоновки систолических матриц различных типов и размеров
Рис. 8.2. Кристалл "строительного блока” в различных систолических матрицах из небольшого числа ’’строительных блоков”. Чтобы обеспечивалось выпол- нение множества алгоритмов, такие средства должны обладать программи- руемостью как индивидуальных ячеек, так и связи между ними. Отметим, что свойство перестраиваемости конфигурации требуется только на этапе разработки алгоритма, а не в течение времени его исполнения, так как структура систолической матрицы и поведение ее ячеек мало изменяются в процессе вычислений. Одним из путей обеспечения этой гибкости является использование про- граммируемого однокристального процессора, как изображено на рис. 8.2. Если каждый кристалл представляет собой индивидуальную программи- руемую ячейку, то много кристаллов могут быть объединены на уровне платы (или в будущем — на одной полупроводниковой пластине) для пост- роения матрицы систолической структуры. Это решение хорошо учитывает современную технологию, так как кристаллы одновременно являются достаточно большими и достаточно малыми для удобного расположения на них процессора: достаточно большими, поскольку процессор может це- ликом умещаться на одном кристалле, благодаря чему отсутствуют затра- ты на размещение и реализацию линий связи, присущие многокристальной ИС; достаточно малыми, поскольку даже при некотором увеличении плот- 165
ности компоновки ИС площадь кристалла может быть выгодно использо- вана, скорее для увеличения функциональных возможностей процессора, чем для дублирования процессоров, при котором возникают проблемы перестраиваемой конфигурации и разводки выводов. Следует заметить, что для данного случая характерны два уровня разработки: систолические алгоритмы разрабатываются для конкретного применения (например, для обработки сигналов), а процессор — для выполнения систолических алго- ритмов . Эти предпосылки лежали в основе проекта программируемого систоличес- кого кристалла, развитие которого началось в октябре 1981 г. в университе- те Карнеги-Меллона. Целью проекта являлись разработка и реализация по МОП-технологии с нормой 4 мкм прототипа ПСК, который бы демонстриро- вал достоинства данного подхода и представлял бы собой экономичное средство для реализации многих систолических матриц. Ко времени написа- ния этой работы, в марте 1983 г., ПСК был изготовлен, проверен и отлажен, и его демонстрация была намечена на лето 1983 г. Как уже отмечалось, хорошее представление области применения явля- ется решающим фактором успеха в выполнении специализированных уст- ройств. В рассматриваемом случае необходимо было выбрать область при- менения ПСК. Очевидным кандидатом была обработка сигналов и изобра- жений; для решения таких задач было разработано уже много систоличес- ких алгоритмов [31, 36]. Другой областью применения являлась реализация алгоритмов кодирования с обнаружением и коррекцией ошибок, в частнос- ти кодирования по алгоритму Рида-Соломона [44, 49]. Кроме того, были выбраны программы дисковой сортировки — слияния как примеры приме- нения обработки данных. На практике требования к обработке данных в различных областях достаточно разнообразны (в частности, для большин- ства таких задач запоминающие устройства более полезны, чем умножи- тели), так что проект, направленный на массовое использование, вероятно, должен быть ориентирован на решение либо числовых, либо нечисловых задач; различия в требованиях тем не менее недостаточны, для того чтобы исключить какой-либо тип применения. На ранних стадиях проектирования высокий уровень средств автомати- зации проектирования помогал быстрому развитию алгоритмов и архитек- туры. Первая схема ПСК была описана в [1] с помощью языка ISPS описа- ния аппаратуры на уровне межрегистровой передачи. С помощью таблично управляемого микроассемблера и средств моделирования языка ISPS были написаны и промоделированы микрокоманды, что обеспечивало ускоренную обратную связь с процессом проектирования. Развиваемая архитектура, в свою очередь, обеспечивала конкретную основу, на которой могли быть сформулированы реальные систолические алгоритмы; это помогло в разра- ботке алгоритмов декодирования Рида—Соломона [7]. Как указывалось в разд. 8.2, архитектура зависит от технологии и целево- го назначения системы. Проектирование архитектуры ПСК связано по мно- гим направлениям с технологией выполнения и с характеристиками систо- 166
лических алгоритмов. Далее приводится список некоторых из затронутых проблем, учет которых важен для многих специализированных разработок. 1. Локальность и гибкость управления. Некоторые систолические матри- цы, включая те, которые реализуют многие алгоритмы обработки сигналов и матричной арифметики, требуют достаточно простого глобального управ- ления. Тем не менее многие другие алгоритмы требуют различных действий на различных этапах (например, загрузки коэффициентов), а также дейст- вий, зависящих от данных, обрабатываемых в каждом систолическом цикле. Экономичность технологии СБИС позволяет оборудовать каждый процессор управляющим ЗУ да кристалле, что дает большую гибкость при умеренной стоимости. 2. Элементарные операции. Набор простейших арифметических, логичес- ких операций и операций управления, которые может выполнять процессор, в значительной степени определяет его эффективность. В частности, для эф- фективного выполнения большинства алгоритмов обработки сигналов и изображений необходима аппаратная реализация операции умножения. Сред- ства арифметики кратной точности также могут расширить область примене- ния процессора. 3. Связь между ячейками. Главной особенностью систолических матриц является непрерывность потока данных между ячейками. Эффективное вы- полнение таких матриц требует многоразрядных портов ввода-вывода и пересылки данных. Это ведет к структуре ввода-вывода, совершенно от- личной от таковой в обычных микропроцессорах, в которых для пересыл- ки простых слов данных в кристалл или из него требуются несколько цик- лов, а решающее значение играет адресация. Необходимо также обеспечить передачу в конвейерном режиме сигналов систолического управления, ко- торые используются для управления в различных вычислительных фазах, таких как загрузка коэффициентов. 4. Внутренний параллелизм. Расчленение функций процессора так, чтобы они могли выполняться параллельно, повышает производительность. Плот- ность компоновки СБИС обеспечивает множественность путей передачи отдельных данных к соответствующим единичным кристаллам. 5. Длина слова. Длина слова индивидуально программируемых процес- соров выбирается компромиссно: малая длина слов ведет к несоответст- вию между объемами аппаратуры управления и аппаратуры, предназначен- ной для передачи данных, большая разрядность приводит к кристаллам большего размера с большим числом выводов. Решение этого вопроса в сильной степени зависит от технологии и области применения. Эти соображения привели к выбору следующих характеристик: 1) три 8-разрядных порта ввода данных и три 8-разрядных порта вывода данных; 2) три одноразрядных входа управления и три таких же выхода линий управления; 3) 8-разрядное арифметико-логическое устройство (АЛУ), обеспечиваю- щее многократно увеличенную точность и арифметические операции по мо- дулю 257 (для декодирования по алгоритму Рида—Соломона); 167
4)^умножитель-накопитель с 8-разрядными операндами и 16-разрядным ак к у мулято ром; 5) управляющее ЗУ емкостью 64X 60 бит с перезаписью; 6) файл из 64 регистров по 9 разрядов каждый; 7) три 9-разрядных шины на кристалле; 8) стековое устройство управления последовательностью выполнения команд. Быстрое выполнение проекта особенно важно в университете. Изготов- ление кристалла финансировалось Управлением перспективных исследова- ний министерства обороны США [16]. Другим фактором выполнения явля- ется планирование процесса проектирования. Детальная проработка некото- рых компонентов ИСК началась параллельно с совершенствованием схемы на высоком уровне. Такое планирование имело два преимущества: оно поз- волило подключить к работе над проектом одного или двух специалистов, тем самым уменьшив суммарную длительность цикла проектирования, и произвести проверку кристаллов на выполнение отдельных функций до полной проверки, упростив тем самым задачи этапа тестирования. Нужно отметить, что результирующая компоновка ’’снизу вверх” является, вероят- но, относительно менее эффективной, чем компоновка ’’сверху вниз”; в условиях быстрого изменения требований часть площади кристалла явля- ется разумной платой за сокращение сроков разработки. Ранее упоминалось об использовании средств автоматизации проектиро- вания при разработке архитектуры; это инструментальное средство явля- ется особенно важным на уровне компоновки. Компоновка ПСК была выполнена с помощью интерактивного графического редактора. Методы компоновки проверялись на машине, фрагменты схемы автоматически выделялись, и производилось моделирование. Большие схемы были промо- делированы на уровне ключей, а малые, расположенные на пути критичес- кой задержки в кристалле, были промоделированы на уровне элементар- ных вентилей для оценивания времени задержки. Этот подход оказался вполне успешным, незамеченными остались только мелкие логические ошибки из-за недостаточно полного моделирования. Поскольку процесс изготовления большого кристалла занимает несколько недель, полное мо- делирование, несомненно, оправдано как средство избежать дополнитель- ных итераций (проектирования). Альтернативным подходом к оценке ма- кета является сравнение выбранной схемы с проверенной ранее. Несмотря на широкое использование средств автоматизации проектирования при ма- кетировании кристалла, нам все равно не хватало их. Отсутствие хороших программ трассировки и мощных средств проверки макета делает эту ра- боту более трудной, чем можно было ожидать. Заключительной фазой в построении системы является ее включение для конкретного применения. Так как ПСК является элементом, пригод- ным для многих типов систем, однозначный ответ невозможен. Заметим, однако, что устройства, собранные из ПСК, не будут в общем требовать сложного интерфейса по управлению и командам, так как каждый крис- 168
Рис. 8.3. Интерфейсная система для заказных кристаллов СБИС талл программируем. Как указывалось в разд. 8.2, объединение в систему высокопроизводительных систолических матриц, построенных на ПСК или других ИС, требует определенной системы интерфейса. На рис. 8.3 пока- зан прототип современной интерфейсной системы, разработанной в универ- ситете Карнеги-Меллона, она обладает следующими характеристиками. \.Шина с высокой пропускной способностью. Пропускная способность устройств ввода-вывода систолических матриц или заказных кристаллов СБИС обычно намного выше, чем могут обеспечить управляющие шины, 169
такие как шины типа UNIBUS. Чтобы осознать необходимость высокой пропускной способности ввода-вывода, заметим, что типичная одномер- ная систолическая матрица требует пропускной способности устройств ввода-вывода около 15 - 10е слов/с, каждый из двух входных потоков данных и один выходной поток требуют 5 -10б слов/с. Принятый цикл дли- тельностью 200 нс является типичным для систолических ячеек, выполняю- щих умножение, и в частности для ячеек с ПСК. При решении сложной за- дачи можно использовать несколько систолических структур, требующих в совокупности пропускной способности 100-10® слов/с или больше. По- этому для интерфейсной системы потребуется одна или несколько специаль- ных шин с высокой пропускной способностью. 2. Буферная память. Эта память используется как буфер между низко- скоростной шиной главной ЭВМ и высокоскоростными специализированны- ми шинами в интерфейсной системе. При хранении в этой памяти данных, которые систолической матрицей используются повторно, матрица может работать с высокой скоростью, не перегружая шину главной ЭВМ. Необхо- димо заметить, что повторное использование данных является типичным всякий раз, когда задача представлена в виде подзадач и систолическая мат- рица выполняет эти подзадачи последовательно [39, 61]. 3. Блок управления систолическим процессором. Им является програм- мируемый процессор (контроллер), который служит интерфейсом между специальной высокоскоростной шиной и систолической матрицей. Наряду с управлением шинным протоколом он генерирует адреса для доступа к бу- ферной памяти и выдает временные управляющие сигналы для систоличес- кой матрицы. 4. Интерфейсный процессор. Этот процессор управляет взаимодействием главной ЭВМ и интерфейсной системы. Он управляет загрузкой буферной памяти, планирует и проверяет вычисления, выполняемые систолической матрицей. 8.4. ЗАКЛЮЧЕНИЕ Подводя итоги, предлагаем перечень основных составляющих успеха или неудач при проектировании специализированных СБИС. 1. Технология. Используемая технология все больше влияет на характер проектирования специализированных устройств. Цифровые СБИС откры- вают большие перспективы в обработке сигналов, в частности возможность массового параллелизма. Другие типы технологии, такие как оптоэлектрон- ная [14, 57], предлагают иные средства и компромиссные решения. 2. Хорошее понимание сути прикладных задач. Для того чтобы капитало- вложения в специализированное проектирование были обоснованными, в об- ласти применения должны быть известны узкие места, характерные для ши- роко распространенных задач. Теория обработки сигналов предлагает обшир- ный запас таких задач, которые стимулируют блочное проектирование сис- тем. Предполагается, что эти блоки сыграют важную роль в будущем проек- тировании специализированных систем. |170
3. Алгоритмы. Алгоритмы, эффективные для универсальных ЭВМ, могут не оказаться таковыми для специализированных систем. Эффективность ал- горитма в существенной степени зависит от технологии: для СБИС рассмот- рение геометрии структуры является таким же важным, как и число опе- раций. 4. Архитектура. Архитектура должна быть выбрана так, чтобы соблюдал- ся баланс между универсальностью и производительностью с учетом требо- ваний практической реализации, а также слабых и сильных сторон техно- логии. 5. Длительность этапа выполнения. Из-за изменений технологии, требова- ний прикладных задач и стоимости процесса проектирования важно макси- мально сократить длительность проектирования специализированных сис- тем. Усовершенствованные средства автоматизации проектирования могут уменьшить стоимость разработки. Кремниевое литье может обеспечить быстрое изготовление прототипа. Схема для проверки также может сокра- тить цикл разработки, облегчив тестирование и поиск ошибок. 6. Объединение в общую систему. Проектирование специализированных устройств является только частью всей работы. Объединение в общую сис- тему однотипных высокопроизводительных устройств, как правило, тре- бует аппаратуры высокоскоростного ввода-вывода и буферной памяти боль- шого объема. Мы предвидим такое развитие основных систем, при котором эти функции могут быть реализованы гибким способом для большого чис- ла специализированных функциональных модулей. СПИСОК ЛИТЕРАТУРЫ [1] М. R. Barbacci, “Instruction Set Processor Specifications (ISPS): The Notation and Its Application,” IEEE Trans. Comput., C-.W1):24-4O (Jan. 1981). [2] A. A. Barnum and M. A. Knapp, eds., Proceedings of the 1962 Workshop on Computer Organization, Spartan Books, New York, 1963. [3] J. L. Bentley, “A Parallel Algorithm for Constructing Minimum Spanning Trees,” J. Algorithms, 7:51-59 (1980). [4] J. L. Bentley and H. T. Kung, “A Tree Machine for Searching Problems,” Proc. 1979 Int. Conf. Parallel Process., IEEE, Aug. 1979, pp. 257-266. [5] J. Blackmer, P. Kuekes, and G. Frank, “A 200 MOPS Systolic Processor,” Proc. SPIE Symp., Vol. 298: Real-Time Signal Processing IV, Society of Photo-optical Instrumenta- tion Engineers, Aug. 1981. [6] A. Bojanczyk, R. P. Brent, and H. T. Kung, Numerically Stable Solution of Dense Systems of Linear Equations Using Mesh-Connected Processors, Tech. Rep., Computer Science Department, Carnegie-Mellon University, May 1981. [7] R. P. Brent and H. T. Kung, Systolic VLSI Arrays for Polynomial GCD Computation, Tech. Rep., Computer Science Department, Carnegie-Mellon University, May 1982. [8J R. P. Brent and H. T. Kung, Systolic VLSI Arrays for Integer GCD Computation, Tech. Rep. TR-CS-82-11, Department of Computer Science, The Australian National Univer- sity, 1982. 171
[9] R. P. Brent and F. T. Luk, “A Systolic Array for the Linear-Time Solution of Toeplitz Systems о» Equations,” J. VLSI Comput. Syst., Vol. I, No. I, pp. 1-22,1983. [10] R. P. Brent and F. T. Luk, A Systolic Architecture for the Singular Value Decomposition, Tech. Rep. TR-CS-82-09, Department of Computer Science, The Australian National University, Aug. 1982. [11] R. P. Brent and F. T. Luk, A Systolic Architecture for Almost Linear-Time Solution of the Symmetric Eigenvalue Problem, Tech. Rep. TR-CS-82-10, Department of Computer Science, The Australian National University, Aug. 1982. [12] K. Bromlev, J. J. Symanski, J. M. Speiser, and H. J. Whitehouse, “Systolic Array Processor Developments,” in H. T. Kung, R. F. Sproull, and G. L. Steele, Jr., eds., VLSI Systems and Computations, Computer Science Department, Carnegie-Mellon University, Computer Science Press, Rockville, Md., Oct. 1981, pp. 273- 284. [13] P. R. Cappello and K. Steiglitz, “Digital Signal Processing Applications of Systolic Algorithms,” in H. T. Kung, R. F. Sproull, and G. L. Steele, Jr., eds., VLSI Systems and Computations, Computer Science Department, Carnegie-Mellon University, Computer Science Press, Rockville, Md., Oct. 1981, pp. 245-254. [14] H. J. Caulfield, W. T. Rhodes, M. J. Foster, and S. Horvitz, “Optical Implementation of Systolic Array Processing,” Opt. Commun., 40(2) :86-90 (Dec. 1981). [15] B. Chazcile, Computational Geometry on a Systolic Chip, Tech. Rep., Computer Science Department, Carnegie Mellon University, May 1982. [16] D. Cohen and G. Lewicki, “MOSIS—The ARPA Silicon Broker,” Proc. 2nd Caltech Corf. VLSI, California Institute of Technology, Jan. 1981. [17] A. Corry and K. Patel, “A CMOS/SOS VLSI Correlator,” Proc. 1983 Int. Symp. VLSI Technol. Syst. Appl., 1983, pp. 134-137. [18] A. L. Fisher, “Systolic Algorithms for Running Order Statistics in Signal and Image Processing,” J. Digital Syst., VI(2/3):251~264 (Summer/Fall 1982). A preliminary version appears in H. T. Kung, R. F. Sproull, and G. L. Steele, Jr., eds., VLSI Systems and Computations, Computer Science Press, Rockville, Md., 1981. [19] A. L. Fisher and H. T. Kung, “Synchronizing Large Systolic Arrays,” Proc. SPIE Symp., Vol. 341: Real-Time Signal Processing V, Society of Photo-optical Instrumentation Engineers, May 1982, pp. 44 52. A revised version appears in Proc. 10th Int. Symp. Comput. Architecture, June 1983. [20] A. L. Fisher, H. T. Kung, L. M. Monier, and Y. Dohi, “Architecture of the PSC: A Programmable Systolic Chip,” Proc. 10th Int. Symp. Comput. Architecture, June 1983. [21] A. L. Fisher, H. T. Kung, L. M. Monier, H. Walker, and Y. Dohi, “Design of the PSC: A Programmable Systolic Chip,” in R. Bryant, ed., Proceedings of the Third Caltech Conference on Very Large Scale Integration, California Institute of Technology, Com- puter Science Press, Rockville, Md., Mar. 1983, pp. 287-302. [22] M. J. Foster and H. T. Kung, “The Design of Special-Purpose VLSI Chips,” Computer 7_?(l):26-40 (Jan. 1980). A reprint of the paper appears in Digital MOS Integrated Circuits, ed. M. I. Elmasry, IEEE Press Selected Reprint Series, IEEE Press, New York, 1981, pp. 204-217. A preliminary version of the paper entitled “Design of Special- Purpose VLSI Chips: Example and Opinions” also appears in Proc. 7th Int. Symp. Comput. Architecture, La Baule, France, May 1980, pp. 300-307. [23] M. J. Foster and H. T. Kung, “Recognize Regular Languages with Programmable Building-Blocks,” J. Digital Syst., <5(4):323-332 (1983). A preliminary version of the paper also appears in VLSI 81, ed. J. P. Gray, Academic Press, London, 1981, pp. 75-84. 172
г24] Е. Н. Frank and R. F. Sproull, “ Testing and Debugging Custom Integrated Circuits,” Comput. Surv. 73(4):425—451 (Dec. 1981). [25] W. M. Gentleman and H. T. Kung, “Matrix Triangularization by Systolic Arrays” Proc. SPIE Symp., Vol. 298: Real-Time Signal Processing IV, Society of Photo-optical Instrumentation Engineers, Aug 1981, pp. 19-26. [26] L. J. Guibas and F. M. Liang, “Systolic Stacks, Queues, and Counters,” Proc. Conf. Adv. Res. VLSI, Massachusetts Institute of Technology, Cambridge, Mass., Jan. 1982, pp. 155-164. [27] L. J. Guibas. H. T. Kung, and C. D. Thompson, “Direct VLSI Implenseittation of Combinatorial Algorithms,” Ртж. Conf. Very Large Scale Integration: Architecture, Design, fabrication. California Institute of Technology, Jan. 1979, pp. 509-525. [28] D. E. Heller and I. C. F. Ipsen, “Systolic Networks for Orthogonal Equivalence Trans- formations and Their Applications,” Proc. Corf. Adv. Res. VLSI, Massachusetts Insti- tute of Technology, Cambridge, Mass, Jan. 1982, pp. 113-122. [29] H. T. Kung, “Let’s Design Algorithms for VLSI Systems.” Proc. Conf. Very Large Scale Integration: Architecture, Design, Fabrication, California Institute of Technology, Jan. 1979, pp. 65-90. Also available as a Carnegie-Mellon University Computer Science Department technical report, Sept. 1979. [30] H. T. Kung, “The Structure of Parallel Algorithms,” in M. C. Yovits, ed. Advances in Computers, Vol. 19, Academic Press, New York, 1980, pp. 65-112. [31] H. T. Kung, “Special-Purpose Devices for Signal and Image Processing: An Op- portunity in VLSI,” Proc. SPIE, Vol. 241: Real-Time Signal Processing III, Society of Photo-optical Instrumentation Engineers, July 1980, pp. 76-84. [32] H. T. Kung, “Use of VLSI in Algebraic Computation: Some Suggestions,” in P. S. Wang, ed. Proc. 1981 ACM Symp. Symbolic Algebraic Comp-, ACM SIGSAM, Aug. 1981, pp. 218-222. [33] H. T. Kung, “Why Systolic Architectures?” IEEE Comput. Mag. 15(\)S1-A(> (Jan. 1982). [34] H. T. Kung, L. M. Ruane, and D. W. L. Yen, “Two-Level Pipelined Systolic Array for Multidimensional Convolution,” Image Vision Comput., J(l):3O-36 (Feb. 1983). A pre- liminary version appears in VLSI Systems and Compulations, ed. H. T. Kung, G. L. Steele, Jr, and R. F. Sproull, Computer Science Press, Rockville, Md, 1981, pp. 255- 264. [35] H. T. Kung and P. L. Lehman, “Systolic (VLSI) Arrays for Relational Database Oper- ations,” Proc. ACM-SIGMOD 1980 Int. Conf. Manag. Data, ACM, May 1980, pp. 105-116. [36] H. T. Kung and С. E. Leiserson, “Systolic Arrays (for VLSI),” in I. S Duff, and G. W. Stewart, eds. Sparse Matrix Proceedings 1978, SIAM, Philadelphia, 1979, pp. 256-282. A slightly different version appears in C. A. Mead and L. A. Conway, Introduction to VLSI Systems, Addison-Wesley, Reading, Mass, 1980, Sec. 8.3. [37] H. T. Kung and R. L. Picard, “Hardware Pipelines for Multi-dimensional Convolution and Resampling,” Proceedings of the 1981 IEEE Computer Society Workshop on Com- puter Architecture for Pattern Analysis and Image Database Management, IEEE Com- puter Society Press, Nov. 1981, pp. 273-278. [38] H. T. Kung and S. W. Song, “A Systolic 2-D Convolution Chip,” in K. Preston, Jr. and L. Uhr, eds. Multicomputers and Image Processing: Algorithms and Programs, Academic Press, New York, 1982, pp. 373-384. An extended abstract appears in Proceedings of 1981 IEEE Computer Society Workshop on Computer Architecture for Pattern Analysis and Image Database Management, Nov. 11-13,1981, pp. 159-160. 173
[39] Н. Т. Kung and S. Q. Yu, “Integrating High-Performance Special-Purpose Devices into a System,” Proc. SPIE Symp., Vol. 341: Real-Time Signal Processing V, Society of Photo-optical Instrumentation Engineers, May 1982, pp. 17-22. [40] S. Y. Kung and Y. H. Hu, “Fast and Parallel Algorithms for Solving Toeplitz Systems,” Proc. Int. Symp. Mini and Microcomputers in Control and Measurement, San Francisco, May 1981. Also in IEEE Trans. Acoust. Speech Signal Process. Vol. Assp-3I, No. I, Feb 1983, pp. 66-76. [41] P. L. Lehman, “A Systolic (VLSI) Array for Processing Simple Relational Queries,” in H. T. Kung, R. F. Sproull, and G. L. Steele, Jr., eds., VLSI Systems and Computations, Computer Science Department, Carnegie-Mellon University, Computer Science Press, Rockville, Md., Oct. 1981, pp. 285-295. [42] С. E. Leiserson, “Systolic Priority Queues,” Proc. Conf. Very Large Scale Integration: Architecture, Design, Fabrication, California Institute of Technology, Jan. 1979, pp. 199-214. Also available as a Carnegie-Mellon University Computer Science Depart- ment technical report, Apr. 1979. [43] С. E. Leiserson, “Area-Efficient Graph Layouts (for VLSI),” Proc. 21st Annu. Symp. Found. Comput. Sci., Oct. 1980, pp. 270-281. [44] F. J. MacWilliams and N. J. A. Sloane, The Theory of Error-Correcting Codes, North- Holland, Amsterdam, 1977. * [45] C. A. Mead and L. A. Conway, Introduction to VLSI Systems, Addison-Wesley, Read- ing, Mass., 1980. [46] T. Nishitani, Y. Kawakami, R. Maruta, and A. Sawai, “LSI Signal Processing Devel- opment for Communications Equipment,” Proc. ICASSP 80, IEEE Acoustics, Speech and Signal Processing Society, Apr. 1980, pp. 386- 389. [Л7] R. N. Noyce, “Hardware Prospects and Limitations,” in M. L. Dertouzos and J. Moses, eds., The Computer Age: A Twenty-Year View, IEEE Press, New York, 1979, pp. 321-337. [48] T. Ottmann, A. L. Rosenberg, and L. J. Stockmeyer, A Dictionary Machine for VLSI, Tech. Rep. RC 9060 (No. 39615), IBM Thomas J. Watson Research Center, Yorktown Heights, N.Y., 1981. [49] W. W. Peterson and E. J. Weldon, Jr., Error-Correcting Codes, MIT Press, Cambridge, Mass., 1972. [50] C. Savage, “A Systolic Data Structure Chip for Connectivity Problems,” in H. T. Kung, R. F. Sproull, and G. L. Steele, Jr., eds., VLSI Systems and Computations, Computer Science Department, Carnegie-Mellon University, Computer Science Press, Rockville, Md., Oct. 1981, pp. 296- 300. [51] A. Sawai, “Programmable LSI Digital Signal Processor Development,” in H. T. Kung, R. F. Sproull, and G. L. Steele, Jr., eds., VLSI Systems and Computations, Computer Science Department, Carnegie-Mellon University, Computer Science Press, Rockville, Md., Oct. 1981, pp. 29-40. [52] R. Schreiber, “Systolic Arrays for Eigenvalue Computation,” Proc. SPIE Symp., Vol. 341: Real-Time Signal Processing V, Society of Photo-optical Instrumentation En- gineers, May 1982, pp. 27-34. [53] S. W. Song, “On a High-Performance VLSI Solution to Database Problems,” Ph.D. thesis, Computer Science Department, Carnegie-Mellon University, July 1981. Also available as a CMU Computer Science Department technical report, Aug. 1981. [54] J. J. Symanski, “A Systolic Array Processor Implementation,” Proc. SPIE Symp., Vol. 298: Real-Time Signal Processing IV, Society of Photo-optical Instrumentation, Aug. 1981. 174
[55] J- -5- Symanski, “Progress on a Systolic Processor Implementation,” Proc. SPIE Symp., Vol. 341: Real-Time Signal Processing V, Society of Photo-optical Instrumentation, May 1982, pp. 2-7. [56] C. D. Thompson, “A Complexity Theory for VLSI,” Ph.D. thesis, Carnegie-Mellon University, Computer Science Department, 1980. [57] M. Tur, J. W. Goodman, B. Moslehi, J. E. Bowers, and H. J. Shaw, “Fiber-Optic Signal 'Processor with Applications to Matrix-Vector Multiplication and Lattice Filtering," Opt. Lett., 7(9) :463 465 (Sept. 1982). [58] U. Weiser and A. Davis, “A Wavefront Notation Tool for VLSI Array Design," in H. T. Kung, R. F. Sproull, and G. L. Steele, Jr., eds., VLSI Systems and Computations, Com- puter Science Department, Carnegie-Mellon University, Computer Science Press, Rock- ville, Md., Oct. 1981, pp. 226-234. [59] R. A. Whiteside, P. G. Hibbard, and N. S. Ostlund, Systolic Algorithms for Monte Carlo Simulations. Draft, Computer Science Department, Carnegie-Mellon University, June 1982. [60] M. Yano, K. Inoue, and T. Senba, “A LSI Digital Signal Processor,” Proc. ICASSP 82, IEEE Acoustics, Speech and Signal Processing Society, May 1982, pp. 1073-1076. [61] D. W. L. Yen and A. V. Kulkarni, “Systolic Processing and an Implementation for Signal and Image Processing,” IEEE Trans. Comput., C-3/(10):1000-1009 (Oct. 1982). 9 РОЛЬ ВЫСОКОПАРАЛЛЕЛЬНЫХ ВЫЧИСЛИТЕЛЕЙ С ПЕРЕСТРАИВАЕМОЙ КОНФИГУРАЦИЕЙ В ОБРАБОТКЕ СИГНАЛОВ Л. Снайдер1 9.1. ВВЕДЕНИЕ Несмотря на то, что микрокомпьютер является универсальным устрой- ством, его часто используют совместно с ПЗУ в качестве специализирован- ного устройства последовательного типа. Целесообразность такого приме- нения обусловлена тем, что специализация уже разработанного, проверен- ного и серийно выпускаемого микрокомпьютера требует лишь програм- мирования ПЗУ, а эта задача легче трудоемкого схемного проектирования. В качестве высокопараллельной системы обработки сигналов может вы- ступать вычислитель (высокопараллельный) с перестраиваемой конфигура- цией (ВППК-процессор). В качестве устройств обработки ВППК-процессоры могут изготавливаться независимо от области применения, а совершенст- воваться и изменяться с соответствующим программированием. Вследст- вие своих архитектурных характеристик они являются отказоустойчивы- ми устройствами, удобными для интегрального исполнения. Наконец, если Лафайеттский университет, Лафайетт, Индиана. 175
практические соображения диктуют исполнение процессора сигналов в виде СБИС, то реализация ВППК-процессора может служить первым шагом к системному проектированию [1]. 9.2. ВППК-ГТРОЦЕССОР Архитектура семейства ВППК-процессоров уже была описана, например в [2, 3]; здесь напомним ее основные особенности, прежде чем перейти к рассмотрению примера. Основным компонентом ВППК-процессора являет- ся коммутационная матрица: совокупность процессорных элементов (ПЭ), соединенных через регулярные интервалы с сетью программируемых ком- мутаторов (рис. 9.1). Процессорные элементы представляют собой микро- процессоры с локальной памятью программ и данных и собственными про- граммными счетчиками; общая программная память отсутствует, и все ПЭ работают синхронно. Непосредственная связь между процессорными элемен- тами отсутствует, каждый из них соединен с небольшим числом (обычно восемь) соседних коммутаторов. Число коммутаторов, подключенных к ПЭ, ширина линий передачи данных и т.д. являются параметрами, харак- теризующими ВППК-проце ссоры различных типов. Коммутаторы, каждый из которых снабжен локальной памятью неболь- шого объема, являются программируемыми. Под управлением команды, называемой установкой конфигурации, коммутатор соединяет две или более линии передачи данных. Статическое соединение двух ПЭ устанав- ливается соответствующим программированием цепочки промежуточных коммутаторов. Таким образом, осуществляется, скорее, коммутация кана- лов, чем коммутация пакетов. Она осуществляется глобально управляющей ЭВМ так, что ПЭ не должны содержать информацию о том, с чем они связа- ны; они просто считывают данные или записывают их в свои локальные пор- ты, а поток данных определяется структурой взаимосвязи ПЭ, запрограм- Рис. 9.1. Две процессорные матрицы: квадратами показаны ПЭ; кружками представле- ны коммутаторы; линии означают пути данных. Масштаб рисунков нарушен — пло- щадь ПЭ значительно больше площади коммутаторов 176
Рис. 9.2. Граф связи для восьмиточечного алгоритма БПФ мированной в коммутаторах. Допускаются пересечение и разветвление линий передачи данных. Коммутаторы, расположенные по периметру решетки, свя- заны с внешним оборудованием. Две коммутационные матрицы, показанные на рис. 9.1, различаются ши- риной коридора — параметром, характеризующим число коммутаторов, раз- деляющих соседние ПЭ. Ширина коридора — важный параметр, оказываю- щий существенное влияние на удобство программирования структуры свя- зей ПЭ: чем шире коридор, тем больше существует различных путей для предотвращения перегрузки сети при программировании алгоритмов, опи- сываемых сложными графами [3]. Пример. Обычно параллельные алгоритмы, в частности алгоритмы обработки сиг- налов, представляются в виде графов, каждая вершина которых соответствует одному из множеств процессов. Граф описывает структуру связи процессов, а процессы опре- деляют вычисления в каждом элементе структуры. В качестве примера рассмотрим ал- горитм восьмиточечного БПФ, граф которого представлен на рис. 9.2 [4]. Всем верши- нам графа соответствуют идентичные процессы: read В, В'; С*-В + QB;C<-B —QB'; write С, С"; где Q — константа. Представим алгоритм в конвейерном виде, вставляя команду предшествующего процесса в цикл. Поскольку представление параллельного алгоритма состоит из Двух частей: графа и множества соответствующих процессов, то программирование ВППК-процессора также состоит из двух этапов: отображение графа на коммутационную матрицу и програм- мирование ПЭ. На рис. 9.3 показано прямое отображение графа БПФ на матрицу, при- веденную на рис. 9,1,6. Для предотвращения перегрузки перекрестных линий связи в центре матрицы необходим двойной коридор. После отображения графа на коммута- ционную матрицу соединение процессоров осуществляется автоматически. (В данном примере это не столь существенно, поскольку все ПЭ выполняют одни и те же коман- 177
Рис. 9.3. Прямое отображение графа связи процессора БПФ. Показаны только задейст- вованные пути передачи данных ды, но для других алгоритмов, например ветвящихся, это существенно.) Для заверше- ния второго этапа мы просто программируем процесс в приведенной здесь форме и указываем, что все ПЭ работают по одной программе. При подготовке программы к выполнению контроллер ВППК-процессора загружа- ет матрицу программами (используя ’’скелет”, который на рисунке не показан). Ком- мутаторами задается (в общем поле памяти) структура связей, соответствующая БПФ. Каждому ПЭ задается своя объектная программа внутренних вычислений. Затем конт- роллер выдает коммутаторам команду, по которой устанавливается конфигурация, в результате чего процессоры оказываются соединенными, как показано на рис. 9.3. По этой же команде ПЭ начинают выполнять заложенные в них программы и начинает- ся конвейерное выполнение алгоритма БПФ, Соединение ПЭ остается неизменным до выдачи контроллером специальной команды перестройки, например, для реализации другого алгоритма. 9.3. УНИВЕРСАЛЬНЫЙ СИГНАЛЬНЫЙ ПРОЦЕССОР НА ОСНОВЕ ВППК-ПРОЦЕССОРА Широкое распространение алгоритма БПФ позволяет рассматривать ВППК-процессор как универсальный сигнальный процессор. Отметим, что, хотя рассматриваемый алгоритм был конвейеризован, ВППК-процессор не является систолической матрицей. Межпроцессорные соединения не огра- 1178
Рис. 9.4. Усовершенствованное отображение графа, приведенного на рис. 9.2 ничены связью с ближайшими соседями. С помощью коммутаторов можно обеспечить связи различной структуры, реализующие как фиксированные систолические матрицы, тате и структуры более общего вида. Это позволяет при проектировании систем обработки сигналов рассматривать более широ- кий класс алгоритмов, чем при использовании программируемых систоли- ческих матриц [5, 6]. Возможность программирования межпроцессорных связей различной структуры позволяет оптимизировать вычислительное устройство. В зави- симости от целевой функции наилучшим может быть признано то или иное решение. Поскольку коммутаторы вносят некоторую задержку распрост- ранения сигнала, оптимизация может сводиться к уменьшению длины пути передачи данных. Тщательный анализ показывает, что для рассматриваемой простой задачи БПФ существует возможность уменьшить длину линий связи с помощью организации однонаправленного потока данных. Структура меж- процессорных линий связи типа ’’ближайший сосед”, уменьшающая длину соединений и сокращающая требуемую ширину коридора до единицы, пока- зана на рис. 9.4. Отметим, что такая структура является просто еще одним отображением графа на рис. 9.2, изменены лишь направления, по которым данные принимаются и отсылаются, а программы ПЭ остаются неизменны- 179
Рис. 9.5. Тасующий граф с 64 вершинами ми. (Компилятор назначает порты соответствующих направлений, ос- вобождая от этих забот разработ- чика.) Проблема получения графа со связями типа ’’ближайший сосед” или хотя бы с локальными связя- ми для алгоритма БПФ большой размерности представляет значи- тельный интерес. Результаты, по- лученные в [7], показывают, что асимптотически подобные графы с перестановкой вершин не могут быть отображены на матрицу с загрузкой всех процессорных элементов, ес- ли ширина коридора будет меньше f2(\/n/'log и), где п — число процессоров в матрице. При этом возможность получения локальных связей кажется маловероятной даже для матриц, удовлетворяющих этому требованию. Однако такие асимптотические результаты могут вводить в заблуждение. В работе [8] неожиданно показан эффективный способ отображения гра- фов тасовки, а в [9j подобный граф с 64 вершинами отображен на мат- рицу с единичной шириной коридора. Последний результат представлен на рис. 9.5. Суть его в том, что, разделив задачу параллельного Программиро- вания на две части, можно решать каждую из них в значительной степени независимо друг от друга. Быстрое преобразование Фурье является наиболее изученной операцией обработки сигналов, и существует большое число алгоритмов, реализующих это преобразование. Поскольку нет ограничений, вынуждающих в ВППК- процессоре использовать только систолические алгоритмы, можно исследо- вать достоинства других вычислительных методов. В работе (10] проанали- зированы восемь алгоритмов БПФ исходя из их реализации на СБС и показа- но, что некоторые из них пригодны для реализации с помощью ВППК-про- цессоров. 9.4. НЕКОТОРЫЕ ПРОБЛЕМЫ РЕАЛИЗАЦИИ Мы уже сформулировали условия, определяющие целесообразность использования ВППК-процессоров для решения всевозможных задач обра- ботки сигналов. Хотя обработка сигналов как сфера применения ’’подхо- дит” для ВППК-процессоров вследствие высокой регулярности и парал- лелизма алгоритмов, другие характеристики алгоритмов решения задач в этой области делают ее не столь привлекательной для универсального ре- шения как с помощью ВППК-процессоров, так и программируемых систо- лических матриц. В связи с этим следует отметить потребность в очень вы- 180
сокой производительности и тот факт, что сигнальные процессоры явля- ются составной частью систем, решающих только одну задачу. Кратко рас- смотрим методы специализации ВППК-процессоров, направленные па увели- чение производительности. Очевидным способом увеличения производительности является построе- ние специализированных ВППК-машин. Можно заменить ОЗУ на ПЗУ как в ПЭ, так и в коммутаторах. С коммутаторами можно поступить еще луч- ше: можно их изъять, если в сигнальном процессоре используется только одна структура связи. Даже если в сигнальном ВППК-процессоре реализу- ется несколько алгоритмов или алгоритм требует нескольких соединений различных видов, то все равно можно отказаться от значительного числа коммутаторов. В любом случае получится хотя и небольшой, но все-таки выигрыш в площади (площадь коммутаторов невелика), уменьшится за- держка распространения сигнала (которая может стать незначительной, за исключением задержек в очень длинных линиях передачи данных), уп- ростится или вообше может быть устранен контроллер и полностью поте- ряется гибкость — ’’зашитый” алгоритм не может быть изменен или улуч- шен. В каждом конкретном случае следует оценить особо, представляют ли эти достоинства интерес. Если алгоритм соответствует ОКМД-управлению, программная память может быть устранена при соответствующей переработке контроллера. Быстродействие может быть увеличено путем замены процессора с памятью схемной реализацией простейших операций. В работе [1] было показано, как ВППК-архитектура может быть использована в качестве основы мето- дологии проектирования схемных решений. По существу, этот процесс пред- ставляет собой последовательное уточнение, при котором вычисления в ПЭ рассматриваются как задачи, которые необходимо решить на ВППК-машине с более примитивными ПЭ. В пределе сложность ПЭ может быть уменьшена и они могут быть сведены к простым вентильным элементам, реализуемым непосредственно в СБИС. При современной технологии только небольшая часть ВППК-матрицы помещается на одном кристалле кремния. Хотя мы рассчитываем на улучше- ние, более серьезный прогресс может быть достигнут при использовании ин- теграции на целой полупроводниковой пластине. В [11] описаны метод про- ектирования полупроводниковой пластины и использование коммутаторов для обхода поврежденных элементов. В результате получается единая ком- пактная регулярная структура, содержащая сотни ПЭ, требуемых для об- работки сигналов. 9.5. З АКЛЮЧЕНИЕ Рассмотренный процессор может использоваться как универсальное уст- ройство обработки сигналов, обеспечивающее возможность наиболее удоб- ной реализации алгоритма и допускающее экспериментирование. Более то- го, его разработка является первым шагом на пути к дальнейшей специали- зации, позволяющей уменьшить сложность, увеличить быстродействие и снизить стоимость. 181
СПИСОК ЛИТЕРАТУРЫ [1] L. Snyder, “Configurable, Highly Parallel (CHiP) Approach to Signal Processing Appli- cations,” Proc. Tech. Symp. East '82, SPIE, 1982. [2] L. Snyder, “Introduction to the Configurable, Highly Parallel Computer,” Computer /5(l):47-56 (Jan. 1982). [3] L. Snyder, “Overview of the CHiP Computer,” in J. P. Gray, ed., VLSI 81, Academic Press, New York, 1981, pp. 237-246. [4] H. S. Stone, “Parallel Processing with the Perfect Shuffle,” IEEE Trans. Comput., C- 20(2):153-161 (1971). [5] K. Bromley, J. J. Symanski, J. M. Speiser, and H. J. Whitehouse, “Systolic Array Processor Development,” in H. T. Kung, B. Sproull, and G. Steele, eds., VLSI Systems and Computations, Computer Science Press, Rockville, Md., 1981, pp. 273-284. [6] Y. Dohi, A. L. Fisher. H. T. Kung, and L. Monier, “The Programmable Systolic Chip: Project Overview,” in L. Snyder, L. J. Siegel, H. J. Siegel, and D. B. Gannon, eds., Algorithmically Specialized Computer Organizations, Academic Press, New York, 1983. [7] C. D. Thompson, “A Complexity Theory for VLSI,” Ph.D. thesis, Carnegie-Mellon University, 1980. [8] F. T. Leighton and G. L. Miller, “Optimal Layouts for Small Shuffle-Exchange Graphs,” in J. P. Gray, ed., VLSI 81, Academic Press, New York, pp. 289-300, 1981. [9] P. Morrissett, “Observations on Graph Embeddings,” Blue CHiP Project Notes, Nov. 1981. [10] C. D. Thompson, “Fourier Transform in VLSI,” Tech. Rep. UCB/CSD 83/105, Univer- sity of California at Berkeley, 1982. [11] K. S. Hedlund and L. Snyder, “Wafer Scale Integration of Configurable, Highly Parallel Processors,” Proc. Int. Conf. Parallel Process., IEEE, pp. 262-264, 1982. 10 УВЕЛИЧЕНИЕ ДОЛИ ВЫХОДА ГОДНЫХ СБИС ЗА СЧЕТ ОБЕСПЕЧЕНИЯ СВОЙСТВА ОТКАЗОУСТОЙЧИВОСТИ СИСТОЛИЧЕСКИХ СТРУКТУР Р. Кун1 10.1. ВВЕДЕНИЕ О проектировании отказоустойчивых систолических структур известно । очень мало. Особенно это относится к области методов повышения выхода I годных БИС (в процессе их изготовления). Степень интеграции можно по- высить двумя способами: уменьшением минимальных геометрических раз- меров (элементов на кристалле) и увеличением размеров самого кристалла. I 1 Северо-западный Университет, Эванстон, Иллинойс. 182
Если существующая технология не позволяет изготовить устройства слиш- ком большого размера, то в случае, когда допустимо увеличение числа де- фектов, можно немедленно воспользоваться вторым способом. Технологи- ческие приемы интеграции на уровне целых полупроводниковых пластин как раз основаны на втором способе [ 1, 3, 4, 6]. В большинстве подходов при интеграции на уровне целых полупроводниковых пластин предусматри- вается соединение работоспособных узлов после изготовления. В результа- те получается нерегулярная змеевидная одномерная структура связанных между собой процессорных элементов, в которую не попадают дефектные элементы (рис. 10.1,а). Однако этот прием непригоден для двумерных структур. Метод структурной отказоустойчивости1 позволяет изготавливать одномерные и двумерные структуры при наличии дефектных элементов. В общем случае отказоустойчивость можно обеспечить при наличии избы- точности. Избыточность может быть двух видов: за счет увеличения объе- ма аппаратуры или времени вычислений. Некоторые методы изготовления СБИС на целой пластине требуют увеличения объема аппаратуры, но ухудша- ют эффективность быстрых локальных связей [2]. Упомянутые методы сохраняют локальность связей, но неявно используют аппаратную избыточ- ность в виде дополнительных функциональных элементов. В противополож- ность этому методы структурной отказоустойчивости основаны на времен- ной избыточности. Поскольку реализация многопроцессорных систем на кристалле стала возможной только благодаря технологии изготовления СБИС на целой пластине, попытаемся рассмотреть применение этой тех- нологии для создания, во-первых, высокопараллельных и, во-вторых, отказо- 07 S) Рис. 10.1. Сравнение методов интеграции на уровне целой полупроводниковой пластины (с) и структурной отказоустойчивости (6) для случайного распределения точечных дефектов: О — используемый функциональный ПЭ; X — неиспользуемый дефектный ПЭ; + — неис- пользуемый функциональный ПЭ 1 В оригинале interstitial fault-tolerance. Так как буквальный перевод не объясняет смысла термина, мы переводим его как’’структурная отказоустойчивость”. — Прим. ред. 183
устойчивых систем. Не все из ранее известных результатов можно приме- нить к этой ситуации. ’ Рассмотрим хорошо известный закон Прайса [8] : У = (1 + А4/т)~"г, где Y — доля выхода годных кристаллов; D — плотность дефектов, А — эф- фективная площадь кристалла; т — число факторов, вызывающих появле- ние дефектов, определяется в основном числом этапов изготовления. В данном случае закон Прайса не справедлив по двум причинам. Во- первых, следует учесть, что в большинстве систолических структур ПЭ соединены с помощью только одного или двух слоев материала, так что система может быть промоделирована двухуровневой моделью'- 1) на нижнем уровне изготовление каждого узла или процессорного элемента подчиняется закону Прайса, что дает определенную единичную плотность f дефектов (нефункционирующих процессоров) ; 2) на верхнем уровне распределение отказавших процессоров, основан- ное на независимом потоке событий с единичной плотностью дефектов, определяет выход годных Y. Во-вторых, в известных неотказоустойчивых системах выход годных ра- вен вероятности того, что в области А дефекты отсутствуют. Для отказоус- тойчивой системы параллельных процессоров, такой как предлагаемая да- лее, это определение не выполняется. В системах- со структурной отказо- устойчивостью можно допустить большое число неисправных элементов, вплоть до О(д!) из N процессорных элементов, если распределение этих эле- ментов оптимально. Как определено с помощью двухуровневой модели, степень выхода годных для систем со структурной отказоустойчивостью зависит от локального распределения дефектов. Если система будет функ- ционировать с к или меныиим числом смежных дефектов, то общая доля выхода годных в процессе производства равна вероятности того, что число смежных дефектов кристалла нигде не превышает к : У=Рг (дефекты встре- чаются не более чем в к смежных процессорах). 10.2. СТРУКТУРНАЯ ОТКАЗОУСТОЙЧИВОСТЬ Любой .систолический алгоритм может быть представлен в так называе- мом итерационном пространстве, в котором каждая операция назначается од- ному из процессоров в пространстве в определенный момент времени. Предположим, что один процессорный элемент отказал. Так как систоли- ческий алгоритм распространяется по итерационному пространству как последовательность волновых фронтов, одна последовательность (или линия вычислений) не будет выполнена. Эта линия названа дефектной. Можно показать, что надлежащим отображением итерационного простран- ства дефектная линия может быть отображена в другую линию незанятых процессорных циклов соседнего процессора. Эта линия свободных циклов называется ремонтной, а процессор с ремонтной линией называется ремон- тным для данного дефекта. 184
При соответствующем отображении итерационного пространства как де- фектная, так и ремонтная линии характеризуются чередующимися циклами вычислений и свободными циклами. По проекту хотя бы в одном смежном процессоре должны быть пре- дусмотрены свободные циклы, которые перемежаются с циклами вычисле- ний дефектного процессора. Временная избыточность, необходимая для обес- печения отказоустойчивости, заложена в свободных от вычислений циклах ремонтного процессора. Процессорные матрицы со структурной отказо- устойчивостью могут быть классифицированы на основе свойств использу- емого отображения итерационного пространства. Если существует п свобод- ных циклов на один вычислительный цикл, то алгоритм называется н-уров- невым отказоустойчивым. Эта цифра (и) близко связана с общим выходом годных. Систолическая матрица со структурной отказоустойчивостью п уров- ня будет функционировать по крайней мере с п смежными дефектными процессорными элементами. Пример. LD-разложение. На рис. 10.2 показано применение этой техники к алгорит- му LU-разложения [19]. Если процессор (0,2) неисправен, то дефектная линия вычис- лений, которые должны выполняться этим процессором, может быть выполнена ре- монтным процессором (—1,1). Ремонтная линия является структурной ремонтной ли- нией, т. е. во время выполнения ’’ремонтных” вычислений никаких других вычислений быть не должно. Алгоритм LU-разложения имеет структурную отказоустойчивость уровня два. На рис. 10.2, в, г показаны локальный граф ошибок и локальное преоб- разование связей при отказе линии связи у дефектного процессора. В этом случае для изменения маршрута вычислений требуется выполнить три шага за цикл. 10.3. АНАЛИЗ ВЫХОДА ГОДНЫХ Расчет выхода годных кристаллов при структурной отказоустойчивос- ти может быть проведен аналитически или моделированием. В работе [7] изучена математическая модель, которая может быть приспособлена дня оценки выхода годных кристаллов при структурной отказоустойчивости. В этой модели используются следующие параметры: 1) d — размерность систолической матрицы; 2) п — число дефектных процессоров в системе; 3) / — единичная функция плотности дефектов (одна и та же для всех дефектов); 4) к — максимальное число соседних дефектных процессоров. Используя принцип включения-исключения, с помощью этой модели можно показать, что (") V/ r(r.fc) Г р к = Е Е••• dxv{Gri), r=l i=l JGh J где Gri — графы (содержащие v (Gri) вершин) путей, в которых тройки пар соседних дефектных процессоров имеют общий дефектный процессор; t (г, к) — число таких графов для фиксированного значения г в серии вклю- чений-исключений; Nri^ (m) — комбинаторный коэффициент. 185
Исправление вычислений происходит В относитель- ный момент Времени О Свободные процессорные циклы для периферийных процесса роб указаны в круглых скобках В) Рис. 10.2. Косое отображение алгоритма LU-разложения для введения структурной от- казоустойчивости : а — исходное итерационное пространство для LU-разложения; б — косое отображение итерационного пространства; е — локальный граф дефектов; г — распределение свя- зей, позволяющее не увеличивать полосу пропускания связей х -змеевидная структура,уровень отказоустойчивости 2 ’ о -линейная структура, уровень отказоустойчивости’г + -линейная структура, уровень отказоустойчивости 1 х -J_________I________i________। । 50 W0 150 200 250 Число процессорных элементов Рис. 10.3. Плотность распределе- ния дефектов в зависимости от числа процессорных элементов (на кристалле) при значении вы- хода годных 0,5 186
Однако расчет по этому выражению крайне громоздок. В работе [7] по- казано, как можно вычислять главные члены этого выражения и найти гра- ницу ошибки округления. Результаты моделирования трех систолических матриц со структурной отказоустойчивостью приведены на рис. 10.3. В линейной змеевидной структуре (см. рис. 10.1,6) допускается, что про- цессор в одной строке может исправлять работу процессора в соседней строке. Метод моделирования состоял во введении равномерно распределенных случайных дефектов. Каждый дефект означает выход из строя только од- ного работающего процессора. Соседний с ним процессор, который может выполнять обработку в "течение его свободного цикла вместо выведенного из строя процессора, выбирался в качестве ремонтного процессора. Сосед- ние процессоры проверялись в том же самом порядке для каждого отказав- шего процессора. Если не находилось ни одного соседнего процессора со свободным циклом, вся сеть считалась неисправной и испытание (модели- рование) заканчивалось с регистрацией числа допустимых дефектов. Не предпринималось попыток переназначения ремонтных процессоров каким- либо оптимальным способом. Эта модель является моделью надежных вы- числений, однако ее результаты пессимистичнее реальных, так как на самом деле допустимы многократные дефекты. Результаты моделирования для сетей, содержащих от 16 до 256 процес- соров, приведены на рис. 10.2. Этот рисунок показывает распределение допустимой плотности дефектов для общего уровня выхода годных 0,5. Метод структурной отказоустойчивости сравнивался с методом изготов- ления СБИС на одной пластине (см. список литературы), в особенности для змеевидного линейного расположения элементов. Например, на рис. 10.3 изображена матрица, содержащая 8X8 процессоров со случайным располо- жением дефектных элементов с плотностью 29%, соответствующей уровню выхода годных, равному 71 %. При простом алгоритме, предназначенном для интеграции на уровне целых пластин, практический выход годных 50% до- стигается соединением, показанным на рис. 10.1 ,а. Систолическая матрица с уровнем структурной отказоустойчивости 1, расположенная змеевидным способом с назначением ’’ремонтных” процес- соров, показанным на рис. 10.1,6, дала работоспособную систему с 71 %-ным выходом годных. По своей сути в методе интеграции на уровне полупро- водниковой пластины используется аппаратная избыточность, тогда как в методе структурной отказоустойчивости — временная, поскольку систоли- ческая матрица будет работать с половинной скоростью. (Были развиты и более сложные методы [4], но в них также используется некоторая времен- ная избыточность.) Данное обсуждение касалось только независимых точечных дефектов; в интегральных же микросхемах проявляются дефекты и других типов: линейные, группы точечных дефектов и дефектные области. Кроме того, наблюдается значительное радиальное изменение плотности дефектов [5 ]. Из-за температурного градиента при изготовлении, коробления фотошабло- 187
на и др. дефекты чаще появляются на краях пластины, чем в ее центре. С помощью структурной отказоустойчивости можно исправить и такие дефекты, если исходное итерационное пространство отображается так, что плотность вычислений уменьшается линейно к краю пластины. Возможность адаптации систолических матриц этим способом допускается благодаря их абстрактному представлению в итерационном пространстве. 10.4. ЗАКЛЮЧЕНИЕ Высокопараллельные системы могут обеспечить некоторую степень от- казоустойчивости, особенно при реализации на СБИС, где наличие дефектов не является чем-то особенным. Обеспечение структурной отказоустойчивос- ти является естественным методом повышения отказоустойчивости систо- лических матриц, и он хорошо зарекомендовал себя по сравнению с извест- ным в настоящее время методом интеграции на уровне целой пластины. Предлагаемый метод допускает свойственное систолическим матрицам ли- нейное ускорение вычислений. Упомянутые методы анализа могут быть использованы даже после начального проектирования систолической мат- рицы без учета устойчивости к отказам. Так как в структурной отказоустой- чивости заложена временная избыточность, она не требует большой аппара- турной избыточности, и это особенно хорошо для матриц с изменяющейся конфигурацией и программируемых систолических матриц, которые всегда включают в себя межпроцессорные коммутаторы или таблицы маршрути- зации (данных). Она также пригодна и для двумерных матриц, где приемы интеграции на уровне пластины себя не оправдывают. СПИСОК ЛИТЕРАТУРЫ R. С. Aubusson and I. Catt, “Wafer Scale Integration—A Fault Tolerant Procedure,” IEEE J. Solid-State Circuits, SC-/3(3):339-344 (June 1978). [2] Y. Egawa, T. Wada, Y. Ohmori, N. Tsuda, and K. Masuda, “A 1-Mbit Full-Wafer MOS RAM,” IEEE J. Solid State Circuits, CS-15(4) :677-686 (Aug. 1980). [3] D. Fussell and P. Varman, “Fault-Tolerant Wafer-Scale Integration for VLSI,” 9th Symp. Comput. Architecture, 1982, pp. 190-198. [4] D. Gajski and A. H. Sameh, “A W'SI-Multiprocessor for Iterative Algorithms,” Proc. GOMAC—82, Nov. 1982. [5] A. Gupta, W. A. Porter, and J. W. Lathrop, “Defect Analysis and Yield Degradation of Integration Circuits," IEEE J. Solid-State Circuits, SC-9.-96-103 June 1974). [6] R. M. Lea and M. Sreetharan, “VLSI Distributed Logic Memories,” Proc. Caltech Conf. Very Large Scale Integration, Caltech Computer Science Department, Jan. 1979. [7] Z. A. Melzak, Companion to Concrete Mathematics. Wiley, New York, 1973. [8] J. E. Price, “A New Look at Yield of Integrated Circuits," Proc. IEEE, 55:1290-1291 (Aug. 1970). 188
11 ДЕКОМПОЗИЦИЯ БОЛЬШИХ МАТРИЦ ДЛЯ ОГРАНИЧЕННЫХ СИСТОЛИЧЕСКИХ СТРУКТУР Д. Хеллер1 11.1 ВВЕДЕНИЕ В этой главе будет показало, каким образом проектирование систоличес- ких матричных процессоров и структур данных может быть адаптировано для матричных вычислений, которые не могут быть реализованы за один прогон данных через систолическую структуру. Обычно систолические структуры проектируются для вычислений за один проход. Покажем, как разбиение данных и их маршрутизация делают эту проблему разрешимой. Полагаем, что читатель знаком с основными работами по систолическим матричным процессорам, в частности с работами [3, 8, И, 12, 19], и имеет представление о конвейерных векторных вычислениях (например, [5, 9]). Другие специализированные устройства, предназначенные для СБИС-испол- нения, могут быть рассмотрены аналогичным образом. Основную предпосылку можно выразить в форме закона Мерфи: ’’Каково бы ни было специализированное вычислительное средство, всегда найдется задача, которая слишком велика для него. Эта задача появится только после того, как устройство уже приобретено и не может быть модифицировано, а задачу нельзя проигнорировать”. Поэтому необходимо проектировать только такие специализированные устройства, которые могут быть использованы для решения задачи произ- вольного размера и делать это не хуже, чем программные средства универ- сальных компьютеров. Естественный вывод состоит в том, что возможностей ни одной из систо- лических структур недостаточно для решения задач различных размерностей. Поэтому желательно объединить несколько проектов, разрабатывая одно устройство, чтобы не создавать несколько устройств для решения этой за- дачи. Здесь может быть полезна некоторая программируемость систоли- ческой структуры, например оперативная замена программ. Из набора уст- ройств и драйверов для разнообразных задач желательно иметь единую систему ввода-вывода с целью стыковки устройств и упрощения операций с памятью. Могут понадобиться устройства только для преобразования фор- матов данных несовместимых вычислительных устройств. Некоторые из этих идей будут проиллюстрированы далее. Размеры систолической структуры обычно определяются размерами мат- риц (порядок п, ширина ленты w и т.д.); поэтому для обозначения дейст- вительных размеров систолической структуры будем использовать символы п, w и т. д., обычно предполагая, что и< п, и т.д. В этом случае потребуется несколько прогонов данных, причем каждый прогон подмножества данных 1 Университет шт. Пенсильвания. 189
определяется некоторым методом разбиения. Принцип, лежащий в его ос- нове, заключается в том, что большие матрицы могут быть обработаны с помощью дополнительной памяти в каждом процессоре или путем зацикли- вания данных через систолическую структуру. Важной задачей при этом является минимизация времени задержки меж- ду прогонами данных или ее исключение. Для несистолических структур та- кая задача может быть решена путем хранения большой части матрицы внутри структуры; эта идея для задачи LU-разложения ленточных матриц полностью разработана в [16]. Здесь возникают два вопроса: какой фор- мат данных является лучшим для разбиения и как данные должны разме- щаться на диске? Необходимо заметить, что эти размещения могут быть мо- дифицированы с помощью специальных фильтров (см. гл. 22). Обычные методы разбиения логически вытекают из строчно-столбцо- вой структуры матриц. Разбиения по диагоналям и на непрямоугольные блоки присущи нетрадиционным методам, которые и необходимы для сис- толических структур. Основная идея здесь заключается в образовании длин- ных и узких матриц из коротких и широких. Так как систолические вычис- лители являются конвейерными, то их работа тем эффективнее, чем длин- нее и устойчивее входной поток данных. Наиболее естественно метод разбиения можно представить в виде ’’окна” над матрицей. Окно представляет собой матрицу, над которой выполняет- ся некоторое преобразование, и необходимый результат получается скани- рованием окна по исходной матрице. Дело будем иметь с большими и малы- ми окнами, причем малое окно будет находиться внутри большого. Анало- гичными являются понятия вычислительного окна как части матрицы, на- ходящейся в систолической структуре в течение данного времени [16, 17], и волнового фронта как переднего края окна. Представление матриц может иногда изменяться с целью увеличения производительности систолических вычислений с многократным прогоном данных через систолическую структуру. Рассмотрим два примера, в кото- рых используются аддитивное разбиение и тензорное представление. Объ- ем памяти в матричном процессоре часто выбирается компромиссно в зави- симости от числа процессоров, и поэтому допускается некоторая вариация объема памяти данных. В общем случае меньшее число процессоров означа- ет большее число прогонов данных, а больший объем памяти упрощает об- работку матрицы большого размера. Менее изящный, но тем не менее полез- ный прием заключается в ’’удвоении” объема вычислений за счет использова- ния времени простоя процессорных элементов в некоторых систолических структурах. Концепция аппаратной библиотеки, в которой функциональные элементы по отношению к управляющему компьютеру играют роль подпрограмм в библиотеке программ, уже обсуждалась [10]. Использование систолических структур как внешних процессоров, присоединенных к управляющей ЭВМ через разнообразные контроллеры, хорошо согласуется с этой моделью. Покажем также, что систолические структуры могут эффективно выпол- нять роль встроенных функциональных блоков для простых матричных 190
операций. Методы разбиения, обсуждаемые в этой главе, облегчат програм- мирование систолических структур и проектирование полной системы их поддержки. 11.2. АДДИТИВНОЕ РАЗБИЕНИЕ Аддитивные разбиения матриц вида А = А[ + А2 осуществляются в ос- новном в устройствах матричного умножения. Их целью может быть умень- шение ширины ленты матрицы, увеличение плотности ненулевых элементов внутри ленты или уменьшение объема вычислительных ресурсов за счет ис- пользования свойств симметрии. Возможно, простейшим примером умень- шения ширины ленты матрицы является запись симметрической матрицы как M = L + L7, где L — нижняя треугольная матрица, для вычисления: х7Мх = 2x^Lx. В [22] рассмотрена проблема уменьшения ширины ленты матрицы для ис- пользования в линейной систолической структуре при вычислении матрично- векторных произведений [19]. Обобщим этот метод. Диагонали матрицы А размера и Хи пронумеруем от — п + 1 до и —1. Так, элемент матрицы ле- жит в / - z-й диагонали. Ширина ленты матрицы А равна w, если существуют такие целые г их, для которых выполняется неравенство и+Kr <х< Си — 1, так что =0, если j —i <г или j —i >s, и w=x — r +1. Таким обра- зом, все ненулевые элементы расположены на w диагоналях матрицы А. На- пример, для строго нижней треугольной матрицы г = —и + 1, х=?—1, а для трехдиагоналыкЙ! матрицы г = — 1, х = 1. Для любой матрицы А и целого значения 1 можно записать к А = Z А,-, <- I где ширина матрицы Aj не превышает iv. Тогда результат умножения матри- цы на вектору : = Ах может быть получен следующим образом: у := 0 for i — 1 to к do у — у + А,, х с использованием линейной систолической структуры Куша Лейзерсона (Kung—Leiserson) для тела цикла. Здесь окно выбирает х и диагональную ленту матрицы А и движется определенным образом в зависимости от строе- ния матрицы А. Если vv=l, то данный метод называется диагональным умножением матриц [21]. Метод частичной трансляции строк (PRT) [22] осуществля- ется в случае, если А — заполненная матрица, w=n, к = Аг — верхняя тре- угольная часть матрицы А, А2 — строго нижняя треугольная часть матри- цы А. Метод частичной трансляции столбцов (РСТ) [23] определяется ана- логично, но Aj — строго нижняя, а А2 — верхняя треугольные матрицы. Для очень малых значений величины w возможно использование линейно связанного массива с передачей данных от процессора к процессору, кото- рый может увеличить пропускную способность в 2 раза [13]. Матрицы А2- и вектор х должны быть выравнены по краям во избежание вычисления нуле- 191
вых результатов, а время между прогонами может быть сокращено чередо- ванием верхних и нижних треугольных матриц \ (см. [22, рис. 4 и 5]) Метод аддитивного разбиения может быть распространен на произведение матриц к I ав=£ £а;-в 1=1 7 = 1 где ширина ленты как для А,-, так и для Ву- не больше некоторых определен- ных целых чисел. В [13] рассмотрен вариант умножения заполненных мат- риц для к =1 =3 с помощью (иХи)-умножителя с гексагональными связями, где основной задачей было улучшение эффективности использования процес- сора, а также уменьшение ширины ленты. Другой вариант рассмотрен в [22]: путем добавления одного ИЭ к линей- ной систолической структуре и соответственного зацикливания данных с помощью PRT-метода можно реализовать итерации Гаусса -Зейделя или SOR. Аналогично РСТ-метод может быть применен для вычисления произ- ведения Az x с помощью соответствующего зацикливания данных [23]. Рассмотренные методы служат для уменьшения ширины ленты, когда систолическая структура содержит небольшое число процессорных элемен- тов (ПЭ). Скорость вычислений уменьшается с уменьшением числа ПЭ от w до w, возможно, с дополнительными потерями из-за наличия простаиваю- щих ПЭ в одном или двух прогонах. В некоторых случаях, однако, может быть выгоднее увеличивать плотность заполнения ленты матрицы, чем ско- рость. Общим подходом является манипулирование со сжатым представ- лением матрицы, а не с исходной матрицей. Например, при решении некоторых эллиптических дифференциальных уравнений в частных производных разностными методами можно записать матрицу А в следующем виде: А = 1®В + С®1, где матрицы В и С имеют малую ширину ленты (обычно трехдиагональные) и представляют вторые разности; символ ® обозначает кронекерово произ- ведение. Если В и С - трехдиагональные матрицы размера и Хи, то матрица А имеет размер и2 Хи2 с шириной ленты 2и + 1, но является сильно разре- женной и имеет только пять ненулевых диагоналей: с номерами — и, —1, О, 1, и. Приближенное решение дифференциального уравнения может быть представлено либо как и2-вектор, либо как матрица И размером и Хи. Тогда вектор Ап может быть представлен в виде матрицы BU + UCZ. Произведение Ан может быть получено так, как было показано: при наличии одного ПЭ, двух входных линий за время 5и2+О(и), за 5 протонов, или при наличии трех ПЭ, четырех входных линий, за время 4и2 +О(и), за 3 прогона, или при наличии пяти ПЭ и двух—четырех буферов, шести входных линий за время 2и2 +О (и), за 1 прогон. Путем соединения двух систолических структур Кунга—Лейзерсона с |192
линейной систолической структурой для матричного сложения матрицу BU+UC^ можно вычислить с помощью 14и + 7 ПЭ, 4л+ 8 входных линий за время Зп +4. Естественно, матрица может быть разложена на /диагонали, строки или столбцы, если эго необходимо для уменьшения числа ПЭ. Основ- ная идея заключается в том, чтобы путем изменения представления данных можно было перейти от эффективной ширины ленты, равной 5, к любой ши- рине ленты от 1 до In + 1 за счет адаптации данных к имеющемуся устрой- ству. Определенный интерес представляет работа [1] по распространению ’’красно-черного” упорядочения для итеративного решения линейных сис- тем на параллельных компьютерах. 11.3. QR-РАЗЛОЖЕНИЕ Рассмотрим теперь ортогональное приведение матрицы к треугольному виду с помощью вращений Гивенса. Базовой операцией в этом случае явля- ются формирование линейной комбинации двух строк матрицы и замена обеих из них в матрице. Вращение является идеальным для систолического выполнения, так как более чем одна новая операция может быть примене- на к одной и той же паре строк столько раз, сколько данные распростра- няются в правильной последовательности. Если каждый процессорный эле- мент содержит локальную память, способную хранить один столбец матри- цы, то в этом случае целесообразнее использовать триангуляцию Хаусхолде- ра; для ленточных матриц требования к объему памяти не является пре- пятствием [1/]. Систолические структуры, реализующие вращения Гивенса, делятся на три группы: с фиксированным вращением и изменяемыми элементами (мат- рица Q хранится в структуре); изменяемыми вращениями и фиксирован- ными элементами (матрица R хранится в структуре) и с изменяемыми вра- щениями и изменяемыми элементами. Методы декомпозиции для структур Хеллера—Ипсеиа (Heller, Ipsen) третьей группы [11, 12] в дальнейшем бу- дут обсуждены более подробно. Структуры второй группы описаны в рабо- тах [8, 4], причем в этих структурах используется поточная арифметика для повышения производительности процессоров. В гл. 22 даются полный анализ методов декомпозиции на основе трапецеидальных систолических (рХф)-структур (усеченный (д Хф) -треугольник Джентлмена—Кунга) и сле- дующая схема: 1) разбиение А = (Aj А2 .. .), где Aj имеет размер нХр; А* имеет размер «Х(Ф-Р),2<1; 2) приведение Aj к виду (д), где R = Qi Aj - верхняя треугольная матри- ца размера р Хр; 3) зацикливание вращений и получение Of А,-, 2 <1; 4) пропуск первых р строк и столбцов полученной матрицы А и повтор. Этот метод является стандартным и будет в дальнейшем использован. В первой группе методов процессорный элемент осуществляет поворот, при котором для каждой пары (х, у) и управляющего сигнала выходной результат равен р(х2 +J2)1/2, 0) и запоминает значение угла. По получении 193
новой пары (л*, у) вновь осуществляется поворот и результат передается дальше. Существенным фактором является то, что для сохранения целост- ности алгоритма входные данные организованы построчно на каждый порт. Существует два основных способа проектирования. В первом осуществля- ется обнуление элементов матрицы в порядке снизу вверх [7, 3], во вто- ром — сверху вниз [2]. Время вычисления в обоих случаях одинаково и составляет п + 2р — 1 шагов для приведения матрицы размера р Хи к верх- ней трапецеидальной форме при использовании треугольной фХр)-струк- туры, содержащей р (р +1)/2 процессорных элементов. Метод исключения, приведенный в [7], для заполнения матриц требует кроме треугольного массива размера рХр еще половину треугольного массива ПЭ (у/2р ) X (у/2р ) (р (р + 1)/2 процессорных элементов) и сеть полной тасовки. Увеличенный массив ПЭ представляет собой просто поло- вину (2р) X (2р)-треугольника. Пусть А — матрица размера пХт, п<=т, разбитая на блоки следующим образом: А/ А= А2 , где Ау — матрица размера р Хт. В первых 7с = Ги/р “I прогонах через (рХр)- треугольцик матрица А; приводится к верхней трапецеидальной форме, в ре- зультате чего край матрицы приобретает остроконечный вид. В следующих прогонах размер окна увеличивается до 2р строк и производятся вычис- ления: for/ = 2 to к by 1 for / = к to/ by —1 тасовка строк ' д. приведение результата к верхней трапецеидальной форме с использова- нием увеличенного массива за время (т — (j — 2)р) + р + I замена строк в А Так, наконец, матрица А приводится к треугольной форме за время О(к2т + + А'3р). Еслии=т, то это время составит О(и3/р2). Окно размера (2р)Хт движется снизу вверх (управляемое параметром z) внутри большего окна, которое движется сверху вниз (управляемое параметром/ ). Рассмотрим методы разбиения для QR-разложения ленточных матриц с помощью систолической структуры Хеллера—Ипсена [11, 12] , которая сос- тоит из q w ортогонально соединенных процессорных элементов в виде линейных сетей шириной q -w (рис. 11.1 без треугольников). Каждая линей- ная сеть может обнулять одну поддиагональ диагональной w-матрицы. Допус- тим, что матрица А имеет ширину ленты w и содержит р наддиагоналей и q подциагоналей (w=p + q + 1) и что q <р. В [11, 12] предполагается, что структура характеризуется параметрами w = w, q=q, что позволяет привести матрицу А к верхней треугольной матри- 194
Рис. 11.1. Дополненная систолическая матрица Хеллера- Ипсена: це R за один прогон с помощью вращений Гивенса. Порядок обнуления в данном случае — сверху вниз в столбцах, как в устройствах с фиксирован- ным вращением [3, 7]. Крайний левый ПЭ начинает поворот, и остальные ПЭ передают этот поворот дальше. В систолическую структуру на каждом шаге вводится одна побочная диагональ, начиная с верхнего левого угла матрицы. Каждый входной и выходной порты получают или выдают элемен- ты одной и той же диагонали на чередующихся шагах. При w = w, q =q время получения матрицы R из А равно 2 (п +q — 1), ширина ленты матрицы R всег- да равна ширине ленты матрицы А. Если w при любых q и q, то входные данные можно дополнить iv — w нулевыми наддиагоналями и пропустить матрицу через систолическую структуру Гq\q ~1 раз, очищая структуру перед каждым прогоном данных. На каждом прогоне обнуляется q поддиагоналей и вращения распростра- няются поперек строк без зацикливания; в результате получаются q над- диагоналей. Время разложения равно Vqfq 1(2л+2^" —2 + f0)> где to — вре- мя очистки систолической структуры между прогонами. Дополнительные наддиагонали могут быть исключены из окончательного результата, так как они принимают нулевые значения. Может возникнуть ситуация, когда на последнем прогоне будут обнулены все поддиагональные элементы до того, как матрица выйдет из структуры (например, если q не делится на q нацело). Тогда главная диагональ подается на крайний левый процессор некоторого 195
слоя, и, поскольку начальные значения линий данных — нулевые, этот слу- чай трактуется так, как если бы матрица была дополнена первой нулевой строкой и было бы справедливо равенство q = 1. Вращения в данном слу- чае начинаются простой заменой нулевой строки на следующие строки и матрица проходит через структуру без изменения. Рассмотрим теперь случаи, когда матрица слишком широка для систоли- ческой структуры (w > w). Как и ранее, обработка матрицы производится за несколько проходов подматриц. Конечно, потребуется некоторая аппа- ратная модификация, позволяющая зациклить обработку элементов, ко- торые не прошли через всю строку. Так как подматрицы могут быть запол- ненными (ширина ленты размерности), а систолическая структура спроек- тирована для разреженных матриц (ширина полосы размерности), мож- но ожидать некоторого ухудшения эффективности. Будем компенсировать его соответствующим усложнением аппаратных средств. Рассмотрим две схемы. Первая аналогична схеме из примера, приведен- ного в гл. 22: обнуление всех элементов, лежащих ниже главной диагонали группами из к столбцов, при использовании Г (и — 1)//сП проходов; /с> 1 оп- ределяется величинами w и q. В каждом прогоне необходимо принимать во внимание только большее окно, состоящее из г ~^q+k строк и п столбцов, где г должно быть определено. Большее окно содержит все элементы, кото- рые должны быть обнулены, и движется вниз по матрице, начиная со строк 1, к+\, 1к+ 1 и т.д. в последующих прогонах; в последнем прогоне несу- ществующие строки полагаем нулевыми. Большее (основное) окно будет всегда содержать некоторое число ведущих и нулевых столбцов, послед- ними можно пренебречь; максимальное число ненулевых столбцов может достигать г +р. Так как процессорная структура способна исключать за один прогон только q поддиагоналей, то при q~>q для обработки г строк будет необ- ходимо Гqlq~\ прогонов снизу вверх. С этой целью используем среднее окно, состоящее из rr =q+k строк и п столбцов и продвигающееся вверх внутри большого окна. При этом нужно определить разбиение строк на передний блок, состоящий из s> столбцов, и на задний блок, состоящий из s2 столбцов. Наибольшее число ненулевых задних блоков равно т=Г (г +р- —sj)/s2n. Выбираем k<=s1 с целью, чтобы все необходимые повороты могли быть определены из первого блока. Для этого требуется, чтобы ПЭ каждо- го слоя структуры, который обычно начинал вращения, был включен для обработки принимаемой информации; значения самих углов поворота мо- гут храниться вне структуры в сдвиговых регистрах — один регистр на один слой ПЭ в структуре. Блок размера г t Xs i, полученный из последних г j строк переднего бло- ка размера г Xs15 имеет не больше q ненулевых поддиагоналей, и, таким образом, они обнуляются за один прогон через систолическую структуру, полученные повороты применяются к т задним блокам размера г lXs2, среднее окно перемещается вверх на q строк и весь этот процесс повторяет- ся. Поэтому меньшие окна состоят из si строк и перемещаются вправо по 196
Рис. 11.2. Расположение окна и исключаемых элементов: 1 — начальное и конечное расположение первого среднего окна; 2 — начальное и конеч- ное расположение второго среднего окна; 3 — другой способ начального расположения второго среднего окна. Элементы, исключенные на первом прогоне удалены (левый нижний угол) среднему окну. Размещение о^сон и последовательность исключений иллю- стрируются на рис. 11.2. Эффективность использования процессора может быть улучшена, если дополнить систолическую (</Хй/) -структуру двумя треугольниками из 2б/ 2 элементов задержек, как показано на рис. 11.1 nnH<?=w = 3. Это позволяет вводить дополнительные данные в верхние уровни структуры согласно оп- ределенной закономерности. Пара элементов задержки эквивалентна обык- новенному ПЭ с фиксированным тождественным вращением. Исходя из рас- смотрения числа ненулевых диагоналей и входных портов (одна диагональ на порт) требуем, чтобы: для переднего блока размера выполнялось условие q+sx <iW + q, для заднего блока размера г j Xs2 — условие г t +s2 — 1 +q. Эти условия определяют все основные параметры и ограничения. Грубая оценка времени разложения дает следующую формулу: (и/A) (q/q) (передний блок + т- задний 6jiok + w Z0)- Отсюда следует, что значение т будет минимально, если минимизируется г и максимизируется s{. Итак, выбираем соотношения 197
Нумерация ячеек: (l,w+q)...(t,w+f) (1,w) ... (1,1) (1,0) (qpD+l) (q,w) ... (q,l) (q,O)--qq,~q+l) Фиксированное вращение для второго прогона: Рис. 11.3. Пример фиксирован- ного вращения н поступления данных для дополненной процес- сорной матрицы: элемент (z,/), 1 +^1 поступает в ячейку (q, w — q + + i — j ) в момент времени i +j _ — 1, покидает ячейку (1, w + Z—jy в момент времени 2 (q — 1) +/+/ . элемент (i,s+/), 1 1< </ <и>—1, поступает в ячейку (z?, i —q) в момент времени w +г +j — 1, покидает ячейку (1, (w+1,w) ... (2,1) (w+q,w)... (q + 1,1) S1 = И’, s2 = w + q-rt + l= w — Л+1, г = q + k, m = |(r + p - Sj)/s2] = | w/s2] - 1. При выборе таких соотношений время обработки переднего блока соста- вит w + 3q + k — 2, заднего блока w + 3q — 1. Остается выбрать значение к меж- ду значениями 1 и w с целью минимизации времени выполнения; очевидно, оно будет минимальным при к ^w/2. Однако из рис. 11.2 следует, что q w поворотов могут начинаться с перед- них блоков и зацикливаться перпендикулярно q+k строкам. Задержку между преобразованиями задних блоков можно исключить, взяв k=w и использовав метод фиксированного вращения вместо первоначального из- меняемого вращения. Это показано на рис. 11.3. Поворот (i,j) начинается с обнуления элемента (?’,/) в переднем блоке, где индексы относятся к сред- нему окну. Далее в отмеченных на рис. 11.3 процессорных элементах фик- сируем поворот в ПЭ с координатами (i,/), l<z Элементы задержки не требуют изменения. Загрузка значений углов поворота для второго прогона осуществляет- ся довольно легко при введении дополнительного управляющего сигнала. В первом прогоне поворот начинается слева и перемещается вправо; когда 198
он достигает нужного положения, создается копия; это положение может быть идентифицировано управляющим сигналом, который проходил бы на- лево и вверх и начинался бы в правом нижнем ПЭ, обозначенном (д, 1), когда процесс поворота (д + 1,1) его достигнет. В конце первого прохо- да все элементы поворота оказываются на месте, и можно начать второй прогон без задержки (рис. 11.4). Время для вычисления среднего окна, таким образом, составляет и> + 3(q + w — 1), а общее время Г(и - l)/w]rq/q](w + 3(q + w - 1) + t0). Это, по существу, оптимальная процедура. Преимущество структуры с изменяемыми—фиксированными вращениями по сравнению со структурой с фиксированными вращениями состоит в том, что для генерации вращений в первой необходимо иметь только q процес- сорных элементов вместо q -w. Наличие управляющего сигнала не вносит дополнительной сложности в проектирование ПЭ. Также нет необходимос- ти хранения значений углов поворота вне структуры, по крайней мере для рассматриваемого метода разбиения. Недостатком является необходимость двух способов ввода данных: сначала диагоналей, а затем строк. Это можно достаточно легко осуществить путем передачи строк данных в порт через преобразующий фильтр, размер которого пропорционален величине q w. Имеется еще одна последовательность исключений, по сути близкая к рассмотренной в [11,12]: исключение q самых дальних от центра поддиа- гоналей и повторение операции с использованием Гq[q~\ прогонов. Теперь основное окно состоит из строк с номерами (<?+ 1 — q) .. .п, где q — число оставшихся ненулевых поддиагоналей; верхняя строка передвигается вверх на q строк. Среднее окно состоит из гх строк, как и ранее, но продвигается вниз на к строк внутри основного окна, начиная с вершины (см. рис. 11.2). Подсчетом числа обнуленных элементов можно показать, что общее время будет таким же, как и в предыдущем случае. Использу- емое у а: Время Вращение 21 11 32 22 03 33 6 21 в 32 10 03 22 12 33 23 30 24 35 25 7 21 S 32 10 32 11 32 23 13 24 10 25 15 26 16 27 17 8 21 3 21 10 21 11 21 12 21 f ь Рис. 11.4. Временная диаграм- 31 21 02 32 53 УЗ 5 31 7 42 У 53 32 22 03 33 44 ЗУ 45 35 5 31 8 42 S 42 10 42 33 23 30 24 35 25 36 26 37 27 7 31 8 31 9 31 10 31 11 31 ма для рис. 11.3 с <7=и>=3. Вращения и элементы цы показаны только матри- своими 47 31 4 01 02 32 5 47 03 44 45 33 6 01 индексами. Не указаны эле- 52 42 6 52 53 03 7 52 35 8 47 менты, для которых х — у~ 50 44 8 52 06 36 9 47 =0 и вращение =1. 63 53 8 63 55 45 9 52 47 37 10 47 199
11.4. РАЗБИЕНИЯ Во всех рассмотренных методах разбиения матриц на блоки производи- лась попытка использовать матрицы с такими же размерами по горизонта- ли, как и в исходной матрице. Так как часто бывает легче разработать ал- горитмы для обработки малых подматриц, рассмотрим два случая, где ком- бинируются два конкурирующих метода. Пусть С = АВ Ai А2 Аз [Bi В2 где А, В — матрицы размеров иХт; г У.т соответственно. Эта формула со- держит операцию умножения блоков, которая выполняется с помощью сис- толической структуры с накапливающей ячейкой для операции скалярного произведения. Предположим, что процессорная структура содержит и Хи? ор- тогонально связанных ПЭ, вычисляет матричное произведение (иХЛ)Х(АгХ Хдг) для произвольного к и хранит результат. Это соответствует встречно- поточному процессору, рассмотренному в работе [24]. Матрицы Az- (раз- мера йХг) и В;- (размера г X л?) дополняются нулевыми строками и столб- цами, если это необходимо. В [18] описан метод, основанный на использо- вании управляющих сигналов и переплетении данных для считывания из бло- ков С во время вычислений последующих результатов А;-Ву. При п-\, как показано в [20], разгрузка производится сразу же и не требуется специаль- ных приемов. Основной недостаток алгоритма блочного умножения заключается в том, что Аг- вводится построчно, в то время как В.- — по столбцам, что требует либо двойственного механизма памяти, либо большой, но простой систоли- ческой структуры для оперативного транспонирования. Исчерпывающий анализ других методов для векторных конвейерных машин дан в работе [5]; он может быть распространен и на систолические структуры. LU-разложение блочных матриц часто рассматривается как технический прием для всех параллельных процессоров (например, [9,14—16]). Выбор главных элементов может быть осуществлен путем введения либо допол- нительной аппаратуры [14], либо локальной памяти [16] при увеличении затрат времени на вычисления. Недостаток метода заключается в том, что поиск главного элемента только внутри диагонального блока недостаточен для численной устойчивости при отсутствии дополнительных сведений о матрице. Движение данных в систолической структуре можно улучшить, объеди- нив разбиение Краута с ортогональной редукцией блочных строк и некото- рыми другими базовыми операциями. Предположим, что имеются аппара- турные средства фиксированного вращения для приведения матрицы разме- ра рХи к верхней трапецеидальной форме. Разобьем матрицу А размера 200
Л%п на рХр блоков и положим т=Гп/р “1. Аналогично разобьем множи- тели L и U. Блочная триангуляция тогда запишется следующим образом: for i - 1 to т — 1 do привести (А// • - Аги) (AjZ- • Ajn) - (L,-| . • - Lj- j- j) Ub. . . . ubI к верхней трапецеидальной форме, получив (Ц;- . . . Ц-„) и значения углов поворота, представляющие ортогональную матрицу L;-(- (или саму Ь|г). Вы- Последний шаг может быть выполнен транспонированием блоков и реше- нием нижних треугольных систем. По практическим соображениям матрицу LZi- лучше не вычислять непосредственно на последнем шаге, поскольку она наверняка не будет ортогональной из-за погрешностей округления. Обычный алгоритм Краута дает LU-разложение матрицы Ац, а в остальном совпадает с описанным. 11.5. РАЗРЕЖЕННЫЕ МАТРИЦЫ Интересной открытой проблемой является обработка разреженных мат- риц на систолических структурах. В [6] отмечено, что, поскольку разбие- ние разреженной матрицы А дает заполненную матрицу, может оказаться полезным изменение представления в течение разбиения. Таким образом, исходя из того, что А хранится как разреженная матрица (индекс, значение и компоненты), заканчиваем получением Ln 0~1 Гйп U12 L = , U = L21 l22 о и22 где Ln, L2,, Un, U12 должны храниться как разреженные матрицы, а 1_.22, U22 — как заполненные. Аналогичная идея может быть использована в систолических структурах, где действительно может быть необходимо избежать неструктурных спосо- бов обращения к памяти. Например, аддитивные разбиения 201
A = А +А =А +А "заполн разреж структур неструктур могут быть использованы для матрично-векторных произведений или в ме- тоде сопряженных градиентов. Граница между заполненными и разрежен- ными матрицами определяется экспериментально, как и проектирование систолических процессоров для неструктурированных разреженных матриц. СПИСОК ЛИТЕРАТУРЫ [1] L. М. Adams, “Iterative Algorithms for Large Sparse Linear Systems on Parallel Com- puters,” Ph.D. thesis. Dept, of Appl. Math, and Comp. Sci., University of Virginia, Nov. 1982. [2] H. M. Ahmed, J. M. Delosme, and M. Morf, “Highly Concurrent Computing Structures for Matrix Arithmetic and Signal Processing,” Computer, Jan. 1982, pp. 65-82. [3] A. Bojanczyk, R. P. Brent, and H. T. Kung, “Numerically Stable Solution of Dense Systems of Linear Equations Using Mesh-Connected Processors,” Comp. Sci. Dept., Carnegie-Mellon University, May 1981. To appear in SIAM J. Sci. Stat. Comput. [4] L. Ciminiera, A. Serra, and A. Valenzano, “Fast and Accurate Matrix Triangularization Using an Iterative Structure,” Proc. 5th Symp. Comput. Arith., May 1981, pp. 215-221. [5] J. J. Dongarra, F. G. Gustavson, and A. Karp, “Implementing Linear Algebra Algo- rithms for Dense Matrices on a Vector Pipeline Machine,” Math, and Comp. Sci. Div., Argonne Nat. Lab., Sept. 1982. [6] I. S. Duff, “Full Matrix Techniques in Sparse Gaussian Elimination,” in Lecture Notes in Mathematics, Vol. 912: Numerical Analysis, Springer-Verlag, New York, 1981, pp. 71-84. [7] D. Gannon, “A Note on Pipelining a Mesh-Connected Multiprocessor for Finite Ele- ment Problems by Nested Dissection,” Proc. Int. Conf. Parallel Process., 1980, pp. 197-204. [8] W. M. Gentleman and. H. T. Kung, “Matrix Triangularization by Systolic Arrays,” SPJE Proc., Vol. 298: Real-Time Signal Processing IV, 1981, pp. 19-26. [9] D. E. Heller, “A Survey of Parallel Algorithms in Numerical Linear Algebra,” SIAM Rev., 20:740-777 (1978). [10] D. E. Heller, “Mathematical Hardware—Design Issues and Responsibilities,” Purdue Workshop on Algorithmically-Specialized Computer Organizations, Sept. 1982. [11] D. E. Heller and I. C. F. Ipsen, “Systolic Networks for Orthogonal Decomposition, with Applications,” Comp. Sci. Dept., Pennsylvania State University, Aug. 1981. To appear in SIAM J. Sci. Stat. Comput. [12] D. E. Heller and I. C. F. Ipsen, “Systolic Networks for Orthogonal Equivalence Trans- formations and Their Applications,” Proc. MIT Conf. Adv. Res. VLSI, Jan. 1982, pp. 113-122. [13] К. H. Huang and J. A. Abraham, “Efficient Parallel Algorithms for Processor Arrays,” Proc. Int. Conf. Parallel Process., 1982, pp. 271-279. [14] K. Hwang and Y. H. Cheng, “VLSI Computing Structures for Solving Large-Scale Linear Systems of Equations,” Proc. Int. Conf. Parallel Process., 1980, pp. 217-227. [15] K. Hwang and Y. H. Cheng, “Partitioned Algorithms and VLSI Structures for Large- Scale Matrix Computations,” Proc. 5th Symp. Comput. Arith., May 1981, pp. 222-232. [16] L. Johnsson, “Computational Arrays for Band Matrix Equations,” Comp. Sci. Dept., California Institute of Technology, May 1981. 202
[17] L. Johnsson, “A Computational Array for the QR Method,” Proc. MIT Conf. Adv. Res. VLSI, Jan. 1982, pp. 123-129. [18] E. Katona, ‘‘Cellular Algorithms for Binary Matrix Operations,” Conpar 81, Lecture Notes in Computer Science, Vol. Ill, Springer-Verlag, New York, 1981, pp. 203-216. [19] H. T. Kung and С. E. Leiserson, “Systolic Arrays (for VLSI),” in I. S. Duff and G. W. Stewart, eds., Sparse Matrix Proceedings 1978, SIAM, Philadelphia, 1979, pp. 256-282; and in C. A. Mead and L. A. Conway, Introduction to VLSI Systems, Addison-Wesley, Reading, Mass., 1980, Sec. 8.3. [20] Ц. T. Kung and S. Q. Yu, “Integrating High-Performance Special Purpose Devices into a System,” SPIE Proc. Vol. 341: Real-Time Signal Processing V, 1982, pp. 17-22. [21] N. K. Madsen, G. H. Rodrigue, and J. I. Karush, “Matrix Multiplication by Diagonals on Vector/Parallel Processors,” Inf. Proc. Lett., 5:41-45 (1976). [22] R. W. Priester, H. J. Whitehouse, K. Bromley, and J. B. Clary, “Signal Processing with Systolic Arrays,” Proc. Int. Conf. Parallel Process., 1981, pp. 207-215. [23] R. W. Priester, J. H. Whitehouse, K. Bromley, and J. B. Clary, “Problem Adaptation to Systolic Arrays," SPIE Proc., Vol. 298: Real-Time Signal Processing IV, 1981. [24] J. M. Speiser and H. J. Whitehouse, “Parallel Processing Algorithms and Architectures for Real-Time Signal Processing,” SPIE Proc., Vol. 298: Real-Time Signal Processing IV, 1981, pp. 2-9. 12 СПЕЦИФИКАЦИЯ ПАРАЛЛЕЛЬНЫХ АЛГОРИТМОВ В ТЕРМИНАХ АГШЛИКАТИВНОГО ПРОСТРАНСТВА ДАННЫХ А. Кремере1, Т. Хиббард2 12.1. ВВЕДЕНИЕ Высокая степень интеграции заставляет программиста использовать па- раллелизм, скрыто присутствующий в вычислительных задачах. Легкость, с которой большое число обрабатывающих и запоминающих элементов мо- жет быть объединено в систему, стимулирует поиск таких алгоритмических решений, при которых большое количество информации обрабатывается параллельно. Повышения эффективности можно ожидать тогда, когда алго- ритм подготовлен для сбалансированного распределения вычислений с соб- людением требования локальности (т. е. с помощью коротких линий связи). Поэтому распределение нагрузки и информационного потока является ос- новой разработки алгоритмов для СБИС [8, 13]. В последние годы выяснилось, что многие алгоритмы в различных облас- тях применения вполне подходят для СБИС-реализации. Многие из этих алгоритмов имеют последовательные аналоги, которые, хотя и были из- * Дортмундский университет, Дортмунд, ФРГ. 2 Лаборатория реактивного движения, Пасадена, Калифорния. 203
вестны десятки лет, были отвергнуты из-за неэффективности. Пока еще отсутствует общая методология, обеспечивающая проверку способа про- граммирования той или иной вычислительной задачи на СБИС. Из-за высокой стоимости изготовления надежных СБИС и ввиду возрас- тающей сложности требований к решению практических задач важно поза- ботиться о тщательном описании алгоритма. Не касаясь вопроса о полез- ности диаграмм, комментированных примеров и намеков на известные последовательные версии, нужно заметить, что определение СБИС-алгоритма, несомненно, требует точной записи, позволяющей отразить естественный па- раллелизм алгоритма. Определение алгоритма служит отправным моментом для цикла выполнения СБИС, который начинается с разработки кристалла и заканчивается его тестированием. Кроме того, определение служит основой для внешнего функционального описания устройства. Важным преимущест- вом точной и адекватной записи параллельного алгоритма является то, что она (реализованная в виде последовательности команд) может быть испол- нена и тем самым предоставляет возможность тестирования и диагностики на высоком уровне. Основная цель этой главы состоит в том, чтобы предложить алгоритми- ческую запись для решения на СБИС, которая во многих случаях может быть более естественной, чем традиционная запись программ. Эта запись основана на понятии пространства данных, введенном авторами несколько лет тому Назад [2, 3] в качестве формальной модели абстрактной машины. Определение пространства данных по природе очень близко к определениям модулей Парнаса [14] и процессов Хорнинга (Horning) и Ранделла (Randell) [10]. Подход, основанный на пространстве данных, включает в себя модели- рование, ориентированное на управление и на данные, и поэтому может объ- единить преимущества обоих подходов. В основном пространство данных есть система с изменяемыми состояниями, которые задаются явно на точ- ной информационной основе. Каждый переход из состояния в состояние яв- ляется функцией всего состояния. Поэтому модель допускает возможность радикального изменения своего состояния за один такт. Последнее является одним из центральных свойств аппликативных систем с изменяемым состоя- нием, предложенных Бэкусом [1]. Введенные вначале в виде операционной семантической модели програм- мирования пространства данных исследовались с 1979 г. в целях описания программного обеспечения. Был определен большой класс пространства данных с конечной спецификацией и разработан вычислимый синтаксис. Эти пространства данных называются синтаксическими или контекстно сво- бодными. Две версии такого синтаксиса реализованы в языках ПЛ/I и Пас- каль соответственно и успешно использованы как средства описания про- грамм в различных областях применения [7]. Предлагаемая в данной главе запись является аппликативной в том смысле, что во время перехода из состояния в состояние отсутствуют побочные эффекты, влияющие на состоя- ние пространства данных (разд. 12.2). Для целей, преследуемых в этой главе, синтаксис расширен некоторыми новыми понятиями. Во-первых, это понятие подпространства, вводимое для 204
того, чтобы включить вычислительные подструктуры, и, во-вторых, синхро- низируемые типы — основные механизмы связи, напоминающие механизмы, введенные в [9]. Следует обратить внимание, что здесь не предлагается новый язык про- граммирования: наша запись алгоритмов не предназначена для непосредст- венного генерирования кодов и для использования в системе автоматической верификации. Для сохранения простоты записи и проблемной ориентирован- ности мы должны ’’разделить интересы”, однако совершенно ясно, что наши предложения можно развить и в другом направлении (см. [15]). В разд. 12.3 в пространство данных преобразуются два типичных систоли- ческих матричных алгоритма: свертки и матричного умножения. В обоих слу- чаях синхронизация является глобальной. В примере со сверткой учтены все детали для конвейерного вывода результата и запуска новой задачи. Во вто- ром примере зти детали опущены, так как они просты и могут быть введе- ны, как и в первом примере. Полная спецификация алгоритма умножения матриц приведена в приложении к этой главе. Раздел 12.4 посвящен локаль- ной синхронизации и некоторым дополнительным конструкциям для ее осуществления. Наконец, в пространство данных преобразуется структура ’’пузырьковой сортировки” и еще раз демонстрируется матричное умно- жение. 12.2. ПРОСТРАНСТВО ДАННЫХ И ЗАПИСЬ АЛГОРИТМОВ Прежде чем представить запись алгоритмов, рассмотрим основные аспек- ты вычислительных моделей, на которых зта запись основана. 12.2.1. Пространство данных Как упоминалось в разд. 12.1, пространство данных (X, $-,р) составля- ется из: 1) переходной системы (X, р), где X обозначает множество состояний и р — частичная функция из X в Х\ 2) информационной структуры У, которая представляет собой множество всех функций, определенных на множестве X. Функции, входящие в множество У, могут быть использованы для получе- ния информации по данному состоянию; однако изменение состояния произ- водится только с помощью функции р. В общем случае предполагается, что У дает полное описание каждого данного состояния; тем не менее можно выделить подмножество множества У, дающее безызбыточное описание состояний. В [14] исследованы свойства безызбыточных информационных структур. Наряду с формальными отношениями между У иХ модель прост- ранства данных включает в себя различные аспекты отношений между У и р. Точнее зто сделано, например, в [5, 6]. В данной главе оставим математическое описание пространства данных в стороне и попытаемся сосредоточиться на описании (спецификации) парал- лельных алгоритмов. Предлагаем описывать параллельный алгоритм фор- 205
мально в терминах пространства данных. Основными преимуществами это- го подхода являются: 1) чувствительность к предыстории вычислительного процесса; 2) функциональный стиль программирования; 3) простой, но мощный механизм связи; 4) выполнимость; 5) диагностика переходов; 6) проблемная ориентация. Набор примеров в последующих разделах иллюстрирует зти свойства. Он включает в себя как простые, так и довольно сложные алгоритмы. Читателю предлагается сравнить полученные описания с их собственными излюблен- ными точными описаниями в плане перечисленных свойств. 12.2.2. Синтаксис пространства данных Для ограниченного класса пространств данных, который, однако, будет включать в себя пространства данных, встречающиеся на практике, можно дать вычислимый синтаксис. С помощью этого синтаксиса пространство данных может быть определено точно и полно. Синтаксис обладает механиз- мами для определения вычислительных структур на проблемно-ориенти- рованных уровнях абстракции. Основная идея заключается в аппликатив- ных спецификациях переходов: каждый шаг каждого процесса выполняет- ся путем вычислений выражений без побочного эффекта. Далее приводит- ся краткое и неформальное введение в элементы синтаксиса. Пространство данных определяется следующим: 1) описаниями типа данных, некоторые из которых соответствуют име- ни ячейки, хранящей соответствующий тип данных; 2) набором функций, одна из которых позволяет определить переходы из состояния в состояние для пространства данных. Типы данных. Примитивными типами данных являются универсальные типы, такие как Boolean, integer, real (sharacter) string и assgts (мно- жество пар имя — значение). Некоторые из этих типов, которые являются встроенными, такие как Boolean, integer, real, не требуют объяснения. Тип string в примерах данной работы не используется, а тип assgts будет объяс- нен позднее при рассмотрении понятий ячеек и выражений. Определяемые типы получаются путем агрегирования (конкатенации), обобщения (объединения непересекающихся типов) и рекурсии. Все три механизма могут быть использованы в одном и том же определении. Та- ким образом, в целом определяемые типы составляют однозначную, поме- ченную, контекстно свободную грамматику со столькими же начальными символами, сколько имеется типов данных. Продукции грамматики име- ют вид TYPE T-+csx Тх s2 Т2 ...sn Тп (п > 0) где с — имя конструктора продукции типа данных Г; sz- —имена селекто- ров типов 7) в правой части. Для сокращения записи имена типов иногда иесут двойную нагрузку: если имя конструктора с не указывается, то мож- 206
но использовать имя Т для типа в левой части конструкции, а если не ука- зывается имя селектора st, то можно использовать соответствующий тип 7} для выбора z-ro компонента правой части выражения. Пример. Множество продукции для типа ’’двоичное дерево целых чисел” имеет вид TYPE tree—» Д root integer left tree right tree | □ {empty tree} 11 Как обычно, символ | отделяет продукции слева, а символ II завершает список аль- тернатив. Ячейки. Память описывается списком определений вида CELL Т\ HOLD 'Г2 где Т} , Т2 — типы данных: Тх — тип имени ячейки, Т2 — тип содержимого ячейки. Например, выражение ’’CELL дерево HOLD целое” означает, что зна- чение типа ’’дерево” используется для обращения к значениям типа ’’целое”. В случае определимых типов для краткости допускается замена или Тi, или Т2, или обоих типов в представленной схеме объявлений ячейки на их опре- деления. Как уже упоминалось, имеется встроенный тип данных assgts, значениями которого являются множества пар (имя ячейки, содержимое), и каждое множество входит в определение функции (т.е. составные неод- нократные появления имен ячеек исключаются) . Функции. В дополнение к встроенным функциям, принадлежащим к при- митивным типам (например, арифметическим) и упомянутым конструкто- рам и селекторам, имеются определяемые функции: FUNCTIONF(ty Ti t2T2 ...tn Tn) T = E Типы аргументов Tj задают имена аргументов tj, которые могут быть использованы в определяющем выражении £; Т есть тип результата. Оп- ределение функции может быть (прямо или косвенно) рекурсивным. Сос- тояние является неявным аргументом каждой определяемой функции. Выражения. Каждое значение примитивного типа, а также каждое имя аргумента есть выражение. В дальнейшем для определения выражений ис- пользуются следующие правила; 1. Аппликация FEX Е2 . . .Еп — обращение к функции F, в качестве аргументов которой используются выражения Ех, Е2, . . . , Еп. Значения аргументов и функции должны иметь типы, соответствующие определению функции. 2. Логическое ветвление IF Е Ех Е2 Значение выражения Е должно быть булевым; значения Ех и Е2 должны иметь одинаковый тип. 207
3. Структурное ветвление (^содержит (Ц))\ Рис. 12.1 / Значениеу / F z '(типа assgts) TESTER Л с2 Е2... спЕп Если выражение Е разлагается с помощью продукции для конструктора q, то оно принимает значение соответствующего вы- ражения £). 4. Выборка из памяти REFE Выражение Е должно давать значение типа имени ячейки. Содержимое ука- занной ячейки представляет собой значение выражения REF. 5. Хранение в памяти ФЕ, ...E„<J> Каждое выражение Ef записывается в виде LET Е = Е’ где Е — имя ячейки, а Е' — значение содержимого соответствующего типа (значение Е; имеет тип assgts), или в виде любого выражения, принимающе- го значение типа assgts. Значение всего выражения, ограниченного символа- ми Q (или каким-либо другим разделителем), является объединением зна- чений Е{ (т.е. типа assgts). Пример 0LETx= REF у F z <р Значением этого выражения является (х, равное содержимому у} и { значение F z } , которое может быть представлено двоичным деревом (рис. 12.1). В примерах выражений хранения в памяти также будем использовать конструкцию DO FOR i =m TO n BY d E(E) которая для m, d^n эквивалентна E(m), E(m+d) , . . . , E(mt (Ln/d_]~ ~l)d). Пустое выражение NIL удобно, например, использовать в записи IF В Е NIL Функция OMEGA. Процессор (или функция перехода состояний) име- ет стандартное имя OMEGA и является функцией с неявными аргументами (состояние является неявным аргументом каждой функции), определяе- мой выражением Е. Для каждого перехода Е7 принимает значение типа assgts. Тогда переход состоит в аппликации множества пар (имя ячейки, содержи- мое ячейки) к определенным ячейкам памяти. Только после того, как эта аппликация полностью завершена, выражение Е может вычисляться снова. Процесс перехода из состояния в состояние прекращается тогда, когда или список вычисляемых определений пуст (нет нового вычисленного состоя- 208
Рис. 12.2 ния), или выражение Е становится неопределенным (следующее состояние не определено). Функция LOAD. С помощью этой специальной функции вычисляется список пар (имя ячейки, содержимое) без побочных эффектов. Аппли- кация этой функции устанавливает пространство данных в начальное сос- тояние. Замечание. Для облегчения чтения в следующих разделах будут произ- вольно использоваться некоторые разделители. Например, Е(х) вместо Ex, IF Е THEN Et ELSE E2 для IF E Et E2. Выражение IF В E NIL мо- жет быть записано как IF В THEN Е. Часто для разделения выражений бу- дет использоваться абзацное выделение, в частности в операции TEST и в операциях с памятью, где ограничители, хотя технически и необходимы для корректного разделения, просто отвлекают внимание. 12.3. ГЛОБАЛЬНАЯ СИНХРОНИЗАЦИЯ Для иллюстрации спецификации систолических алгоритмов в терминах пространства данных выбрано два наиболее хорошо известных примера: свертка в линейной систолической структуре [11] и матричное умножение в волновой матрице [12] с использованием глобальной синхронизации. 12.3.1. Свертка Пусть даны две последовательности wt,. .., wk и xt ,. .. ,хк и пусть и > к. Необхо- димо вычислить У г =w1x|- + wtxf + 1 +... + wkxi+ k, где i—1, . . . , n — fc+l. В работе [11] приведена диаграмма систолического процесса в виде, представленном на рис. 12.2. Предполагается, что п -к~2, и поэтому вычисля- ются три значения у/. На рис. 12.2 показано состояние после второго цикла работы. Вычисление каждого значения^- происходит на элементарном процессоре. Очень важно, чтобы входные значения от обоих последовательностей поступали только на каждом втором такте. Таким образом, в цикле, который должен начаться согласно схеме на рис. 12.1, накопление будет происходить только в ячейках для у, и у3. Конечно, пользователь такого процессора не должен вставлять пробелы во вход- ные последовательности; это автоматически будет делать процессорная матрица. Не- разумно также заставлять пользователя упорядочивать последовательность х в удоб- ное цля ввода положение. Ему необходимо только организовать подачу коэффициентов w на правый порт и значений последовательности х - на левый. Более того, нужно иметь возможность подавать исходные данные для новой задачи на основные порты, не произ- водя специальную перестройку процессора после предыдущей. В алгоритме, о-котором идет речь, предусмотрена организадая вывода данных и подготовка к вычислению следующей свертки. С этой целью значения Wj и Xf сопро- вождаются флагами, помечающими конец каждой последовательности. Если встреча- ется конец последовательности w. то процессор начинает принимать через линии у вы- 209
ходные значения от левого от себя процессора. В то же время поступает последователь- ность х, и выходная фаза завершается, когда поступит последний элемент х. При этом процессор 1 сохраняет новую последовательность коэффициентов rv до тех пор, пока не поступит последний элемент х, а затем обнуляет свои значения у, подготавливаясь к новой задаче. Заметим, что алгоритм будет выполняться до тех пор, пока длина последователь- ности х не превышает длины последовательности ж на величину, равную числу процес- соров. Глобальная синхронизация неявно задается условием, согласно которому каждое выполнение оператора OMEGA происходит в течение одного цикла каждого процессора. Процессоры не определены как явные синтаксические элементы, но присутствуют неявно в виде совокупности операций, выполняемых над элементами Xj, У/ для каж- дого конкретного значения индекса i. Синтаксическая конструкция для индивидуаль- ных процессоров вводится в следующем разделе, посвященном локальной синхрони- зации. Дополнительно подчеркнем, что операторы LET не выполняются до тех пор, пока не кончится выполнение оператора OMEGA, и что они составляют, скорее, множество, а не последовательность операторов присваивания. Если два оператора LET будут сгенериро- ваны для одной и той же цели, то результат их выполнения будет неопределенным (во время выполнения будет сделан произвольный выбор) . CONVOLUTION TYPE value & flag — val REAL flag BOOLEAN || CELLS w INTEGER HOLD value & flag CELLS x INTEGER HOLD value & flag "начальная установка флага во всех процессорах" " начальный сброс флага во всех процессорах" CELLS у INTEGER HOLD REAL CELLS state INTEGER HOLD accumulate |output|wait "начальное ожидание, кроме процессора n, начальный вывод" TYPE in_out_sequence—» empty | first value & flag rest in_out_sequence 11 CELLS xjn |w_in|y_out HOLD in out_sequence CELLS cycle HOLD even|odd "нечетные в исходном состоянии" Заметим, что в примере коэффициент w в определенной выше ячейке служит одно- временно конструктором, селектором и именем типа данных. Это определение менее громоздко, чем эквивалентное ему: TYPE W-*WW INTEGER вместе с CELLS W HOLD значение & флаг FUNCTION new_y_1 ( ) assgts = TEST REF state 1 accumulate LET у 1 = REF у 1 + val REF x 1 * val REF w 1 IF flag REF w 1 THEN IF flag REFx 1 THEN LET state 1 = wait 210
ELSE LET state 1 = output output LET у 1 = REF у 2 wait NIL FUNCTION pass.data.1 ( ) assgts = LET x 1 = REF x 2 TEST REF state 1 accumulate LET w 1 = first REF wjn LET w.in = rest REF wjn wait IF flag REF x 1 THEN LET w 1 = first REF wjn LET w.in = rest REF wjn LET у 1 =0 LET state = accumulate output IF flag REFx 1 THEN LET y_out = in_out„sequence (REF у 1, TRUE) REF у .out TEST REF wjn empty LET state 1 = wait in_out_sequence LET w 1 = first REF wjn LET w in = rest REF w in LET state 1 = accumulate LET у 1 =0 ELSE LET y.out = inout sequence (REF у 1, FALSE) REF y.out FUNCTION new_y(i INTEGER ”1 < i < n") assgts = TEST REF state i accumulate LET у i = REF у i + val REF w i • val REF x i IF flag REF wi THEN IF flag REFx i THEN LET state i = wait ELSE LET state i = output output LET уi = REF уi + 1 IF flag REF xi THEN LET state i = wait wait IF NOT flag REF wi THEN LET у i = val R-EFtTi * val REF w i LET state i = accumulate FUNCTION pass_data(i : integer "1 < i < n") assgts = LETwi = REFwi-1 LET x i = REF x i + 1 211
FUNCTION new_y_n( ) assgts = TEST REF state n accumulate LET у n = REF'у n + val REF x n * val REF w n IF flag REF wn THEN LET state n = wait wait IF NOT flag REF wn THEN LET yn = val REF w n » val REF x n LET state n = accumulate output NIL FUNCTION pass_data_n( ) assgts = TEST REF state n output DO FOR i = 2 TO n - 1 BY 2 pass.data(i) pass data n "предполагается, что n четно" LET cycle = even even pass_data_1 DO FOR i = 3 TO n BY 2 pass_data(i) DO FOR i = 2 TO n - 1 BY 2 new.y(i) new.y.n "предполагается, что n четно" LET cycle = odd TEST REF xjn empty NIL in_out sequence LET x n = (0, TRUE) LET state n = wait wait LET w n = REF w n — 1 TEST REF xjn empty LET x n = (0, FALSE) LET state n = output in_out.sequence LET x n = first REF xjn LET xjn = rest REF xjn accumulate same as wait Замечание. Состояние "output"процесорного элемента n специально предназначено для приема новой последовательности х. FUNCTION OMEGA = TEST REF cycle odd new _y_1 DO FOR i = 3 TO n BY 2 new.y(i) 212
12.3.2. Матричное умножение по методу волнового фронта [12] Элементы двух (и Хи)-матриц А и В присутствуют на входных портах: каждая стро- ка матрицы А поступает на каждый из и портов строк и каждый столбец матрицы В на каждый из и портов столбцов. Всего имеется и Хп процессорных элементов, располо- женных в виде квадратной структуры. Строки матрицы А распространяются слева на- право, а столбцы матрицы В — сверху вниз. Элементе^ встречает элемент Ьдув (/,/)-м процессорном элементе, где накапливается произведение a^b^j. Процессорные элемен- ты не представлены явно как синтаксические элементы, но присутствуют неявно в ви- де всех операций над а^, by и сгу для данных i, j. Пространство данных имеет следующий вид: МАTRIX MULTIPLICATION CELLS a INTEGER INTEGER HOLD REAL CELLS b INTEGER INTEGER HOLD REAL CELLS c INTEGER INTEGER HOLD REAL "6 исходном состоянии О" TYPE input.sequence -» empty | first REAL rest input.sequence 11 CELLS a.in INTEGER | b.in INTEGER HOLD "ддод последовательности" CELLS step HOLD fetch | execute | stop CELLS k HOLD INTEGER "начальная Выборка" "В исходном состоянии 1" FUNCTION OMEGA = TEST REF step fetch DO FOR ALL (i.j) SUCH THAT 1 <i<n & 1 <j<n & i+j< REF k + 1 IF j = 1 THEN IF i>k —nTHEN LET a i j = first REF a.in i LET a.in i — rest REF a.in i ELSE NIL ELSE IFi+j>k —n + 1 THEN LET a i j = REF a i j-1 ELSE NIL IF i = 1 THEN IF j>k — nTHEN LET b i j = first REF b.in j LET b.in j = rest REF b.in j ELSE NIL ELSE IF i+j>k-n + 1 THEN LET b ij = REF b i-1 j ELSE NIL LET step — execute execute DO FOR ALL (i.j) SUCH THAT 1 <i<n & 1 <j<n & i+j < REF k + 1 IF i+j>k-n + 1 THEN LET c i j = REF c i j + REF a i j » REF b i j ELSE NIL 213
IF REF к = 3n—2 THEN LET step = stop ELSE LET к = REF к + 1 LET step = fetch stop NIL Замечание. Выражение DO FOR ALL. .. SUCHTHAT. . . не является правильной записью в исполняемом сиптаксцсе. Оно используется для более ясного понимания то- го преобразования, которое выполняется синтаксически правильной конструкцией. 12.4. ЛОКАЛЬНАЯ СИНХРОНИЗАЦИЯ В предыдущих примерах процессорные элементы не были представлены явно, а подразумевались неявно только в виде операций, встречающихся в определенных группах ячеек. Теперь введем конструкции подпространство и синхронизируемая ячейка. Процессорные элементы будут отождествлять- ся с подпространством. Это позволит выразить локальную синхронизацию. 12.4.1. Понятие подпространства Вначале дадим теоретическое определение понятия подпространства. Определение. Пространство данных с недетерминированной системой перехода (X, р), т. е. в случае; когда р есть отношение, а не функция на мно- жестве X, называется недетерминированным. Пусть [х,.^] для недетерминированного пространства данных (Х,:^,р) элемента х множества X и подмножества XX' множества обозначает подмножество X вида {у I /О’) =/(х) для всех f е (Будем считать, что для z£ [х, г^7'] и / G функции f (z) и/(х) совпада- ют, хотя по существу они разные из-за различия областей определения.) Пространство данных (X, р') считается подпространством прост- ранства (X р), если.^7' £ X' = [х, х е X, и если из соотноше- ний у' ер'(х'), х=х', у-у' и /(у)=/(х) для всех /6.^ — .^'следует, что у Gp (х). Согласно определению каждый переход подпространства может быть сделан в общем пространстве без учета памяти вне подмножества^7'. Замечание. В нашей предыдущей работе понятие подпространства играло важную роль в связи с разбиением больших пространств на части. Готовит- ся к публикации более обширная теоретическая статья. Параллельные под- пространства удобны при изучении алгоритмов, в которых предусмотрено обращение к общей (совместной) памяти. 12.4.2. Простой механизм связи Подмножество функций .F' одного подпространства может иметь непус- тое пересечение с подмножеством функций другого; ячейки в пересе- чении являются общими. 214
Синтаксический механизм для построения основного пространства из отдельных подпространств имеет вид SPACE <имя> < определение пространства данных) Любые типы, типы ячеек и функций, заданные в определении пространства данных (за некоторым исключением содержащие новые инструкции, кото- рые будут вскоре объяснены), являются строго локальными. Однако в под- пространстве имеется доступ к описанию типа, но в общем случае не к опи- саниям ячейки или функции, которые являются по отношению к нему гло- бальными. Единственными разрешенными нелокальными описаниями являются описания ячеек, начинающиеся со слов SHARED или SYNCHRONIZED, на- пример SYNCHRONIZED CELLS х HOLD REAL. Тогда при некоторых условиях, которые здесь полностью не перечисля- ются, на ячейку х подпространства S' можно ссылаться за пределами подпро- странства, что обозначается выражением S .х. Каждая ячейка синхронизируемого типа может быть: 1) готова к считыванию; 2) готова к записи. Если любой оператор OMEGA подпространства или основного простран- ства генерирует операцию REF выборки из ячейки, которая не готова для считывания, переход такого пространства (из состояния в состояние) задер- живается до тех пор, пока ячейка не станет готовой к считыванию. После завершения перехода ячейка становится готовой к записи и, следовательно, не готова к считыванию. Аналогично, если в синхронизируемую ячейку пред- полагается записать информацию о результате выполнения некоторого опера- тора OMEGA, то переход такого пространства задерживается до тех пор, пока ячейка не подготовится к записи другим пространством. Ссылка вне пространства к ячейке, объявленной синхронизируемой, оп- ределяется новой конструкцией EQUIVALENT S1 .a, S2.b согласно которой объявляется, что ячейки а и b подпространств S1 и S2 со- ответственно эквивалентны (представляют собой одну и ту же ячейку). Два типа ячеек, к которым относятся ячейки а и Ь, должны хранить один и тот же тип данных. Еще раз подчеркнем, что данная запись не предназначена для доказа- тельства корректности. Корректность недетерминированных алгоритмов до- казать значительно труднее, чем детерминированных. Поэтому исполняемая спецификация, тема настоящей главы, еще более важна в случае локально синхронизируемых алгоритмов. 12.4.3. Алгоритм сортировки с локальной синхронизацией В качестве примера в терминах пространства данных определим процес- сорную матрицу, выполняющую алгоритм сортировки. Матрица образуется 1 215
из подпространств Sj, 1 <z <и, и предназначена для сортировки входной последовательности длиной до п. Алгоритм выполняется следующим обра- зом: подпространства Sz и 5г+1 связаны каналом связи, достаточным для передачи входных значений, флага и ’’бита подтверждения”. Каждый входной сигнал пропускается через матрицу на основе простого сравнения в каждом процессорном элементе: если новый входной сигнал больше текущего содер. жимого, то пересылается входной сигнал, иначе пересылается содержимое, а входной сигнал сохраняется. Таким образом, процессорный элемент Sj в конечном счете активизируется от г-го входного сигнала извне. Последний входной сигнал помечается флагом TRUE. Флаг пересылается вместе с вход- ным значением и, таким образом, достигает последнего элемента Sk, где к — длина входной последовательности. Процессорный элемент подготавли- вается для вывода путем выдачи содержимого, помеченного флагом TRUE, в свой канал влево вместе с подтверждением, затем ожидает подтверждения передачи и, наконец, возвращается в исходное состояние. В действительности каждый элемент St- выполняет те же операции, за исключением того, что Sj, i f=k, помечает свои значения флагом FALSE. По получении подтверждения от правого процессорного элемента данные посылаются налево. Как только встретится флаг TRUE, вместе с элементами Sj бит подтверждения возвра- щается вправо; St-e подтверждение сигнализирует во вне, что результат готов; последний выход в отсортированном массиве помечается как TRUE. Предполагается, что по получении его внешней агент возвращает бит под- тверждения в исходное состояние. Формальное определение имеет следую- щий вид: SPACE S, TYPE value & flag -rvalue REAL flag BOOLEAN || CELLS contents HOLD REAL SYNCHRONIZED CELLS left|right HOLD value & flag SYNCHRONIZED CELLS ack-left | ack-right HOLD BOOLEAN CELLS state HOLD idle | active | send-contents |wait for-ack-left | wait-for-ack-right | outputting | send-last-output Глобальными описаниями для всех подпространств при i =1,. .. ,п — 1 яв- ляются EQUIVALENT S,. right, Si + 1 left EQUIVALENT S,. ack-right, Si+ack-left Первоначально в переменной ack-left хранится значение FALSE, и это состоя- ние является исходным для каждого элемента Sj. Входные значения пода- ются в элемент Si слева; последнее значение на входе помечается как TRUE. Вначале все синхронизируемые ячейки готовы к записи. Процессор каждого блока SPACE Sj определяется следующим образом: FUNCTION OMEGA = TEST state idle LET contents = value REF left IF flag REF left THEN 216
LET ack-left — TRUE LET state = send-last-output ELSE LET state = active active IF REF contents > value REF left THEN LET right = (contents, flag REF left) LET contents = value REF left ELSE LET right = REF left IF flag REF left THEN LET state = send-contents ELSE NIL send-contents LET ack-left = TRUE . LET left = (REF contents, FALSE) LET state = wait-for-ack-right wait-for-ack-right IF REF ack-right THEN LET state = outputting ELSE NIL outputting LET left = REF right IF flag REF right THEN LET ack-right — FALSE LET state = wait-for-ack-left ELSE NIL send-last-output LET left — (REF contents. TRUE) LET state = wait-tor-ack-left wait-for-ack-left IF NOT REF ack-left THEN LET state = idle ELSE NIL Это определение задает структуру, представленную на рис. 12.3. Такая конструкция характеризуется не только простотой записи, но и дополнитель- ными преимуществами, состоящими в том, что ее можно снабдить глобаль- ной синхронизированной ячейкой, скажем, input_output, объявить ее экви- валентной ячейке SI . left, и тогда эту конструкцию можно будет вставлять в любое пространство данных как подпространство. В охватывающем прост- ранстве одна из ячеек будет объявлена эквивалентной ячейке .input—output сортировщика. SI S2 S3 Рис. 12.3 217
12.4,4. Волновая матрица с локальной синхронизацией Волновая процессорная матрица, приведенная в [12]-, может быть теперь выражена в следующем виде (использование локальной синхронизации вместо глобальной позволяет искривлять волновой фронт). Для каждого i,j, l<i, j <и, определим SPACE Ssj SYNCHRONIZED CELLS ajeft I a.right | b_up| b down HOLD REAL CELLS cHOLD REAL "b исходном состоянии О" FUNCTION OMEGA = LET c = REF c + REF ajeft * REF b up LET a right = REF ajeft "за исключением Sln" LET b_down = REF b up"j77 исключением Sin" Эквивалентными объявляются EQUIVALENT Si,. a right, S,, t. ajeft, (j < n) S4. b down, S,,,,. b up (i < n) Процессор на самом деле не завершен, поскольку не обеспечены средства вывода и перестройки структуры для следующей задачи. Это может быть сделано так же, как в алгоритме сортировки. ПРИЛОЖЕНИЕ Для алгоритма умножения матриц, представленного в подразд. 12.3.2, приводится распечатка определения пространства данных вместе с трассировкой программы. Для простоты определение OMEGA разбито на вспомогательные функции. В маши- не пространства данных, использованной для реализации, некоторые из синтаксических сокращений, упомянутых в подразд. 12.2.2, тем не менее не выполнены. Однако отли- чие в записи минимально. TYPE A|J > А А1 INTEGER > А2 INTEGER TYPE BIJ > В B1 INTEGER В2 INTEGER : TYPE CIJ -> C C1 INTEGER С2 INTEGER : : TYPE INPUT SEQUENCE > FIRST REAL REST INPUT_SEQUENCE : TYPE STEP * STEP : TYPE Operation - fetch : execute : stop : : TYPE INT_CELL — К : N : : TYPE A B_IN -» A_IN A_IN_S INTEGER : E1JN BJN_S INTEGER : : CELLS AIJ HOLD REAL CELLS BIJ HOLD REAL CELLS CIJ HOLD REAL 218
CELLS A_BJN HOLD INPUT_SEQUENCE CELLS STEP HOLD OPERATION CELLS INT.CELL HOLD INTEGER FUNCTION A FUNC (K INTEGER N INTEGER I INTEGER J INTEGER) ASSGTS = IF < I + N 1 IF AND <J + N1 < + IJ + К 2 :IF = J 1 IF > I -KN : LET A I J = FIRST REF A_IN I LET A_IN I = REST REF AJN I : SKIP IF > + I J + — KN1 LET A I J = REF A I - J 1 SKIP A_FUNC К N I + J 1 : A_FUNC К N + I 1 1 SKIP FUNCTION B_FUNC (K INTEGER N INTEGER I INTEGER J INTEGER) ASSGTS = IF < I + N 1 IF AND < J + N 1 < + I J + K2 : IF = I 1 IF > J -KN : LET В I J = FIRST REF BJN J LET BJN J = REST REF BJN J : SKIP IF > + I J + - К N 1 LET В I J = REF В - I 1 J SKIP B_FUNC К N I + J 1 ; B_FUNC К N + I 1 1 SKIP FUNCTION C_FUNC (K INTEGER N INTEGER I INTEGER J INTEGER) ASSGTS = IF < 1 + N 1 IF AND < J + N 1 < + I J + K2 ; IF > + I J + - К N 1 LET С I J = + REF С I J * REF A I J REF В I J SKIP C_FUNC К N I + J 1 : C_FUNC К N + I 1 1 SKIP FUNCTION CJNITJ4ELP (N INTEGER IND INTEGER) ASSGTS = IF > INDO LET C IND N = 0.0 LET C N IND = 0.0 CJNITJHELP N - IND 1 : SKIP 219
FUNCTION CJNIT (N INTEGER) ASSGTS = : LET C N N = 0.0 CJNIT_HELP N - N 1 IF > N 1 CJNIT - N 1 SKIP : OMEGA TEST REF STEP FETCH : A_FUNC REF К REF N 1 1 B_FUNC REF К REF N 1 1 LET STEP = EXECUTE : EXECUTE : C FUNC REF К REF N 1 1 IF = REF К — * 3 REF N 2 LET STEP = STOP : LET К = + REF К 1 LET STEP = FETCH : STOP SKIP : LOAD LET К = 1 LET N = 3 CJNIT 3 LET A_ .IN 1 = , 1.0 , 2.0 , 10 LET A. IN 2 = . 2.0 . 2.0 . 1.0 LET A_ .IN 3 = . 2.0 , 1.0 . 2.0 LET В IN 1 = , 3.0 , 4.0 , 5.0 LET B_ IN 2 = , 4.0 , 5.0 , 3.0 LET B. IN 3 = . 5.0 , 3.0 , 4.0 LET STEP = FETCH : (,K: = 1.) (N: = 3.) (C33: = + 0.00000E + 00.) (C23: = + O.OOOOOE 4-00.) (C32: = +0.00000E+ 00.) (C13:= + 0.OOOOOE+ 00.) (,C31:= +0.000OOE + OO.) (.C22:= +0.OOOOOE+OO.) (C12: = +0.00000E + 00.) (C21:= +O.OOOOOE + 00.) (.011:= + 0. OOOOOE + 00.) (.AJN1 : = , +1 OOOOOE + 00, +2.00000E + 00. +1 OOOOOE + 00..) (A_IN2: =, + 2.OOOOOE + 00. + 2.00000E + 00, +1 OOOOOE + 00..) ( AJN3: = , + 2 OOOOOE +00, +1 OOOOOE + 00, + 2.OOOOOE + 00. ) ( B 1N1 : = , + 3.00000E + 00, + 4 OOOOOE+ 00,+ 5.OOOOOE+ 00. ) (.В J N2: =, + 4 OOOOOE + 00, + 5.00000E + 00, + 3.OOOOOE + 00..) ( B IN3: = ,+ 5 OOOOOE + OO,+ 3.OOOOOE+ 00,+4.OOOOOE+00. ) (STEP: = FETCH.) (Al 1 : = + 1. OOOOOE + 00.) (,A_IN1 :=, +2.OOOOOE+ 00, + 1 OOOOOE + OO.) (,B11.= +3.00000E+ 00.) (. В J N1: =, + 4 OOOOOE + 00, + 5.00000E + 00. ) 220
(STEP: = EXECUTE.) (,C11 := + 3.00000E + 00.) (K: = 2.) (.STEP: = FETCH.) (,A11 := +2.00000E + 00.) (,A_IN1: =, +1 .OOOOOE + OO.) (,A12: =+ 1.OOOOOE+00.) (A21: = + 2.00000E + 00.) (AJN2: =. + 2.OOOOOE + 00. +1 OOOOOE + OO.) (.811:= + 4.OOOOOE + OO.) (BJN1 : = , + 5.0000QE + 00..) (,B12:= +4.000 OOE + OO.) (Bl N2: =. + 5.00000E + 00. + 3.00000E + 00..) ( B21:= + 3.00000E + 00.) ( STEP: = EXECUTE.) (.Cl 1: =+1.09999E+01.) (,C12:= +4.00000E + 00.) (,C21 :=+6.00000E+00.) (K: = 3.) (STEP: = FETCH.) (A11 : = +1 OOOOOE +00.) (,AJN1: = ..) (Al2:= +2.00000E + 00.) (.Al 3:= +1.OOOOOE+00.) (,A21:= +2.00000E + 00.) (AJN2:=, + 1. OOOOOE + 00.) (.A22: = +2.00000E +00.) (A31: = +2.00000E+00.) (.A J N3: =. +1 OOOOOE + 00. + 2.00000E + 00..) (,B11:= +5.00000E + 00.) (_B_IN1: = ..) (B12: = +5.00000E + 00.) (BJN2. = . + 3. OOOOOE + OO.) (B13:= +5.00000E+ 00.) (. B_IN3: =, + 3.00000E + 00, + 4.00000E + 00..) (,B21:= +4.00000E+00.) (B22: = +4.00000E + 00.) (B31: = + 3.00000E + 00.) (STEP: = EXECUTE.) (C11:= +1 59999E + 01.) (C12:= +1 39999E+ 01.) (_C13:= +5.00000E + 00.) (C21:= +1 39999E + 01.) (,C22:= +8.00000E+ 00.) (C31:= +6.00000E + 00.) (K:=4.) (STEP: = FETCH.) 221
(А12: = +1 ОООООЕ+ 00.) (А13:= +2.00000Е + 00.) (А21:= +1.ОООООЕ+ 00.) (,A_IN2: = ..) (А22:= +2.00000Е + 00.) (А23:= +2.00000Е + 00.) (А31 := +1 ОООООЕ+00.) ( A_IN3: =,+ 2.00000Е + 00..) (А32.= +2.00000Е +00.) (,В12:= +3.00000Е + 00.) (.BJN2: = ..) (В13:= +3.00000Е + 00.) (В JN3: = , +4.00000Е + 00.) (В21:= +5.00000Е + 00.) (В22:= +5.00000Е + 00.) (В23:= +5.00000Е + 00.) (В31: = +4.00000Е + 00.) (В32:= +4.00000Е+ 00.) (STEP: = EXECUTE.) (С12: = +1 69999Е + 01.) (С13: = +1 09999Е+ 01.) (С21.= + 1.89999Е + 01.) ( С22:= +1.79999Е + 01.) (,С23:= +1.ОООООЕ+ 01.) (,С31:= +1.ОООООЕ+ 01.) (С32:= +8.00000Е + 00.) (К: = 5.) ( STEP =FETCH ) (.Al 3:= +1.ОООООЕ+ 00.) (А22:= +1.ОООООЕ+00.) (А23:= +2.00000Е + 00.) (А31: = +2.00000Е + 00.) (,AJN3: = ..) (А32:= +1.ОООООЕ+ 00.) (А33:= +2.00000Е + 00.) (В13:= +4.00000Е + 00.) (,BJN3: = ..) (В22:= +3.00000E + 00.) (,В23:= +3.00000Е + 00.) (В31:= +5.00000Е + 00.) (В32:= +5.00000Е + 00.) (В33:= +5.00000Е + 00.) (STEP: = EXECUTE.) (С13:= +1.50000Е + 01.) (С22:= +2.09999Е + 01 ) (С23:= +1.59999Е + 01.) (С31 :=+2.00000Е+01.) (С32:= +1.29999Е + 01.) (С33 = +1.ОООООЕ+ 01.) (К:=6.) 222
(STEP. = FETCH.) (,A23:= +1.ОООООЕ+ 00.) (.A32: = +2.00000E + 00.) (.A33:= +1.ОООООЕ+00.) (. B23: = + 4.00000E + 00.) (.B32:= +3.00000E + 00 ) (,B33:= +3.00000E + 00.) (.STEP: = EXECUTE.) (.C23:= +2.00000E+00.) (C32: = +1 89999E + 01.) (.C33: = + 1.29999E + 01.) (.K: = 7.) (STEP: = FETCH.) (.A33:= +2.00000E + 00.) (.B33: = +4.00000E+ 00.) ( STEP: = EXECUTE.) (C33: = + 2.09999E + 01.) (STEP: = STOP.) СПИСОК ЛИТЕРАТУРЫ [1] J. Backus, “Can Programming Be Liberated from the Von Neumann Style? A Func- tional Style and Its Algebra of Programs,” Commun. ACM, 21:613-641 (Aug. 1978). [2] A. B. Cremers and T. N. Hibbard, “Formal Modeling of Virtual Machines,” IEEE Trans. Software £«</.,4:426-436 (1978). [3] A. B. Cremers and T. N. Hibbard, “Functional Behavior in Data Spaces,” Inf- Forschungsber., No. TlfTl, Universitat Dortmund; Acta Inf, 9:293-307, 1978. [4] A. B. Cremers and T. N. Hibbard, "Orthogonality of Information Structures,” Inf- Forschungsber., No. 31/76, Universitat Dortmund; Acta Inf, 9:243-261 (1978). [5] A. B. Cremers and T. N. Hibbard, “On the Formal Definition of Dependencies between the Control and Information Structure of a Data Space,” Theor. Comput. Sci., 5:113- 128 (1977). [6] A. B. Cremers and T. N. Hibbard, “Data Spaces with Indirect Addressing,” Inf- Forschungsber., No. 43/77, Universitat Dortmund; A|ath. Syst. Theory, /2:151-173 (1978). [7] A. B. Cremers and T. N. Hibbard, “Specification of Data Spaces by Means of Context- Free Grammar-Controlled Primitive Recursion,” Inf.-Forschungsber., No. 107/80, Uni- versitat Dortmund (1980). [8] L. S. Haynes, R. L. Lau, D. P. Siewiorek, and D. W. Mizell, “A Survey of Highly Parallel Computing,” IEEE Comput., Jan. 1982, pp. 9-24. [9] C. A. R. Hoare, “Communicating Sequential Processes,” Commun. ACM, 21:6ЬЬ-6П (1978). [10] J. J. Horning and B. Randell, “ Process Structuring,” ACM Comput. Sure., 5:5-3O (1973). 223
[11] Н. Т. Kung, “Why Systolic Architectures?” IEEE Compute 15(l):37-46 (Jan. ,982). [12] S. Y. Kung, K. S. Arun, R. J. Gal-Ezer, ano D. V. Bhaskar Rao, “Wavefront Array Processor: Language, Architecture, and Applications,” IEEE Trans. Comput.. C- 3/(11):1054--1066 (Nov. 1982). [13] C. Mead and L. Conway, Introduction to VLSI Systems, Addison-Wesley, Reading, Mass., 1980. [14] D. L. Parnas, “A Technique for Software Module Specification with Examples” Commun. ACM, /5:330-336 (1972). 13 ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ В ТЕРМИНАХ ПРОСП'АНСТВЕННО-ВРЕМЕННЫХ РЕКУРРЕНТНЫХ УРАВНЕНИЙ М. Чен, К. Мид1 13.1. ВВЕДЕНИЕ Современный уровень развития технологии изготовления СБИС сделал возможным создание вычислительных систем, содержащих многие сот- ни тысяч транзисторов. Интерес при проектировании должен состоять в достижении высокой вычислительной сложности, а не просто в объедине- нии огромного числа одинаковых простых компонентов, таких как элемен- ты памяти. Проектируемая система может быть представлена как совокуп- ность объектов исполняющей среды (например, транзисторов в СБИС-тех- нологии) или как иерархическая система, в которой объекты каждого уров- ня строятся из объектов нижнего по отношению к данному уровню. Пер- вое представление позволяет выполнять всю разработку из объектов основ- ного (нижнего) уровня. Такое представление может оказаться подходящим для машинного исполнения, но оно неудобно для разработки, а стоимость проверки функционирования разработанной системы и ее физической ком поновки велика. С ростом сложности разработки недостатки этого подхода становятся более очевидными. Цель второго подхода, основанного на иерар хическом методе проектирования [11], состоит в управлении сложностью разработки путем правильного разбиения объектов каждого уровня на под системы. 13 .1.1. Иерархическое проектирование Предположим, что требуется вычислить произведение матриц; для этого существует много способов. Одним из возможных способов реализации этой функции является алгоритм [8], показанный на рис. 13.1. Элементар- ный блок (элемент) имеет три входа и три выхода; каждый элемент выпол- няет операции йн,„, ~тпхХЬ„„ яг„..х =wr„„, -b„v. Поскольку х ВЛ вл Вл7 ВЫл вл ВЫА Вл 1 Калифорнийский технологический институт, Пасадена, Калифорния. 224
Рис. 13.1. Систолический алгоритм при разработке и обосновании систолического алгоритма используется толь- ко упомянутое описание каждого элемента, их физическую реализацию мож- но пока не рассматривать. При обсуждении производительности или слож- ности данного алгоритма можно также обойтись без знания фактических параметров каждого элемента. После окончания проектирования данного алгоритма, т.е. после того, как проверено, что он является корректным и удовлетворяет требованиям по производительности, можно осуществлять дальнейшие действия, концентрируя внимание на разработке каждого конк- ретного элемента. Такой элемент может быть выполнен как элемент с последовательной обработкой каждого разряда двоичного числа или как оперирующий парал- лельными словами, представляющими собой двоичные числа. Одна из воз- можных схем реализации элемента с поразрядной последовательной обра- боткой показана на рис. 13.2 [9, 18]; три последовательности разрядов поступают на входы конвейера, а результирующие последовательности появ- | 225
Рис. 13.3. Схема одноразрядного элемента — алгоритм ляются на выходах с конвейера. Элементарным блоком этого конвейера является полусумматор с несколькими сдвиговыми регистрами. Можно по- пытаться минимизировать общую задержку с целью максимизации пропуск- ной способности. Для проверки корректности этого алгоритма использу- ется булева алгебра. Когда проектирование на этом уровне закончено, мож- но переходить к детальной разработке каждого элемента. Снова рассматривается один из способов реализации. Схема на рис. 13.3 представляет собой ’’алгоритм”, описывающий этот способ реализации. На этом уровне используются переключающие логические элементы. В свою очередь, эти логические элементы выполняются по определенной техноло- гии. Для реализации логических функций, соответствующих условным обозначениям рис. 13.3, используются транзисторы, конденсаторы и другие элементы, как показано на рис. 13.4. На этом уровне проектирования будет использоваться теория электрических цепей [2]. В конечном счете после окончания проектирования устройства оно будет реализовано в физической среде. Разбие- ние процесса проектирования на различ- ные иерархические уровни позволяет раз- работчику сконцентрировать внимание в каждый момент времени только на одном уровне, игнорируя детали нижнего уровня. Рис. 13.4. Транзисторная схема — алго
13 .1.2. Пространственно-временное взаимодействие В каждом упомянутом алгоритме важно точно определить момент време- ни когда данные достигают процессорного элемента. В программе, написан- ной на обычном языке высокого уровня, нет взаимодействия пространства и времени, так как в ней рассматривается только одно действие в единицу времени и отсутствует информация, где физически расположены данные. Иначе обстоит дело при разработке СБИС-систем. Данные, которые распо- ложены далеко от процессорного элемента, требуют больших энергетичес- ких затрат и имеют большее время доступа, так как более длинный провод- ник обладает большей емкостью и большим сопротивлением. Алгоритм, считающийся хорошим для традиционного языка программирования, не обязательно хорош, когда в расчет принимаются физические явления. Например, алгоритм ’’быстрой сортировки”, сложность которого пропор- циональна nlogrz, предпочтительнее алгоритма обменной сортировки со слож- ностью пропорциональной п2. Однако алгоритм быстрой сортировки вклю- чает в себя обмен данных с произвольным расположением, и поэтому еди- ница затрат определяется дорогостоящим доступом к данным, которые расположены дальше всего. С другой стороны, при алгоритме обменной сортировки меняются местами только данные, расположенные близко друг к другу, и поэтому единица затрат определяется доступом только к ближним элементам [17]. Эта локальность обмена является основной чертой алгоритма, пригодного для реализации на СБИС. Таким образом, при проектировании СБИС, их проверке и анализе алгоритмов необходимо учитывать пространственное и временное распределение данных. Способ описания СБИС-систем. До сих пор примеры алгоритмов для СБИС описывались в виде графических изображений. Неформальное гра- фическое изображение возможно для достаточно простых алгоритмов. Формальная система записи была бы полезна не только при объяснении требований проекта, но и при моделировании, проведении компиляции или составлении схем на физическом уровне. Кроме того, она является первым шагом на пути к созданию инструментальных средств автоматической вери- фикации СБИС-систем. С появлением систем автоматизации проектирования СБИС стало общепринятым описание СБИС в форме, удобной для реализа- ции. Это описание должно быть также удобным для преобразований. Иерар- хический метод проектирования требует надлежащего согласования частей системы на каждом уровне и соответствия между абстрактной моделью на одном уровне и ее реализацией на нижнем уровне. На очень низком уровне, где входные и внутренние состояния подсистем описываются несколькими разрядами, соответствие может быть проверено исчерпывающим перебором всех возможных случаев. Для некоторой большей подсистемы эта проверка эквивалентна верификации программы. Поэтому семантика языка описаний должна быть формальной, чтобы можно было формально проверить описа- ние конкретной системы. Другим важным свойством языка описания СБИС-систем является его применимость к объектам всех уровней. Он должен быть способен описы- 227
вать как сети процессов, так и транзисторные схемы. Он должен также до- пускать описание реальных систем простым способом и его семантика долж- на быть простой, поскольку язык нельзя использовать, если описание на нем или его семантика непреодолимо сложны. В работе [3] предложены средства описания и верификации СБИС-систем, в которых один и тот же язык используется для систем от транзисторного уровня до уровня взаимодействия процессов. Для изучения абстрактного поведения системы по ее описанию используются семантические правила, предложенные в [10, 16]. С их помощью можно проверить соответствие физической системы и ее описания. Предлагаемые средства могут принимать вид языка параллельного программирования, если описывается взаимодей- ствие процессов, или языка аппаратных средств, если описываются интег- ральные схемы. Данный раздел является вводным и содержит сведения об указанных средствах. Вначале рассматривается модель вычислений для параллельных систем. От модели взаимодействующих последовательных процессов [6] она отличается тем, что: 1) детерминированные параллельные модели отделяются от более общих недетерминированных; первый тип моделей представлен в этом разделе, а его обобщение можно найти в [3]: 2) вводится понятие аппликативного перехода состояний [1], что дела- ет возможным функциональный стиль программирования. Описание систем названо пространственно-временным алгоритмом, так как в нем явно выра- жены пространственные и временные параметры. Даются пример описания конвейерного алгоритма и доказательство его корректности. Более подробное изложение можно найти в [3]. 13.2. МОДЕЛЬ ВЫЧИСЛЕНИЙ Модель состоит из совокупности процессов [5 — 7,18]. Каждый процесс имеет: 1) регистр управления состоянием для определения связи процесса с дру- гими процессами; 2) память данных; 3) механизм вычисления функции перехода из состояния в состояние [1]; 4) входные и выходные порты. Порт заполняется в том смысле, что и позиция в сети Петри [13, 14], и становится пустым, как только маркер покидает позицию, когда соответствующий переход срабатывает. Для описания отношений между процессами используется система ко- ординат; 5) каждый процесс локализован в пространстве с некоторой системой координат, каждая координата принадлежит счетному множеству. 6) часто удобно ввести глобальную координату времени для ансамбля опе- раций, если возможно полное упорядочение этих операций. В общем случае операции, встречающиеся в ансамбле процессов, выполняются параллельно и 228
не могут быть полностью упорядочены. Поэтому для каждого процесса вво- дятся локальные временные координаты, взятые из счетного вполне упоря- доченного множества для индексации операций, из которых образуется про- цесс. Кроме того, выводится множество отношений между этими локальны- ми временными координатами процессов; . 7) связь между процессами устанавливается путем приравнивания содер- жимого входного порта процесса Sj при его ?5рй операции содержимому выходного порта процесса s2 при его ts2-^ операции. Перечисление опера- ций приводится далее. Процесс осуществляется в соответствии со следующей процедурой: 8) содержимое регистра управления состоянием определяет выбор мно- жества входных портов. Содержимое регистра используется только для этого и не используется в качестве аргумента для функции переходов; 9) если все входные порты заполнены, то говорят, что связь установ- лена. Началом процесса является операция, состоящая из: а) извлечения данных из выбранных входных портов и б) вычисления функции перехо- дов (возбуждение переходов, как в сети Петри), называемого t-м вызовом процесса, где t — временная координата процесса. Если некоторые входные порты не заполнены, процесс сможет начаться после их. заполнения; 10) данные в выбранных входных портах и содержимое памяти данных являются аргументами функции переходов. После того, как значение функ- ции вычислено, результат используется для изменения содержимого памяти данных, содержимого регистра состояния и заполнения выходных портов. Если выходные порты не пусты, процесс ожидает их освобождения и затем заполняет их. Если все назначенные выходные порты заполнены, Г-й вызов процесса закончен, он начинается с позиции 8 для (т + 1)-го вызова, где t +1 обозначает следующий элемент временной координаты из полностью упорядоченного множества. 13.3. ЯЗЫК КРИСТАЛ1 Язык и его семантика основаны на типовой версии Х-исчисления [15]. Каждая часть или операция представленной в разд. 13.2 модели вычислений описывается как постоянное значение, переменная, функция или функции от функций. Типы данных. Имеются различные типы данных для представления состоя- ния и входов-выходов для широкого диапазона интересующих нас систем. Примерами типов данных являются: 1) множество аналоговых величин & = {а : 1} — подмножество множества действительных чисел; л А 2) множество булевых значений £= {О, 1 }; 3) множество //-разрядных слов в двоичном представлении {/:—2<и-1> < </ < 2 — подмножество множества целых. Переходные функции состояния. В соответствии с вычислительной мо- делью переходные функции состояния являются основными элементами. 1 CRYSTAL -Concurrent Representation of Your Space-Time Algorithm. 229
из которых строится система. В зависимости от целей исследования в ка- честве элементарных переходных функций используются различные функ- ции. При проектировании СБИС-систем, когда предметом исследования яв- ляются детализированные электрические характеристики системы, элемен- тарными функциями могут быть аналоговые модели транзисторов. В том случае, когда разрабатывается логическая схема, в качестве элементарной функции используется модель транзистора как ключа. Если, например, разрабатывается умножитель, то элементарной функцией будет модель сумматора. Переходная функция состояния может быть также реализована с помощью набора элементарных функций, в этом случае ее называют слож- ной функцией. Их точное определение будет дано далее. При описании элементарных переходных функций состояния, например модели транзистора, используются такие функции, как функции сложения, нахождения минимального и максимального значений. Эти функции явля- ются элементарными функциями языка, и их нужно отличать от аналогич- ных системных функций. Например, можно использовать функцию сложе- ния для построения сумматора. Пусть х= (*!, х2,..., хт), где хг- i =1,2,... ,т, обозначают аргу- менты переходной функции/: /: /=(Лх-/ь Лх /2,..., Лх /„). (13.1) Каждый компонент Хх-/(- такой функции является элементом отображения множеств &т в множество 3). Эти компоненты также будут называться переходными функциями отстояния. Координаты. Для выражения отношений между вызовами процессов или для выражения различных переходных функций состояния в разных точках пространственно-временно'й системы координат необходимо ис- пользовать функции от этих координат. Эти функции являются элементар- ными функциями языка, и их не следует путать с системными функциями. Они необходимы для построения и функционирования системы. Примеры таких типов данных: 1) область дискретного времени У = }0, 1,2,. . .} (множество неотрица- тельных целых); 2) область дискретного пространства | (х, у) : 0<х<п, 0<у < п, х, у являются целыми} ; 3) множество кортежей 8= {(ei, е2, ... , е^)},где ех, е2, . . . , являются пространственными и временными координатами. Этот класс типа данных назван пространственно-временной областью. Потоки данных. Каждый процесс определен точкой пространственной системы координат, и каждый вызов процесса определен точкой простран- ственно-временной системы координат с теми же пространственными коор- динатами, что и у процесса, и локальным временем. Регистры состояний, данные, входные и выходные порты всех процессов имеют те же коорди- наты, что и вызов. Пространственно-временные координаты значений регист- ров состояния и входных и выходных портов определяются в процессе вы- 230
числений и заранее неизвестны. (Известны только начальное состояние и начальные значения входов). В процессе вычислений большинство состоя- ний и значения в ходов-выходов определяются в пространственно-времен- ной области; вычисления заканчиваются, если ни одно из них не определе- но. Значения состояний и в ходов-выходов и называется потоком данных. Пространственно-временной алгоритм. Алгоритм описания системы состоит из описания вычислительной части (подстановки значений состоя- ний, значений входа и выхода в переходные функции состояний) и комму- никационной части (отождествления или приравнивания входных и выход- ных значений в другой точке пространственно-временной области). Резуль- татом является система рекуррентных уравнений в пространственно-вре- менных координатах. 13.4. ПОВЕДЕНИЕ АЛГОРИТМА Семантикой пространственно-временного алгоритма является решение упомянутой системы уравнений. Она сводится к описанию значений, вычис- ляемых с помощью алгоритма, как функции пространства и времени. Если алгоритм может быть представлен в виде черного ящика, при построении некоторых других (более сложных) алгоритмов, то необходимо описы- вать соотношения между входными и выходными данными в вычислениях. Из решения системы уравнений выводится описание поведения алгоритма. Оно представляет систему переходных функций, которая отображает зна- чения на входе и текущие состояния . . , Хт) в значения на выходе и следующие состояния (У1г . . , Уп). Эта система функций может служить элементом для построения более сложных систем. 13.5. ПРОСТОЙ ПРИМЕР ПРОСТРАНСТВЕННО-ВРЕМЕННОГО АЛГОРИТМА* Приведем простой пространственно-временной алгоритм с соответствующей про- граммой для вычисления факториала. Для данной входной величины а программа вычисляет в качестве результата переменную fac: count <-а. fac «- 1 while count > 0 do begin fac «- fac x count: count — count — 1; end. Для любого значения t>a в следующем пространственно-временном алгоритме fac(r)=c!. Так как этот алгоритм последовательный, необходим только один процесс 1 Примеры, приведенные в данной главе, написаны на псевдокоде, напоминающем язык проектирования программ (см. например: С. Хейслер. Проектирование опера- ционных систем для малых ЭВМ. — М. Мир, 1986). Этот язык позволяет проектиров- щику, не будучи ограниченным синтаксическими формами, сконцентрировать внима- ние на функциональных спецификациях модуля. Язык не имеет формальных правил построения операторов. Переменные и операции определяются по мере надобности. Так, например, и означают операцию ’’присвоить” или ’’положить равно”. Выражения (13.2) - (13.18) представляют собой обычные математические выра- жения. В них операция х -*у понимается как ’’если х, то у ”. — Прим, перев. 231
и пространственная область вырождается в точку. Пусть 7=0, 1, 2, . . . есть времен- ная область Г t =0 сои nt (Г) = 7 I />()-> county — 1) > 0-* county - 1) — 1, county — 1)=S 0->count(t — 1), (13.2a) ft = O«-l, fac(t) =< (t>0 «- f count(t — 1) > 0 «- fac(t — 1) - county — 1), ^county — 1) =C 0 <-facy - 1). Потоками данных в этом примере являются значения переменных count и fac. Пере- менные count(t) и fac(t) имеют тип №{о, 1, 2, . . . |. Переходными в этом алгоритме являются три функции: /=(Лх-Д, Лх-1), где каждая составляющая представляет со- бой функцию-константу’; j? = (Лх-(х, - 1), Лх-(х2-х,,)) и й = (Лх-х1, Лх-х2). За- метим, что в представленном алгоритме переменная count используется для хранения числа, умножаемого на частичный результат. Объясним, почему алгоритм не написан в виде уравнения, где в вычислении факториала использована временная координата t: {t=0-* 1, /t<fl-*fac(t - l)-t, t > 0 —* i [t>c >fac(t - 1). Причина заключается в том, что переменная t существует не физически, а только в на- шем воображении и в рассуждениях относительно вычислений. Убедиться в правиль- ности работы алгоритма можно, показав, что выражения count С°У)= / > с -> 0, t — fac“y)=< a -+a!. a’. (fl-t)’. (13.2 6) t есть решение уравнения (13.2 a) (наименьшая неподвижная точка функционала правой части (13.2а)). Индукцией по г можно показать, что (13.2 6) представляет собой решение уравнения (13.2а). Заметим, что для всех t>a выполняются соот- ношения county) =count(t - 1), facy)=fac(t-1). Таким образом, область временно- го параметра может быть ограничена значением t, удовлетворяющим неравенству t <а. В общем случае система достигает установившегося состояния за время tycT, где значение /уст - наибольшее из всех значений t,-, a t- — наименьшее значение t, та- кое, что z-й поток данных в момент времени t равен t-му потоку в момент времени t - 1,т.е.1 2 1 Функции /, g и h представлены в так называемых лямбда-определениях Черча. Суть этих обозначений можно пояснить следующим примером: функция, определен- ная соотношением f(x) =2х3 + 4 в лямбда-записи, обозначается символом Лх.2х3+4. - Прим. ред. 2 В данном выражении s — пространственная координата, значение которой для рас- сматриваемого примера несущественно. — Прим, перев. 232
fycT = max { vt, [*s-(stream j(s, f) - stream^, t— 1)) = Xs - 0] : fe£l,2.и}|, где и — оператор минимизации; i — индекс потоков данных. Таким образом, алг p:nv обеспечивает вычисление функции вида Ха • fac(/yCT) = = ха • а!, т. е. алгоритм ко^Г ктно вычисляет факториал. 13.6. ПРОСТРАНСТВЕННО-ВРЕМЕННЫЕ АЛГОРИТМЫ ДЛЯ ПАРАЛЛЕЛЬНЫХ СИСТЕМ Конвейерная архитектура (см. рис. 13.2) очень похожа на систолическую тем, что в ней используются только локальные связи для устранения боль- ших задержек в распространении данных. Она имеет обычно простую для описания и анализа одномерную пространственную структуру. В отличие от систолической архитектуры в примере, представленном далее, каждая сту- пень конвейера характеризуется внутренним отстоянием. При описании сис- темы на языке Кристал вследствие явного использования временной коорди- наты это не вызывает затруднений. Далее будет приведен пространственно-временной алгоритм работы кон- вейерного (и ступеней) элемента вычисления скалярного (внутреннего) произведения (inner product element) при заданном описании аналогичного по действию одноразрядному элементу, представленному на рис. 13.5. Это конвейерное устройство должно вычислять функциюВ~ХМ+ЛВХ, гдеВ.пМ — «-разрядные неотрицательные двоичные числа и Авх — 2и-разрядное неотри- цательное двоичное число. Покажем, что элемент вычисления скалярного произведения (совокуп- ность п одноразрядных элементов и нескольких сдвиговых регистров) действительно реализует вычисление указанной функции. Символы . и + обозначают булевы операции И и ИЛИ. Пусть ф = {0, 1, 2, . . . , п] есть пространственная область изменения индексов одноразрядных элементов и Рис. 13.5. Одноразрядный элемент 233
сдвиговых регистров, a f= {о, 1, 2, . . .} — множество неотрицательных целых чисел для обозначения шагов вычислений. Так как действия этого конвейерного элемента вычисления скалярного произведения повторяют- ся, значение выражения t—s определяется в промежутке от 1 до 2п. Таким образом, пространственно-временная область для этого конвейера опреде- ляется как & = {(s, f): s е У", t е и 1 < t — s < 2п}. Значение a(s, t) представляет собой накапливаемую частичную сумму, вычисляемую одноразрядным элементом s на шаге t. Значения переменных c(s, t) и bbf.s, t) есть значение переноса сумматора и .s-й разряд сомножителя В соответственно: оба характеризуют внутреннее состояние s-ro однораз- рядного элемента. Сигнал loadfs, t) служит для занесения в переменную bbf.s, t) бита b(.s, f) сомножителя. Сигнал k(s, f) используется для обнуле- ния значений переноса и сомножителя предыдущего слова перед началом работы с новым словом. Значение k(s, t), вычисляемое в (к — 1)-м цикле, используется в качестве начального условия для к-го слова. В этом случае используются такие значения t и s, для которых t — s = 0 (эти значения не принадлежат пространственно-временной области), а не значения t и s, удовлетворяющие условию t—s=2n: а 6 [<? -► й?], (s > 0—» afs — 1, t — 1) © (bb(s, t) • mf.s — 1, t — 2)) © cfs, t — 1), a(S,'l = js = 0>Ao(/), (13.3) c e , s > 0—> -► MAJ(a(s — 1, t — 1), (bb(s, t) • mfs — 1, t — 2)), cfs, t — 1))X Xkfs — 1, r — 1) + O kfs — 1, г — 1), <13-4) s = 0 -> 1, bb = e [c?—» .^J, (bbfs, t — 1) • loadfs — 1, t — 2)+ + bfs — 1, t — 1)- loadfs — 1, t — 2)) k(s — 1, t — 1)4 + Okfs - 1, t - 1), <13-5> Is > 0— s =0— 234
Приведем описание поведения сдвиговых регистров: load e , Г (s > 0) Лft > 2)-> loadfs - 1, t - 2), (l3 6) loadfs, t) = < ft = 0 —> i, = >0->6. Следовательно, ( t = 2s—» 1, loadfs, t) =7 s < t < 2s-> ±, [2s < t < 2w + s—» 6, к e [<f-> <|, {(s > 0) Aft > 1)—> kfs — 1, t — 1), _ ft = °-* 1, (0 < t <, 2n — 1 —> 0, поэтому , , ft = s—> i, (S’ f) = |s < t < 2n + s - 1 — 0, be [<£-><], (13.8) f(s>O)A(t> l)—b(s- 1, t- 1), bfs, t) = < fO < t < n—> B(t — 1), I s = 0 -> ( I (и < t < 2n —> ±, следовательно, fs < t < w + s—>B(t — 1 — s), b(s, t) = < _ , (и + s < t < 2n + s—> ±, теИ->^], (13.9) f (s > 0) A(t > 2)-» mfs — 1, t — 2), mfs, t) = 7 fO < t < и-» M(t), I [n < t < 2и-^ 0, следовательно, ( s < t < 2s—> ±, mfs, t) = < 2s < t < n + 2s—> M{t — 2s), [ (n + 2s < t < 2n + s)—> 6. 235
Из функционального описания сдвиговых регистров (13.6) - (13.8) можно вывести функциональное описание внутреннего состояния: t = s ->(), bb(s, t) = < t = 2s-> b(s - 1, t - 1) = B(t - 1 - s) = B(s - 1), s < t <(2s — 1) V(2s < t < 2n + s — 1)—» bb(s, t — 1), t = 2« + s—>0, (13.10) ' s < t < 2s + 0 — 1 ->6, bb(s, t) = S 2s < t < 2n + s — 1 —>B(s — 1), t = 2n + s—> 6. Для доказательства корректности этого алгоритма пространственно- временную структуру вначале отобразим в другую структуру. Умножение двух и-раэрядных чисел может быть представлено операцией скалярного произведения. В дальнейшем индекс / используется для обозначения частич- ного скалярного произведения на z-м этапе, а индекс j - для обозначения /-го разряда. Пусть = {0, 1, 2,..., и}; Ж2 = {0, 1, 2,..., 2и - 1}; А и С — две функции из х А'"2 в множестве где A(i,j) = а0, i +j + 1); C(i,j) = c(i, i+j + 1). Тогда a(s, t) =A(s, t-l-s), c(s, t) = C(s, t - 1 - s). (13.11) Используя определение (13.11) и подставляя (13.9) и (13.10) в (13.3) и (13.4), получаем следующие соотношения для функций А, С, В и М: a(s, t) — yl(s, t — 1 — s) = 2s < t < n + 2s — 1 —> ->Л(5- 1, (Г — 1) — 1 — (S — 1))©(B(S- 1). • M((t — 2) — 2(s — 1)))© ©C(s,(f-l)-s), (1312> (s < t 2s — 1) V(n + 2s — 1 < t < 2n + s)—> -> A(s - 1, (t - 1) - 1 - (s - 1)) © C(s, (r - 1) - s = 0-»Ло(г), - 1 - S), 236
к. c(s, t) = C(s, t — 1 — s) = MAJ(A(s — 1, (Г — 1) — 1 — (s — 1)), (B(s - 1)- = < s >0 -> < M((t - 2) - 2(s - 1))), C(S (Г - 1) - 1 - S)), 5 = 0—1 (s < t <: 2s — 1) V (и + 2s — 1 < t 2n + s)—> ->MAJ(A(s - 1, (t - 1) - 1 - (s - 1)), 0, C(s, (t - 1) - 1 - s)), 7 = 2n + s — 1 —> 6, (13.13) Пусть i =s и j =t — 1 —s; подставляя эти значения в (13.11) и (13.12), по- лучаем (i — 1 < j < п + i — 1 —> ->A(i- l,j)@(£(i- 1), (0 <j < 1 - l)V(n + i - 1 < j < 2n) — -+A(i- l,j)@C(i,j- 1), J = 0^W), i — 1 < j < n + i — 1 —> ->MAW - l,j), (B(i — — (i - 1))), C(i,j - 1)), C(i, j) = < i > 0 -» < (0 < j < i — 1) V(« + i — 1 <j<2n — 1)—> -+ MAJ(A(i - 1,J), 0, C(i,J - 1)), j = 2n - 1 — 6, (13.15) Если значение индекса j в последних двух уравнениях не принадлежит множеству^, то следует понимать, что (2«+/)-й разряд предыдущего слова вычислен в конвейере. Теперь переходим к доказательству того, что (13.14) и (13.15) представляют собой алгоритм вычисления скаляр- ного произведения двоичных представлений положительных чисел. Пусть х(Л), у (к) и z (к) для к = 0, 1, 2, . . . , п — 1 являются двоичными представлениями целых х, у и z соответственно. Рекуррентная формула для сложения двоичных чисел z =х +у имеет вид 237
z(A') = y(k) Ф x(k) © w(A- - 1), w(fc) = MAJ(y(/c), x(fc), w(k - 1)) для к = 0, — 1; z(n) = w(n — 1), (13.16) где w(/c) - разряды переноса; w( 1) =0. Заметим, что булева функция ’’Исключающее ИЛИ” в действительнос- ти представляет гобой функцию сложения разрядов по модулю 2, а функ- ция MAJ есть функция взятия наибольшего целого (деление нацело) сум- мы разрядов, деленной на 2 так, что Ак) = (у(А.) + х(/с) + w(A — l))(mod 2), w(k) = (у(к) + x(fe) + v/(k - 1)) 2 (13.17) Индукцией по п можно показать, что Е 2‘z(/c) = ПЕ2кх(к) + Z 2*y(fc). к = О к - О к = О Благодаря конечности разрядной сетки машин обычно z =х + д'(mod 2”) представляет собой выполнимую операцию. Эта операция определяется аналогично операции z(A) = у(А) © х(А) © w(k — 1) для к = 0, 1, ..., п — 1, w(k) = MAJ(y(fc), х(/с), v/(k — 1)) для к — 0, 1, ..., п — 2 и w( — 1) = б, z(n) = w(n — 1) = б. (13.18) Для конвейерного элемента вычисления скалярного произведения не- обходимо показать, что 2л- I Е 2JA(n,j) = ГО п - 1 и—1 2л - 1 \ £ 2*Z?(fc) х £ 2к М(к) + X 2М0(Д (mod 22"). ,k = o к —О j = O / Поскольку и — 1 и—1 2л — 1 Е 2кВ(к) х X 2k W) + Е 2М0(Д = k — 0 к=О j=O л 1 / л- 1 \ 2л-1 = Е 2'В(0 х Е 2W) + Е 2М0(Д = i = O \ к = о / j = O Л-1 2л-1 = Е di + Е 2J A0(j), i=O J=o где 238
dt = 2‘B(i) x £ 2kM(k) = £ 2}M(j - i)B(i) = fc-0 j-i 2n — 1 £ 2M0(/) + d j = o = p„ (n-e частичное произведение); Pi = Pi i+di t; i = 1, 2, ..n; p0 = X 2M0(j). j о Индукцией no i с использованием (13.16) можно легко показать, что 2л 1 р, (mod 22") = £ 2JA(i,j) j=o и поэтому t 2'A(n,j) = р„ (mod 22")~ j = o = ("^2кВ(к) х П^2кМ(к) + £ 2M0(j)) (mod 22"). \* = 0 * = 0 7 = 0 / Тем самым доказана корректность конвейерного алгоритма. Это дока- зательство отличается от представленного в [3] доказательства для сис- толических матриц. В нашем доказательстве пространственно-временные координаты отображаются в индексы, обозначающие этапы вычисления скалярного произведения и разряды чисел. Это было сделано потому, что эти индексы более удобны для выражения произведения в виде по- следовательности разрядов. Введем обозначения 2И-1 . • 2И-1 . ^вых= S 2/Л(щ/),Лвх = S 2М0(/), 7=0 7=0 В=\1 2к В (к), к=о М= \ 12кМ (к). к=о С учетом этих обозначений конвейерный алгоритм может быть описан функцией Лвых =АВХ + ВХМ. Типом данных является конечное целое, а не отдельный разряд. На следующем уровне проектирования элемент вычисления скалярного произведения может быть использован без де- тального описания, а только в виде функционального элемента. 239
13.7. ЗАКЛЮЧЕНИЕ Мы представили структуру описания общих нелинейных систем с па- мятью. Существенной частью семантики является методология абстракт- ного описания функционирования систем, позволяющая использовать их в качестве составляющих на более высоких уровнях описания. Семан- тика данной системы состоит из: 1) функции отображения входных значений абстрактного типа данных (например, ограниченных целых) во входные значения переменных, при- сущих средствам реализации системы (например, область индексов i и j в представленном выше примере или пространственно-временную об- ласть) ; 2) функции, которые являются решением системы рекуррентных урав- нений, описывающих систему; 3) функции отображения выходных значений переменых, присущих области реализации системы, в значения абстрактного типа данных, ис- пользуемых в абстрактных средствах описания функционирования сис- темы. С инженерной точки зрения функции отображения ’’вход-выход” явля- ются точным описанием интерфейса для систем. Эта методология может быть использована для любых систем: линейных, нелинейных, изменяемых во времени, инерционных. Полагаем, что она впер- вые обеспечивает унифицированный подход, позволяющий осуществить । проектирование в широком диапазоне систем: от компьютерных программ к транзисторным схемам, от транзисторных схем к высокоуровневым процес- сорам. СПИСОК ЛИТЕРАТУРЫ [1] J. Backus, “Can Programming Be Liberated from the von Neumann Style? A Function- al Style and Its Algebra of Programs,” Commun. ACM, 2/(8):613-641 (Aug. 1978). [2] R. E. Bryant, A Switch-Level Simulation Model for Integrated Logic Circuits, Massachu- setts Institute of Technology, Cambridge Mass., Mar. 1981. [3] M. C. Chen, “Space-Time Algorithm: Semantics and Methodology,” Doctoral disserta- tion, Computer Science Department, California Institute of Technology, May 1983. [4] A. B. Cremers and T. N. Hibbard, “Formal Modeling of Virtual Machines,” IEEE Trans. Software Eng., 4:426-436 (1978). [5] E. W. Dijkstra, “Cooperating Sequential Processes,” in F. Genuys, ed., Programming Languages, Academic Press, New York, 1968, pp. 43-112. [6] C. A. R. Hoare, “Communicating Sequential Processes,” Commun. ACM,. 21(8):66&-6П (Aug. 1978). [7] J. J. Horning and B. Randcll, “Process Structuring,” Comput. Sun., 5(l):5-3O (Mar. 1973). [8] H. T. Kung and С. E. Leiserson, “Algorithms for VLSI Processor Arrays,” in C. Mead and L. Conway, introduction to VLSI Systems, Addison-Wesley, Reading, Mass., 1980, Chap. 8.3. [9] R. F. Lyon, “Two’s Complement Pipeline Multipliers,” IEEE Trans. Cpmmun., COM- 24:418 425 (1976). 240
[10] Z. Manna, Mathematical Theory of Computation, McGraw-Hill, New York, 1974. [11] C. Mead and L. Conway, Introduction to VLSI Systems, Addison-Wesley, Reading, Mass., 1980. [12] R. Milner, Models of LCF, AIM-186/CS-332, Computer Science Department, Stanford University, 1973. [13] J. L. Peterson, Petri-net Theory and the Modeling of Systems, Prentice-Hall, Englewood Cliffs, N.J., 1981. [14] C. A. Petri, “Kommunikation mit Automaton,” Doctoral dissertation, University of Bonn, Bonn, West Germany, 1962 (in German); also MIT Memorandum MAC-M-212, Project MAC, MIT, Cambridge, Mass. [15] D. Scott, Outline of a Mathematical Theory of Computation, Oxford Monogr. PRG-2, Oxford University Press, Oxford, 1970. [16] D. Scott and C. Strachey, in J. Fox, ed., Toward a Mathematical Semantics for Computer Languages, Polytechnic Institute of Brooklyn Press, New York, 1971. [17] I. Sutherland and C. Mead, “Micro-electronics and Computer Science,” Sci. Am., 237(3) :210 229 (Sept. 1977). [18] J. Wawrzynek and T. M. Lin, A Bit Serial Architecture for Multiplication and Interpola- tion, 5067:DF:83, Computer Science Department, California Institute of Technology, January, 1983. 14 ОБЗОР СПОСОБОВ ПРЕДСТАВЛЕНИЯ СИГНАЛОВ В ПРОГРАММАХ Г. Конец' 14.1. ВВЕДЕНИЕ Исследования в области методологии программирования в вычислитель- ной технике привели к тому, что основная деятельность при разработке хорошо структурированных программ состоит в выделении абстракций [1]. В частности, различают два вида абстрактных понятий: абстрактные операции и абстрактные типы данных [1 — 4]. Понятие ’’абстрактные опера- ции” соответствует понятию процедуры или подпрограммы, которое прису- ще современным языкам программирования. Понятие абстрактных типов данных включает в себя множество объектов и множество простейших операций для создания и действия с этими объектами. Примерами обыч- ных абстрактных данных являются числа с фиксированной и плавающей запятой, строки символов, массивы, записи, очереди с приоритетами и по- токи ввода-вывода [4]. Цифровая обработка сигналов основана на хорошо известных соотноше- ниях математической теории, которые непосредственно используются при 1 Лаборатория исследований искусственного интеллекта фирмы Fairchild, Пало Альто, Калифорния. 241
разработке программы. Возможно, основной особенностью этой теории является то, что центральную роль в ней играют понятия сигнал и система. Это наводит на мысль о том, что хорошо структурированная программа обработки сигналов должна быть организована как совокупность абстракт- ных понятий ’’сигнал” и ’’система”, а ’’язык программирования алгоритмов обработки сигналов” должен обеспечивать определенную поддержку таких абстрактных понятий. Прежние попытки определения языков обработки сигналов основыва- лись на двух главных моделях вычислений при обработке сигналов: модели- ровании следующего состояния [5] и обработке массивов. Моделирование следующего состояния является основной вычислительной моделью в язы- ках программирования блок-схем [5 — 12], таких как BLODI [6 — 8] и PATSI [5]. Обработкой массивов называется большая и плохо определен- ная совокупность методов вычислений, в которых используются явно выде- ленное ядро вычислений и адресная арифметика, характерные для большин- ства алгоритмов обработки сигналов. Часто алгоритмы обработки сигналов состоят из небольшого числа таких ядер — основных вычислительных про- цедур [13 — 15], неоднократно применяемых к различным множествам аргументов. Порядок выполнения этих процедур и пути передачи данных между ними не зависят от значений данных. Эта алгоритмическая струк- тура используется при создании аппаратуры высокопараллельной матричной обработки [16] и эффективного по времени выполнения программного обеспечения [13—15]. Моделирование следующего состояния и матричная обработка являют- ся удачными видами обработки лишь для некоторых прикладных задач. Ни одна из этих моделей не пригодна для проектирования эффективных универсальных систем обработки сигналов. Подробное обсуждение ограни- чений, присущих этим моделям, можно найти в [17]. Основной проблемой является то, что с помощью языков блок-схем и обработки массивов дела- ется попытка моделировать системы с дискретным временем как абстракт- ные процедуры с общей алгоритмической структурой. К сожалению, класс ’’алгоритмов обработки сигналов” становится все более и более разно- родным. Это обстоятельство вместе с растущим признанием полезности понятия абстрактных данных наводит на мысль об исследовании других воз- можностей — языка обработки сигналов, в котором дискретные сигналы и системы принимают форму специализированных абстрактных данных [17 — 21]. В этой главе рассматривается три подхода к представлению дискретных сигналов как абстрактных данных. Два из них — представление в виде по- токов и массивов — широко используются в современном программирова- нии обработки сигналов. Третье представление было введено в предложен- ном недавно языке SRL [21]. Язык SRL (signal representation language) — язык представления сигналов, в котором дискретные сигналы принимают форму абстрактных объектов, явно выражающих свойства представленных ими реальных сигналов. Массивы, потоки и объекты представления сигналов языка SRL обсуждаются исходя из нескольких критериев представления 242
сигнала, основанных на простых математических свойствах сигналов. Среди этих трех способов представления только объекты представления сигналов языка SRL удовлетворяют всем требованиям. Основной материал этой главы распределен следующим образом. В разд. 14.2 приводится совокупность критериев представления сигнала. Эти критерии использованы в разд. 14.3 — 14.5 для описания характеристик по- токов, массивов и объектов представления сигнала языка SRL; в разд. 14.3 дается обзор использования потоков в языках блок-схем. В разд. 14.4 обсуж- даются массивы. Разд. 14.5 посвяшен языку SRL. 14.2. ТРЕБОВАНИЯ К СПОСОБУ ПРЕДСТАВЛЕНИЯ СИГНАЛОВ Множество требований, предъявляемых к способу представления сигна- лов, продиктованы тремя простыми математическими свойствами дискрет- ных сигналов. Дня простоты и конкретности будем устанавливать зти тре- бования для многомерных дискретных сигналов вида f : [О, Nv) х • х [0, (14.1) где [0, Nj) — множество целых чисел 0, . .. , TV,- — 1; 3? — множество вещест- венных чисел. Первое свойство сигналов — их постоянство. Когда сигнал преобразуется в дискретной системе, результатом является новый сигнал, а не модифика- ция исходного. Например, сумма двух сигналов Xj и х2 есть третий сигнал, чьи компоненты связаны с Xi их2 отношением х3(и) =Х1(и) + х2(п). Математическое постоянство сигналов означает, что в программе сигналы должны быть представлены как неизменные объекты [22]. Наблюдаемые свойства объектов представления сигналов должны быть установлены сра- зу же при их описании и остаются с этого времени неизменными. Абстракт- ное представление сигналов не должно содержать операции, которые могут быть использованы для изменения наблюдаемых свойств сигнала. Второе свойство сигналов касается черт, отличающих один сигнал от дру- гого. По определению, два вещественных сигнала равны, если они имеют одну и ту же область определения и их значения равны в каждой точке этой области. Поэтому, если Xj и х2 — сигналы, определенные в области S), то Xi =х2 тогда, и только тогда, когда Xj (и) = х2 (и) для каждого значения «Ей. Идентификация сигналов осуществляется только путем идентификации их областей определения и значений отсчетов. Воплощением наблюдаемого свойства в абстрактные данные являются операции запроса (inquiry operation) [23]. Операции запроса типа данных представляют собой простейшие операции, используемые для извлечения информации об объектах этого типа. Они определяют различимые признаки, с помощью которых можно отличить друг от друга элементы данного типа. Математическое определение равенства сигналов означает, что операции 243
запроса абстрактных сигналов будут содержать функцию, идентифицирую- щую область определения сигнала, и функцию, которая дает значение произ- вольного отсчета. В частности, необходимы две операции: dimension (размер- ность) и fetch (выборка), которые удовлетворяют следующим специфика- циям. Если х — сигнал вида (14.1) и </> — абстрактный объект, представляю- щий х, то (dimension ) = (N 2.., Nm), (fetch </> i„ ..., im) = x(i15..., im) для каждого значения (ilt... ,im)G S’. Третье свойство дискретных сигналов касается способа задания сигналов в обычном математическом представлении. Класс сигналов часто определя- ется выражением для значений отсчетов типичного сигнала этого класса. Это выражение содержит несколько ’’свободных” параметров, которые характеризуют пространство представляемых сигналов. Каждый сигнал в этом классе соответствует определенному набору значений параметров. Например, синусоидальная волна может быть определена как сигнал, зна- чением которого для каждого п является хш. <р («) = sin (со • п + <р), (14.2) где со и — частота и начальная фаза волны соответственно. Конкретная синусоидальная волна характеризуется своими конкретными значениями со и р. Математическое представление сигналов наводит на мысль о том, что объекты представления сигнала в программе могут быть сгруппированы в классы, каждый из которых ассоциируется с параметрической процеду- рой вычисления значений любого отсчета каждого сигнала класса. Конкрет- ный сигнал класса должен создаваться присваиванием этим параметрам конкретных значений. Понятие создания сигнала путем присвоения значений параметрам подобно понятию создания функционального замыкания (func- tion closure) [24, 25]. Установленные три требования — неизменность, существование мно- жества операций запроса и возможность задания классов сигналов — будут использованы в последующих разделах для оценки свойств потоков, мас- сивов и объектов представления сигналов языка SRL. 14.3. ПОТОКИ И ЯЗЫКИ БЛОК-СХЕМ Понятие потока или очереди FIFO (first in — first out — первым при- шел — первым обслужен) хорошо известно большинству программистов, хотя, возможно, не как тип данных. Потоки обычно используют для обеспе- чения последовательного доступа к элементам набора данных. Например, во многих современных языках программирования они служат основным средством ввода-вывода файлов [4, 26, 27]. Потоки часто используются для связи между параллельными процессами [28 — 30]. Например, конвей- ерный комбинатор операционной системы UNIX допускает квазипараллель- 244
(make-stream) (stream-put val x) (stream-get x) (stream put-eos x) (stream-is-empty x) ; создать новый (пустой) поток '.присоединить элемент к концу потока : удалить начальный элемент ; присоединить маркер конца потока : проверить присутствие элемента 6 потоке Рис. 14.1. Операции над абстрактными простыми потоками ное выполнение отдельных программ, которые связаны через потоки в ли- нейные ’’сборочные линии”. В цифровой обработке сигналов для метода моделирования следующего состояния потоки являются естественной формой представления сигнала. В этом разделе рассматриваются понятие потока и его использование в ме- тоде моделирования следующего состояния. Обсуждение проводится на простых абстрактных потоках и на отдельных примерах программ на язы- ке Лисп. 14.3.1. Абстрактный простой поток На рис. 14.1 показано частичное множество операций для абстрактного простого потока. Операция make-stream (создать поток) создает новый поточный объект. Операция stream-put (добавить в поток) присоединяет элемент к концу потока, а операция stream-get (исключить из потока) уда- ляет элемент, находящийся в начале потока. Операция stream-put-eos присое- диняет специальный маркер конца потока к концу потока. Если операция stream-get выдает маркер конца потока сигналов, то поток не содержит других элементов. Операция stream-is-empty (поток пуст) является предика- том и выдает значение true (истина), если поток в данное время не содер- жит элементов. 14.3.2. Моделирование следующего состояния Метод моделирования следующего состояния является обобщением пред- ставления линейных динамических систем в пространстве состояний. Система реализуема в виде этой модели, если она может быть представлена сле- дующей системой уравнений: Mn + 1) = -^*(si(«), sN(n), x,(n),..., xM(ri))t k = 1,..., N, yp(n) = ^p(si(n),...,sN(n),x1(n),...,xM(ri)), (14.3) MO) = s°, A = 1, ...,N гдеХ1 .... ,xM,yx, . . . ,ур и Sj ,. . . ,sN — последовательности входа, выхода и отстояния соответственно. Функции . . . , и ,.. . ,tfP являются функциями изменения состояния и наблюдения, а значения s? — началь- ными условиями. Выражения (14.3) предлагают алгоритм вычисления выходных значений моделируемой системы, используя потоковые представления для последо- вательностей входа, выхода и состояния. Выходные отсчеты вычисляются 245
(defprimtype adder :inputs (x1 x2) :outputs (y) :fire. (stream-put (+ (stream-get x1) (stream-get x2)) У)) a) (defprimtype scalor linputs (x) :outputs (y) parameters (a) :fire (stream-put (* a (stream-get x)) У)) 6) (defprimtype unit-delay .inputs (x) :outputs (y) :state (s) parameters (initial-value) :init (s am-put initial-value s) :fire (progn (stream-put (stream-get s) y) (stream-put (stream-get x) s))) 6) Рис. 14.2. Определение элементарных ти- пов блоков: а — сумматора; б — блока масштаби- рования; в — элемента задержки в порядке увеличения индексов отсчетов (т. е. п = 0, . ..) по мере последо- вательных прохождений через тело основного цикла. В течение каждого про- хода отсчеты Si (и),.. . ,sN(n) и Xj (и), . . . ,хм(п) извлекаются из пото- ков состояния и входа. Далее процедуры, которые вычисляют S' S'N и . . . , применяются к этим значениям для получения Si (п+ 1), . . . . . . ,$уу(и+1) и у! (и), . . . ,ур(п). Наконец, вычисленные значения присое- диняются к потокам состояния и выхода. Этот цикл повторяется.для каж- дого множества входных отсчетов. Перед началом цикла начальные условия присоединяются к потокам состояний. 14.3.3. Языки блок-схем Языки программирования блок-схем основаны на реализации систем ме- тодом моделирования следующего состояния по ранее описанному алгорит- му. В общем случае язык блок-схем даст множество элементарных систем с дополнительными возможностями для описания цепей из этих систем и ви- дов их реализации. На рис. 14.2 показаны три типа простых блоков (adder — сумматор, scalor — блок масштабирования и unit-delay — элемент задержки), в которых исполь- зуется описание типа defprimtype гипотетического языка блок-схем, основан- ного на языке Лисп. Средства этого языка типичны для реальных языков блок-схем. Первым аргументом в описания типа defprimtype является имя, определяющее тип блока. Определение блока adder с двумя входами и одним выходом приведено на рис. 14.2,а. Операторы-.inputs и :outputs описания указывают, что вход- ные и выходные порты блока adder названы х1, х2 и у соответственно. Эти порты ’’связаны” с потоками при создании экземпляра блока adder. Опера- тор :fire определяет тело процедуры без параметров, называемой методом срабатывания (fire method), которая вызывается в течение каждого прогона 246
через вычислительный цикл модели следующего состояния. Метод срабаты- вания блока служит для вычисления функции изменения состояния и наблю- дения и выполнения операции ввода-вывода над потоками, связанными с портами блока. При реализации метода срабатывания блока adder два элемен- та извлекаются из входных потоков х1 и х2 и сумма этих элементов добав- ляется к выходному потоку у. На рис. 14.2,6 показана реализация блока масштабирования с одним вхо- дом и одним выходом (усилителя с постоянным коэффициентом усиления) . Этот пример иллюстрирует понятие параметризации блока. Необязательный элемент: parameters показывает, что класс блоков типа scalor параметризует- ся значением ”а” — коэффициентом усиления блока. Значение этого парамет- ра задается всякий раз, когда создается экземпляр блока типа scalor. Блоки adder и scalor являются примерами систем без памяти, в которых не используется последовательность состояний. На рис. 14.2,в показано, как с помощью потока состояний реализуется память в блоке задержки unit-delay. Реализация задержки в модели следующего состояния имеет вид s (п + 1) = х (п), у(п) = s(n), s(0) = s°, где функции изменения состояния и наблюдения являются тождественными. С помощью метода срабатывания блока unit-delay извлекаются значения s (л) и х(п) из потоков состояния и входа и добавляются к потокам состоя- ния и выхода соответственно. Начальное значение s° (параметр) добавляет- ся к потоку состояния блоком unit-delay с функцией, называемой метод ини- циализации (unit method), которая вызывается при создании экземпляра блока unit delay. Предшествующие примеры иллюстрируют определение блоков элементар- ных типов посредством явного определения метода срабатывания на универ- сальном языке программирования. Последний пример этого раздела иллю- стрирует определение цепи блок-схем как взаимно связанной совокупности экземпляров блочных операторов. В типичном языке блок-схем метод сра- батывания для цепи косвенным образом генерируется компилятором, ко- торый собирает блоки-компоненты в соответствии с топологией цепи. На рис. 14.3 показана блок-схема простого трансверсального фильтра пер- вого порядка, описываемого уравнением у(п) =х(п) +а-х(п — 1). (14.4) Реализация этого фильтра с помощью гипотетического оператора описа- ния цепи defnettype дана на рис. 14.4. Как видно из этого рисунка, цепь first-order-filter (фильтр первого порядка) содержит четыре части, которые являются экземплярами типов блоков adder, fork, scalor и unit-delay соответ- ственно. (блок fork — ветвление — просто копирует отсчеты из своего вход- ного порта на оба выходных порта). Свойства каждого компонента цепи определяются формой part. Первым аргументом формы part является имя, приписываемое экземпляру блока. Вторым аргументом является тип блока. 247
Рис. 14.3. Структурная схема фильтра первого порядка (defnettype first-order-filter : inputs (x) :outputs (y) parameters (a) init (progn (part adder 'adder) (part fork ’fork) (part scalor 'scalor a a) (part delay unit-delay 'initial-value 0.0) (connect (» x) (» x fork)) (connect (»y1 fork) (» x1 adder)) (connect (» у adder) (» y)) (connect (» y2 fork) (» x delay)) (connect (» у delay) (» x scalor)) (connect (» у scalor) (» x2 adder)))) Рис. 14.4. Определение типа цени фильт- ра первого порядка Оставшиеся аргументы определяют значения каждого параметра блока. На- пример, запись (part задержка 'unit-delay' initial-value 0.0) показывает, что каждый экземпляр цепи фильтра содержит блок типа unit-delay с именем ’’за- держка” и параметром initial-value, равным 0.0. Форма connect показывает, как определенные пары портов блока должны быть связаны между собой че- рез поток. Запись (» fork) читается как ’’(порт) у1 (части) ветвления fork текущего блока”. 14.3.4. Обсуждение потоков и языков блок-схем Здесь обсуждаются свойства потоков и операторов блок-схем по отноше- нию к каждому из критериев представления сигнала. Операции запроса. Потоковые операции запроса (stream-get и stream-is-empty) не обеспечивают идентификации области определения, так как ’’длина” по- тока не является хорошо определенным понятием. Если дан потоковый объ- ект, то единственным способом определения длины представляемого им сиг- нала является только повторный вызов операции stream-get до тех пор, пока не встретится маркер конца потока. Эта стратегия не будет иметь успеха, ес- ли предварительно не была выполнена операция stream-put-eos. Строго последовательный доступ, обеспечиваемый операцией stream-get, не удовлетворяет требованию возможности получения значения произвольного отсчета сигнала. Отсутствие произвольного доступа делает потоки неудоб- ными для таких алгоритмов, как БПФ, которые не реализуются методом мо- делирования последующего состояния. Кроме того, последовательные пото- ки не соответствуют общему представлению многомерных сигналов, так как не существует единого порядка доступа, который был бы удобен для всех (или для большинства) многомерных систем. Порядок., в котором вычис- ляются отсчеты многомерного сигнала, затрагивает весьма важные показате- ли качества системы, такие как размерность ее пространства состояний, шум квантования, коэффициент чувствительности и возможный параллелизм арифметических операций [32]. 1248
Неизменность.Каждый вызов операции stream-get изменяет ’’следующий” элемент из потока. Так как последовательные вызовы операции stream-get из- меняют различные элементы, то потоки, очевидно, являются изменяемыми объектами. Тем не менее, поскольку каждый элемент потока концептуально соответствует различным отсчетам представленного сигнала, ясно, что каж- дый отсчет сигнала имеет то же самое значение в каждый момент наблюде- ния. Однако принципиальная изменчивость потоков нарушает критерий неиз- менности сигнала. Классы сигналов. Понятие типа блока подобно понятию класса сигналов. Основное различие, конечно, состоит в том, что блоки являются, скорее, сис- темами, а не сигналами. Тем не менее системные блоки иллюстрируют общий тип средств, требуемых для описания классов сигналов. Например, очень важным аспектом блока элементарного типа является его метод срабатыва- ния. Он представляет собой процедуру вычисления выходных отсчетов лю- бого блока в классе блоков. Экземпляры индивидуальных блоков отлича- ются значениями их параметров и потоками, с которыми они связаны. 14.4. МАССИВЫ И ИХ ОБРАБОТКА Под обработкой массивов в общем случае подразумевается большой на- бор способов реализации алгоритмов, в которых используются явно выде- ленное ’’вычислительное ядро” и адресная арифметика, характерная для многих алгоритмов обработки сигналов. В более общем случае термин мо- жет быть применен к любому виду вычислений, в которых дискретные сигналы представлены массивом значений элементов. При таком расши- ренном определении языки обработки массивов включают много того, чего нет в языках специализированных процессоров, таких как FANLZ [11] и ILS [33]. Кроме того, расширенное определение включает в себя многие способы реализации алгоритмов обработки сигналов, используемых обычно в универсальных языках, таких как Фортран. В данном разделе об- работка массивов рассматривается в указанном широком смысле. Как в случае потоков, свойства массивов в свете критериев представления сигна- лов будут установлены со ссылкой на специальное абстрактное определение массива и пример оператора обработки массива. 14.4.1. Абстрактный простой массив Понятие массива как типа данных есть во всех современных языках про- граммирования. На рис. 14.5 показан набор типичных (среди существую- щих) операций для простого многомерного абстрактного массива. Опера- ция allocate-array (создать массив) предназначена для создания нового мас- (allocate-array dimensions) (array-dimensions х) (array-fetch х i-1.. .i-m) (array-store val x i-1.. .i-m) ; создать наВый массив Выдать список границ аргументов : брать определенный элемент ' пропить определенное значение Рис. 14.5. Операции над абстрактными простыми массивами 249
(defun array-add (x1 x2 y) (loop with n = (first (array-dimensions x1)) for i from 0 below n do (array-store (+ (array-fetch x1 i) (array-fetch x2 i)) У •))) Рис. 14.6. Простой оператор над массивами сива объектов, размерность которого и границы содержатся в списке. Элементы массива, задаваемого списком (/У), . .. ,7Vm), имеют индексы ii,... ,im, где [0,Nk]. Операция array-dimension предназначена для вы- дачи списка, содержащего границы аргументов этого массива. Операция array-fetch служит для выдачи значения элемента массива, а операция array- store — для изменения значений элементов. Типичный оператор обработки массивов показан на рис. 14.6 в форме простой процедуры языка Лисп. Функция array-add ставит в соответствие каждому элементу массива у сумму определенных элементов массивов Xi и х2. Эта процедура является обычной в универсальных языках программиро- вания при обработке массивов. 14.4.2. Обсуждение массивов Операции запроса. Операции array-fetch и array-dimension удовлетворяют требованиям, предъявляемым к операциям запроса сигналов. Неизменность. При выполнении операции array-store изменяются элементы массива и тем самым нарушается критерий неизменности сигнала. Изменяе- мость содержимого массивов часто используется в методе вычислений с за- мещением [34] — методе уменьшения требуемого объема памяти програм- мы путем использования некоторой локальной памяти как для входных, так и для выходных данных. Требование неизменности сигнала означает, что в алгоритме с замещением не могут быть использованы массивы, содер- жимое которых представляет собой дискретные сигналы. Классы сигналов. Абстрактные массивы не соответствуют понятию пара- метризованного класса сигналов. Представление в виде массива некоторого конкретного сигнала получается лишь при хранении численных значений от- счетов сигнала в массиве. При таком представлении отсутствует информация о соотношении этих значений или о том, как они будут вычисляться в зависи- мости от отсчетов других сигналов. Хотя различные сигналы могут быть созданы с помощью общей процедуры (например, array-add), отсутствует механизм для явного указания этой общности. Матричные операции, такие как array-add, не играют ту хорошо определенную роль, которая аналогич- на роли методов срабатывания операторов блок-схемы. 14.5. ЯЗЫК ПРЕДСТАВЛЕНИЯ СИГНАЛОВ Основные понятия и средства языка SRL мотивированы свойствами сиг- налов, приведенными в разд. 14.2. Основным действием при программиро- вании на языке SRL является реализация сигнальных типов. Сигнальный тип есть представление класса сигналов посредством процедуры вычисления зна- 250
чений отсчетов. Экземпляры сигнальных типов создаются заданием значе- ний свободных переменных этой процедуры. Основные очевидные свойства сигнала — это размерность и границы его области определения и значения отсчетов. Объекты сигналов представления неизменны, так что зти свой- ства остаются фиксированными после формирования сигнала. 14.5.1. Операции запроса сигналов Список основных операций запроса над сигнальными объектами в языке SRL показан на рис. 14.7. Эти операции подобны операциям над массивами. При выполнении операции signal-dimensions выдается список, содержащий границы аргументов. Операция signal-fetch служит для выдачи отсчетов (мно- гомерного) сигнала, индексами которых являются i — 1, • . ., i — п. В принципе, доступ к элементу, обеспечиваемый операцией signal-fetch, дос- таточен для получения значений отсчетов каждого сигнала. На практике тем не менее возникает проблема, так как этот доступ не совместим непосред- ственно с алгоритмами, такими как БПФ, которые ориентированы на обра- ботку массивов. Хотя основной подход к устранению этого несоответствия легко определить (например, с использованием буферов), детальное форми- рование стратегии требует обсуждения ряда трудных вопросов. Например, может оказаться непрактичным постоянно назначать отдельный массив каж- дому сигналу, который требует массива для его буферизации. С другой сто- роны, желаемая неизменность сигналов может нарушиться, если один и тот же массив использовать для буферизации отсчетов двух или более сигналов. Важным аспектом языка SRL является порядок доступа к массиву, кото- рый позволяет использовать память многократно без изменения сигна- ла [21]. Оператор with-signal-values представляет собой запрос для получения мас- сива, содержащего отсчеты сигнала. Тело этого оператора есть совокупность выражений, требующих доступа к отсчетам сигналов sig-1,. .. ,sig-n. В языке SRL тело оператора выполняется после связывания локальных переменных var-1,... ,var-n с массивом, содержащим запрашиваемые отсчеты. Массивы распределяются и переназначаются автоматически средствами языка SRL. Размерность и границы каждого такого массива совпадают с размерностью и границами сигнала, так что массив содержит все отсчеты сигнала. Доступ пользователя к массиву значений сигнала внутри тела оператора подчиняет- ся следующим ограничениям: 1) массив значений сигнала должен рассматриваться как временный объект, который ’’исчезает”, когда вычисление тела закончено; поэтому (signal-dimensions signal) (signal-fetch signal i-1 ... i-n) (with-signal-values ((var-1 sig-1) (var-n sig-n)) body) ; Выдать список границ аргументов ; Выдать Выделенное значение отсчета ; заголовок процедуры обработки массива Рис. 14.7. Операции запроса сигнала в языке SRL 251
он не должен быть частью некоторой структуры данных, которая доступна извне оператору with-signal-vahies; 2) массив значений сигнала может рассматриваться как доступный толь- ко на чтение и не должен модифицироваться каким-либо образом. Напри- мер, операции, которые изменяют значения элементов массива или размер- ность и границы массива, запрещены. Цель этих ограничений состоит в поддержке разнообразных стратегий управления массивом. Например, первое ограничение допускает стратегию эффективного использования пространства, основанную на стековой орга- низации памяти. Аналогично второе ограничение позволяет с помощью опе- ратора with-signal-values сохранять массив значений сигнала после генерации, если требуется повторное использование отсчетов конкретного сигнала. 14.5.2. Определения сигнальных типов Главной задачей программирования на языке SRL является реализация сигналов. В основном, реализация тина включает в себя поддержку механиз- мов для вычисления размерностей и границ и отсчетов сигналов каждого ти- па. Понятие типа сигнала подобно классу (class) языка Smalltalk [33—37] или объекту (flavor) языка Zetalisp [38]. На рис. 14.8 показано использование описания типа defsigtype — оператора определения типа сигнала в языке SRL — для определения нескольких прос- тых классов сигналов. Первый аргумент описания defsigtype есть имя, опреде- ляющее тип; остальные аргументы состоят из чередующихся ключевых слов и значений, указывающих множество различных необязательных свойств, присущих сигналам этого типа. На рис. 14.8,а показана реализация оператора описания типа sine-wave-signal — класса сигналов, определенного выражением (14.2). Необязательный эле- мент :parameters оператора defsigtype определяет имена параметров, которы- ми различаются конкретные сигналы данного типа. Параметрами оператора sine-wave-signal являются его частота (omega), начальная фаза (phi) и грани- цы массива (dimensions). Необязательный элемент zfinder указывает имя, которое будет присвоено автоматически генерируемой функции, называемой определителем сигнала (signal finder), выдающей тип сигнала. Аргументами этой функции явля- (defsigtype sine-wave-signal parameters (omega phi dimensions). zfinder signal sine-wave zfetch ((n) (defsigtype sum-signal (sin (+ (* omega n) parameters (x1 x2) zfinder signal sum zinit (setq-my dimensions (min Phi)))) Рис. 14.8. Определение простых ти- пов сигналов в языке SRLz а — синусоидальная волна; б — суммарный сигнал 252 zfetch ((п) (+ (signal-fetch х1 п) (signal-fetch х2 п)))) (signal-dimensions x1) (signal-dimensions x2)))
ются значения параметров сигнала. Например, представление для 512 отсче- тов синусоидальной волны с частотой .1 и начальной фазой 0.0 выдается с помощью вызова определителя в виде (signal-sine-wave. 1 0.0 (512)). Важной характеристикой определителя сигнала является то, что он под- держивает сигнальную базу данных, которую создал, выдавая те же самые виды сигналов в любое время при вызове с заданным набором аргументов. Это соответствует интуитивному требованию, согласно которому каждому набору параметров соответствует свой сигнал. Необязательный элемент zfetch определяет список аргументов и имя пара- метризованной процедуры, называемой методом выборки (fetch method), предназначенной для выдачи отсчетов любого сигнала в определяемом классе. Метод выборки вызывается общей операцией запроса signal-fetch. Параметры сигнала доступны как свободные переменные внутри тела метода выборки. Метод выборки типа sine-wave-signal является непосредственной реализацией выражения (14.2). Определение типа sine-wave-signal характерно для способа представления генераторов (без входов) сигналов в языке SRL. На рис. 14.8,6 показана реализация класса sum-signal — простой комбинации двух сигналов. Парамет- рами представления класса sum-signal являются х1 и х2 — два сигнала, сумма которых представлена. Методом выборки представителя класса sum-signal вы- числяется требуемый отсчет с помощью вызова соответствующих отсчетов х1 и х2 и их сложения. Определение типа сигнала на рис. 14.8 основано на использовании метода выборки для вычисления отдельных отсчетов сигнала. Как обсуждалось ра- нее, язык SRL предназначен для работы с массивами. На рис. 14.9 показана другая реализация класса sum-signal, которая основана на использовании мас- сивов. Необязательный элемент: values описывает тело процедуры без аргу- ментов, называемой методом вычислений (value method), которая порожда- ет массив значений сигнала при вызове операции запроса with-signal-values. Ме- тодом вычислений представителя класса sum-signal получаются значения мас- сивов х1 и х2 (с использованием операции запроса with-signal-values), разме- (defsigtype sum-signal :parameters (х1 х2) :finder signal-sum :init (setq-my dimensions (min (signal-dimensions x1) (signal-dimensions x2))) rvalues (with-signal-values ((x1-valsx1) (x2-vals x2)) (let ((our-vals (allocate-array dimensions))) (array-add x1 -vals x2-vals our-vals) our-vals))) Рис. 14.9. Реализация суммарного сигнала, основанная на использовании массива 253
щается выходной массив (с использованием операции создания массива allocate-array) и затем вычисляются и запоминаются выходные отсчеты с по- мощью описанного ранее оператора array-add. 14.5.3. Оценка качества языка SRI. Язык SRL удовлетворяет всем критериям представления сигналов. Операции запроса. Используемые в языке SRL операции запроса signal-fetch и signal-dimension удовлетворяют требованиям, предъявляемым к операциям запроса сигналов. Неизменность. В этом языке нет операций, которые могут быть исполь- зованы для прямого изменения наблюдаемых свойств сигнала. Хотя в языке отсутствуют механизмы, препятствующие описанному доступу к значениям массива, существуют простые, четко сформулированные соглашения на зтог счет. Классы сигналов. Основным видом действий при программировании на языке SRL является реализация типов сигналов. Тип сигнала — это такое представление класса сигналов, при котором для вычислений значений отсче- тов используется общая процедура с параметрами (метод выборки). Соотношение между ориентированным на сигналы языком SRL и систем- но ориентированными языками блок-схем иллюстрируется простым приме- ром. Предполагая существование подходящего набора типов сигналов и функций определителей, сигнал на выходе фильтра первого порядка, опре- деленного в (14.4), можно представить выражением (signal-sum х (signal-scaled (signal-unit-delayed х) а)) На рис. 14.10 показан сигнальный граф, который изображает соотношения между сигналами в этом выражении. Сравнивая этот граф со структурной схемой фильтра рис. 14.3, можно обнаружить, что роль вершин и ребер в этих двух графах противоположна. Подобная ситуация характерна для тео- рии сетей, где граф потока сигналов и структурные схемы двойственны друг Другу. Рис. 14.10. Сигнальный граф получения выход- ного значения для фильт- ра первого порядка
14.6. ЗАКЛЮЧЕНИЕ Три критерия представления сигнала — неизменность, существование операторов запроса и средств описания классов сигналов — были мотивирова- ны простейшими свойствами дискретных сигналов. Эти критерии были ис- пользованы при оценивании представлений сигнала на языках блок-схем, мас- сивов и на языке представления сигнала SRL. Потоки непостоянны и не обес- печивают требуемые операции запуска. Понятие блока при моделировании следующего состояния подобно понятию класса сигнала. Массивы обеспечи- вают соответствующие операции запроса, но они изменяемы. Кроме того, существующие языки обработки массивов не обеспечивают явно понятия класса сигналов и систем. Язык SRL, по-видимому, удовлетворяет всем критериям представления. СПИСОК ЛИТЕРАТУРЫ [1] В. Liskov, “An Introduction to CLU,” CSG Memo 136, MIT Laboratory for Computer Science, Cambridge, Mass., Feb. 1976. [2] J. Guttag, “The Specification and Application to Programming of Abstract Data Types,” TR CSRG-59, Computer Systems Research Group, University of Toronto, Sept. 1975. [3] W. Wulf, R. London, and M. Shaw, “Abstraction and Verification in Alphard: Intro- duction to Language and Methodology,” Carnegie-Mellon University Tech. Rep., June 1976. [4] B. Liskov, R. Atkinson, T. Bloom, E. Moss, C. Schaffert, R. Scheifler, and A. Snyder, CLU Reference Manual, TR-225, MIT Laboratory for Computer Science, Cambridge, Mass., Oct. 1979. [5] B. Gold and C. Rader, Digital Processing of Signals, McGraw-Hill, New York, 1969. [6] B. Karafin, “A Sampled-Data System Simulation Language,” in F. Kuo and J. Kaiser, eds., System Analysis by Digital Computer, Wiley, New York, 1966. [7] J. L. Kelley, C. Lochbaum, and V. A. Vyssotsky, “A Block Diagram Compiler,” Bell Syst. Tech. J., 40(3): pp. 669-676 (May 1961). [8] B. Karafin, “The New Block Diagram Compiler for Simulation of Sampled-Data Sys- tems,” AFIPS Conf. Proc., Vol. 27, Spartan Books, New York, 1965, pp. 55-61. [9] M. Dertouzous, M. Kaliske, and K. Polzen, “On-Line Simulation of Block-Diagram Systems,” IEEE Trans. Comput., C-f£(4):333-342 (Apr. 1969). [10] G. Korn, “High-Speed Block-Diagram Languages for Microprocessors and Minicom- puters in Instrumentation, Control and Simulation,” Comput. Electr. Eng., 4:143-159 (1977). [11] W. Henke, “MITSYN—An Interactive Dialogue Language for Time Signal Processing,” RLE TM-1, MIT Research Laboratory of Electronics, Cambridge, Mass., Feb. 1975. [12] T. Crystal and L. Kulsrud, “Circus,” CRD Working Paper 435, Institute for Defense Analysis, Princeton, N.J., Dec. 1974. [13] L. Morris, “Automatic Generation of Time-Efficient Digital Signal Processing Soft- ware,” IEEE Trans. Acoust. Speech Signal Process., ASSP-25(l):74-78 (Feb. 1977). [14] L. Morris and C. Mudge, “Speed Enhancement of Digital Signal Processing Software via Microprogramming a General Purpose Minicomputer,” IEEE Trans. Acoust. Speech Signal Process., ASSP-26(2):135-140(Apr. 1978). 255
[15] L. Morris, “Time/Space Efficiency of Program Structures for Automatically-Generated Digital Signal Processing Software,” Record, 1977 IEEE Int. Conf. Acoust. Speech Signal Process., Hartford, Conn., May 1977. [16] A. Salazar, ed.. Digital Signal Computers and Processors, IEEE Press, New York, 1977. [17] G. Kopec, “The Representation of Discrete-Time Signals and Systems in Programs,” Ph.D. thesis, MIT, Cambridge, Mass., 1980. [18] H. Gethoffer, A. Lacroix, and R. Reis, “A Unique Hardware and Software Approach for Digital Signal Processing,” in Record, 1977 IEEE Int. Corf. Acoust. Speech Signal Process., Hartford, Conn., May 1977. [19] H. Gethoffer, K. Hoffmann, A. Lenzer, N. Roeth, and H. Waldschmidt, “A Design and Computing System for Signal Processing,” in Record, 1979 IEEE Int. Conf. Acoust. Speech Signal Process., Washington, D.C, Apr. 1979. [20] H. Gethoffer, “SIPROL: A High-Level Language for Digital Signal Processing,” Proc. 1980 IEEE Int. Conf. Acoust. Speech Signal Process., Denver, Colo., Apr. 1980. [21] G. Kopec, “The Signal Representation Language SRL,” submitted for publication to the IEEE Trans. Acoust. Speech Signal Process. [22] B. Liskov, A. Snyder, R. Atkinson, and C. Schaffert, “Abstraction Mechanisms in CLU,” Commun. ACM, 20(8):564-576 (Aug. 1977). [23] B. Liskov and V. Berzins, “An Appraisal of Program Specifications,” in Research Direc- tions in Software Technology, MIT Press, Cambridge, Mass., 1979. [24] J. Allen, The Anatomy of Lisp, McGraw-Hill, New York, 1978. [25] P. Winston and В. К. P. Horn, Lisp, Addison-Wesley, Reading, Mass., 1981. [26] B. Kernighan and D. Ritchie, The C Programming Language, Prentice-Hall, Englewood Cliffs, N.J., 1978. [27] K. Jensen and N. Wirth, Pascal User Manual and Report, Springer-Verlag, New York, 1974. [28] C. A. R. Hoare, “Communicating Sequential Processes,” Commun. ACM, 12:666-677 (Aug. 1978). [29] G. Kahn and D. MacQueen, “Coroutines and Networks of Parallel Processes,” in B. Gilchrist, ed., Information Processing 77, North-Holland, Amsterdam, 1977. [30] K. Weng, “Stream-Oriented Computation in Recursive Data-Flow Schemas,” Tech. Memo 68, MIT Laboratory for Computer Science, Cambridge, Mass., Jan. 1979. [31] D. Ritchie and K. Thompson, “The UNIX Operating System,” Commun. ACM, /7(7):365 375 (July 1974). [32] D. Chan, “Theory and Implementation of Multidimensional Discrete Systems for Signal Processing,” Ph.D. thesis, MIT, Cambridge, Mass., 1978. [33] Signal Technology Inc., 15 West De La Guerra, Santa Barbara, CA 93101. [34] A. Oppenheim and R. Schafer, Digital Signal Processing, Prentice-Hall, Englewood Cliffs, NJ., 1975. [35] A. Kay and A. Goldberg, “Personal Dynamic Media,” IEEE Comput., Mar. 1977. [36] D. Ingalls, “The Smalltalk-76 Programming System: Design and Implementation,” Conf. Rec. 5th Annu. ACM Symp. Principles of Programming Languages, Tucson, Ariz., Jan. 1978. [37] A. Kay, “Microelectronics and the Personal Computer,” Sci. Am., Sept. 1977. [38] D. Weinreb and D. Moon, Lisp Machine Manual, MIT Artificial Intelligence Labora- tory, Cambridge, Mass., July 1981. 256
15 ПАРАЛЛЕЛЬНЫЙ И КОНВЕЙЕРНЫЙ СПОСОБЫ РЕАЛИЗАЦИИ АЛГОРИТМОВ ОБРАБОТКИ СИГНАЛОВ НА СБИС П. Девилъд, Е. Депреттьер, Р. Нута1 15.1. ВВЕДЕНИЕ Многие важные алгоритмы обработки сигналов, особенно алгоритмы фильтрации, имеют очень специализированные структуры или даже не струк- турированы. Проблема реализации таких алгоритмов на параллельных и кон- вейерных устройствах нетривиальна. Примерами наиболее известных алго- ритмов являются волновые цифровые фильтры [1] и ортогональные каскад- ные фильтры общего вида [2]. Применение таких алгоритмов необходимо во многих системах электросвязи, так как они не содержат предельных циклов, обеспечивают очень низкую чувствительность и в то же время очень высокую крутизну перехода от полосы затухания к полосе пропускания. По сравнению с матричными операциями алгоритмическая схема таких фильтров часто яв- ляется неструктурированной и реализация фильтра становится трудной. Тем не менее желательно получить максимальную скорость обработки и, как следствие, максимально использовать возможности параллелизма и конвей- ерной организации. В разд. 15.2 представлен классический метод планирования, позволяющий определить, какие операции могут быть выполнены параллельно и каковы возможности организации конвейера между последовательными циклами. Метод иллюстрируется примером волнового цифрового фильтра пятого порядка. Наряду с трудностями параллельно-конвейерной реализации волновым циф- ровым фильтрам присущи другие недостатки, которые характерны для мно- гих фильтров (например, необходимость масштабирования, позволяющего сохранить желаемую точность) (3]. Этих проблем можно избежать при исполь- зовании фильтра нового типа, названного ’’ортогональным” [4 — 6]. Ортого- нальные фильтры реализуют произвольную устойчивую передаточную функ- цию глобальным ортогональным преобразованием. При этом подразумевается, что отображение системы следующее состояние выход представляется ортогональной (унитарной) матрицей. Обычно ортогональное отображение реализуется с помощью вращений Гивенса. Если округление выполняется корректно, то предельных циклов не будет и не возникнет необходимости в масштабировании. Нам необходимо состояние вход Делфтский технологический университет, Делфт, Нидерланды. 25 7
реализовать ортогональный фильтр в виде каскадного соединения элементар- ных (1-го или 2-го порядка) секций с управляемыми нулями передаточной функции для того, чтобы достичь низкой чувствительности в полосе затухания (в полосе пропускания сама ортогональность приводит к желаемой чувстви- тельности). В разд. 15.3 представлены элементарные секции ортогонального фильтра и исследована их параллельно-конвейерная реализация. Показано, что представление с минимальным числом состояний не годится для конвей- ерного исполнения. Дня достижения высокой производительности необходимо модифицировать основную схему введением ограниченной избыточности. Это приводит к каскадным фильтрам, которые могут быть выполнены кон- вейерным способом с достигаемой производительностью в один отсчет за такт при условии, что имеется конвейерная реализация алгоритма CORDIC вращений Гивенса. В разд. 15.4 обсуждается конвейерный способ реализации нормализован- ного алгоритма CORDIC с минимальной задержкой. Одной из проблем клас- сического способа реализации алгоритма CORDIC, который обсуждается в гл. 16, является потеря времени на вычисление углов и нормализацию. В нас- тоящей главе показано, что вычисления углов в общем случае можно избе- жать, используя альтернативное представление угла, и что нормализация мо- жет быть выполнена на конвейере вместе с самой операцией вращения по алгоритму CORDIC. В главе предлагается вариант реализации алгоритма CORDIC, в котором цикл нормализации выполняется на внутреннем конвей- ере, синхронизированном с основным циклом, тем самым уменьшается общее время выполнения алгоритма CORDIC по меньшей мере на 50% по сравнению с соответствующим стандартным вариантом реализации. 15.2. ПАРАЛЛЕЛИЗМ И КОНВЕЙЕРНОСТЬ Алгоритм обработки сигналов предназначен для обработки отсчетов, ко- торые поступают регулярно через каждый период дискретизации. Для данных входных отсчетов и текущего состояния согласно алгоритму вычисляются новое состояние и выходные отсчеты. В каждый момент времени один и тот же алгоритм используется для обработки данных. Операции,, встречающиеся в каждом конкретном примере, могут быть выполнены одновременно. Имен- но это и называется параллелизмом. Если одновременно выполняются опера- ции, соответствующие различным отсчетам, то речь идет о конвейерной обра- ботке. Параллелизм и конвейсрность можно обеспечить на различных уров- нях выполнения операций: на макроуровне или на уровне отдельных разря- дов. В этом разделе рассматривается параллелизм на макроуровне. В разд. 15.4 приведены примеры параллелизма на уровне отдельных разрядов. Для простоты изложения обсудим метод выявления параллелизма и кон- вейерности, используя алгоритм волнового цифрового фильтра, схема кото- рого показана на рис. 15.1. Метод является автоматическим и может быть реализован в виде пакета программ для ЭВМ [7]. Тем не менее графическая иллюстрация поможет достичь правильного понимания метода, и далее пой- дем по этому пути. Метод является классическим [8—10] и, будучи эффек- 258
Рис. 15.1. Волновой цифровой эллиптический фильтр пятого порядка: квадраты соответствуют переменным состояния, а окружности — операциям сложения или умножения тивным и недостаточно освещенным в современной литературе, заслужива- ет по меньшей мере краткого обсуждения. Основным инструментом определения параллелизма и степени конвей- ерности для данной алгоритмической ситуации является граф предшество- вания. На рис. 15.2 построен граф предшествования для фильтра, приведен- ного на рис. 15.1, при следующих (разумных) предположениях: 1) осуществляется синхронное тактирование и синхронное выполнение операций; 2) допустимо неограниченное число устройств, которые выполняют умно- жение за 10 тактов и сложение за 5 тактов (метод сам будет давать правиль- ное число операций, необходимых для оптимального по времени исполнения). Исходными для выполнения операций всегда являются известные значения, представляющие собой входные переменные и переменные состояния. Вер- шины, соответствующие состоянию, специально выделены и названы Т-вер- шинами. Последовательность операций является рекурсивной, начиная с са- мой ранней возможной: каждая следует непосредственно после операций, которые порождают для нее входные данные. В этой схеме не принимается во внимание время передачи данных, при необходимости оно может быть уч- тено. Выполнение алгоритма заканчивается получением выходной перемен- ной и нового набора состояний с заполнением Т’-вершины для следующего цикла операций. Каждой операции в графе предшествования ставятся в соответствие две характеристики: Е-уровень (самый ранний) и А-уровень (самый поздний). Значение /Г-уровня показывает, с какого момента времени относительно на- чала алгоритма данная операция может быть выполнена при ее наиболее ран- ней готовности (при условии, что имеется неограниченная вычислительная 259
I 260
мощность). Более точно: если P(z) есть множество операций, предшествую- щих z-й, то Е-уровень операции z-rnax [Е-уровень P(i) + время выполнения P(z)] .(15.1) Подобным образом значение £-уровня операции z указывает самое позднее время, в которое операция z может быть начата, гарантируя минимальное время выполнения этого цикла. Более точно: если S (i) множество преемни- ков операции i, то £-уровень операции i-min [£-уровень S (/) — время выполнения операции P(z)]. (15.2) Операции (15.1), (15.2) для случая параллелизма начинаются при условии Е-уровень входа = 0 = Е-уровню Г-вершип, £-уровень выхода = £-уровню 7-вершин следующего цикла = полному минимальному.врсмени выполнения. Значение Е-уровня и £-уровня для каждой операции примера (рис. 15.1) показано на рис. 15.2. Полное число тактов равно 85. Значения для Е- и £-уров- ней легко определить по матрице смежности графа предшествования [3]. Из диаграммы предшествования на рис. 15.2 при указанных значениях Е- и £-уровней можно сделать следующие выводы. 1. Если допускается только параллелизм, без конвейеризации, то минималь- ное время обработки составляет 85 временных тактов. 2. Всегда имеется по меньшей мере один путь в графе предшествования, со- держащий операции, для которых все Е- и /.-уровни равны. Такой путь назы- вается ’’критическим”. Его длина, изменяемая временными тактами, равна полному минимальному времени обработки. 3. Из графа предшествования может быть выведен коэффициент парал- лельности. Его значение определяется как полное число операций, деленное на число операций на самом длинном пути, которое равно, в свою очередь, числу уровней на этом пути плюс один. Для указанного алгоритма коэффи- циент параллельности составляет 2,3. Отсюда следует, что для выполнения алгоритма необходимо по меньшей мере три процессора. Нетрудно видеть, что четырех процессоров будет достаточно для получения минимального вре- мени выполнения (распределение элементов обработки будет обсуждаться далее). 4. Один лишь факт, что диаграмма предшествования может быть состав- лена, доказывает, что алгоритм (по построению) не содержит тупиков. Во избежание возникновения тупиков в процессе выполнения процедуры при- сваивания также требуется граф предшествования. Рис. 15.2. Граф предшествования для схемы рис. 15.1: /-вершины соответствуют переменным состояния (числа показаны) . Для каждой опе- рации указаны Е-уровень (слева от операции и L-уровень (справа). Начальные значе- ния Е-уровней входов и Т-вершин равны нулю. Конечные L-уровни выхода и Т-вершины следующего цикла равны полному периоду. Назначение процессоров,задаваемое распре- делением программ показано римскими цифрами 261
Соотношение между входными |>ис- 15.3. Вращение и выходными величинами Гивенса cos0 sine х Sine COS0 у Из рис. 15.2 следует, что некоторые '/’-вершины (состояния фильтра) на последующем цикле уже готовы для обработки, в то время как нужда в дру- гих вершинах текущего цикла возникает только на очень поздней стадии. Отсюда следует, что очередной цикл может начаться в то время, как текущий еще не полностью завершен. В этом суть конвейеризации. Этот эффект может быть учтен в графе предшествования путем присваивания ненулевых F-уров- ней заключительным '/’-вершинам почти тем же способом, что и ранее, т.е. аналогично присвоению /.-уровней начальным '/’-вершинам. Вершины цикла п, для которых вычисления завершены, становятся начальными '/’-вершинами цикла п + 1, и можно обновить их F-уровни, вычитая длину цикла п. Таким образом могут получаться отрицательные F-уровни. Они показывают время, оставшееся для выполнения (и + 1)-го цикла нового состояния, до заверше- ния н-го цикла. Эта информация используется для сжатия нового цикла. Пос- ле нескольких повторений этой процедуры устанавливается минимальный такт конвейера, равный длине критического пути, который становится перио- дом графа предшествования. Распределения в этом периоде могут быть выполнены в основном тем же способом, что и в исходном графе. Результаты работы этой процедуры приве- дены на рис. 15.3 (в этом примере конвейеризация не дает больших улучше- ний: время цикла уменьшается от 85 до 80 с повышением производитель- ности в 85/80 раз). Оценка минимального периода времени работы конвей- ера (минимального такта конвейера) часто может быть получена нахождени- ем длины критического пути между данным состоянием и последующим (та- кой путь не обязательно должен существовать, но в истинно рекурсивных ситуациях часто он существует). Такой путь нельзя нарушать во время сжатия. После построения диаграммы предшествования и исследования возмож- ности параллелизма или конвейерности необходимо распределить операции на имеющуюся аппаратуру. Эта процедура распределения и планирования не является столь же простой, как построение диаграммы предшествования. На эту тему имеется обширная литература (см., например, [8—10]). Более того, эта проблема оказывается в общем случае NP-полной. Тем не менее в частных случаях могут быть сконструированы алгоритмы и может быть осуществлен эвристический (но, возможно, не оптимальный) выбор на основе диаграммы предшествования. Вопрос о назначении операций процессорам раз- деляется на две основные части, которые можно изложить независимо. 1. В какой последовательности операции должны назначаться процессору? В какое время должно осуществляться назначение? Если несколько опера- ций готовы для назначения, какая будет выбрана первой? 2. В каком процессоре должна быть размещена операция, минимизирующая 262
время обмена данными и количество передаваемой информации между про- цессорными элементами? Следующие стандартные допущения облегчают решение: 1) обмен данными не требует никакого времени; 2) интерес представляет минимизация связей между процессорами; 3) желательно минимизировать время выполнения операций. Вопрос о том, ’’когда” планировать данную вершину (на исполнение), был исследован в работе |8]. Оптимальное решение может быть найдено при исчерпывающем длительном поиске. Простой, близкий к оптимальному ал- горитм, предложенный в |9], сводится к следующему: 1) вершина должна быть назначена как можно раньше; 2) приоритет имеет вершина с самым меньшим значением /.-уровня. Этот алгоритм может привести к ошибкам планирования, так как иног- да полезнее выполнить раньше более поздние, но более срочные операции. Алгоритм может быть усовершенствован добавлением следующего правила: Если данная операция /, которая готова для назначения, в действительнос- ти задерживает более позднюю операцию с меньшим значением /.-уровня (следовательно, более срочную операцию), операция i должна быть от- менена. Следующим вопросом является ’’где” (в каком процессоре) выполнять операцию. Если желательно минимизировать время, теряемое при обмене данными, то важной становится минимизация числа пересылок между про- цессорными элементами. Здесь опять хороший эвристический алгоритм яв- ляется предпочтительнее исчерпывающего поиска. Согласно такому алгорит- му операции будут назначаться на основе меры близости операции и процес- сора. Проблемой является определение корректной меры близости. В расчет должно приниматься: 1) число путей, связывающих один процессор с другим, как входящих, так и выходящих; 2) вес каждого процессора. Число путей от одной операции к другой (даже путей, связывающих опера- ции в разных циклах) можно эффективно определить по графу инциденций (см. [10]). В данном методе вычисляются числа Q- и Tjt где Сц — число пу- тей между вершинами i и j, a — полное число путей, начинающихся в вер- •шине /. Хорошей мерой близости является близость = Cij/Ti + Cji/Tj . (15.3) Назначение, которое было сделано автоматически на основе этой меры для алгоритма, схема которого приведена на рис. 15.1, показано на рис. 15.2. Опыт показывает, что качество результатов машинного назначения лучше, чем при ручной работе. 15.3. ПАРАЛЛЕЛЬНО И КОНВЕЙЕРНЫЕ ОРТОГОНАЛЬНЫЕ ФИЛЬТРЫ В общем случае глобально ортогональные фильтры при реализации их каскадным способом имеют весьма полезное свойство: низкую чувствитель- ность в полосе пропускания и в полосе затухания. В этом смысле они сущест- 263
венно лучше каскадных фильтров, даже если соединяемые в каскад элементы реализованы ортогональным методом [11]. Однако за эти их свойства платит- ся большая цена, поскольку едва ли возможны параллелизм и конвейерность в минимальной реализации. К счастью, при использовании неминимальных версий фильтров, как будет показано, возможно получение высокой пропуск- ной способности путем организации конвейера с сохранением в то же время глобальной ортогональности. В глобально ортогональном фильтре могут использоваться только ортого- нальные преобразования, наиболее элементарным иэ которых является враще- ние Гивенса, условно показанное на рис. 15.3. Введение сумматоров и мульти- плексоров недопустимо, так как такие операции неортогональны (приемле- мы только ветвления в самом конце). Образцом глобально ортогонального фильтра является формирующий фильтр Левинсона (рис. 15.4). Этот фильтр реализует авторегрессионную передаточную функцию и может быть легко конвейеризован, как показано на диаграмме предшествования на рис. 15.5, где изображены два конвейерных цикла. Если каждое ортогональное преобра- зование осуществляется за один такт, то достигается пропускная способность в один отсчет за два такта. Эта структура хорошо реализуется с помощью вращения по алгоритму CORDIC. В случае, когда используется конвейерный алгоритм CORDIC, описанный в разд. 15.4, пропускная способность в один отсчет за такт может быть получена в мультиплексном режиме. Для высококачественных избирательных фильтров, которые используют- ся в системах электросвязи, необходима реализация ортогонального БИХ- фильтра. В [4,5] было показано, что любая передаточная функция может быть реализована путем соединения элементов трех типов, схемы которых приведены на рис. 15.6. Пример общей схемы, полученной каскадным соеди- нением секций, показан на рис. 15.7 (это схема ортогональной реализации эллиптического фильтра 9-го порядка). Диаграмма предшествования, соответствующая схеме на рис. 15.7, приве- дена на рис. 15.8. По ней легко определить, что невозможно организовать конвейерную обработку для фильтра этого тана, так как имеется критичес- кий путь из одного состояния в то же самое состояние в следующем цикле (в примере критический путь ведет из состояния 1 в состояние 1). Средством преодоления этой ситуации является замена основных секций (см. рис. 15.6) совокупностью возможно более избыточных, полученных путем каскадного соединения элементов типа II или типа III, за которыми следует фиктивный элемент типа I (рис. 15.9). Таким образом преимущества конвейерной схемы на элементах Левинсона переносятся на другие элементы (рис. 15.10). Может показаться странным, что простейшая модификация основного элемента при- водит к конвейерной организации фильтра. Однако из диаграммы предшество- вания на рис. 15.11 следует, что наиболее длинный критический путь между состоянием и его следующим значением равен 6 вместо 18, а коэффициент повышения производительности этого типа фильтра достигает 18/6. Для фильтров больших порядков это повышение производительности ста- новится весьма эффективным: минимальная версия будет иметь критический путь длиной 2л + 2 (где п — порядок фильтра), в то время как длина для неми- 264
Рис. 15.4. Формирующий фильтр Левинсона Рис. 15.5. Диаграмма пред- шествования для формирую- щего фильтра Левинсона, по- казывающая возможность ор- ганизации конвейерной обра- ботки. Если вращение Гивен- са выполняется в виде кон- вейерного алгоритма CORDIC, то может быть достигнута пропускная способность в один отсчет за такт в муль- типлексном режиме Рис. 15.6. Элементы, являющиеся составными частями глобального ортогонального фильтра при каскадном способе реализации: а — тип I, AR-секция; б — тип II, действительная секция 1-го порядка; в — тип III, действительная секция 2-го порядка 265
Рис. 15.7. Каскадная организация глобального ортогонального эллиптического Рис. 15.8. Диаграмма предшествования для фильтра, выполненного по схеме на рис. 15.7. Имеется критический путь из состояния 1 в следующее состояние 1, показывающий, что конвейерная организация невозможна 266
фильтра 9-го порядка Рис. 15.9. Избыточные ортогональные ячейки, удобные для конвейерной организации произвольной передаточной БИХ-функции: а — тип I; AR-элемент; б — тип II, конвейерный действительный элемент 1-го порядка; в — тип III, конвейерный действительный элемент 2-го порядка. 267
Рис. 15.10. Избыточная схема реализации эллиптического фильтра 9-го порядка гло бальной ортогональной структуры Рис. 15.11. Диаграмма предшествования для эллиптического фильтра 9-го порядка, показывающая возможность получения конвейерной структуры 268
лимальных версий остается равной 6 и в результате производительность повы- шается в (2и + 2)/6 раз. Если желаемой производительностью является один отсчет за такт, то нужно использовать конвейерный модуль алгоритма CORDIC, с помощью которого осуществляется конвейерная организация на уровне раз- рядов. С помощью таких модулей, имеющих двойной конвейер, получаются модульные схемы любых передаточных функций. 15.4. МОДУЛЬ АЛГОРИТМА CORDIC С ДВОЙНЫМ КОНВЕЙЕРОМ Чтобы повысить производительность как ортогонального фильтра, так и матрицы процессоров для выполнения алгоритма CORDIC, необходимо ис- пользовать модуль выполнения алгоритма CORDIC с двойным конвейером. Термин ’’двойной конвейер” означает, что не только последовательность вра- щений конвейеризована на алгоритмическом уровне, но и операции внутри каждого уровня алгоритма CORDIC конвейеризованы на уровне отдельных разрядов. Это усовершенствование вместе с представлением угла в виде ко- довой последовательности элементарных вращений позволит выполнять ал- горитм CORDIC достаточно быстро для достижения пропускной способнос- ти в один отсчет за такт. Для иллюстрации основных идей обратим внимание на случай, при котором алгоритм CORDIC используется исключительно для нормальных (а не гипер- болических) вращений. Более общий случай рассмотрен в [12]. Типичной операцией г-го уровня алгоритма CORDIC является элементар- ная операция поворота на угол 0Z- (где tg бу = 2~1) : х’ = х-о(2~' , (15.4) у' =О{2чх+у, где о, = ±1. Начальный угол поворота всегда равен ±90°, что соответствует значению о0 = ±1. Последовательность оу(/ =0, . . . , п) представляет угол и может быть использована как код его значения. Характерными являются операции двух типов: первая, в которой дан двумерный вектор и должна быть вычислена последовательность углов и норма, и вторая, когда данная последовательность пг- используется для вращения данного вектора на угол, представляемый этой последовательностью. В подавляющем большинстве алгоритмов обработки сигналов сам угол не представляет интереса и код оу никогда не выводится из машины. Операции (15.4) ”не нормализованы”. Конечный результат (после про- хождения п стадий конвейерной обработки) является слишком большим благодаря коэффициенту 1/Кп, где Кп зависит только от длины слова п. Коэффициент Кп может быть представлен в виде произведения К„= П(1 -6,2-*), 1 = 1 269
где £,• =0,1. Вычисление произведения на (1 — £.2 ') имеет ту же трудо- емкость и требует такого же аппаратного обеспечения, что и (15.4) ‘ х' = х — £(-2“'х, у' = у-£;2“‘у. (15‘5) Нормализация может быть выполнена либо после завершения всех операций (15.4), либо между ними. Как будет показано далее, промежуточная норма- лизация (15.5) и операция (15.4) позволяют уменьшить общую продолжи- тельность выполнения последовательности шагов алгоритма CORDIC. Ос- новная конфигурация г-го этапа схемы алгоритма CORDIC приведена на рис. 15.12. Конвейер для алгоритма CORDIC будет представлять собой кас- кадное соединение этих схем. Это и есть упомянутый ранее конвейер макро- уровня. Имеется много способов реализации сумматоров, входящих в схему на рис. 15.12. Если следовать концепции матричного умножения, то каждый сумматор принимает вид линейной структуры из полных сумматоров (ПС) с переносом, переходящим от одного сумматора к другому. Такая структура матричного умножителя имеет преимущества, так как перенос на одном уровне образует конвейер с переносом на следующем уровне или может быть даже передан на следующий уровень. Здесь же, однако, из-за наличия сдвиговых регистров нельзя передать перенос следующего уровня параллельно с предыдущим. Например, как видно из рис. 15.12, регистр i сумматора 1 выдает Z-й разряд у на вход сумматора 1 и перенос может распространяться только после того, как перенос при вычислении у на предыдущем уровне достигнет положения /-го разряда. Отсюда следует, что прямая реализация схемы рис. 15.12 в виде полного одноразрядного сумматора будет приводить к общей логической глубине, равной n+i, одноразрядных сумматоров на уровень (схему). Так как последовательности схем связаны конвейерным спосо- бом друг с другом, то общую задержку определяет послед- ний уровень (г =п — 1). Общая логическая глубина в расчете на одну секцию с нормализацией может быть уменьшена до п изменением схемы соединения сдвигового регистра и сумматора. Общая идея выполнения арифмети- ческих операций в дополни- Рис. 15.12: Схема i-ro этапа кон- вейерного алгоритма CORDIC 70
Регистр I Рис. 15.13. Конвейерный модуль из сумматора и сдвиговых регистров для случая до- полнительного кода с п = 8 и i =4 Рис. 15.14. Волновая векторная структура для алгоритма CORDIC с поразрядной кон- вейерной организацией между модулями. Значения моментов времени, относящиеся к алгоритму, показаны в скобках тельном коде приведена на рис. 15.13. Обозначим/ старших разрядов числах как ГхИ; тогда в зависимости от значения знакового разряда у и переноса с из оставшихся полных сумматоров (ПС) старшие z разрядов результата могут быть равны или Гх~1, или ГхП +1, или Гх~1 — 1. Схемы, обозначенные как блоки SC, непосредственно вычисляют эти три величины. Они примерно равноценны полусумматорам, так как состоят из двух независимых полу- сумматоров. Согласно этим схемам результаты передаются по конвейеру од- новременно с получением х. Когда получаются значения sy и с (они получают- ся в схеме, которая представляет собой конвейер, связанный с у), выбирает- ся одно из трех возможных значений (ГхП, ГхП + 1, Гх“| —1) и результат 271
поступает на выход. Результат получается с задержкой на время работы одно- го ПС после получения х и у. Схема, показанная на рис. 15.13, обычно исполь- зуется вместо сумматоров с нормализацией (см. рис. 15.12) и может быть, следовательно, использована в другом месте конвейера. Возможно много ва- риантов основного решения: например, вариант, в котором перенос сдвигает- ся на следующий уровень. При таком варианте внутренняя нормализация за- нимает мало времени, но приводит к дополнительным затратам на оборудова- ние (дополнительные схемы ПС и SC на каждый уровень). Для гиперболичес- кого случая можно следовать некоторой общей стратегии [12]. Двойной конвейер для выполнения алгоритма CORDIC можно осуществить на каждом уровне. Это допускает конвейерную организацию на уровне разря- дов между модулями, как показано на рис. 15.14 для случая линейного волно- вого процессора, где первый модуль вычисляет угол, закодированный после- довательностью {ст,}, которая распространяется по остальным модулям. Это является основной операцией в QU-разложении или при определении собствен- ных значений на основе вращений Гивенса. 15.5. ЗАКЛЮЧЕНИЕ Для обеспечения высокой производительности без потери качества при проектировании высококачественных фильтров и разработки алгоритмов обработки сигналов требуются методы планирования задач. Центральную роль при этом играют исчисление на графах предшествования и процедуры назначения задач. Корректное применение метода показывает, что с его по- мощью можно достичь в мультиплексном режиме производительности, рав- ной одному отсчету на такт, если используются конвейерные модули на уров- не разрядов, такие, как конвейерный алгоритм CORDIC. В методологии структурного проектирования разложение алгоритма на функциональные элементы, работающие параллельно или в конвейерном ре- жиме, оказывается существенным шагом, который может быть повторен на последовательных уровнях абстракции. Получается отображение алгоритми- ческого описания самого верхнего уровня на структуру кремниевого крис- талла последовательным применением параллельно-конвейерных распределе- ний работ. Например, на рис. 15.11 функциональными элементами являются элементы выполнения алгоритма CORDIC, которые сами имеют конвейерную организацию; в то же время внутренняя организация алгоритма CORDIC то- же имеет конвейерную структуру. Переход с верхнего уровня абстракции на менее высокий выполняется путем исключения из рассмотрения (распреде- ленной) структуры управления, которая связывает воедино отдельные эле- менты. На каждом уровне можно различить два подуровня: функциональ- ный, описывающий цели, которые должны достигаться при разработке устрой- ства, и реализационный, который задает диаграмму реализации, соответствую- |щую этому уровню. Например, на уровне алгоритмического описания.рис. 15.10 представляет собой функциональную схему, в то время как рис. 15.11 |схему ее реализации. Переход от функционального описания к реализации производится путем параллельно-конвейерного распределения (операций по 272
процессорам). При переходе на один уровень вниз диаграмма на рис. 15.11 становится функциональной и схема ее реализации описывает, как действи- тельно выполнено устройство (CORDIC) и как передаются данные между мо- дулями (по шинам) (см. рис. 15.14). Как продолжение можно говорить о ло- гическом уровне, уровне схем и, наконец, об уровне аппаратуры. Говоря о реализации общего конвейерного алгоритма CORDIC, уместно сделать следующее замечание. На рис. 15.14 показано, что возможна конвей- ерная организация вращения и нормализации на одном уровне почти без по- тери времени на нормализацию. Можно подумать, что эта же техника может быть использована для конвейерного исполнения схем CORDIC, как в матрич- ном умножителе. Однако это не так. Механизм передачи алгоритма CORDIC не позволяет образовывать общий конвейер, хотя несколько отдельных секций и могут быть объединены в конвейер. При данных ограничениях ал- горитма CORDIC интересной темой исследования является сравнение его достоинств с достоинствами способа реализации умножителя, удовлетворяю- щего требованию максимальной производительности. Применение модуля CORDIC в волновых процессорных матрицах [13] также исследовалось сов- местно Делфтским технологическим университетом и Университетом Юж- ной Калифорнии. СПИСОК ЛИТЕРАТУРЫ [1] A. Fettweis, “Digital Filter Structures Related to Classical Filter Networks,” Arch. Elektr. Uebertrag., 25:79-89 (1971). [2] E. Deprettere and P. Dewilde, “Orthogonal Cascade Realization of Real Multiport Digital Filters,” Circuit Theory Appl., 8:245-212 (1980). [3] R. Nouta, "Studies in Wave Digital Filter Theory and Design,” Ph.D. thesis, Delft University of Technology, 1980. [4] E. Deprettere and P. Dewilde, “Orthogonal Cascade Realization of Real Multiport Digital Filters,” Circuit Theory A ppi., 8:245-212 (1980). [5] P. Dewilde, “Stochastic Modeling with Orthogonal Filters,” in Outils et modeles mathematiques pour I'automatique, I’analyse de systemes et le traitement du signal, Vol. 2, CNRS, Paris, 1982, pp. 331-398. [6] P. Dewilde and H. Dym, “Schur Recursions, Error Formulas and Convergence of Rational Estimators for Stationary Stochastic Sequences,” IEEE Trans. Inf. Theory, IT-27(4):446-461 (July 1981). [7] R. S. Martens, “Een hulp voor het Optimaa! Implementeren van Digitale Filters in Parallelle Hardware,” Delft University of Technology, Network Theory Tech. Rep. 30, 1980. [8] С. V. Ramamoorty, К. M. Chandy, and M. J. Gonzales, “Optimal Scheduling Strategies in a Multiprocessor System,” IEEE Trans. Comput., C-2/(2):137-146 (Feb. 1972). [9] T. C. Hu, “Parallel Sequencing and Assembly Line Problems,” Oper. Res., 9:841-848 (Nov. 1961). [10] D. M. Schuler and E. G. Ulrich, “Clustering and Linear Placement,” Proc. ACM IEEE Design Autom. Workshop, June 26-28, 1972, Dallas, pp. 250-256. [11] R. A. Roberts and С. T. Mullis, “Digital Signal Processing Structures for VLSI,” Pro- ceedings, USC Workshop on “VLSI and Modem Signal Processing,” pp. 83-88. 273
[12] E. Deprettere and R. Udo, “The Pipeline CORDIC,” Internal Rep. Network Theory Section, Delft University of Technology, 1983. [13] S. Y. Kung, K. S. Arun, R. J. Gal-Ezer, and D. V. Bhaskar Rao, “Wavefront Array Processor: Language, Architecture, and Applications,” IEEE Trans. Comput., C-3/(ll):1054-1066 (Nov. 1982). 16 АРХИТЕКТУРА АРИФМЕТИЧЕСКИХ УСТРОЙСТВ ДЛЯ ЦИФРОВЫХ ПРОЦЕССОРОВ СИГНАЛОВ НА СБИС X. Ахмед1 16.1. ВВЕДЕНИЕ Термин ’’цифровая обработка сигналов” обобщает методы и средства преобразования чисел, обычно цифровых отсчетов аналоговых сигналов, в отсчеты более желательных сигналов (сигналы могут быть одномерными, например человеческая речь; двумерными, как в случае изображений, или еще большей размерности). Цифровой процессор сигналов в общем виде может быть представлен, как показано на рис. 16.1. Входные устройства принимают цифровые отсчеты, а выходные выдают преобразованные зна- чения. Поток данных проходит через арифметическое устройство (АУ), где и выполняются требуемые преобразования информации. Как эти преоб- разования (например, низкочастотная фильтрация, адаптивная фильтрация), так и прохождение данных управляются контроллером. Эта глава связана в основном с изучением арифметического устройства. Хотя такое изучение возможно без учета влияния остальных устройств, в дальнейшем будет видно, что производительность цифрового процессора сигналов существен- но зависит от совокупности операций всех четырех блоков и, в частности, от действий АУ и контроллера. Не в каждом процессе обработки сигналов используются арифметические операции в обычном смысле. Например, многие алгоритмы цифрового ко- дирования могут быть выполнены только с помощью логических операций [1] (например, операции исключающее ИЛИ) и никогда не требуют тради- ционных арифметических операций умножения и сложения. (Очевидную связь между арифметическими и логическими операциями будем игнори- ровать.) В рамках этой главы ограничимся такими задачами обработки сиг- налов, которые действительно требуют традиционных арифметических опе- раций. К этим задачам относится анализ речи и цифровая фильтрация. Задачи обработки сигналов сильно различаются по характеру и цели; однако для получения очень высокого быстродействия при выполнении 1 Фирма Codex, Мансфилд, Массачусетс. 274
Рис. 16.1. Общий вид цифрового процессора сигналов большого числа операций не- обходим один общий эле- мент. В то время как быстро- действующие, высокопроиз- водительные машины ассо- циируются с большим физи- ческим объемом и большой рассеиваемой мощностью, очень высокая степень интег- рации способна обеспечить большую, чем когда бы то ни было, вычислительную мощность в заранее заданном объеме. Тем не ме- нее типичная производительность, требуемая в машинах, выполняющих даже алгоритмы цифровой обработки сигналов звукового диапазона (например, анализ речи или цифровая связь в телефонных линиях), не обеспечивается большинством современных СБИС-микропроцессоров. Почти во всех существующих СБИС обработки сигналов, являющихся заказными, достигнута плотность компоновки и производительность, близ- кие к технологическому пределу. Несмотря на то, что производительность зависит от схемы, она также существенно зависит от архитектуры вычисли- теля. В этой главе будут показаны арифметические устройства разнообраз- ной архитектуры, пригодные для реализации различных алгоритмов обра- ботки сигналов, и этим будет подтверждена мысль о том, что хорошее соот- ветствие архитектуры АУ задаче может повысить производительность без использования предельных возможностей, предоставляемых технологией. Наряду с алгоритмами традиционного умножения рассмотрим алгоритм CORDIC [3] и алгоритм последовательных приближений [4] для выполне- ния элементарных арифметических операций. Для каждого вида арифме- тических устройств, которые могут быть включены в библиотеку исход- ных элементов для цифровой обработки сигналов, представим несколько вариантов архитектуры. Выбор соответствующего элемента зависит от про- изводительности и площади кристалла, а также от типа реализуемых алго- ритмов. 16.2. ВЗАИМОЗАВИСИМОСТЬ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ И ОПЕРАЦИЙ УПРАВЛЕНИЯ Часто можно слышать утверждение, подобное следующему: ’’Для выпол- нения данного алгоритма в реальном масштабе времени требуется один миллион операций умножения в секунду”. Влияние такого требования на быстродействие арифметического устройства существенно зависит от осо- бенностей управления процессором сигналов. Хотя вопросы разработки контроллера лежат вне рамок настоящей главы, приведем простой при- 275
мер, показывающий, как контроллер влияет на производительность про- цессора. Дальнейшие исследования оставляются читателю. Рассмотрим программируемый цифровой процессор сигналов (рис. 16.2). Желательно определить максимально допустимую задержку умножителя для достижения производительности одного миллиона операций умножения в секунду в длинной последовательности операций умножения. Сначала рас- смотрим простую стратегию управления (рис. 16.3,а), в которой каждая Выход данных команда декодируется и затем вы- полняется. Для простоты предпо- ложим, что время декодирования равно времени выполнения опера- ции умножения. Тогда для дости- жения желаемой производительнос- ти умножитель должен выполнять одну операцию за 500 нс. Теперь рассмотрим конвейерную стратегию управления (рис. 16.3,5), при которой декодирование коман- ды происходит во время выполне- ния предыдущей команды. Желае- мая производительность теперь до- Рис. 16.2. Программируемый цифровой процессор сигналов Команда Команда . ВетВление и ---------1 I-------------—----1 декодирование , Команда , , Команда , |-----—----1 |----—-----1 Выполнение -----------------------------------------------------* Время а) Команда Команда Команда ВетВление и ----~-----1----------1----------1 декодирование , Команда , Команда , Команда , |----------1———------1-----------1 Выполнение -----------------------------------------------------------*- Время В) Рис. 16.3. Взаимодействие арифметического и управляющего устройств 276
стигается при длительности такта работы умножителя 1000 нс. Таким об- разом серьезное влияние на проектирование и разработку кристалла циф- ровой обработки сигналов реализуется простым изменением стратегии управления. Последняя стратегия имеет свои проблемы: например, чита- телю предлагается рассмотреть, как в такой конвейерной структуре могут быть выполнены операции условного ветвления. Этот простой пример показывает взаимное влияние арифметического устройства и устройства управления. Здесь имеется много более тонких моментов, таких как работа с адресами, которые ограничивают произво- дительность процессора сигналов и устанавливают предел производитель- ности в зависимости от скорости обработки в АУ. В оставшейся части этой главы будут обсуждаться схемы арифметичес- ких устройств. Аспекту управления не будем уделять большого внимания, однако предыдущий пример должен показать, что значительного повышения производительности можно нередко добиться с помощью искусных архи- тектурных изменений, а не прямым увеличением скорости работы устрой- ства. С этих же позиций рассмотрим вопрос о том, как арифметические устройства хорошей архитектуры могут обеспечить высокую производи- тельность. 16.3. ОСНОВНЫЕ ОПЕРАЦИИ, ИСПОЛЬЗУЕМЫЕ ПРИ ОБРАБОТКЕ СИГНАЛОВ В настоящее время имеется по меньшей мере четыре основных промыш- ленно выпускаемых СБИС, реализующих алгоритмы обработки сигналов: TMS 320 [5] фирмы Texas Instrument, DSP фирмы Bell Laboratories [6], NEC 7720 [7] и AMI 2811 [8]. Несколько процессоров в неинтегральном исполнении описано в литературе (см., например, [9 — 11]). В состав всех этих процессоров входят быстродействующие устройства умножения и на- копления, которые составляют значительную часть арифметического устрой- ства. Такое сходство появляется из-за того, что операции умножения и сло- жения являются основными для всех алгоритмов обработки сигналов, включая алгоритм фильтрации. В качестве примера на рис. 16.4 приведена структурная схема фильтра, определяемая соотношением ?т = X к, к-а где YT — выход фильтра в момент времени Т; Хт — вход фильтра в момент времени Г; С'к — коэффициенты фильтра. Рис. 16.4. Фильтр на линии задержки с отводами 277
Ясно, что умножение и накопление являются основными операциями. В самом деле, на языке ассемблера процессора сигналов программа для вы- полнения фильтрации может быть записана в виде CLEAR АСС ; Очистишь аккумулятор МАС с(,.х, ; АСС «- ACC + Со » X, МАС С..Х, , ; АСС ♦ -АСС + С, * Хт МАС Сп-1' ^Т-п+1 .Теперь АСС = YT Однако умножение является просто одной из многих основных операций алгоритмов цифровой обработки сигналов. Тригонометрические величины, в особенности связанные с вращением векторов, являются основой некото- рых алгоритмов фильтрации, включая алгоритм метода наименьших квад- ратов, алгоритмы матричной алгебры, а также другие алгоритмы, такие как дискретное преобразование Фурье. Рассмотрим, например, многозвенный фильтр лестничного типа (рис. 16.5) [2]. Каждый каскад этого фильтра описывается следующим образом: Рп + 1. т — х/^ ~ vn, т “ пи, т -1 Рп, г + vn. тЧп, т-1 > v = v«-г ~ Рл+1, тЧп, т-i г х/1 -Pn+i.rx/1 -Чп,т-1 *1п+1,Т Чп.Т-1 Pn+l,TVn,T , х/^ ~ Рп + 1, Т у/1 — Vn,T Действительно, для описания этих равенств необходимы операции умно- жения, однако, применяя некоторые преобразования, обсуждавшиеся в [12], эти равенства можно переписать как Рп+1,т _ rf.T значение безразлично sin 6V — cos 0V, т р„ т 0 sin — cos cos ev sin L o lj|_cos 0, sin 0, где +1, т ^n -ч, rJ — [ 1 0] sh вр ch ep ch бЛр*г <r sh 0 0 - arccos vnT\ 04 = arccos T)n,T-\ » ®p = arcth 1/ри+1; т Рис. 16.5. Многозвенный фильтр лестничного типа; р с = \/1 — р2; р~с~\ [рс 278
Теперь ясно видно, что основная структура вычисления определяется двумерными вращениями. Удобные методы реализации вращения обеспе- чивают алгоритмы CORDIC [3], в то время как простой умножитель этого не дает. Подобным образом относительно просто можно показать, что другие из- вестные алгоритмы, такие как БПФ, ДПФ, комплексной фильтрации, адап- тивной коррекции методом минимума среднего квадратичного отклонения, легко описываются с помощью вращений. Подобное обсуждение приведено в [12, 13]. Другим общим алгоритмом является алгоритм сжатия [14], используе- мый в телефонии. Несмотря на то, что умножитель (или устройства, выпол- няющие алгоритм CORDIC) может выполнить эти преобразования, проще их реализовать с помощью метода последовательных приближений Чена (convergence computation method) [4]. Этим кратким обсуждением хотелось показать, что, хотя быстродействую- щие умножители превалируют в цифровых процессорах сигналов, они не всегда необходимы для всех задач. Желательно иметь набор арифметических средств, включающий умножители, операции выполнения алгоритма CORDIC и операции метода последовательных приближений. В действительности операции алгоритма CORDIC и метода последовательных приближений тес- но связаны друг с другом, а операция умножения является частным случаем их обоих, поэтому следует надеяться, что с помощью простой аппаратуры можно выполнить операции всех трех видов. Теперь рассмотрим схемы умножителей, устройств, выполняющих опера- ции для алгоритмов CORDIC, и устройств, реализующих метод последова- тельных приближений, и сравним их по производительности. Рассматривать будем только операции с фиксированной запятой, так как нетрудно пока- зать, что вычисления с плавающей запятой могут быть реализованы как вы- числения с фиксированной запятой над мантиссами операндов и некоторые преобразования порядков. 16.4. АРХИТЕКТУРЫ УСТРОЙСТВ БЫСТРОГО УМНОЖЕНИЯ До недавних пор много внимания уделялось реализации быстродействую- щих умножителей. Приведем некоторые схемы параллельного поразрядного умножения и покажем, как их архитектура влияет на производительность. Для знакомства с методами последовательного поразрядного умножения, которые не рассматриваются в этой главе, советуем читателю обратиться к работам [15, 16]. Параллельные поразрядные операции часто обеспечивают лучшую производительность (при заданной площади кристалла), чем после- довательные [15]. 16.4.1. Алгоритмы косвенного умножения Косвенное умножение напоминает школьный способ сдвига и сложения. Рассмотрим структурную схему, приведенную на рис. 16.6, в которой X и У — два w-разрядных регистра операндов, содержащих значения множителя 279
Рис. 16.6. Косвенный умножитель и множимого, а также «-разрядный накопитель А, в котором хранятся част- ные суммы. Два триггера содержат знаки операндов. Обозначим- i-й бит числа Y через Уг-, и пусть ЛЛ \ = О = 1> Y, = О представляет собой «-разрядный результат «XI логической операции И. Произведение XY вычисляется по следующему алгоритму: For end; i = 0 to n — 1 begin; Cflb/x.S^A + (XAY0) AY-C^.S. Уп.Лп-2 /★сложение*! .. Yi+11* сдвиг вправо */ где S и Свых — сумма и цифра переноса на выходе из сумматора; А.В — конкатенация А и В. В конце операции умножения в регистре A. Y появля- ются 2«-разрядные произведения. Заметим, что сдвиг вправо в указанном алгоритме совершенно аналогичен сдвигу влево в искомом методе. В этой схеме косвенного умножения на одну операцию умножения тре- буется « циклов. Например, если операции умножения над 16-разрядными сомножителями длятся 500 нс, то время каждого цикла равно 31 нс. Дли- тельность каждого цикла определяется временем доступа к регистрам, вре- 280
менем выполнения сложения и сдвига и, наконец, запоминания результата в А и X регистрах. Скорость умножения, необходимая для достижения за- данного времени, в значительной степени зависит от числа используемых . шин; их наименьшее число равно трем (рис. 16.6), при этом два суммируе- мых операнда одновременно выбираются отдельными шинами, а для записи результата необходима еще одна. Можно ускорить выполнение сдвига и сложения, если в одном цикле опе- рировать с несколькими разрядами, а не с одним. Эта схема известна как схема умножения с просмотром разрядов. Рассмотрим «-разрядные величи- ны, разделенные на неповторяющиеся ^-разрядные блоки. Без ограничения общности будем считать п целым, кратным числу к. Пусть — значение z-ro блока. Тогда алгоритм умножения может быть записан как for i = 0 to (n/k) — 1 begin; ^вых S <- A + ГП; X A. Y <-СЙЛ/Х . S . Yn , Yn 2...Yi + k end; где теперь вправо сдвигается к разрядов вместо одного. Заметим, что к 1 mjX= 1 = 0 где j^k-2,j • • • ^0 j — блок из к разрядов. Поэтому произведение ггцХ легко выполняется сложением А + 1 операндов. Для этого только тре- буются составные сомножители, которые легко получаются путем сдвига. Так как в операциях используются к разрядов сразу, эта схема требует только [и//с] +1 циклов на полное умножение, что меньше,чем п, однако за счет усложнения оборудования. Примечательно, что метод умножения скани- рованием эквивалентен умножению по основанию/- = 2Л. Мы видели, что каждый разряд в таком умножителе с просмотром раз- рядов вносит вклад в частичное произведение. Число операций сложения можно уменьшить, используя некоторые свойства разрядных строк. Время выполнения уменьшим путем сдвига длинных нулевых строк в умножите- ле. Например, рассмотрим строку, включающую в себя к последовательных единиц: ... 0, 1, 1, 1, ..., 1, 0 . . . к Используя тот факт, что И + к-2i = 2i + к-1 + 2i + к -2 + ... + 2/ + 1+2/ строку можно перекодировать как ... 1, 0, 0, ..., 0, 1, 0 ~к^Г 281
где 1 используется для обозначения —1. Теперь к последовательно выполняе- мых операций сложения благодаря перекодированному множителю заменя- ются единственной операцией сложения и единственной операцией умноже- ния. Именно зто свойство является полезным в перекодированных опера- циях умножения (см., например, [17 — 19]). 16.4.2. Умножители с перекодированием Только что продемонстрирован простой способ перекодирования строки разрядов, при котором уменьшается число операций сложения, требуемых при выполнении умножения. Это свойство, известное как перекодирование строк, является основой многих методов, включая знаменитый метод Бута [20]. Пусть В1 — строка из п двоичных символов и пусть D - перекодиро- ванная строка, состоящая из п символов, выбранных из алфавита {1,0,1 } . Тогда если В = 0 В' • 0, то | 0, В, = В;1, £>, = < 1, I, Bt>B^i, где Dj — /-й символ строки D. Ясно, что перекодирование всей строки может быть выполнено очень быстро путем параллельного перекодирования всех разрядов. Целью перекодирования является получение строки D, содержащей боль- ше нулевых символов, чем строка В (напомним, что эта операция не входит в умножение), и тем самым повышение скорости умножителя. В общем случае перекодирование эффективно для строк В, не содержащих много изолированных единиц. Алгоритм умножения Бута может быть представлен в следующем виде: for i = 0 to n — 1 begin; if Yo = Y1 then PP «- right shift (PP) if Y, < Yo then PP «- right shift (PP + X) if Y, > Yo then PP «- right shift (PP - X) end; где PP является частным произведением, хранимым в A. Y. Согласно этому алгоритму числа обрабатываются непосредственно в дополнительном коде без преобразования в форму со знаковым разрядом. 16.4.3. Матричные умножители — умножитель Брауна Рассмотрим два положительных целых числа A=aw_j, ап_2 ао и В = =Ьт_ 1^т-2 • - -^о, имеющих значения л - 1 "'1 I А| = £п,.2г, |В| = £ Ь, 2' - ;=о <=о 282
Необходимо получить произведение т — 1 п • 1 т + П - 1 |P| = |A||B|=Z £(a,b,)2i+J = X Рк2к. i=O j = 0 к=О Последнее равенство обладает интересным свойством, состоящим в том, что каждое значение Pk является суммой одноразрядных результатов aty, каждый из которых может быть получен операцией И. Схема матричного умножителя для т = 5 и н=4 показана на рис. 16.7. Это устройство, извест- ное как умножитель Брауна [21], построено из совокупности ячеек полных сумматоров (ПС), на входы которых подаются одноразрядные произведения afij. Структура такого умножителя является совершенно регулярной и пол- ностью пригодна для интегрального исполнения, так как состоит из т(п — 1) одинаковых одноразрядных сумматоров, а также из т -п вентилей И. Производительность матрицы можно оценить, анализируя наиболее длин- ный путь прохождения данных. Время умножения определяется формулой Т = Та + (п + m — 2) Ту, 283
где Та и Ту — задержка времени распространения в элементе И и одноразряд- ном сумматоре соответственно. Выбирая и-канальную МОП-технологию и используя вентили с одинаковым управлением, имеем 7у = 2Та, что дает Т = (2п+2т-3)Та. Таким образом, умножитель 16X16 разрядных слов, выполняющий ум- ножение за 500 нс, требует задержки на вентиль 8 нс. Если учесть, что каж- дый выход одноразрядного сумматора соединяется только с двумя иден- тичными элементами, расположенными в непосредственной близости на кристалле, то требования к производительности оказываются более реаль- ными, чем длительность цикла, равная 31 нс для косвенного умножителя, рассмотренного ранее. При тщательном исследовании производительности этого умножителя ясно видно, что задержка (т —1)7у получается в нижней строке суммато- ров из-за распространения цифры переноса. Эта задержка может быть умень- шена до некоторого постоянного значения (например, Ю7а) путем выпол- нения операции суммирования с предварительным просмотром цифры пе- реноса .в нижней строке сумматоров. С учетом этого время умножения Т = (2п + 10)Та. Таким образом, 500-нс умножитель может быть реализован с задержкой 12 нс на вентиль при введении дополнительной аппаратуры для просмотра переноса. ' В умножителе Брауна обрабатываются целые положительные числа, что неизбежно требует дополнительной аппаратуры, которая управляет преоб- разованием числа (например, в обратный или дополнительный код). Мы бы предпочли структуры, в которых обрабатываются непосредственно числа, именно такие структуры являются темой подразд. 16.4.4. 16.4.4. Умножитель Бо-Вулн, работающий с дополнительными кодами Матричные умножители, которые оперируют непосредственно с допол- нительными кодами чисел, обсуждались многими авторами [22, 23]. Про- иллюстрируем метод [23] (рис. 16.8) для случая т = 6, п =4. По-прежнему умножение выполняется как накопление последовательных слагаемых. Нововведением в методе Бо-Вули является то, что все слагаемые положи- тельны, поэтому требуется только аппаратура простого сложения, несмот- ря на то, что операнды могут быть и отрицательными. Вновь начнем с двух двоичных векторов А=нот_|ате_2 • •-«iao и В = = bn_1Z>n_2 • -bib0, образующих дополнительный код числа. Их значения определяются в виде m 2 и-2 А = + Z п,2‘, В = — Ь„ 12и1 + £ Ь,2‘, 1 = 0 1=0 и их произведение Р = Рт+п-\Р • • А То имеет значение 284
Рис. 16.8. Умножитель Бо-Вули: ПС — полный сумматор т +п — 2 Р= -Рт+Л j2",+n-1 + X Р,2( =«m_1bn_12m+"2 + i = 0 m — 2 л — 2 т—2 л — 2 + X Xa.b72/+J- Х^-Л2"-1*. ( = 0 J=0 i=O 1 = 0 Две последние операции вычитания легко преобразуются в операции сложе- ния в дополнительном коде. Решающим в данном методе является то, что число Х=х^_1х^_2 ’ • • • ’xiA'o > значение которого определяется как к-2 X=-xkl2k'i + £х,-2', i = 0 может быть проинвертировано в виде к-2 -X=-(l-xk t)2* 1 + ХО-Хё)2£+1. i = 0 Применяя это действие к записанным ранее уравнениям, можно переписать произведение в виде сумм (т.е. без вычитания) т — 2 л - 2 Р = дт_1Ьп_12т+"'2 + X Х«Л’2‘+> + i = 0 j = 0 -2m+” + 2m+” 1 +(«,„_! + т —2 л—2 + b„^)2-+"-2 + b„_1 + X ^fen-12' + + X 1=0 1=0 285
Последнее выражение, обеспечивающее получение произведения Р исклю- чительно с помощью операций сложения, и лежит в основе умножителя Бо—Вули. На рис. 16.8 показана матричная схема реализации умножителя на осно- ве одноразрядных полных сумматоров при т = 6, и = 4. В общем случае тре- буется матрица из т (п — 2) + 3 одноразрядных полных сумматоров, а время умножения составляет Т=2Та + (m + n)Tf = 2(m+n + 1)Та. Если т=п, то нижняя строка матрицы упрощается и выполнение операции сложения с предварительным просмотром цифры переноса обеспечивает существенное повышение скорости. Если предварительный просмотр цифры переноса дает время сложения, равное 10Та, то Г=2(и + 6)Та. Быстродействие вентилей и объем требуемого оборудования для выпол- нения этого умножителя сравнимы с таковыми в матричном умножителе Брауна, оперирующем только с положительными целыми числами. Если ум- ножитель Брауна дополнить преобразователем в дополнительный код, имею- щий задержку 2пТа, то устройство Бо—Вули окажется лучше и по быстродей- ствию, и по полезной площади кристалла. 16.4.5. Другие стратегии умножения Два дополнительных метода умножения, которые успешно применяются в области обработки сигналов, основаны на логарифмической обработке и арифметике вычетов. В первом случае мы видим, что А • В = log"1 (log Л + log В). Поэтому при хранении значений log х и log"1 х в таблице (табличной памяти) эта схема требует только одной операции сложения и трех обращений к табличной памяти. Огра- ничение логарифмической обработки связано с потребностью в очень больших таблицах для достижения высокой точности, что лимитируется временем и площадью кристалла. За дальнейшей информацией читатель отсылается к работам [24, 25]. Применение арифметики остаточных классов (вычетов) в системах обработки сиг- налов представляет большой интерес, так как все разряды в представлении вычета име- ют равный вес. Отпадает необходимость в информации о переносе (из разряда в раз- ряд), так как нет ни младших, ни старших разрядов и, таким образом, арифметичес- кие операции реализуются очень быстро. Например, пустьР =Р1, Р2,Рк — множест- во модулей, элементы которого относительно просты. Единственное представление числа Хе [—7V/2,7V/2] через вычеты задастся/С-компонентным вектором Х=Х„Хг,...,Хк, где Г X modPf,X- > О, Xi=\ {.Pi - (l*fl тойР^,Х{ <0; N= £ Р,-. (=1 286
Композиция двух чисел Хи Y Х=х1х2 . . ,хк, 'i=ylyt . -Ук, обозначаемая X • Y (где обозначает сложение, умножение или вычитание), выполня- ется просто: X-Y = (х1 -У1 хг-уг...хк.ук), так как каждый разряд вычета вычисляется независимо; этот арифметический метод обеспечивает высокое быстродействие и способствует высокому параллелизму. Ариф- метика вычетов, тем не менее, не свободна от проблем. Например, числа ограничены ди- йамическим диапазоном [-Л/2, JV/2], который часто меньше диапазона, допускаемого двоичным представлением. Преобразование из обычного двоичного вида в представле- нии через вычеты часто выполняется табличным методом, который становится факто- ром, ограничивающим скорость. Возможно, что наибольшим недостатком этого подхо- да является то, что из-за отсутствия весов разрядов алгоритмы операций, таких как деление, масштабирование, округление, сравнение по модулю, очень громоздки. Ситуа- ции, в которых такие операции встречаются очень часто, приводят к многочисленным преобразованиям представления чисел, и преимущество арифметики вычетов теряется. Дополнительную информацию можно найти в [26 - 28]. Оба способа построения арифметического устройства для обработки сигналов (ло- гарифмической обработки и использования арифметики вычетов) являются нестан- дартными. Однако из-за совокупности указанных трудностей их не используют в тради- ционных случаях обработки сигналов, поэтому мы не будем уделять им внимание. Читатель, интересующийся специфическими алгоритмами, может найти эти методы очень полезными; сведения о них изложены в литературе. Перейдем к рассмотрению некоторых вариантов традиционного АУ, которые хорошо подходят для общих алго- ритмов обработки сигналов. 16.5. АЛГОРИТМ CORDIC В разд. 16.4 было показано, что некоторые алгоритмы цифровой обра- ботки лучше описываются обобщенными векторными функциями вра- щения, чем простым умножением. Алгоритмы координатного вращения CORDIC (coordinate rotation digital computer) обеспечивают эффективный, по существу поразрядно-рекурсивный, метод для вычисления двумерных векторных функций вращения с помощью простых операций сдвига и сло- жения. Для системы координат с параметром т, в которой норма R и угол Ф вектора Х= (х0, У о) определяется в виде R = уДо + myl, Ф = m arctg (уо у/т/хо), итеративный алгоритм CORDIC задается как [29] zt+1 = zi — а,-, 287
X X ----Kj (x cosz- у sin z) ----Kj(y cosz+zsinz; ----0 -----к, ]/х2+уг -----0 -----z~ arctg-f(y/x) a) (m = 1): z—0 У — z----- Z -------Z-(y/X) 6) (m=0): y-0 x---- X -------K-,(jrchz+£fshz) у---- у -------K.rfymz+xsbz) z---- Z -------О x ----*-1/х2-уг У---- Y Z---- Z -----Z-MtW1 (y/X) ----0 Y у — Z---- Z У----- Y г---- 7 (m=l): у-О Y ------0 x---- (m=-i):z-0 (m=-i):y-i 6) Рис. 16.9. Функции алгоритма CORDIC: a — круговая; б — линейная; в — гиперболическая где / = -Urctg (5f V^) ; -£ Sz-} — множество произвольных констант. Эти уравнения определяют по- ворот вектора Xz- на угол iiidi до положения Xz+1, где дг- =±1 — направле- ние вращения. Суммарный угол поворота за шаг i, при котором использует- ся начальный вектор Хо, накапливается во вспомогательной переменной \z{. Определяя начальное значение zo=0 и выбирая последовательность поворотов {pz-6z} , такую, что zn ->0, получаем поворот Хо на угол 0. Ана- логично, устанавливая z0 = 0 и выбирая {pzSz-} для поворота Хо до извест- ного значения Хи, накапливаем значение угла между векторами Хо и Хи в переменной zn. Например, если вектор Хи расположен вдоль абсциссы, то zn = arctg (уо/Xq) > тем самым получается функция, обратная тангенсу в част- ной системе координат, определяемой значением т. Особый интерес пред- ставляют круговая, линейная и гиперболическая системы координат с соот- ветствующим значением щ=1, 0, —1. Относящиеся к ним функции показа- ны на рис. 16.9. Ключ к простому выполнению рекурсивных алгоритмов вращения лежит в выборе значений {Sz-^ . Если значения {SZJ являются целой степенью ос- нования системы счисления, используемой в машине (например, 6Z- =2-'), то масштабирование с помощью 5Z- сводится к простому сдвигу и сложению. 288
Рис. 16.10. Арифметическое устройство CORDIC Общие указания для выбора значений {б,} и {аг-] даны в [14, 29]. Ясно, что последовательность {аД должна быть невозрастающей для сходимости алгоритма. Сходимость алгоритма проанализирована в [14]. Если {§,-} выбраны, как предложено, то арифметическое устройство CORDIC приобретает простую форму, представленную на рис. 16.10. Кана- лы х и у обеспечивают преобразование X,- в Х/+] в соответствии с уравне- нием (16.1), в то время как канал z накапливает углы поворота, используя значения ]аг-} , получаемые из таблицы. Обычно п значений б,- и, следова- тельно, а,- достаточно для «-разрядных величин. Эти значения выбираются заранее и запоминают ся. Все углы поворота 0 аппроксимируются выбором соответствующих значений } (напоминаем, что дг = ± 1), поэтому п — 1 в = Е/'.«.• 1 = 0 и уравнения алгоритма CORDIC определяют импульсную систему управления поворотом Хо до положения Х/; последовательностью предопределенных по абсолютному значению поворотов с динамически выбираемым направлением. 1 л_лес 1 289
16.5.1. Характерные особенности метода До сих нор мы игнорировали важное свойство выражения (16.1). В дейст- вительности это выражение характеризует не только поворот от Xz- до Xz+1, но и масштабирование вектора, так что |Х; + 1| = К;|Х,.|, где К( = 71 + mtf. Поэтому после п итераций имеем |Х„| = К|Х0|, где Я- 1 п^- i = 0 Следовательно, функции, получаемые векторным вращением, масштаби- руются коэффициентом Л", как показано на рис. 16.9. Следует найти способ нормирования с целью исключения этого коэффициента. Другая проблема алгоритмов вращения связана с их ограниченной об- ластью сходимости. Не все возможные углы поворота в интересующей сис- теме координат дают сходимость к желаемому результату. Выбор {6Z-J за- метно влияет на область сходимости. В литературе приводится большое число схем, расширяющих область сходимости и исключающих масштабирование [29, 30]. Во всех из них предусмотрена проверка значения Х;- для определения необходимости корректировки и корректировка процесса дополнительными .вычисления- ми. Эти схемы обычно приводят к значительному уменьшению скорости вычислений [15]. Эффективный метод для одновременного расширения об- ласти сходимости нормализации был предложен в [ 14]. Он приводит к не- большим потерям в скорости вычислений, основан только на основных уравнениях алгоритма CORDIC и поэтому не требует дополнительного вве- дения специального оборудования. 16.5.2. Применение арифметических блоков CORDIC в обработке сигналов Многие алгоритмы обработки сигналов могут быть реализованы на осно- ве функций вращения, вычисляемых по алгоритмам CORDIC. К некоторым очевидным прикладным задачам относятся задачи комплексной арифмети- ки, например задача дискретного преобразования Фурье или комплексной фильтрации и задачи адаптивного выравнивания при модуляции-демодуля- ции. При реализации алгоритмов решения этих задач, детально рассмотрен- ных в [12, 13], используется выражение для операции комплексного ум- ножения через операции кругового вращения. Преобразование алгоритма в операции координатного вращения не всегда очевидно, как было в примере уравнения многозвенного фильтра лестнич- ного типа (см. разд. 16.4). Пользуясь определенным представлением, уда- 290
лось выразить операции фильтра в виде последовательности круговых или гиперболических вращений. На рис. 16.11 показана структурная схема со- ответствующего АУ с нормализацией масштабирующей константы. Только два АУ и пять операций необходимы для выполнения вычислений в много- звенном фильтре лестничного типа, которые весьма громоздки при исполь- зовании умножителя традиционной структуры. 16.5.3. Повышение скорости выполнения алгоритма Мы показали, что производительность косвенного умножителя может быть значительно повышена использованием, например, матричного умно- жителя. Предлагаемый вариант основан на том факте, что частные суммы, требуемые при умножении, могли порождаться параллельно. К сожалению, это не так в случае с делением и операциями алгоритма CORDIC, каждая последующая итерация которых зависит от знака предыдущего результата. Следовательно, возможности для ускорения этих операций сильно огра- ничены. Как уже отмечалось, обработка сигналов состоит из повторяющихся опе- раций, которые могут быть конвейеризованы. Используем этот факт для построения АУ конвейерной архитектуры, выполняющего алгоритм CORDIC (рис. 16.12). Требуемая для этого дополнительная площадь кристалла при использовании МОП-технологии невелика. Локальность связей также облег- чает задачу размещения. Для параллельного сдвигового регистра в схеме на рис. 16.10 бесспорно требуется большая площадь кристалла в обычном АУ для алгоритма CORDIC. В конвейерном АУ каждый сдвиговый регистр присутствует на каждом этапе и способен выполнять один или два различ- ных сдвига при определенном предварительном выборе [St-}. Следователь- но, при реализации этой большой части схемы не вводится значительной избыточной площади; однако увеличивается скорость благодаря умень- шению задержки сдвигового регистра в расчете на один этап. >: Если для выполнения полной операции в обычном блоке CORDIC требу- ется время Т=пТс (где Тс — время одной итерации), то время ожидания L и период Т конвейерного АУ составляют L = пТ’с,Т=Т’с, где Т'с < Тс благодаря уменьшению задержки в сдвиговом регистре. Длинная последовательность операций вращения выполняется с фактичес- ким периодом Т'с, а не с периодом пТс. й Арифметическое устройство CORDIC также очень полезно в матричном процессоре (например, в систолической матрице) для выполнения опера- ций матричной алгебры, которые являются общими в обработке сигналов, например разложение матрицы, что детально рассмотрено в [31, 32]. Свойства сходимости алгоритма позволяют повысить скорость неконвей- ерного способа реализации координатного вращения (см. рис. 16.9) соглас- но выражению (16.1). Ограниченный объем данной главы не позволяет из- ложить подробности, представленные в [14], поэтому приведем только 291
292
Рис. 16.12. Конвейерная организация блока, выполняющего алгоритм CORDIC важные результаты. Фактически получена гибридная схема, в которой на- ряду с обычной аппаратурой для выполнения алгоритма CORDIC использу- ется умножитель. Во-первых, заметим, что вектор Хт определяется с помощью переменной гт из вектора Хи за т шагов [29]. Последовательность {а;-} полагается убывающей, состоящей из п углов. Рекурсивные вычисления прекращают- ся после т< Nшагов, оставляя при этом небольшой остаточный угол пово- рота zm . Отбрасывая все члены ряда Тейлора в разложениях sin zm и cos zm, за исключением первых (что справедливо для достаточно малых значений zm), можно получить следующие приближенные значения: cos zm ~ 1, sin zm~zm. Теперь из Хт единственным поворотом с коэффициентом zm получаем Хй в виде _ I cos z,„ -sinz„“| Г1 -zj Lsm z„ cos z,„J [z„, 1 J ’ Следовательно, окончательное вращение получается с помощью двух опера- ций умножения в небольшом умножителе (каждая из которых может быть заменена операцией сдвига, т. е. zm ~ 2"Л) за время Т = тТс + 2Тт , где Тт — время выполнения операции умножения. Главный результат, ко- торый оправдывает эту гибридную схему, состоит в том, что для «-разрядной точности отбрасывание младших членов в ряде Тейлора оправдано для [14] тп-> (п + 1)/2, 293
так что приблизительно половина итераций алгоритма CORDIC может быть исключена. Другие гибридные методы даны в [14]. Замечание. Поток данных в этой гибридной схеме направлен из блока координатного вращения в умножитель. Для повышения эффективности эти два устройства можно включить по конвейерной схеме, согласно кото- рой аппаратура координатного вращения начинает следующую операцию после передаю! в умножитель результата предыдущей операции. 16.6. МЕТОД ПОСЛЕДОВАТЕЛЬНЫХ ПРИБЛИЖЕНИЙ Метод последовательных приближений (convergence computation method) является итеративным и применяется для вычисления некоторых элемен- тарных функций [4]. Чтобы вычислить значение z0 =/(х) | х=х , введем переменную у и функцию F (х, у), удовлетворяющую требованиям” 1) существует такое значение у0, при котором F (х0, у0) = z0; G 2) существует непрерывное преобразование (хк, ук) -> (xk+l, j^+1), та- кое, что функция F (хк, ук) инвариантна относительно G при всех к > 0; 3) существует значение xw, достижимое преобразованием G изх0 - Тогда результирующее значение yw, получаемое преобразованием G, удовлетворяет равенству yw = F(xw, yw) •= z0, что является желаемым результатом. Например, если f (х) = wF, то, выби- рая F (х, у) = уех и у о = tv, удовлетворяем условию 1. Затем выбираем преобразование хк+1 = хк ~^ак>Ук + 1 =Укак- Ясно, что F(хк, ук) = F(xk+1, yk+i) при всех к> 0, т.е. удовлетворяется условие 2. Наконец, пусть xvv = 0. Тогда х„. = х0 ~ Е 1п П = хо > 1 1 т.е. удовлетворяется условие 3, и у„) = yw = у о П ак, 1 что дает желаемый результат. Для простоты реализации коэффициенты ак выбираются в виде (для ма- шин, работающих в двоичной системе) ак = \ + 2т*, что приводит только к операциям сдвига и сложения при преобразовании ук. Выбор величин тк детально рассмотрен в [4]. Значение тк влияет на скорость сходимости алгоритма, который требует не меньше и/4 итераций для «-разрядной точности. Структурная схема соответствующего устрой- ства приведена на рис. 16.13 и состоит из устройств сдвигай сложения, сое- 1294
Рис. 16.13. Арифметическое устройство для вычислений методом последовательных приближений диненных с табличной памятью небольшой емкости для хранения значений а. Следует обратить внимание на сходство с методом CORDIC, согласно кото- рому значения {б7-} выбирались в соответствии с основанием системы счис- ления, а таблица требовалась для хранения значений }. 16.7. СРАВНЕНИЕ АРИФМЕТИЧЕСКИХ УСТРОЙСТВ Мы представили несколько примеров арифметических устройств и неко- торые алгоритмы, для выполнения которых они предназначены. Теперь приведем результаты сравнения этих структур, а также их производитель- ности. Все операнды предполагаются «-разрядными. Следует, однако, пре- дупредить, что результат сравнения может часто изменяться в зависимости от принятых допущений. Вначале рассмотрим полезную площадь кристалла при использовании каждого устройства в виде СБИС. Относительные площади кристаллов приведены в табл. 16.1, где в качестве основы для сравнения используется косвенный одноразрядный умножитель. Его схема согласно рис. 16.6 состо- ит из «-разрядного сумматора, трех регистров и двух триггеров. Для выпол- нения преобразования в дополнительный код в эту схему следует ввести соответствующий преобразователь, который более легко реализуется в ви- 295
Таблица 16.1. Относительная площадь кристалла, требуемая для реализации различных арифметических устройств. Все операнды «-разрядные Тип умножителя Относитель- ная пло- щадь Значение для П = 16 Косвенный 1 1 Брауна 9« -7 9,7 14 Бо—Вули 9 и!”"1) 9,6 На основе параллельного алгоритма CORDIC п + 20 3,6 10 На основе последовательного алгоритма CORDIC п + 14 14 2,1 На основе конвейерного алгоритма CORDIC Юн 7 ~ 23 На основе метода последовательных приближений п + 30 35 1,3 де преобразователя в обратный код с добавлением сумматора для младше- го разряда. Мы предположим, что площадь одноразрядного сумматора с его шинами эквивалентна площади трех ячеек памяти с их шинами. Это предположение справедливо для п МОП-технологии. Размеры параллельного сдвигового регистра, требуемого в арифметическом устройстве CORDIC, получены из [14, 30] после соответствующего пересчета площади с целью сравнения с остальной частью АУ, выполненного по идентичной технологии. Был про- веден эквивалентный пересчет и площади разводки для матричного умно- жителя, длина линий связи которого невелика. Все схемы реализации осно- ваны на параллельной поразрядной арифметике; заметим, что параллель- ное АУ для выполнения алгоритма CORDIC вычисляет все три уравнения координатного вращения параллельно, в то время как последовательные АУ выполняют эти вычисления последовательно. Необходимо отметить, что относительные площади кристаллов конвейерного АУ и параллельного АУ растут линейно с ростом и. Можно было ожидать, что относительная площадь с» 2 кристалла конвейерных устройств растет как п , тем не менее этого не происходит, так как пространство, отведенное под регистр сдвига, не рас- тет с ростом п. (Необходимо отметить, что в этих схемах пропорционально и2 растет абсолютная, а не относительная площадь кристалла.) Наконец, в 296
Таблица 16.2. Относительная скорость работы арифметических устройств. Все операнды «-разрядные Тип умножителя 77 Т2 77 72 Т1 72 Т1 Т2 умножение вычисление тригономет- рической функции вычисление угла поворо- та вектора вычисление х/х2 +у2 Косвенный 1,1 1,0 1,0 1,0 1,0 1,0 1,0 1,0 5 5 5 5 5 5 5 5 Брауна 2п 2и ~2п 2п 2л 2л 2л 2п 2 2 2 2 2 2 2 2 Бо—Вули — — — — п п п п п п п п На основе параллельного алгоритма CORDIC 1,3 1,3 0,2 0,2 0,08 0,08 0,2 0,2 На основе последователь- ного алгоритма CORDIC 3,9 3,9 0,6 0,6 0,24 0,24 0,6 0,6 На основе конвейерного алгоритма CORDIC 1,3 1,3 0,2 0,-£ п 0,08 0,08 п 0,2 0^2 п На основе метода после- । । 0 6* 0 6* довательных приближений < * Предполагается составной метод последовательных L 0,24 0,25 приближений. 0,5 0,5 рассмотрение не включены умножители на основе логарифмической обра- ботки и на основе остаточных классов (вычетов), так как площадь крис- талла для них определяется памятью. В значениях относительной площади, приведенных в табл. 16.1, не учте- на площадь схемы управления последовательной работой АУ (например, итерациями последовательного умножителя или операциями алгоритма CORDIC); эта площадь примерно одна и та же для различных стратегий. Как видно, площади арифметических устройств алгоритма CORDIC или метода последовательных приближений оказываются меньше, чем площади матричных умножителей. Они обеспечивают выполнение широкого набо- ра функций, но со значительно меньшей скоростью. Относительные ско- рости Т1 работы различных АУ для операндов разрядностью п приведены в табл. 16.2. Это сравнение основано на том, что доступ к регистру возмо- 297
жен в течение половины времени распространения сигнала через простой одноразрядный сумматор. Функции, которые не могут быть вычислены непосредственно в АУ, вычисляются с помощью рядов. Например, мы вы- брали семь членов ряда Тейлора для вычисления тригонометрических функ- ций с помощью АУ умножителя. Заметим, что производительность умножи- теля постоянна в каждой строке таблицы, так как приведенные значения представляют собой отношение скорости каждого умножителя (для раз- личных операций) и скорости основного умножителя (принятой за единицу). Наконец, так как алгоритмы обработки сигналов часто выполняются в ви- де повторяющихся серий большого числа простых операций, мы также приводим относительное время выполнения одной операции в последователь- ности идентичных операций — Т2. Здесь преимущество имеет конвейерная структура. Выводы, которые можно сделать из приведенного сравнения, состоят в том, что методы CORDIC и последовательных приближений обеспечивают большую функциональную гибкость при одинаковой полезной площади кристалла. Их скорость меньше, чем скорость косвенного умножителя. И все же, если требуется только трансверсальная фильтрация с большой скоростью, матричный умножитель обеспечивает лучшую пропускную спо- собность на единицу площади. Замечание. Как видно из табл. 16.2, устройство, работающее по алгоритму CORDIC, вычисляет угол поворота вектора более эффективно, чем тригоно- метрические функции. В действительности обе эти операции требуют того же самого абсолютного времени работы устройства. В связи с этим напомним, что в табл. 16.2 показана производительность по отношению к производи- тельности основного умножителя, который требует большего времени на выполнение векторного вращения, чем для вычисления тригонометрических функций. Поэтому относительная производительность устройства CORDIC при вращении вектора выше, чем при других операциях. 16.8. ЗАКЛЮЧЕНИЕ При данном изолированном изучении арифметических устройств для цифровых процессоров сигналов мы основывались на том, что желательно иметь высокую пропускную способность при выполнении таких операций, как умножение, вычисление квадратного корня, вращения вектора. Были представлены различные схемы быстрого умножения и реализации алгорит- мов CORDIC и последовательных приближений для вычисления элементар- ных функций. Основным результатом являются сравнительные характерис- тики (табл. 16.1, 16.2), позволяющие выбрать АУ для задач конкретных классов. 298
Результаты ясно показывают, что методы CORDIC и последовательных приближений оказываются бесполезными, если представляет интерес толь- ко операция быстрого умножения, поскольку они занимают большую пло- щадь (кристалла) при довольно посредственной производительности, чем основной вариант умножителя. Умножитель Бо—Вули обеспечивает большую скорость выполнения этой операции. Он также имеет лучшую пропускную способность на единицу площади устройства, чем наш основной вариант. Среди всех представленных схем матричный умножитель обеспечивает наибольшую скорость умножения. При длинной последовательности опера- ций наибольшую эффективность дал бы конвейерный матричный умно- житель. Если в круг операций, представляющих интерес, входят операции вычис- ления тригонометрических функций или нахождения логарифма, а также умножения, то методы последовательных приближений и CORDIC становят- ся очень привлекательными, так как реализующие их устройства будут производительнее умножителя, вычисляющего усеченное разложение в ряд. Если интерес представляют алгоритмы, содержащие функции CORDIC или метода последовательных приближений, возможности выбора велики. Важно заметить, что польза метода CORDIC или последовательных при- ближений заключается в их общности. Всегда можно найти более эффектив- ную схему для вычисления конкретной функции (например, квадратного корня), если эта операция единственная. Однако цифровой процессор сиг- налов, предназначенный для широкого использования, может обладать большей гибкостью при наличии АУ, выполняющего алгоритм CORDIC. В заключение этой главы еще раз напоминаем читателю о взаимодейст- вии АУ и контроллера, которое здесь не учитывалось. СПИСОК ЛИТЕРАТУРЫ [1] W. W. Peterson and Е. J. Weldon, Jr., Error-Correcting Codes, MIT Press, Cambridge, Mass., 1972. [2] D. T. Lee and M. Morf, “Recursive Square Root Ladder Estimation Algorithms,” Proc. 1980 ICASSP, Apr. 1980, pp. 1005-1017. [3] J. E. Voider, “The CORDIC Trigonometric Computing Technique,” IRE Trans. Elec- tron. Comput., EC-8(3):330-334 (Sept. 1959). [4] T. C. Chen, “Automatic Computation of Exponentials, Logarithms, Ratios and Square Roots,” IBM J. Res. Dev., July 1972, pp. 380-388. 299
[5] S. J. Magar et al., “A Microcomputer with Digital Signal Processing Capability,” Proc. 1982 Int. Solid State Circuits Conf., 1982, pp. 32-33. [6] J. R. Boddie et al., “DSP: Architecture and Performance,” Bell Syst. Tech. J., 60(7), Part 2:1449-1462 (1981). [7] Y. Kawakami et al., “A Single Chip Digital Signal Processor for Voiceband Appli- cations,” Proc. 1980 Int. Solid State Circuits Conf., 1980, pp. 40-41. [8] Signal Processing Peripheral Reference Manual, available from American Microsystems, Inc., Santa Clara, Calif. [9] J. V. Harshman, “Architecture of a Programmable Digital Signal Processor,” Proc. Natl. Telecommun. Corf., Dec. 1974, pp. 496-500. [10] H. Aiso et al., “A Very High Speed Microprogrammable, Pipelined Signal Processor,” Proc. IFIP Congr., Aug. 1974, pp. 60-64. [11] С. V. W. Armstrong et al., “A Multimicroprocessor Array Processor for Radar Signal Processing,” Proc. 6th ACM Sigarch Symp., Philadelphia, May 1979. [12] H. M. Ahmed, D. T. Lee, M. Morf, and P. H. Ang, “A VLSI Speech Analysis Chip Set Based on Square Root Normalized Ladder Forms,” Proc. 1981ICASSP, Mar. 1981, pp. 648 653. [13] H. M. Ahmed and M, Morf, “Synthesis and Control of Signal Processing Architec- tures,” Proc. 1981 VLSI Int. Corf., Edinburgh, Aug. 1981. [14] H. M. Ahmed, Signal Processing Algorithms and Architectures, Ph.D. thesis, Dept, of Electrical Engineering, Stanford University, June 1982. [15] R. F. Lyon, “Two’s Complement Pipeline Multipliers,” IEEE Trans. Commun., COM- 24:418-425 (Apr. 1976). [16] J. Kane, “A Low Power, Two’s Complement Serial Pipeline Multiplier Chip,” IEEE J. Solid State Circuits, SC-11:669-678 (Oct. 1976). [17] P. M. Fenwick, “Binary Multiplication with Overlapped Addition Cycles,” IEEE Trans. Comput., C-/S(l):71-74 (Jan. 1969). [18] K. Hwang, Computer Arithmetic, Wiley, New York, 1979. [19] S. F. Anderson et at, “The IBM System 360/Model 91: Floating Point Execution Unit,” IBM J. Res. Dev., Jan. 1967, pp. 34-53. [20] A. D. Booth, “A Signed Binary Multiplication Technique,” Q. J. Meeh. Appl. Math., 4, Part 2:236-240(1951). [21] E. L. Braun, Digital Computer Design, Academic Press, New York, 1963. [22] S. D. Pezaris, “A 40ns 17 Bit by 17 Bit Array Multiplier,” IEEE Trans. Comput., C-20(4)-.442-447 (Apr. 1971). [23] C. R. Baugh and B. A. Wooley, “A Two’s Complement Parallel Array Multiplication Algorithm,” IEEE Trans. Comput., C-22(l-2):1045-1047 (Dec. 1973).
[24] T. Brubaker and J. Becker, “Multiplication Using Logarithms Implemented with Read Only Memories,” IEEE Trans. Comput., C-24.161-165 (Aug. 1975). [25] J- N. Michell, “Computer Multiplication and Division Using Binary Logarithms,” IRE Trans. Electron. Comput., EC-11:512-517 (Aug. 1962). [26] W. K. Jenkins, “A Highly Efficient Residue Combinational Architecture for Digital Filters,” Proc. IEEE, 66:700-702 (June 1978). [27] J. M. Pollard, “Implementation of Number Theoretic Transforms,” Electron. Lett., /2(22):378 379 (July 1976). [28] F. J. Taylor, “Large Moduli Multipliers for Signal Processing,” IEEE Trans. Circuits Syst., CAS-2S(7):731-735 (July 1981). [29] J. S. Walther, “A Unified Algorithm for Elementary Functions,” AF1PS Conf., Vol. 38, 1971 SJCC, pp. 379-385. [30] G. Haviland and A. Tuszynski, “A CORDIC Arithmetic Processor Chip,” IEEE Trans. Comput., C-29(2):68-79 (Feb. 1980). [31] H. Ahmed and M. Morf, “VLSI Array Architectures for Matrix Factorization,” Proc. Workshop Fast Algorithms Linear Syst., Aussois, France, Sept. 1981. [32] H. Ahmed, J. M. Delosme, and M. Morf, "Highly Concurrent Computing Structures for Matrix Arithmetic and Signal Processing,” IEEE Comput., 75(l):65-82 (Jan. 1982).
ЧАСТЬ III ПРИМЕНЕНИЕ ПАРАЛЛЕЛЬНЫХ МАТРИЧНЫХ ПРОЦЕССОРОВ I --------------------------------------------------------------------- Эта часть книги посвящена применению параллельных матричных процес- соров в обработке сигналов. В недавнем прошлом основные работы прово- дились в направлении реализации различных прикладных алгоритмов обра- ботки сигналов в сверхбольших интегральных схемах и решения обратной за- дачи. Опыт, полученный в результате такой непосредственной практики, не- сомненно улучшит понимание действительного влияния СБИС на обработку сигналов путем обобщения и уточнения ее теоретических основ. В то же вре- мя разнообразные сферы приложения могут многократно усилить такое вли- яние. Поэтому данная часть книги включает главы, посвященные реализации кристаллов сигнальных процессоров и процессоров быстрого преобразова- ния Фурье (БПФ-процессоров) , а также различным областям применения па- раллельных матричных процессоров. Очень важной областью применения па- раллельных матричных процессоров, которой в данной части уделяется осо- бое внимание, является обработка изображений и распознавание образов. Архитектурные решения некоторых специальных прикладных задач могут быть ограничены повышенными требованиями к скорости обработки. Вслед- ствие этого в рассмотрение также должно быть включено сопоставление ре- ального быстродействия для кремниевых интегральных схем и некоторых других (например, на основе арсенида галлия). В гл. 17 рассматривается применение параллельных матричных процессо- ров при двумерной обработке сигналов. В главу включено описание СБИС, разработанной специально для решения теплицевых систем уравнений. Эти системы уравнений часто встречаются при анализе стационарных во времени и пространстве линейных систем. В гл. 18 описывается КМОП-кристалл СБИС арифметического процессора. Этот кристалл был спроектирован для эффективного выполнения универ- сальной матричной обработки при вычислениях с плавающей запятой. Исполь- зование кристаллов общего назначения позволяет решать многие задачи об- работки сигналов в рамках единой архитектуры. В гл. 19 описан набор биполярных кристаллов арифметических процессо- ров. Эти кристаллы предназначены специально для выполнения алгоритма БПФ, требующего большого объема вычислений. Для устранения необходи- мости масштабирования данных и потери точности в процессоре используют- ся вычисления с плавающей запятой. Благодаря специализации архитектуры для вычисления БПФ и использования СБИС может быть достигнута высокая производительность. 302
Глава 20 посвящена кристаллу цифрового фильтра. Этот кристалл спроек- тирован для непосредственного применения теоретико-числовых преобразо- ваний и таким образом обеспечивает точные вычисления при соответственно выбранной длине слова. Такая архитектура особенно полезна для вычисления функций свертки и корреляции, соответствующих фильтрам с конечной им- пульсной характеристикой (КИХ-фильтрам). В гл. 21 рассматривается систолический сигнальный процессор для рекур- сивной фильтрации. Архитектура фильтра с бесконечной импульсной харак- теристикой получена за счет реализации уравнений калмановского фильтра на систолической матрице. В гл. 22 обсуждаются некоторые проблемы построения систолического процессора, предназначенного для решения вычислительных задач линейной алгебры. Архитектура процессора основана на использовании унитарных пре- образований для факторизации матриц. В качестве иллюстрации выбрано применение двумерной систолической матрицы для адаптивного формирова- ния луча. В гл. 23 рассматривается использование параллельных вычислений при об- работке изображений и восприятии образов. Обсуждаются архитектурные ре- шения: параллельные, конвейерные и пирамидальные структуры. В гл. 24 дается обзор типов параллельных алгоритмов, которые могут быть использованы для обработки и анализа изображений. Для обработки элемен- тов изображения1 привлекательна ’’клеточная” матричная архитектура. Для измерений характеристик изображения более эффективна древовидная архи- тектура. В гл. 25 рассматриваются принципы анализа изображений и управления ба- зой данных изображения. Предлагаются варианты архитектуры СБИС как для распознавания образов, так и для обработки изображений. Авторы выд- вигают предположение о том, что машина на СБИС для обработки изображе- ний должна объединять в рамках единой системы операции по анализу изо- бражений и по управлению базой данных изображения. В последней главе описываются работы, относящиеся к высокопроизводи- тельной обработке сигналов. В ней обсуждаются как вопросы использования параллельной архитектуры, так и перспективы разработки быстродействую- щих ИС. Предлагается использование быстродействующих интегральных микросхем на арсениде галлия и проводится их сравнение с кремниевыми схемами. 1 В оригинале — For fixed-level operations. По смыслу более верно For pixel-level (уровень элементов изображения) . — Прим, перев. 303
17 ПРИМЕНЕНИЕ ПАРАЛЛЕЛЬНЫХ СИСТЕМ НА СБИС ПРИ ДВУМЕРНОЙ ОБРАБОТКЕ СИГНАЛОВ Г. Надд,Дж. Наш1 17.1. ВВЕДЕНИЕ Появление МОП-технологий, обеспечивающих высокую плотность упаков- ки элементов, и СБИС создает предпосылки для значительного увеличения возможностей обработки сигналов во многих областях. Многие методы обра- ботки, которые до сих пор считались слишком дорогостоящими или медлен- но выполняемыми, вскоре будут осуществляться бортовыми процессорами в реальном масштабе времени. Это в особенности справедливо для двумерной обработки сигналов в таких областях применения, как радиолокационное картографирование, формирование луча и анализ радиолокационных изобра- жений. В этих областях объемы данных, подлежащих обработке, как правило, возрастают обратно пропорционально квадрату разрешения по дальности. Для нестационарных систем с относительно высоким разрешением скорость входных потоков достигает 108 отс./с, а требования по производительности превышают 109 оп./с. Можно ожидать, что уменьшение времени задержки приборов, обеспечива- емое технологией СБИС, даже при использовании обычной фон-неймановской архитектуры уменьшит время машинного цикла приблизительно на порядок. Все же для большинства двумерных задач эти достижения в производитель" ности будут еще далеки от требуемых, и поэтому необходимо эффективно использовать параллелизм и совмещение операций. Это именно та область, в которой СБИС могут в наибольшей мере проявить себя. Если, к примеру, удастся получить на процессорной пластине или кристалле 10, 100 или даже 1000 элементарных процессоров, работающих одновременно, то это приведет к значительному росту производительности. Однако для достижения такого параллелизма следует учесть сразу несколько обстоятельств. Например, необ- ходимо пересмотреть основные вычислительные операции, требующиеся для каждой из прикладных задач, а также предусмотреть меры по повышению эффективности алгоритмов, не сводящиеся только к минимизации числа опе- раций или команд. Повышенное внимание должно быть уделено обеспечению оптимального параллелизма и поддержанию высокого процента активности всех элементов процессорных матриц. Далее, важным обстоятельством ста- новится регулярность потока данных и потребность не только в локальной, но и в глобальной памяти. В настоящее время эти проблемы получили при- знание, а разработка алгоритмов для СБИС поставлена на научную основу. Эффективному использованию параллелизма должны предшествовать ис- следования технологических вопросов, таких как проектирование СБИС и 1 Фирма Hughes Research Laboratory, Малибу-Бич, Калифорния. 304
топологии связей в процессоре, а также вопросов ввода и вывода информа- ции. По этой причине наши усилия в настоящее время были сконцентрирова- ны на разработке систем с параллельной архитектурой, содержащих в основ- ном одинаковые обрабатывающие элементы с минимумом глобальных свя- зей. Имеются в виду два класса архитектурных решений. В первом из них для достижения параллелизма предусматривается возможность использова- ния большого числа одинаковых, но относительно небольших просмотровых таблиц, а во втором — разработка оптимального локального элементарного процессора, требующего связи лишь с ближайшим соседом. Второй подход важен в том смысле, что мы уже начали рассмотрение и построение ориенти- рованной на умножение СБИС процессора (ОУП), который при включении в двумерную или одномерную матрицу может обеспечить очень широкий круг функций обработки. Этот процессор в настоящее время использует КМОП технологию ИС со стандартным разрешением 5 мкм и может быть запрограм- мирован на уровне как локального процессора, так и матрицы для реализа- ции множества алгоритмов, используемых в анализе изображений и распозна- вании образов (АИРО) . Подробные сведения о данном кристалле приведены в разд. 17.3. 17.2. ТРЕБОВАНИЯ К ПРОИЗВОДИТЕЛЬНОСТИ ПРИ АНАЛИЗЕ ИЗОБРАЖЕНИЙ За последние несколько лет достигнуты большие успехи как в области ал- горитмов, так и в области программного обеспечения анализа изображений, в результате чего произошел переход от эры предварительной обработки и кодирования к более сложным методам, в основном базирующимся на сим- волическом и необразном представлениях [1, 2]. Эти методы направлены больше на использование последовательных уровней абстракции в представ- лении данных, чем на конкретную топологию образа. Вследствие этого при- менявшееся ранее методы обычной двумерной фильтрации теряют свое зна- чение и упор делается на такие операции, как выделение признаков изобра- жений и классификация [3, 4]. 17.2.1. Операции обработки Основные стадии обработки информации в типичной современной системе анализа изображений иллюстрируются рис. 17.1. Первая стадия, заключающа- яся в формировании изображения, для визуальных образов может быть три- виальной, но для баз данных таких устройств, как радиолокатор с синтезиро- ванной антенной решеткой (САР), эта стадия может потребовать значитель- ной производительности вычислительной системы. Основные операции вклю- чают формирование в реальном масштабе времени последовательных элемен- тов разрешения в продольном и поперечном направлениях1. Например, изо- бражение с разрешением d по обеим осям (для элементов разрешения в попе- речном направлении) требует производительности 1 По отношению к направлению полета носителя РЛС. - Прим. ред. 305
Рис. 17.1. Структур- ная схема процесса анализа изображения по признакам а для элементов разрешения в продольном направлении -1уДД1п(ЛХ/(2£/2)) , d2 где Т — длительность передаваемого импульса; ДА — диапазон дальности; PRF — частота повторения импульсов; R — дальность; v — скорость летатель- ного аппарата; X — длина волны передаваемого сигнала. Для относительно высокого разрешения, равного 1 м, эти расчеты дают производительность примерно 108 оп./с. После формирования двумерного образа, как правило, могут быть приме- нены некоторые методы коррекции или восстановления при индикации в ре- альном масштабе времени. Типичным видом обработки, которая может быть использована на этой стадии, является двумерная фильтрация вида 7(х, у) = Н(х,у) *1(х, у) + шум, (17.1) * где I (х, у) — откорректированное изображение в точке х, у; I (х, у) — исход- ное изображение; Н(х, у) — импульсная характеристика фильтра; символ * обозначает свертку. Для многих задач характеристики фильтра вычисляются в реальном масштабе времени по статическим характеристикам принимаемо- го изображения, например, таким, как спектр. Поэтому типичной операцией наряду с двумерной фильтрацией (17.1) является обращение матрицы разме- ра п X и, где п может изменяться в пределах от 3 до 15 пиксел1. На следующей стадии могут применяться более сложные операции, направ- ленные, например, на получение изображения с более высоким разрешением 1 pixel - минимальный элемент изображения, цвет и яркость которого можно задать независимо от остального изображения. — Прим, перев. 306
по методу максимума энтропии. Простейшим примером может служить си- туация, когда разрешение не одинаково по двум ортогональным направлени- ям и оценка по методу энтропии используется для увеличения числа отсчетов по одной из осей. Как правило, это может привести к операции обращения теплицевой матрицы, описанной в разд. 17.4. 17.2.2. Выделение признаков и классификация изображений Дальнейшая обработка связана с выделением признаков и классификаци- ей объекта. На этой стадии каждый элемент изображения рассматривается с учетом его ближайшего окружения и формируется скользящее окно. Обычно размер окна может меняться от 3 X 3 до 64 X 64 пиксел, что приводит к ча- стотам обращений от 6 ПО7 до 3*1010 пиксел в секунду для обычных телеви- зионных изображений. Необходимость измерения характеристик, таких как плотность контура, дисперсия, гистограмма, а также некоторых расчетов в реальном масштабе времени приводит к большому объему вычислений. Обычно используемые операции и необходимые для их выполнения произво- дительности даны в табл. 17.1. Типичные требования к производительности находятся в пределах 108 ... 1013 оп./с, а число рассчитываемых характерис- тик может достигать 20. Эти данные лежат в основе классификации объекта, которая в простейшем виде может состоять в сравнении характеристик опор- ного объекта и полученных данных. Иллюстрация такого процесса дана на рис. 17.1, где в трехмерном пространстве показано представление трех харак- теристик. Длина вектора А может использоваться как мера вероятности то- го, что рассматриваемый объект принадлежит к тому же классу, что и опор- ный. В сказанном заключается суть классификации изображений по признакам. Как правило, основной подход развивается в нескольких направлениях, включающих элементы обратной связи и символьную обработку на более высоком уровне абстракции. Расчет требований к производительности для Таблица 17.1. Типичные операции обработки, используемые при анализе изображений по признакам Операция обработки Необходимая производитель- ность , оп./с Линейные операции, O(N): пространственная фильтрация конволюция выделение контура Операции второго порядка, О (N2) : операции сортировки срединная фильтрация классификация по окружению Операции высших порядков: матричные пространственная обработка адаптивные операции ( 108 - 1011 109 - 1013 Ю10 - 1014 307
таких процессов при качестве изображения, эквивалентном телевизионному, т. е. с пространственным разрешением 500 X 500 элементов и кадровой ча- стотой 30 кадр./с, дает скорость поступления данных в 107 отс./с. Это озна- чает, что на стадии выделения признаков для окна размером 3X3 требуется частота обращения к памяти около 108 1/с. Для окна большего размера, ска- жем 64 X 64 элемента, частота обращений может быть порядка 1011 1/с. Та- ким образом, даже для линейных операций, таких как пространственная фильтрация, свертка и выделение контура, требуемая производительность будет составлять 108 — 10й оп./с, как видно из табл. 17.1. 17.3. АРХИТЕКТУРА ДЛЯ АНАЛИЗА ИЗОБРАЖЕНИЙ Представляется полезным сопоставить производительность различных вы- числительных систем со временем их появления, как показано на рис. 17.2. Большинство серийно выпускаемых машин работающих в настоящее время аэрокосмических систем являются, в сущности, системами последовательной архитектуры, хотя и имеют по два-три уровня конвейеризации [6, 7]. Обыч- но рост производительности в таких системах является результатом совер- шенствования технологии изготовления полупроводниковых приборов, со- кращения длины линий связи и т. д. За последние несколько лет такое разви- тие обеспечило рост производительности с нескольких миллионов до более 10” Двумерные конвейерные СБИС -матрицы / Трех- мерные ю’0 - Системы с параллель- ной архитектурой / § 10s мрр I io8 107 ю6 1960 CRAY Процессор РЛС IBM 370 1970 f 0 А Р И\*\Г \^\^^£>£РЛС на- ссис Системы с последователь- ной архитектурой 1980 1990 Рис. 17.2. Произво дител ьностьпаралл ел ьных и последовательных процессоров чем 108 оп./с. Однако, как можно заметить, значитель- ного роста производитель- ности в предстоящие десяти- летия не ожидается. В ре- зультате эффективность сис- тем окажется далеко не дос- таточной по сравнению с требуемой для решения сложных проблем анализа изображений. Даже при со- вершенствовании техноло- гии в результате реализа- ции программы по разра- ботке ССИС1 производитель- ность в 108 —109 оп./с может оказаться пределом для сис- тем с данной архитектурой. В то же время совершенно очевидно, что решение проб- лем обработки изображений и распознавания образов тре- бует производительности на несколько порядков выше. 1 Программа ССИС (VHSIC) — сверхскоростные интегральные схемы — стратегичес- кая программа Министерства обороны США. — Прим, перев. 308
Главный контроллер Магистрали к. столбцам и строкам Групповая связь с матрицей 2в\ Поразрядные 20} изображения Память изображения Матрица размером n*n Потенциальное увеличение производительности до Nz/w Рис. 17.3. Структура ОКМД-матрицы размера ТУХ/Удля анализа изображения одинаковых ПЭ В тех машинах, которые успешно развивались и достигли производитель- ности, необходимой для анализа изображений, обычно использовалась высо- кая степень параллелизма обработки. Например, процессоры CLIP (Cellular Logic Image Processor) [8] Университетского колледжа в Лондоне, DAP (Distributed Array Processor) [9] фирмы ICL и МРР (Massive Parallel Proces- sor) [10] фирмы Goodyear и Национального управления по аэронавтике и исследованию космического пространства содержат матрицы из одинаковых элементарных процессоров, работающих, как правило, в режиме ’’Один по- ток команд — множественные потоки данных” (ОКМД), как показано на рис. 17.3. Размер этих матриц находится в пределах от 64 X 64 элементарных процессоров для процессора DAP и до 128 X 128 элементарных процессоров для процессора МРР. Поскольку большинство таких матриц являются раз- рядно-последовательными, возможно дальнейшее увеличение скорости при- мерно в N2fW раз, где W — длина слова при одновременной обработке всех разрядов слова. Это очень важный фактор. Например, процессор МРР образ- ца 1983 г. обеспечивает производительность, эквивалентную 6-109 операций сложения с фиксированной запятой в секунду. В режиме с плавающей запя- той эти показатели снизятся до величины около нескольких сотен миллио- нов операций сложения с плавающей запятой в секунду. Такое увеличение производительности будет наблюдаться только при работе каждого элемен- тарного процессора с максимальной загрузкой и идентичной обработке всех элементов изображения в кадре. Например, такие операции предварительной обработки, как двумерная фильтрация, выделение контура и т. д., могут быть легко запрограммированы с использованием такой формы параллелиз- ма, но для операций высокого уровня, таких как классификация и совмеще- ние изображений, это сделать значительно сложнее. Подобные затруднения возникают и при символическом анализе, использующем в настоящее время списковые структуры, для которых этот тип параллельных ОКМД-архитек- тур считается-неподходящим-. Ввиду этого важно развивать другие структу- ры СБИС, которые свободны от некоторых недостатков ОКМД-машин и мо- гут быть пригодны как для низко-, так и для высокоуровневого анализа изо- бражений. 309
НА. АРХИТЕКТУРА ПАРАЛЛЕЛЬНЫХ СБИС Важными факторами при разработке любой СБИС являются простота и эффективность проектирования [11]. По мере увеличения плотности логи- ческих элементов на кристалле до сотен тысяч время проектирования и сложность топологии кристалла становятся доминирующими условиями, определяющими возможности создания СБИС. Ввиду этого модульное про- ектирование высокорегулярных структур является основным аргументом в пользу внедрения СБИС. Потенциально наиболее регулярным классом струк- тур, спроектированных на сегодня, оказались запоминающие устройства с высокой степенью плотности размещения элементов. По этой причине возник интерес к реализации высокоскоростных комплексных операций, основан- ных на поиске в таблицах, размещаемых в памяти с произвольным доступом. Этот метод имеет значительные преимущества при решении задач выделения признаков и контуров, однако при прямой реализации он требует чрезвычай- но большого объема памяти. Например, при 12-разрядном квантовании яр- кости изображения может потребоваться поиск в таблицах общим объемом около 224, или 20 Мбит. Очевидно, что это нереально для современных или перспективных кристаллов СБИС, и можно ожидать, что такой поиск потре- бует чрезвычайно большого времени доступа в любой из комбинированных структур. Существует несколько подходов к снижению общего объема памяти, включая подходы, основанные на методе Офмана - Карацубы [12] и нестан- дартных численных представлениях. Метод Офмана — Карацубы основан на разбиении машинного слова длиной РСнам секций размером И/и,в результа- те чего для некоторых операций общая потребность в йамяти может быть со- кращена в 2Л раз. Интересным примером применения этого подхода, предло- женным в [13], является расчет плотности контура изображения по методу Собела [14], в котором девять значений 3 X 3-матрицы яркостей точек ис- пользуются для вычисления величины где (17.26) а 5 - яркость двумерного контура в точке Xj у. При прямом вычислении с учетом того, что яркость I каждой точки представлена W разрядами, потре- буется 2(2^+2) бит для таблиц при условии обеспечения полной точности представления S. Если каждую из составляющих контура выразить в виде комбинации из двух слов длиной по W/2, представляющих старшую и млад- шую части данных, т. е. X=Xl2^+Xr, (17.3) 310
то можно записать следующее выражение: х1 = Xj 2W+ (Xj + Х2)-(X. - Х„)2 2WI2 + Х2 . (17.4) Поскольку Xj (X, — XR) и XR имеют самое большее И^2 ненулевых разря- дов, то размер таблиц в результате уменьшается с 22^ до примерно 2147. Этот метод может быть и далее применен для разбиения слова на п секций разме- ром W/п и получения в результате общего объема памяти в 2^1п X и.В насто- ящее время фирма Hughes Research Laboratories разрабатывает основанный на данном методе процессор выделения контура, в котором размер требуе- мой памяти будет сокращен с 10 X 106 до величины примерно 104 бит. Другой подход, который мы в настоящее время исследуем с целью исполь- зования технологии новых СБИС ЗУПВ для анализа изображений, основан на арифметике в остаточных классах [15]. Этот метод требует кодирования входных данных с помощью деления их на простые числа, как показано на рис. 17.4, с последующей обработкой только остатков. В нашем случае, на- пример, были использованы четыре простых числа 31, 29, 23 и 19, каждое длиной менее 5 разрядов, а следовательно, и остатки имели длину менее 5 разрядов. Арифметические операции в каждом из каналов выполнялись как обычно, но с той оговоркой, что любой промежуточный результат, превыша- ющий основание, преобразовывался в остаток посредством последовательно- го вычитания основания. Выходные данные параллельных каналов могут быть затем преобразованы в двоичную форму и обеспечивают точность, экви- валентную произведению оснований, т. е. 392 863, или приблизительно ^раз- рядов. Значительным достоинством данного подхода является то, что все арифметические операции, включая входное кодирование в остаточных клас- сах, внутренние вычисления и декодирование на выходе, могут осуществлять- ся с небольшими таблицами (5 X 32) . Кроме того, такая машина может быть Рис. 17.4. Структура процессора для анализа изображения в рстаточных классах 311
Рис. 17.5. Заказная иМОП-микросхема ' Рис. 17.6. Обобщенная структура дву- для процессора в остаточных классах мерной конвейерной матрицы сделана программируемой для выполнения различных операций выделения признаков. Машина RADIUS [16], которая была построена с использованием данных методов, сейчас работает в нашей лаборатории, как правило, в реаль- ном масштабе времени. Она состоит из некоторого числа специализирован- ных заказных иМОП-кристаллов, которые содержат просмотровые таблицы и несколько модульных арифметических блоков, как показано на рис. 17.5. Машина в целом выполняет операции вида (17.5) где /у- — значение яркости ядра из 5 X 5 элементов, а/(- — многочлены одной переменной. Эффективная производительность машины в режиме выделения признаков эквивалентна 200 X 106 оп. умножения в секунду. Еще одним подходом к проблеме параллелизма в СБИС, привлекающим все больший интерес, является использование двумерной конвейерной мат- рицы, изображенной на рис. 17.6. Она имеет прямоугольную структуру и со- стоит из некоторого числа одинаковых процессоров, связанных только с ближайшими соседями. Эта обобщенная форма архитектуры включает в себя как систолические структуры, так и волновые [17. 18]. Такая матрица с воз- можностями выполнения простых арифметических операций, таких как ум- ножение и сложение в каждом из элементов, может оказаться очень эффек- тивной для анализа изображений. Приведенная на рис. 17.6 прямоугольная структура во многих отношениях идеально подходит для анализа изображе- ний ввиду топологического соответствия между расположением процессоров и элементов изображения в кадре. Наша цель состояла в разработке алгорит- мов для таких архитектур и оптимальных элементарных процессоров на СБИС для систем АИРО. Хорошо соответствует двумерным структурам алгоритм Фаддеевой [19]. Он полезен при решении систем линейных уравнений вида 312
AX = В, (17.6) где А - п X «-матрица; X и В — векторы длиной п. Эта операция является яд- ром многих алгоритмов АИРО, включая алгоритмы большинства предвари- тельных операций обработки и коррекции изображений. Если, например, дан- ные загружены в матрицу в форме а н а 1 2 ’ *' а 1 п U2i а22 а2п 1 ^п2 ^пп О • о о А В -Г “о (17.8) и для каждой точки выполняются умножение, сложение и сдвиги вверх и влево, то после таких операций в левой колонке появляется вектор X. Такая схема выполнения хорошо подходит для параллельных СБИС, поскольку каждый процессор работает практически непрерывно, а операции умножения, сложения и сдвига идентичны для всех узлов. По существу этот метод явля- ется модификацией метода Гаусса, но не требует приведения системы к тре- угольному виду и последующей обратной подстановки. Возможно обобще- ние указанного метода с целью вычисления следующих выражений: которые при загрузке преобразуются к виду — С D О В о (17.9) (17.10) (17.11) (17.12) (17.13) (17.14) (17.15) D (17.16) соответственно. 313
Если эти операции реализуются прямо, процессоры требуют некоторого числа сдвигов глобальных данных ввиду того, что для умножения на каждой позиции требуются элементы крайних столбцов и строк массива. Это можно расценивать как нарушение одного из основных принципов использования СБИС: желательность только локальных связей и устранения таким образом необходимости в длинных шинах данных и драйверах. Поэтому нами был раз- работан конвейерный процессор, показанный на рис. 17.7, который требует только локальных связей. Первоначально элементы одномерных массивов п+1 процессоров Рис. 17.7. Функциональная cxeMai реализации конвейеризованного алгоритма Фадеева: Д — делитель; У — умножитель, УС — умножитель-сумматор; Р — регистр 314
С и В запоминаются в процессорах ниже двойной линии и справа от одинар- ной сплошной линии соответственно, а п2 элементов матрицы Л запоминают- ся в левом верхнем углу, и определяется функция каждого элементарного процессора. Связи между соседними процессорами осуществляются по гори- зонталям, вертикалям и диагоналям. На каждом шаге активные процессоры осуществляют указанные вычисления и передают данные соседним процессо- рам для их дальнейшего использования. Этот вариант организации процессора имеет характер ’’волнового фронта” [18], когда одна волна активности рас- пространяется по всему процессору. Однако можно распространить этот под- ход и на последовательные конвейерные волны. Для вычислений большего объема, когда В, С и D — матрицы, потребуется увеличить размеры про- цессора. Проблемы синхронизации и управления потоками данных в таком дву- мерном процессоре сложны и неизбежно приводят к некоторму несовпаде- нию операций. Для решения уравнений вида Ни Я12 f/13 а1п «1 2 Иц а12 Д13 «11 (17.17) с теплицевой матрицей можно использовать другой метод, требующий толь- ко одного массива процессоров [16]. При использовании этого метода в сущности необходимо выполнить следующие четыре шага: декомпозицию матрицы А: A=UU+, (17.18) обратную подстановку: р = [IT]’1 В, (17.19) умножение: i//=[D]-1^, (17.20) где D — диагональная матрица «и , W22 , • • •, u~nm •> и обратную подстановку для получения конечного результата: Х= [С/]1 V7- Этот метод основан на алгоритме Винера — Левинсона [20], в котором исполь- зуется симметрия матрицы А и все вычисления реализуются за О (п) опера- ций. Схема процессорной матрицы для этих вычислений показана на рис. 17.8. Она состоит из п каскадов одинаковых секций, каждая из которых содержит два процессора, выполняющих умножение и сложение, четыре регистра и стек. В общей структуре могут быть выделены две базовые секции: массив процессоров для получения £7+ на основе алгоритма Винера — Левинсона (ВЛ-структура) и секция обратной подстановки, которая служит для полу- чения как промежуточного результата Ф, так и конечного результата X. Меж- 315
Найти: Регистры R, Процессор для умножения - сложения Регистры R2 Стек (мага- зинного типа) Процессор для умножения- сложения Регистры Rj Регистры /?4 Рис. 17.8. Схема перемещения данных в решающем устройстве Теплица: УС — умножитель-сумматор ду этими двумя базовыми секциями находится стек, в котором хранится последовательность элементов матрицы U+ ддя дальнейшего использования. При получении С/* по ВЛ-алгоритму рекурсивно обрабатываются строки А для получения вектора, обозначаемого символом А' и используемого сов- местно со второй ’’вспомогательной строкой” А. На каждом шаге рекурсии вырабатывается ’’коэффициент отражения” К, характеризующий отношение первых элементов этих двух строк. По этому алгоритму последовательно перемножаются две данные строки так, что если вычесть одну из другой, то полученный результат А' станет следующей строкой U+. При этом также вы- рабатываются новые вспомогательный вектор А" и коэффициент отражения. При инициализации решающего устройства регистры Ri и R2 загружаются элементами верхних строк А. Элементы матрицы В загружаются в регистр R3. В начале работы переключатель Si замкнут, а переключатели S2 и S3 разомкнуты. Затем содержимое регистров R] и R2 подается на входы ВЛ- структуры, а результаты возвращаются в те же регистры. Новые значения А соответствуют последовательным строкам U*. Эти результаты одновремен- но запоминаются в стеке для дальнейшего использования и подаются на сек- цию обратной подстановки. В каждом новом временном периоде вычисля- ются новые значения Af-, А/, Ф7 и В/, а промежуточные результаты запомина- ются в регистре R4. Когда все элементы будут вычислены и запомнены в стеке, сдвиговый регистр, содержащий промежуточные результаты , также будет заполнен. В этот момент переключатель Si размыкается, S2 замыкает- ся, а переключатель S3 замыкается на время, достаточное для загрузки в ре- гистр R3 результатов ф(. Операции снова повторяются, и в каждый времен- ной период вычисляется и запоминается в сдвиговом регистре новый резуль- тат Xj. 316
Данные в соседний процессор или из него рис. 17.9. Процессорный модуль ориентированного на умножение процессора на СБИС Рис. 17.10. Кристалл ориентированного на умножение процессора для конвейерной матрицы Функциональная схема, показанная на рис. 17.8, может быть далее приве- дена к конвейеризованному виду (рис. 17.9), позволяющему сократить объем аппаратуры. Необходимость такой процедуры обусловлена ограниче- ниями, связанными с наличием у процессоров связей только с ближайшими соседями. Эти ограничения были продиктованы требованиями к скорости при одновременном снижении мощности, потребляемой драйверами глобаль- ной шины. Схема основного процессорного модуля показана на рис. 17.10. Собственно кристалл содержит около 15000 элементов и обеспечивает дли- тельность полного цикла обработки примерно 250 нс. Среди этих элементов несколько необычных узлов, включая высокопроизводительный умножи- тель с ускоренным переносом, который обеспечивает время сложения, по существу не зависящее от длины слова. Это реализовано с помощью алгорит- ма Бута с основанием 4, при этом тактовая частота составила приблизительно 16 МГц [21]. В описываемом процессоре реализованы операции с фиксиро- 317
50 40 О'— 0,00001 Ограничидающее переполнение 0,00010 0,00100 0,01000 Погрешность округления 0,10000 Рис. 17.11. Результаты программы моделирования - интегральное распределение 50 от- счетов с фиксированной запятой при 16 секциях по Винеру-Левинсону (8.19) Рис. 17.12. Функциональная схема платы процессора TOPSS-28, содержащего семь кристаллов ОУП ванной запятой при длине слова 28 разрядов. Такая длина слова получена в результате проведения обширной программы по моделированию, в кото- рой использованы исходные данные из практических задач. При этом было осуществлено полное моделирование процессора, включая потоки данных, длину регистров и точность арифметики. Результаты, полученные для различ- ной длины машинного слова, сравнивались с ’’бесконечной” точностью обра- ботки. По этим данным была рассчитана функция распределения погрешно- сти (рис. 17.11) и определена оптимальная длина слова. Разрабатываемые кристаллы ориентированных на умножение процессоров будут собраны на печатной плате для образования полной теплицевской системы обработки TOPSS-28 (рис. 17.12). На плате скомпонованы семь одинаковых кристал- 318
лов ОУП, дополнительных узлов деления, управления и тестирования, что позволяет обрабатывать матрицы размером до 16 X 16 приблизительно за 175 мс. Схемы проектировались на основе внутренней шинной структуры так, чтобы кристаллы ОУП могли соединяться непосредственно, что упроща- ет проектирование и изготовление платы. Полная система потребует встроенных средств для выполнения деления, которое является частью функций первой секции на рис. 17.12. По существу, необходимо вычислять величину, обратную 28-разрядному числу с фиксиро- ванной запятой за время около 1 мкс. Одной из возможностей является ис- пользование специализированных магистрально-ориентированных арифмети- ческих кристаллов или табличного подхода. В процессе работы контроллер платы должен генерировать 16-разрядный код операции для каждого из семи кристаллов ОУП с частотой 2 — 4 МГц. Одним из подходов к решению этой проблемы является использование ЗУ с формирователем адреса (счетчиком) в каждом из кристаллов. Данные в этих ЗУ можно рассматривать как микропрограммные процедуры. Каждый из формирователей адреса управляет микропроцессором, который должен иметь собственную память для машинных кодов. Для некоторых из задач микрокоды могут располагаться в ПЗУ, что упростит программирование до уровня выбора требуемой процедуры для каждого из кристаллов. Собственно плата, содержащая линейную процессорную матрицу, может работать в нескольких режимах по нескольким вариантам алгоритма Левин- сона, различающимся сочетанием времени вычислений и объема памяти. Са- мый быстрый алгоритм требует О(п2) элементов памяти, решая уравнение АХ = В за 6п циклов. В другом варианте используется О(п) элементов памяти, но время вычислений возрастает приблизительно до 18и. Рассматриваемый процессор выполняется по технологии, обеспечивающей разрешение 5 мкм, и содержит по одному процессорному элементу на кристалле. Однако при использовании более совершенной технологии число процессоров в кристал- ле и соответственно скорость обработки могут возрасти, как видно из табл. 17.2. Использование стандарта проектирования менее 1 мкм может обеспе- чить возможность построения однокристальной двумерной матрицы разме- ром 25 X 25 элементов. Для следующей разработки рассматривается также вопрос реализации в кристалле процессора нескольких дополнительных средств для выполнения таких функций, как вычисление с плавающей запятой, извлечения корня и Таблица 17.2. Размеры процессора и время выполнения вычислений системой как функ- ции от уровня технологии Размер элемента, мкм Год выпуска Число процессоров в кристалле Время выполнения вычислений, мкс 6 1976 1 0,6 3 1981 4 300,6 1 1985 36 100,0 0,25 2000 576 25,0 319
деление. В настоящее время рассматриваются проблемы технологической ре- ализации такого проекта. Если удастся реализовать эти дополнительные сред- ства, то окажется возможным обеспечить очень широкий спектр приложений в области АИРО, в особенности с двумерными структурами. К ним относятся одно- и двумерные свертки, коррекция с использованием метода максималь- ной энтропии, все виды двумерной фильтрации, аппроксимация сплайнами, геометрические преобразования для построения моделей и многое другое при скоростях вычислений, которые будут достаточными для большинства прикладных задач в реальном масштабе времени. СПИСОК ЛИТЕРАТУРЫ [1] М. J. Duff and S. Levialdi, Language and Architectures for Image Processing, Academic Press, New York, 1981. [2] T. O. Binford, “Geometric Reasoning and Spatial Understanding,” Proc. Image Under- standing Workshop, Palo Alto, Calif., Sept. 15-16, 1982, pp. 18-20. [3] G. R. Nudd, “Image Understanding Architectures,” Proc. Natl. Comput. Conf., Vol. 49, Anaheim, Calif., May 1980, pp. 370-390. Published by AFIPS Press. [4] A. Rosenfeld and A. Kak, Digital Picture Processing, Academic Press, New York, 1976. [5] T. J. Ulrych and T. N. Bishop, “Maximum Entropy Spectral Analysis and Autoregres- sive Decomposition,” Rev. Geophys. Space Phys., /3:183-200 (Feb. 1975). [6] K. Hwang, Computer Arithmetic, Principles, Architecture and Design, Wiley, New York 1979. [7] M. J. Flynn, “Some Computer Organizations and Their Effectiveness,” IEEE Trans. Comput., 21.125-140 (Sept. 1972). [8] M. J. B. Duff, “CLIP 4 A Large Scale Integrated Circuit Array Parallel Processor,” Proc. 3rd Int. Joint Conf. Pattern Recognition, 1976, pp. 728-733. [9] S. F. Reddaway, “DAP-A Distributed Processor Array,” Proc. First Annu. Symp. Comput. Architecture, 1973, pp. 61-65. [10] К. E. Batcher, “Design of a Massively Parallel Processor,” IEEE Trans. Comput., C-29(9):836-840(Sept. 1980). [11] I. E. Sutherland and C. A. Mead, “Microelectronics and Computer Science,” Sei. Am., 237(3) :210-228 (Sept. 1977). [12] Карацуба А., Офман Ю. Умножители многозначных чисел на автоматах//ДАН. - 1962. - Т. 145, вып. 2 - С. 293, 294. [13] Milos Ercegovac, private communication, Apr. 1982. [14] W. K. Pratt, Digital Image Processing, Wiley Interscience, New York, 1978. [15] N. Szabo and R. Tanaka, Residue Arithmetic and Its Applications to Computer Technol- ogy, McGraw-Hill, New York, 1967. [16] S. D. Fouse, G. R. Nudd, and A. D. Cumming, “A VLSI Architecture for Pattern Recognition Using Residue Arithmetic,” Proc. 6th Int. Conf. VLSI Architecture, Design and Fabrication, California Institute of Technology, Jan. 1979, pp. 65-90. [17] H. T. Kung, “Let’s Design Algorithms for VLSI Systems,” Proc. Conf. VLSI Architec- ture, Design and Farbrication, California Institute of Technology, Jan. 1979, pp. 65-90. [18] S. Y. Kung, “Impact of VLSI on Modern Signal Processing,” Proc. Workshop VLSI Mod. Signal Process., University of Southern California, Nov. 1982. 320
19] Фаддеева В. Н. Вычислительные методы линейной алгебры. — М.: Гостехиздат, 1950 - 240 с. [20] N. Levinson, “The Wiener RMS Error Criterion in Filter Design and Prediction,” J. Math. Phys. 25(4) :261-278 (1947). [21] M. D. Ercegovac and J. G. Nash, “An Area-Time Efficient VLSI Design of a Radix-4 Multiplier.” Proc. Int. Conf, on Computer Design, Port Chester, New York, Oct. 1983, pp. 684-687. 18 КРИСТАЛЛЫ СБИС-ПРОЦЕССОРОВ ДЛЯ МАТРИЧНОЙ ОБРАБОТКИ Р. Вуд, Г. Киллер1, Э. Гринвуд, Д. Харрисон2 18.1. ВВЕДЕНИЕ В описываемом арифметическом устройстве обработки (АУО) использу- ется 3-мкм кремниевая КМОП-технология фирмы Motorola и архитектура матричного процессора фирмы CHI Systems. Выбор архитектуры кристалла продиктован ориентацией на линейные векторно-матричные операции. Для такой обработки существует чрезвычайно эффективная архитектура. При ар- хитектуре с одним умножителем может быть достигнута оптимальная эффек- тивность при условии, что число шагов во внутреннем цикле программы ог- раничено числом операций умножения. Для любой области применения (рас- познавание речи, геофизика, радиолокация, томография и т. п.) матричные процессоры считаются весьма специализированными устройствами. Действи- тельно, машины, которые спроектированы для решения конкретной задачи, являются таковыми; но важно то, что нами разработана архитектура, соот- ветствующая алгебре билинейных форм. Она является основой матричной обработки и потому подходит для решения широкого спектра задач. В представленной здесь работе описывается самая последняя версия архи- тектуры семейства матричных процессоров [1,2] , которые были разработа- ны частично при поддержке управления перспективного планирования НИР Министерства обороны США. Более ранние варианты этого семейства процес- соров образовали базис систем АР-120В [3]. В настоящее время при поддерж- ке Министерства обороны США фирмы Motorola и CHI Systems разрабатыва- ют СБИС-версию архитектуры, описанной в [4]. 18.2. ОБОСНОВАНИЕ ВЫБОРА МАТРИЧНОГО ПРОЦЕССОРА Чтобы убедиться в эффективности полученной архитектуры для произ- вольной матричной обработки, мы использовали набор таких задач, которые легли в основу выбора более ранних версий, и пересмотрели их с целью вклю- 1 Фирма CHI Systems, Голета, Калифорния. 2 Фирма Motorola, Скоттсдэйл, Аризона. 321
чения дополнительных процессоров. Эти контрольные задачи были тщательно отобраны с целью выявления внутренних сложностей, касающихся численно- го анализа, управления данными и структуры программ, которые обычно встречаются при использовании обычных вычислительных машин для произ- вольной матричной обработки. Для анализа разработки использовались сле- дующие контрольные задачи: Скалярное произведение двух массивов при: 32-разрядном накоплении 16-разрядных чисел с блочной плавающей за- пятой, 48-разрядном накоплении 16-разрядных чисел с блочной плавающей за- пятой. Операции с плавающей запятой: умножение при 32-разрядной мантиссе и 16-разрядном порядке, сложение при 32-разрядной мантиссе и 16-разрядном порядке. Операции БПФ: прореживание, общий проход, первый проход. Алгоритмы фильтрации: с одним вещественным полюсом, с двумя вещественными полюсами, и усиления с комплексно-сопряженными парами полюсов и нулей. Этот набор задач был запрограммирован в микрокомандах и использован для проверки соответствия архитектуры поставленным целям по обеспече- нию эффективности. Для эффективной реализации известного в настоящее время семейства ал- горитмов LPC выработан определенный архитектурный стиль организации внутренних связей регистров, сумматоров, умножителей и матричной памяти. Однако при рассмотрении БПФ, операций с числами в комплексной форме, Таблица 18.1. Время выполнения алгоритмов Алгоритм Время, мкс (при частоте синх- , ронизации 4 МГц) Комплексное БПФ на 1024 точки Вещественное БПФ на 512 точек Вещественное векторное умножение на 1024 точки Комплексное умножение на 1024 точки Полная дуплексная обработка речи на 2400 бит Сложение с плавающей запятой при 32-разрядной мантиссе Умножение с плавающей запятой при 32-разрядной мантиссе Одна операция умножения и три операции сложения данных Фильтрация и усиление при комплексно-сопряженных парах полюсов и нулей 5632 1152 260 520 5263 1,5 - 2,5 0,75 - 1,0 или 1,75 0,25 1,25 322
и операций обращения матриц для выполнения разработки нам потребуется ре- ализовать более сложные связи и некоторое число вспомогательных регист- ров. Времена выполнения для запрограммированных контрольных задач при- ведены в табл. 18.1. 18.3. ХАРАКТЕРИСТИКИ МАТРИЧНОГО ПРОЦЕССОРА Простая схема, достаточная для демонстрации архитектуры, показана на рис. 18.1. В системе используется арифметическое устройство обработки (кристалл АУО), два матричных запоминающих устройства (X и Y) , разде- ленная память данных (DR и DL) , которая должна использоваться совместно с центральным вычислителем, а также секция управления матричного про- цессора, память микропрограмм (Р) , приемопередатчики и конвейерные ре- гистры (DX и DY). В АУО реализованы следующие средства: 1) три 16-разрядных сумматора и четыре накапливающих регистра, соеди- ненные таким образом, чтобы они образовали четырехмагистральную струк- туру; 2) конвейерный умножитель на 17 X 17 разрядов со знаком в 17-разряде; выход умножителя подключен к трем 16-раз рядным сумматорам; Управление Ьдодом-дыдодом Рис. 18.1. Структурная схема матричного процессора 323
3) форматирующее устройство для вычисления векторов с плавающей за- пятой при масштабировании данных в процессе вычислений; 4) специальное оборудование для повышения эффективности арифмети- ческих операций с плавающей запятой; 5) средства адресации матриц по строкам или столбцам одновременно для памяти X и Y; 6) устройство прямой адресации двумерных окон на девять точек, центри- рованных относительно индекса матрицы; 7) аппаратный реверсор на 16 разрядов для прореживания; 8) четыре локальных вспомогательных регистра; 9) средства защиты внешних шин X, Y и R внутри кристалла АУО. 18.4. ОСНОВНЫЕ ХАРАКТЕРИСТИКИ АРИФМЕТИЧЕСКОГО УСТРОЙСТВА ОБРАБОТКИ На основе кристалла АУО можно строить вычислительные системы бук- вально любого из известных на сегодня типов, не используя никаких других арифметических средств, кроме предоставляемых АУО. Это действительно универсальное устройство, а не часть специализированной системы на одном кристалле. В этой главе покажем некоторые из способов, которыми данный кристалл может быть использован как универсальный компонент систем са- мого разного назначения и возможностей. Небольшие микропроцессорные вычислительные системы дают очень хо- рошие возможности по подготовке программ и решению несложных задач. Однако, когда требуются сложные научные расчеты, эти вычислительные мощности оказываются недостаточными. Значительно увеличить производи- тельность можно при использовании АУО в качестве ускорителя. Придержи- ваясь одноадресного формата команд, что упрощает написание компилятора, мы предлагаем использовать для построения микрокоманд АУО небольшое ПЗУ перекодировки, которое приспосабливает арифметические операции к типичным операциям соответствующих мини-ЭВМ. Конечно, большинство полученных для данного типа процессора микроопераций будут холостыми, поэтому следует предусмотреть аппаратные холостые команды с мультиплек- сированием полей, которые обеспечат управление отдельными арифметичес* кими операциями. Специализированные вычислители ориентированы на выполнение частного алгоритма при минимуме оборудования. Ввиду тесной связи их структуры с конкретным алгоритмом в каждом частном случае необходим отдельный проект. Следовательно, простота выполнения такого проекта является важ- ным фактором, влияющим на экономическую эффективность таких систем. Однако при наличии современных 16-разрядных микропроцессоров, кристал- ла АУО и многоразрядных ОЗУ такой проект может быть реализован про- стым объединением унифицированных компонентов в системы простой кон- фигурации. Очевидно, что такой модульный подход приведет к автоматизи- рованному7 проектированию по принципу ’’крупномодульного проектирова- ния” для разработки проектов по требованиям пользователя. |324
Матричные процессоры можно рассматривать на нескольких уровнях про- изводительности. На нижнем уровне производительности мы видим системы с небольшим набором присоединяемой памяти, управляемые готовыми уст- ройствами управления. Для сокращения числа кристаллов памяти использу- ется последовательное считывание микрокоманд из памяти, а также последо- вательное считывание векторов из памяти и их запись в память. При среднем уровне производительности матричных процессоров будет использоваться полный набор кристаллов микропрограммной памяти и чис- ло их определяется тем, сколько слов необходимо иметь в каждом из следу- ющих модулей памяти: X, Y — память векторов, PH — ПЗУ микрокоманд, PS — ОЗУ микрокоманд, D — системная память. Высокопроизводительные матричные процессоры могут быть получены при использовании нескольких кристаллов АУО для обеспечения высокого уровня параллелизма арифметических операций и увеличения их точности. Разумеется, требуется еще большее число кристаллов памяти для обеспече- ния времени доступа, соответствующего АУО повышенной производитель- ности. Для обеспечения сверхвысокого уровня производительности мы предлага- ем микросеть матричных процессоров, где каждый узел имеет универсальное управлениеч локальную операционную систему и микросети связи в много- связной структуре. Необходима, конечно, и глобальная операционная систе- ма для управления заданиями и ресурсами. Реальная возможность создания такой системы ограничивается только уровнем знаний в области организации системы и программирования многопроцессорных компиляторов с перемен- ным составом процессоров во время выполнения. 18.5. КРИСТАЛЛ АРИФМЕТИЧЕСКОГО УСТРОЙСТВА ОБРАБОТКИ Кристалл арифметического устройства обработки состоит из трех секций: 1) арифметического процессора данных, 2) двух одинаковых контроллеров адреса матричной памяти и 3) необходимых управляющих логических уст- ройств. Арифметический процессор данных выполняет всю арифметическую обработку элементов матрицы и имеет небольшую память для хранения про- межуточных результатов и параметров. Контроллеры адреса вычисляют адре- са массива, относящихся к ячейкам памяти X и Y. Управляющие логические устройства обеспечивают всю синхронизацию и управление АУО при длитель- ности сигналов микрокоманд 20 нс, вырабатывают два синхросигнала и два специальных сигнала управления. Кристалл АУО (рис. 18.2) содержит 100 выводов. Выводы имеют следую- щее обозначение: Х0 — XI5 — входы-выходы шины X, YO — Y15 — входы-выходы шины Y, ХАО —ХА 15 — выходы адреса памяти X, YA0 — А15 — выходы адреса памяти Y, 325
x Ry XA YA Рис. 18.2. Арифметическое устройство обработки 10 — 119 — входы микрокоманды; используется четырехтактный си- стемный цикл синхронизации, SYCL — вход синхронизации системы; номинал синхронизации — 4 МГц, проектируется повысить до 5 МГц, ICL — четырехфазный синхровход для микрокоманд и данных R; номинал частоты синхронизации — 16 МГц; проектиру- ется повысить до 20 МГц, RI — входы шины данных R; используются четырежды за один цикл синхронизации системы, EQL, LTL — выходы проверки данных, MSA, OVFL, — входы-выходы управления параллельной работой несколь- GRSI,HRSO кихАУО, VSS, VDD — выводы питания. Приборы будут выполнены в корпусах с матричным расположением вы- водов. Совмещение контроллеров адреса X и Y с арифметическим устройст- I вом потребовало изоляции шин XS от шин X арифметического устройства. Аналогично имеются шины YS, изолированные от шин Y. Таким образом, работа с внешней памятью (связанная с использованием контроллеров адреса) может осуществляться в течение обработки данных АУО при рас- ширении шин X и Y (XS и YS) . 326
18.5.1. Общая архитектура Архитектура АУО показана на рис. 18.3, а коды микрокоманд —на рис. 18.4. Основными элементами процессора обработки данных являются: 1) конвейерный (17 X 17)-разрядный умножитель с регистрами МА и МВ, которые вырабатывают 33-разрядный результат, запоминаемый в двух ре- гистрах (MPL и MPR). Регистр MPL содержит 17 старших разрядов, a MPR — 16 младших разрядов результата. Эта 33-разрядная пара регистров обознача- ется как МР; 2) три 16-разрядных сумматора: F, G, и Н. Эти сумматоры независимы, но могут объединяться для получения 32- или 48-разрядной точности; 3) две внутренние шины: X и Y; 4) четыре 16-разрядных аккумулятора: Т, U, V и W. Аккумуляторы U и V могут загружаться из двух сумматоров, а Т и W — из одного сумматора с шин XS или YS; 5) четыре локальных запоминающих регистра: XLO, XL1, YLO, YL1; 6) независимая входная шина (R) : с нее могут загружаться локальные ре- гистры или умножитель. Кроме того, арифметическое устройство содержит средства для организа- ции сдвигов, масштабирования, нормализации, поразрядного реверсирования и проверки условий сумматоров G и Н. Большинство элементов соединено с одной или двумя внутренними шинами XS(YS) по входам и (или) выходам. Имеются соединения с умножителем и сумматорами помимо шин. В частно- сти, входы умножителя подключены к локальным регистрам XLi и YLi (i = О или 1). Сумматоры имеют входы А, соединенные с выходными регистрами умножителя MPL и (или) MPR, и входы В, соединенные с группой аккумуля- торов; ни один из входов В не соединен с шинами XS (YS). Каждый из сум- маторов может непосредственно загружать два конкретных аккумулятора; сумматор G может также выдавать информацию на шину YS. Структура со- единений такова, что сумматоры и аккумуляторы могут использоваться для обеспечения внутреннего конвейера, содержащего до четырех ступеней и за- гружаемого с одной из шин, а разгружаемого на другую. Также возможно обменивать содержимое аккумуляторов U и V за такт через сумматоры G и Н без использования шин или промежуточных регистров. В сумматорах реа- лизовано два типа сдвигов. 1. Сдвиг на один разряд вправо (RS) содержимого на выходе сумматора G с передачей в аккумулятор U или сумматора Н с передачей в аккумулятор V, или конкатенации GH с передачей в UV; сдвиг распространяется на все выходы сумматора G (и (или) сумматора Н), включая выходы на шину YS. 2. Условный сдвиг на один разряд вправо (CS) содержимого сумматора G с передачей в U или сумматоров GH с передачей в UV; сдвиг, если это разре- шено, производится при переполнении в сумматоре. Сдвинутый результат в этом случае является откорректированным значением величины, а признак переполнения показывает, что был произведен сдвиг. На выходе регистра LGCO (контакт СО) будет бит переполнения всегда, когда требуется услов- ный сдвиг. 327
BSIZEXS BLSPXS Рис. 18.3. Архитектура АУО
329
CODE М0Р(7) xsopfj; YSOPfJ) SIZE(Z) XL0P(2) YLOP(Z) MULT А В XLA XL YLA YL / Р2 HOOP NDOP XI YI NOOP № NOOP A# NOOP 1 P2LS YS/R XS XL YL U AZ XS/R->XL AZ YS/R*YL 2 2Р XL/R YL Т W V 3 2PLS XS/R YS и RSP uv 22 V U 5 22LS SIZE V 6 РР DECM DSCL 7 22LSRND LSP G CODE F0P(7) G0P(7) H0P(8) ADD A В FCI ADD A В GCI ADD A В HCI В XS & F0P7 В XS GOP/ В XS H0P1 z A + B SN GBSN CO A + B MPL T HCO A + B MPL U CI 2 A -B MPL T • A -B MPR и A- В MPR V CO 3 B-A YS u B-A YS V B-A YS W FCO CODE REGOP(g) SHIFT ZJ) C0S(O X0(2) Yozz; TEST(2) ROPfZ) TOP UOP VOP WOP г NOOP NOOP NODP NOOP G,H GCO NOOP NOOP G NOOP 1 XS*T F-U G*V H*W G, RSH LGCD NOOP NOOP GH R-MA 2 YS*T Б-U H*V xs*w RSG,H XS YS H R-XL 3 F*T -Z*U -Z*V YS-W RSG,RSH XC YC DSCL R*YL 4 5 6 7 XSAI-*-1 XSvT->T XS®T*T . ~XS *T CSG,H CSG,RSH CSGH RSGH CODE ХАСОРДО YACOP(B) XA0PZ4Z XC0P(2) XD(2) YAC0PZ4) YCOPfZJ YD (2) 8 NOOP NOOP Z NOOP NOOP 1 Z XA=Y XA*XC 2 YA=X YA^YC 2 2 INC XA(XD) x-*xc 3 INC YA (YD) Y-> YC 3 3 DEC XA(XD) Y^ XC b DEC YA (YD) X —YC k 4 ХА = XC YA = YC 5 XA= Y + XC YA = X + YC 6 INC XA(XC) INC YA(YC) 7 DEC XA(XC) DECYA(YC) 10 XA=XC + XD YA=YC + YD 11 XA = Y+(XC+ XD) YA=X + (YC + YD) • 12 INC XA(XC + XD) INC YA(YC+YD) 13 DECXA(XC-XD) DEC YA(YC-YD) 74 XA = XC-XD YA-YC-YD 15 XA=Y+(XC-XD) YA - X + (YC-YD) 16 INC XA(XC-XD) INC YA(YC-YD) 17 DECXA(XC + XD) DECYA(YC + YD) Рис. 18.4. Коды микрокоманд АУО 330
Может производиться и °^ычное сложение?Могут ироизводитьсИ комби-- нации сдвигов RS, CS и обычшого сложения на сумматорах G и Н, <Л|< пока- зано в поле SHIFT кодов ми крОкоманд на рис. 18.4. Любые другие сдвиги в АУО производятся умножидглем посредством умножения даннс)гс ЧИсла на соответствующую степень чи<сЛа 2, запоминания либо содержимого пегистпа MPL для сдвига вправо, либо yPR ддя сдвига влево, либо содержимого всего регистра МР для 2-разряднь:1Х операндов. Для указания необходимой степе ни числа 2 имеются два опер;^тора (RSP и Lsp), описанные в следующем раз- деле. 1 18.5.2. Операции специальных функций Для повышения эффекпМрНости алгебраической обработки массивов и арифметических операции с плавающей запятой имеется несколько спепиаль- RSP D°4CTeCLSP DECmTtR Т J*3 Э™Х фуНКЦИЙ " УнаРные и называются RSP, DSCL, LSP, CM TEg-p Последний из операторов, называемый ST7F дает разработчику микрокод возможность установить положение старше’ го разряда в массиве величи н< Прошедших через регистр региСтг У юш по- лученных в результате HH3btoHKUH1I содержимого этих регистров. Эта фуНк- ция полезна для групповых операций масштабирования чисел с главаюшей запятой. Логическая операщ1Я TEST осуществляется с выходным, резулыа тами сумматора , сумматор у или с их конкатенацией. Флажкд Указываю щие равно ли проверяемое ЧЯСЛо нулю или оно меньше кристалла. Это средство по^воляет выполнять операции условной» перехода по значению данных. Функц^ DECM выполняет 16-разрядное прОйежи1ание (разрядно-реверсивное) содержимого регистра U с выдачей на ц!Ичу XS. Эта функция полезна для вычисления адресов При выполнении некоторых типов преобразовании массивов ДЧнНЬ1Х. Остальные ф и опи '* “ стрируются примерами в по<;ледующих подразделах. пии^рД^^ °ПераЦИЯ ”ОДВИГ ВЛеВ° дая нормализа- ции . Результ д чеиис счетчика, указывающего на сколько позиций произвести сдв ( SCL) 1, степень числа 2, необходимую для выполнения этого сдвига (LSP) Операт Lsp обрабатывает содержимое ^’разрядной регистровой пары UV: если 3)1ачение у отрицательно, ТР дая вь1чХния ре зультата LSP берется Допол1{ИТельный код цу Значение pSCL _ п^тиразряд ное и представляет величину от 0 до 31. Результат операции LSP определяет ся старшими разрядами, следующими за знаком> до тех пор> По° ₽BXZ« сдвига меньше или равна 15 р противном случае результат ЬБРбуйет оппеде ляться по 16 младшим разр, Пользователь может определить гак ойслу чаи имеет место, проверив |3SCL Результат Lsp выдается на шцн.У XS а ве- личина DSCL — на шину YS >1ерез такт после получения результата I SP В качестве иллюстрации использования этого оператора рассмотрим сле- дующий пример . Предпол,)ЖИМ; что регистры у и у содержат м^тиссу в ненормализованной дополш(тельной форме со значением 1 ГГгтя улобства и большей н. г, . уде -аглядноети примеров формат АУО сокраптпя оты, длина регистров составляет 8 pa trr,z 1 * чо f вдвое, т. е. W ина ( ! чзрЯДОВ, умпожителя - 8 X 8 разрядов и т, п г~*у • 331
и V 00011011 01101101 Два нуля, следующие за знаковым разрядом (положительным), указывают, что для нормализации результата в регистре UV требуется сдвиг влево на два разряда. Следовательно, результат операции LSP будет равен 00000100, а DSCL — 2, Нормализация содержимого регистров U и V выполняется следу- ющими шагами: LSP*V:PP LSP*U:P2 MP >UV MPR + U->U 00000100 * 01101101- 00000100 ♦ 00011011-— 00000001 10110100 01101100 01101101 10110100 которые дают правильно нормализованный результат. Когда требуется сдвиг на полное слово или больше, результат LSP получа- ется из содержимого регистра V, а не U. Предположим, что в регистрах U и V задана мантисса U V 00000000 00010101 । Теперь за знаком (положительным) следуют 10 нулей, которые означают, что DSCL - 10, а величина LSP, полученная по содержимому регистра V, имеет значение 00000100. Тогда шаги для нормализации будут такими: LSP * V : РР, затем с соответствующей задержкой MPR -> U и 0 ->V. Таким образом получим LSP*V:PP I 00010101 00000100 00000000001010100 ч... ../ MPR MPR ->U, 0-+V и 01010100 V 00000000 что является правильно нормализованным результатом. Во всех предыдущих примерах рассматривались положительные числа. Предположим теперь, что содержимое регистров V и V имеет вид U V 11110010 01010101 В этом случае оператор LSP предусматривает операцию дополнения значений U и V, так как значение U было отрицательно. Это дает следующий результат: COMPL: 00001101 10101010 и применение рассмотренного ранее алгоритма дает DSCL = 3, LSP - 00001000. Если оператор LSP применить к обработке содержимого регистров U и V, как в первом примере, то получим
LSP*V:PP LSP*V PP MP >UV MPR + U -> U 00001000*01010101 00001000*11110010 00000010 10101000 +10010000 10010010 10101000 что является правильно нормализованным результатом. Во всех этих случаях следовало использовать значение DSCL для модификации порядка или для подсчета числа произведенных сдвигов. Оператор RSP используется в основном для выравнивания двух чисел с плавающей запятой перед сложением. Предположим, что регистры U и V со- держат мантиссу, a W - положительную разность порядков. Тогда вызов RSP вырабатывает оператор умножения, который даст требуемый сдвиг вправо. Например, если регистры U, V и W содержат W V 0100Ю01 от 001 оо 00000101 то требуемый сдвиг содержимого регистра UV вправо — пять разрядов, а RSP = 00001000. Операции выравнивания выполняются следующим образом: RSP*U Р2 00001000*01001001 - RSP*V:PP 00001000*00100100 — MP ♦ uv 00000010 01001000 -< MPL я V »V 4-00000001 + 00000010 01001001 что является правильно сдвинутым результатом. Этот метод пригоден также при обработке чисел с отрицательными мантиссами. Однако содержимое ре- гистра W считается положительной величиной от 0 до 15 (от 0 до 7 в нашем примере при уменьшенном формате) . Если значение W выходит из указанно- го диапазона, то для учета этого факта необходимо внести изменения в ми- кропрограмму. 18.5.3. Средства условного сдвига Как уже упоминалось, во всех трех сумматорах, умножителе (MPL) и ак- кумуляторе U имеется дополнительный 17-й разряд, который обеспечивает проверку и коррекцию переполнения (1-разрядного) с помощью условного сдвига (CS). Этот дополнительный разряд позволяет корректировать пере- полнения, происшедшие в предыдущем цикле или на текущей операции. При переполнении значения 16-го и 17-го разрядов будут разными; в противном случае их значения будут одинаковыми. При выполнении сложения с услов- ным сдвигом после операции сложения проверяется условие переполнения и при его наличии результат сдвигается на один разряд вправо. Условие пере- полнения фиксируется в регистре LGCO. Наличие 1 в этом регистре указыва- ет на то, что сдвиг произошел, а 0 - что его не было. Таким образом, в следу- ющем. за операцией CS цикле может быть сделано заключение о наличии или отсутствии сдвига. Представлены три случая, в которых используется опера- ция CS. Первый — простая коррекция переполнения при сложении. Например, 333
при сложении с плавающей запятой иногда требуется иметь такую последова- тельность микрокоманд SNMPL + UV—>UV MP + UV:CS—>UV в которой два этих результата умножения представляют сдвинутые вправо младшую и старшую части мантиссы второго слагаемого соответственно. Если принять, что мантисса первого слагаемого находится в паре регистров UV, то условие переполнения может встретиться в любой из двух операций сложения. Однако поскольку операция является простым сложением двух чисел, одно из которых уже сдвинуто вправо, может произойти не более од- ного переполнения. Так, если регистр W содержит масштаб (порядок) боль- шего из двух операндов (считаем, что это первое слагаемое), то следующая операция в сумматоре Н скорректирует масштаб при возможном возникно- вении переполнения и выполнит сдвиг вправо: VV + LGCO — W (откуда следует, что HCI = LGCO) . Вторым случаем, при котором может встретиться переполнение, является операция нормализации на 1 разряд. Код для него задается выражением UV + UV:CS*UV Содержимое пары UV будет сложено с самим собой, давая сдвиг на 1 раз- ряд влево; если это вызывает переполнение, то операция условного сдвига сдвинет его обратно, оставляя результат нормализованным в любом случае. Следовательно, если произошло переполнение, масштаб должен остаться прежним; если же переполнения не было, масштаб должен быть уменьшен на единицу. Это может быть выполнено следующей операцией сумматора Н: W-0 -1 + LGCO—>W которая может быть осуществлена подачей содержимого W на вход А этого сумматора, 0 на вход В, выхода переноса СО — на вход переноса сумматора И и установкой СО в регистре LGCO. Еще одним случаем возникновения переполнения является умножение двух чисел, которые представляют отрицательные степени числа 2. Такие числа будут иметь мантиссы 10000000 (8-разрядное двоичное представление), которые представляют —1. Произведение двух таких чисел в дополнитель- ном коде должно быть положительной степенью числа 2, а будет — отрица- тельной (произведение 22LS) . Однако дополнительный 17-й разряд умножи- теля будет истинным знаковым разрядом, вычисленным с помощью опера- ции ’’Исключающее ИЛИ” входных знаковых разрядов. Таким образом, ре- зультатом будет (в 8-разрядном формате, принятом в примерах) 01000000 00000000 и операция МР 4- 0:CS—►UV 334
скорректирует переполнение сдвигом вправо и запомнит в регистре UV число 010000000 00000000 Затем в следующем цикле операцией W + LGCO W должен быть скорректи- рован масштаб. 18.5.4. Контроллеры адреса матричной памяти В кристалл АУО встроены контроллеры адресов ячеек памяти X и Y. Ис- пользуются два одинаковых 16-разрядных контроллера. В каждом контрол- лере используются два 16-разрядных сумматора и два 16-разрядных регист- ра. Структурная схема контроллера адреса Х(ХА) показана на рис. 18.5. При такой структуре контроллера адреса предполагается наличие номера базово- го адреса (Y) с индексом (ХС) и переменной смещения (XD) . Предусмотре- на функция инкремента-декремента смещения по столбцам для прямой адре- сации двумерных массивов. Например, прямая двумерная адресация с маски- рованием при свертке обеспечивается так, как показано на рис. 18.6. Размер маски ограничивается величиной, равной удвоенному максимальному значе- нию XD плюс единица (девять для данного АУО). Выбор данных из ячеек X и Y в качестве источника для индекса ХС позволяет использовать память X Y ХА Рис. 18.5. Контроллер адреса X База- Двумерный процесс свертки с маскированием Команды адресации хр 1. ХАх ХА-ХС-2 2. =ХА +1 3. =ХА +1 4. = ХА+ХС-2 5. = ХА +1 б. — ХА +1 7. =ХА+ХС-2 8. =ХА +1 9. = ХА +1 1 ХА = ХА—ХС-2 Рис. 18.6. Двумерная адресация с маскированием 335
как буфер для массивов, размерность которых больше двух. Разумеется, адресный контроллер Y может быть использован разработчиком микропро- грамм как дополнительный контроллер адреса, работающий параллельно. 18.6. ВЫБОР ФУНКЦИЙ КРИСТАЛЛА Очевидно, что кристалл АУО будет выполнять базовые функции умноже- ния, сложения, накопления. Однако размещение в кристалле локальной па- мяти умножителя (XL, YL) , реализация в нем специальных логических функ- ций и контроллеров адреса были предметом выбора для разработчика. Важ- ной задачей явилась реализация регистров XL, YL, так как использование шин не должно ограничивать производительность. Нам хотелось использовать умножитель в микропрограммах обработки со 100%-ной эффективностью. Вопросом оставалось лишь число регистров, которое должно быть реализо- вано. Было найдено, что для рассмотренных задач двух регистров на каждый вход будет достаточно. Аналогично высокий приоритет имели специальные логические функции, так как они прямо влияли на производительность микропрограмм. Адресные контроллеры для памяти X и Y были, конечно, не обязательны для арифметического процессора. Их реализация рассматривалась совместно с реализацией либо встроенной памяти программ (ОЗУ или масочное ПЗУ), либо памяти X, Y, либо системного контроллера. В этом главным образом состоял выбор между встроенными и внешними функциями. Кристалл не содержит ОЗУ или ПЗУ — устройств, популярных в новейших процессорных кристаллах. Реализация в кристалле памяти X, Y, R и програм- мной памяти рассматривалась как альтернатива, однако основным аргумен- там отказа от включения запоминающих устройств в состав кристалла было следующее: 1) полупроводниковая промышленность будет продолжать выпуск все бо- лее быстродействующих, с более высокой степенью интеграции КМОП ИС памяти (ППЗУ, ПЗУ и ЗУПВ) ; 2) нужно разработать кристалл, обладающий достоинствами, упомянуты- ми в п. 1, и не допустить его устаревания по сравнению с выпускаемыми; 3) нужно выпустить такое АУО, чтобы разработчик-прикладник мог ис- пользовать память такого типа и такого объема, какие требуются для реше- ния прикладной задачи. Таким образом, мы предвидим создание системы, в которой может ис- пользоваться программная память на ППЗУ, ПЗУ или ОЗУ. Очевидно, что программная память на ОЗУ должна загружаться из центральной ЭВМ. Так как команда АУО занимает 80 разрядов, для таких систем предусматривает- ся длина команды от 96 до 128 разрядов. Элементы памяти X, Y, встроенные в кристалл, были бы желательным средством. Но если часть памяти X, Y является встроенной, а другая нахо- дится вне кристалла, то разработчик прикладной системы будет ограничен в выборе типа ОЗУ. Для различных применений мы предвидим использование ОЗУ с организацией ТУХ 1 или ТУХ 8 (в будущем, возможно, ТУХ 16). 336
Если бы в кристалл был включен системный контроллер для микропро- граммного управления, прямого доступа к памяти и управления вводом-вы- водом, то число выводов превзошло бы 150 и не хватило бы площади для адресных контроллеров. Поскольку микропрограммные контроллеры пря- мого доступа к памяти были предложены полупроводниковыми фирмами, а контроллеров данных не было, мы решили реализовать функцию управле- ния данными X, Y. 18.7. РАЗРАБОТКА СБИС При реализации в кремнии арифметического устройства обработки для мат- ричных процессоров проектировщик имеет возможность принимать неодно- значные решения. Важные решения и компро^миссы, относящиеся к задаче проектирования СБИС, будут обсуждены в последующих подразделах, чтобы пояснить, как данная ИС стала такой, какая она есть. Будет дано краткое об- суждение выбора технологии, логического и схемотехнического проектиро- вания, выбора и реализации топологии. 18.7.1. Технологический процесс Технологический процесс изготовления АУО — это микроКМОП-процесс (д -CMOS) . На время разработки данного проекта этот процесс был наиболее совершенным из доступных для КМОП-приборов с кремниевым затвором. Он обладает некоторыми очень важными характеристиками, которые делают его наиболее подходящим для реализации АУО и обеспечивает создание при- боров с поликремниевым затвором на основе силицида платины и разре- шение 3 мкм. Получение силицид-платиновых затворов в микроКМОП-процессе дает две важные характеристики, которые весьма желательны при разработке слож- ных быстродействующих шинно-ориентированных ИС. Во-первых, это позво- ляет использовать как р-, так и «-примесный поликремний без необходимо- сти обычных для данного процесса металлических перемычек для соедине- ния двух различных структур. Замыкание поликремниевою диода осущест- вляется силицид-платиновым слоем, расположенным на протравленном поли- кремнии. Благодаря этой процедуре сохраняются достоинства процесса с по- ликремнием р- и «-типа. Как правило, этим обеспечивается контакт (скры- тый) между поликремнием и подложкой. Такая гибкость прибора позволяет экономить полезную площадь кристалла из-за обеспечения возможности вы- полнения всех типовых соединений выводов транзистора с соседними эле- ментами в поликремнии без использования металла. Другим решением про- блемы р«-вентиля является использование высокопримесного поликремния одного типа проводимости (обычно «-типа). Это устраняет необходимость в перемычках между элементами, однако обеспечивает скрытые контакты ис- тока или стока только для приборов «-типа и поэтому приводит к менее эф- фективному размещению, чем то, которое получается с силицидом платины. Еще одним фактором является очень низкое сопротивление поликремния. При разводке и проектировании СБИС это весьма желательное достоинство — 337
низкое сопротивление поликремния — проявляется в двух направлениях. Получаемое при этом удельное сопротивление 2 — 5 Ом по сравнению с 20 — 30 Ом для однопримесного и-поликремния означает семикратное уменьше- ние задержки (АС) типового соединения. Даже если только небольшая часть общей задержки прибора определяется АС-задержками, разработчик может обойти те трудности в увеличении дополнительной площади кристалла, кото- рые существуют при использовании технологических процессов без силицида платины. Это приводит ко второму достоинству низкорезистивного поли- кремния, которое заключается в гибкости, предоставляемой разработчику топологии, поскольку не требуется дополнительная площадь кристалла для обеспечения межсоединений в высокоскоростных цепях прибора. В данном КМОП-процессоре используются приборы с размером затвора 3 мкм, а размеры элементов обеспечивают задержку 2 — 3 нс на вентиль. Такое быстродействие достаточно велико для обеспечения работы АУО с частотой более 4 МГц и с мультиплексированным портом микрокоманд и портом R-шины, работающими с частотой 16 МГц. Процесс позволяет полу- чить КМОП-приборы с напряжением 5 В, и сигналы СБИС совместимы с уровнем ТТЛ. Потребляемая мощность кристалла составит менее 200 мВт. 18.7.2. Логическое и схемотехническое проектирование При проектировании данной схемы использовались стандартные приемы проектирования КМОП ИС. Качество проектирования основных схем было проверено реализацией по нескольким технологиям. Например, в разработке широко использовалась схема матричного сумматора, запатентованная фир- мой Motorola [5]. Использование проверенных узлов минимизировало риск ошибок разработки, приводящих к дорогостоящему перепроектированию и задержкам графика разработки. Процесс разработки схемы был постоянным компромиссом между временем и стоимостью проектирования и рабочими характеристиками прибора. Как только цели по обеспечению требуемых ха- рактеристик прибора достигались, усилия по их улучшению прекращались. Характеристики анализировались с помощью моделирования МОП ИС и ис- пользования имитатора переходных процессов в схемах, который постоянно коррелировался с измеренными характеристиками контрольных образцов приборов. Суть подхода — проектирование универсального прибора, отвечающего по- ставленным целям. Однако всегда желательна повышенная производитель- ность. Всегда найдется система, в которой можно использовать большую про- изводительность. Следует отметить, что при данном подходе к проектирова- нию законченный проект не даст наилучших рабочих характеристик, возмож- ных для данной МОП-технологии, но время и стоимость разработки будут на- ходиться на минимально приемлемом уровне. 18.7.3. Подход к топологии Методика разработки топологии определялась ограничениями, накладыва- емыми на длительность разработки, сложность схемы и ее быстродействие. 338
Для того чтобы разработать кристалл с оптимальными производительностью и плотностью, потребовалась бы разработка полностью заказной СБИС. Одна- ко поскольку программа АУО должна была только продемонстрировать воз- можности реализации матричного процессора, то для проектирования был от- веден минимум средств и времени. В этих обстоятельствах наилучшие резуль- таты могли быть получены при использовании топологии полузаказной ИС сразу в нескольких ее местах с введением максимальной избыточности. Наилучший пример повторяемости — ячейка сумматора с ускоренным пере- носом, которая была применена почти в каждой секции кристалла. Тополо- гия этой ячейки, безусловно, не была оптимальной для каждой из секций, где она использовалась. Однако экономия времени и снижение риска, вытекаю- щие из необходимости переразводки полного сумматора, были расценены как хорошая компенсация потерь площади кристалла. При разработке топологии секций прибора основная методика состояла в упаковке ячеек с наибольшей плотностью в пределах ограничений, продик- тованных общим планом кристалла. В этом процессе после соединения ячеек секции, как правило, получалась топология секции, отличная от предполагав- шейся и продиктованной общим планом кристалла. В проектах, где основ- ным фактором оценки является плотность упаковки, а не время и стоимость разработки, проводится несколько итераций проектирования топологии сек- ции для оптимизации топологии всего кристалла. В программе же разработ- ки СБИС матричного процессора такие итерации не проводились даже тогда, когда расположение было неудовлетворительным и в жертву приносилась площадь кристалла. При данном подходе время проектирования составило 17 чел.-мес., а раз- работка топологии заняла 24 чел.-мес. В табл. 18.2 показано, что в приборе содержится 30 500 транзисторов. Определяя ’’показатель регулярности”, предложенный в работе [6], при отсутствии ПЗУ в кристалле и наличии 1207 Таблица 18.2. Распределение площади кристалла Функциональное назначение элемента Площадь, мм2 Число тран- зисторов Плотность транзисторов на 1 мм2 Доля площа- ди кристалла, % Умножитель 9,990 10349 1035 17 Разрядная секция 12, 161 10000 822 21 Адресный контроллер X 1, 667 1952 1170 3 Адресный контроллер Y 1, 667 1952 1170 3 Регистры XL, YL 1, 647 1824 1107 3 Управление 6, 625 3506 529 11 Ввод-вывод (периферия) 11,637 978 84 20 Шины данных 9,692 0 0 16* Шины управления 1,577 0 0 3* Свободная площадь 1,787 — -— 3 Всего 58,45 30561 522 100 *Не включает внутренние шины каждой секции. 339
изображений транзисторов получим его значение 25,3- Разумеется, сравни- тельные данные из работы [6] приведены для иМОП приборов; стоимость нашего проекта была ниже, чем стоимость прибора Gold RISC I. По данным табл. 18.2 могут быть проведены и другие сравнительные оценки с проект- ными характеристиками из работы [6]. На основе общей методологии, продиктованной необходимостью компро- миссных решений, разработка топологии СБИС началась с анализа архитекту- ры. Из архитектуры и таблицы микрокоманд вытекают основные способы соединения на кристалле 20 различных шин данных, 184 линий управления, питания и земли при обеспечении цикла длительностью 250 нс. Было рассмот- рено множество эскизов кристалла и структур соединений, прежде чем была выбрана структура, приведенная на рис. 18.7. 7,569 мм 145Т ХА6 ХАО ХА1 ХА2 ХАЗ ХАЬ Х15 /74 ХГЗ Х12 XII Х10 Х9 Х8 Х7 Х6 Х5 Х4- хз XZ X/ X0 ХА7 ХА 8 ХА9 ~ГП 115 ~Пб 118 ХАЮ ХА11 ХА12 XAJ3 ХА1Ь ХА 15 MPL MSB YA0 YA1 YA2 MSB YA3 YAb ~YA5 YA6 YA7 YA8 УАЗ YA 7О 0987t YAH Умножитель 4,7/4 ММ MPL MPR LSB MSB У/У'^-Шина MPL7MPR. Шина XS, YS(32) MPA MPS LSB MPR LSB LSB XL YL 0J Регистры команд и дешифраторы для регистров XL, YL,XOUT и умножителя ’Усилители синхросиг- —\нало6 Сумматоры и регистры со схемами диагностик, плавающей запятой и масштабирования S0U8 мм £ CO EQL LTL Y15 Г74 Y13 Y12 YU Y1O Y9 Y8 Y7 Y6 У5 YP Регистры команд u дешифраторы для сумматоров и регистров Y3 Y2 Y7 R10 R11 R12 R13 118 10 "77" 2L 13 15 16 17 VDD ICL SYCL 18 19 110 111 112 113 /% MS А HCI HRSO OVFL YO В 6= 7^ 7^7мм Рис. 18.7. Расположение элементов на кристалле АУО 340
Структура АУО была разделена на пять секций: 1) умножитель; 2) сум- маторы, аккумуляторы с элементами выполнения специальных функций; 3) регистры общего назначения XL и YL; 4) адресные контроллеры (исполь- зуются дважды) ; 5) регистры команды и управления. Каждая из секций обо- значена на чертеже кристалла, их размеры можно сравнить. Для каждой секции, за исключением секции управления, использовалась одна и та же основная схема проектирования и компоновки. Каждая секция компоновалась на основе иерархического подхода, т. е. начиналась с верти- кального соединения базовых логических ячеек для получения одноразряд- ного среза для конкретной функции. В каждом из разрядных срезов макси- мально использовалась возможная избыточность ячеек. Все разрядные срезы затем стыковались для образованияJV-разрядной функции. При таком пораз- рядном подходе экономится значительная площадь кристалла и только шины данных, входящие и выходящие из функционального блока, растягивают секцию до размера, равного ширине шин. Например, шины XS и YS, входя в секцию сумматора-аккумулятора, требуют того, чтобы каждая из шин протя- гивалась вдоль каждого из разрядных срезов (с 0 до 16), даже если она ни- когда не потребуется для соединения с разрядным срезом 16. Напротив, ши- ны Т, F, G, U, V, Н и W встроены внутрь секции, содержащей сумматор, акку- муляторы, логические элементы, и образуют связь между ячейками только по вертикальному срезу. Этот прием не только экономит площадь кристалла, но и устраняет паразитные эффекты монтажа, связанные с не очень рациональ- ным подходом к компоновке, которые имели место при проектировании сумматоров как изолированных ячеек. Как представлено выше, тракты передачи данных для каждой секции раз- водились по вертикали для каждого разрядного среза и объединялись через поликремний. Такое использование очень длинных поликремниевых провод- ников оказалось возможным благодаря низкому сопротивлению, обеспечи- ваемому силицид-платиновым технологическим процессом. В противном случае задержки в соединениях, связанные с применением высокорезистив- ного поликремния, стали бы чрезмерными и в проекте не была бы достигну- та необходимая производительность прибора. Вертикальная разводка трактов передачи данных позволила выполнить соединения цепей питания, земли и быстродействующих сигналов управления горизонтально через разрядные срезы металлическими проводниками. Такой подход реализует преимущества микроКМОП-процесса, позволяющие исполь- зовать скрытые контакты. Внутренние выводы логических ячеек могут быть соединены в поликремнии, что позволяет таким образом выполнять развод- ку цепей управления и питания непосредственно в слое над активными при- борами. Единственной секцией в проекте, которая компоновалась иначе, была сек- ция логики управления и дешифрирования. Эта секция содержит регистр сдвига на 4 и регистры задержки командного конвейера, а также узел де- шифрирования входов кода операции для получения конкретных управляю- щих сигналов. Эти схемы декодируют 78-разрядное слово микрокоманды в 184 управляющих сигнала. Данные 78 разрядов поступают с 20 выводов 341
1<омандьГ1ипринимаются за 4такта (тактовая частота >16 МГц) в течение одного системного цикла. Дешифрирование реализовано на уровне логичес- ких вентилей. Число элементов в схеме дешифрирования было минимизиро- вано; они были в основном представлены вентиляторами типа И — НЕ, буферными усилителями двух типов разных размеров, каждый из которых проектировался по критерию минимального времени задержки. Малые дли- тельности задержки потребовали соответствующих характеристик выходов регистров команды для согласования с большими емкостями линий управле- ния, пересекающих каждую функциональную секцию. Ячейки для схем управления проектировались так, чтобы соединения вы- полнялись легко и основой подхода было построение рядов ячеек и между- рядное соединение металлическими проводниками. Сводные характеристики компоновки прибора из табл. 18.2 подтверждают тот факт, что по плотности компоновки данный подход не очень эффективен. Однако при небольшом сроке разработки и высокой производительности результаты приемлемы. Рассматривались и другие методы дешифрации (программируемые логичес- кие матрицы, ПЗУ и т. п.), но они были отвергнуты на том основании, что производительность была важнее рациональной компоновки. Следующей проблемой компоновки была разводка цепей питания СБИС. В основе подхода было разделение цепей питания и земли элементов ввода- вывода от цепей питания и земли внутренних логических схем. Наличие сот- ни совместимых с уровнем ТТЛ выводов привело к использованию значи- тельной части полезной площади для разводки цепей питания. Изоляция це- пей питания была применена для устранения влияния на внутренние логичес- кие элементы периферийных приборов, которые могли бы вызвать всплески напряжения в системе питания. На кристалле расположено около 60 ТТЛ- драйверов, и это требует наличия шин питания системы ввода-вывода шири- ной 50,8 мкм для устранения миграции металла и падения напряжения. 18.7.4. Технические характеристики прибора В табл. 18.2 приведены характеристики топологии кристалла: общее число приборов, плотность компоновки, распределение площади кристалла между функциями. Предельная плотность компоновки СБИС невелика по сравне- нию с плотностью, которую мог бы обеспечить микроКМОП-процесс с разре- шением 3 мкм. Однако, принимая во внимание размер кристалла, ограничен- ное время разработки и сложность архитектуры, такую плотность компонов- ки можно считать приемлемой по затратам на реализованную функцию. Разработка и компоновка кристалла были выполнены за 14 мес. В этот срок включена и итеративная фаза разработки архитектуры и конструирова- ния СБИС. Описанная здесь методология проектирования позволила выпол- нить задачу минимальным составом разработчиков. Для выполнения работы потребовались ведущий разработчик СБИС, чертежник и оператор автомати- зированной системы машинной графики. Потребовался также еще один ин- женер на срок 5 мес. для логического моделирования. Архитектура системы разработана специальной группой инженеров. Для выполнения проектирова- ния базовой ячейки с конфигурацией, совместимой с общим планом кристал- 342
ла, и проведения анализа временных характеристик ячейки была предприня- та процедура детальной компоновки. Затем ячейка была прорисована при 1000-кратном увеличении чертежником проекта СБИС. Параметры ячейки были введены оператором в систему машинной графики типа CALMA GDSII. Когда все ячейки для секции оказывались прорисованными, оператор дол- жен был в интерактивном режиме соединить ячейки в срезы, а затем объеди- нить срезы в законченную секцию с помощью системы машинной графики. По мере завершения чертежа каждой секции они интегрировались в конеч- ную топологию кристалла. Такая система объединения ячеек, срезов, секций и кристалла в целом в интерактивном режиме для генерации шаблонов ма- сок оказалась эффективной. В большинстве проектов заказных или полуза- казных СБИС соединение этих частей выполняется вручную, а затем кодиру- ется, что требует большего времени для компоновки. Интерактивное соеди- нение при проектировании оказалось возможным благодаря скрупулезному планированию соединений на стадии планирования кристалла. В ходе проектирования потребовалась прорисовка около 50 ячеек и созда- ние еще около 50 ячеек из исходного набора. Эти вторичные 50 ячеек были получены из первичных при незначительном редактировании оператором си- стемы машинной графики и потребовались вследствие особенностей компо- новки различных секций. Система С ALMA GDS II использовалась также для проверки правил проектирования шаблонов, подготовки данных для элек- тростатического графопостроителя и подготовки лент для установки элек- тронно-лучевой литографии. 18.8. ЗАКЛЮЧЕНИЕ В результате этой работы было продемонстрировано, что по микроКМОП- технологии с разрешением 3 мкм может быть построен современный ариф- метический процессор (для матричного процессора). Мы уверены, что дан- ный прибор является представителем будущих СБИС-процессоров по следу- ющим параметрам: 1) большая площадь отведена под шины; 2) большое число выводов. Эти параметры отражают необходимость разработки технологии, обеспечи- вающей большую плотность соединений, такой как двукратная металлизация, и более миниатюрных контактов. Отсюда также следует необходимость в де- шевых многовыводных корпусах. Данная попытка демонстрирует возможность создания еще более мощных параллельных процессоров в одном полупроводниковом приборе по мере со- вершенствования технологии СБИС. Рассмотрение компоновки после ее завершения позволило более крити- чески оценить данный подход к проектированию. На рис. 18.8 показана фото- графия кристалла. Установлено, что площадь кристалла полностью заказной СБИС, разработанной с тем же разрешением, составила 80% от площади, по- лученной в данном проекте. Однако это потребовало бы по меньшей мере 343
Рис. 18.8. Общий вид АУО трехкратного увеличения времени разработки. При использовании известных сегодня стандартных ячеек и автоматизированных способов размещения и разводки размеры кристалла превзошли бы те, которые можно реализовать. СПИСОК ЛИТЕРАТУРЫ [1] J. В. Bruckner, С HI-5 Micro-Programming Reference Manual, CHI Systems, Inc., Goleta, Calif, May 1982. [2] G. J. Culler, “Array Processor with Parallel Operations per Instruction,” U.S. Pat. 4,287,566, Sept. 1,1981. [3] A. E. Charlesworth, “An Approach to Scientific Array Processing: The Architectural Design of the PP-120B/FPS-164 Family,” Computer, 14(9):18-27 (Sept 1981). [4] Ed Greenwood et al., “Array Processor Architecture Report,” Rep. N00014-80-C-693-I, Feb. 15, 1982. [5] B. Fette and L. Hazelet, “Electronic Digital Adder,” U.S. Pat. 3,843,876, Oct. 22, 1974. [6] D. T. Fitzpatrick et al., “A RISCy Approach to VLSI,” VLSI Des., 4th Quarter 1981, pp. 14-20. 344
19 ЦИФРОВАЯ ФИЛЬТРАЦИЯ В ЧАСТОТНОЙ ОБЛАСТИ ПРИ ИСПОЛЬЗОВАНИИ СБИС Е. Шварцландер, мл.1, Г. Холлнор2 19.1. ВВЕДЕНИЕ Технология СБИС и техника обработки сигналов развиваются в тесной взаимосвязи. Это обусловлено тем, что цифровая обработка сигналов тра- диционно требовала высоких уровней производительности при вычислениях. Преимуществом прикладных задач цифровой обработки сигналов (по техни- ческой реализации) является значительный объем вычислений, большинство операций которых не зависит от обрабатываемых данных. Поэтому для их реализации могут использоваться конвейерные или параллельные архи- тектуры. Важным аспектом наиболее полного использования технологии является четкое определение критериев оптимизации, которые меняются в зависимос- ти от конкретной задачи (минимизация числа элементов, мощности, разме- ров, стоимости, типов элементов и т. д.). В этой главе основной целью явля- ется минимизация числа элементов, что требует максимизации числа опера- ций на элемент, определяемого как произведение числа вентилей на такто- вую частоту. Приблизительная зависимость этого параметра от тактовой час- тоты представлена на рис. 19.1. В настоящее время максимум достигается на тактовой частоте, примерно равной 10 МГц. Ниже этого значения плот- ность логических элементов ограничивается сложностью устройства, которая растет относительно медленно с уменьшением частоты. Для тактовой частоты выше 10 МГц плотность логических элементов довольно быстро уменьшает- ся частично из-за превалирования интерфейсных схем ТТЛ, с которыми не- легко оперировать на частотах выше 10 МГц, а также из-за высокой потреб- ляемой мощности существующих семейств быстродействующих логичес- ких элементов. Другой метод выбора технологии сводится к рассмотрению достижимого уровня сложности. Для большинства функций существует ’’критическая мас- са” логических элементов, необходимая для их реализации. При низком уровне логики заданная функция не может быть выполнена на одном крис- талле и должна быть разделена на части для реализации либо на базе несколь- ких кристаллов (которые содержат дополнительные драйверы ввода-вывода, дополнительные выводы корпусов и т.д.), либо путем последовательного выполнения (которое потребует дополнительных управляющих логических цепей, изменяемой памяти и др.). В любом случае эффективность значи- тельно увеличивается, если заданная функция реализуется полностью на одном кристалле. 1 Отдел оборонных систем фирмы TRW, Редондо-Бич, Калифорния, 2 Отдел оборонных систем фирмы TRW, Маклин, Виргиния. 345
Рис. 19.1. Зависимость числа операций, выполняемых на »*дном кристалле, от тактовой частоты В качестве типичного приме- ра рассматриваема разработка циф- рового фильтра с улучшенными параметрами. Ст этого фильтра требуется обработка входных дан- ных, поступаюп.йх со скоростью 4-107 оп./с с разрешающей способ- ностью по частоте 10 кГц. Фильтр реализуется с помощью вычисления спектра по 4096 входным отсчетам, умножения этого спектра на заданную частотную характеристику и, наконец, обратного преобразования для полу- чения выходного сигнала во временной области. Указанная последователь- ность операций выполняется для новых данных, перекрывающихся на 50% длительности преобразования со старыми, с целью исключения граничных эффектов. Такая система потребует объема вычислений, эквивалентного примерно 1 млрд двоичных ’’бабочек” БПФ в секунду (240 млн. бабочек для двух операций прямого и столько же для двух операций обратного пре- образования) . Технически задача решается преобразованием входной» потока данных со скоростью 4-107 оп./с в четыре потока со скоростью 10* оп./с. Эти четыре потока обрабатываются с помощью конвейерного процессора БПФ, реали- зующего алгоритм Кули—Тьюки с основанием четыре, в Соответствии с раз- работкой [1]. Алгоритм Кули—Тьюки был выбран потому, что как прямое, так и обратное преобразования вычисляются по схемам, состоящим из двух основных вычислительных элементов. Согласно алгоритму, предложенному в [ 1 ], примерно 10 лет назад было разработано семействе ЭСЛ малой степе- ни интеграции фирмы General Electric. Это семейство содержит 27 000 интег- ральных схем для выполнения 960 млн двоичных бабочек БПФ в секунду [1]. Рассматриваемое здесь устройство по своим характеристикам сопоста- вимо со своим предшественником, но для реализации потребовалось в пять раз меньше ИС. В этом устройстве для представления каждой составляющей комплексных данных использовались 22-разрядные чиелй с плавающей за- пятой вместо 11-разрядных чисел с фиксированной запятой с 6 разрядами для порядка в варианте фирмы General Electric. 19.2. ТРЕБОВАНИЯ К ФИЛЬТРУ Структура алгоритма обработки показана на рис. 19.2. ПС)ток входных дан- ных (в верхней части рис. 19.2) через блок сбора данных поступает в блок вы- числения 4096-точечного комплексного БПФ (4К БПФ). Обработка с исполь- зованием функций окна по временной области осуществляется в блоке сбо- ра данных. Преобразованные таким способом входные данные затем фильт- 346
Рис. 19.2. Структурная схема фильтра для обработки сигналов в частотной области руются путем умножения в частотной области с последующим вычислением обратного БПФ. После БПФ вычисляется модуль нефильтрованного спектра для получения спектральной плотности мощности (СПМ), который затем используется для выполнения основной операции фильтра. Аналогичный процесс выполняется и для данных, сдвинутых по времени (на половину длительности периода преобразования) в канале с перекрытием. Использо- вание двух таких каналов с перекрытием предотвращает потери на границах за счет использования функций окна. Как видно из приведенной структуры алгоритма, необходимыми являют- ся следующие блоки: 1) блок сбора данных — обеспечивает входной интерфейс, преобразование одного канала со скоростью 4 • 107 оп./с в четыре канала со скоростью 107 оп./с и взвешивание во временной области любой предварительно запом- ненной функцией окна (для сравнения функций окна можно обратиться К [2]); 2) блок 4096-точечного комплексного БПФ — принимает данные в после- довательном во времени порядке и выполняет операции комплексного БПФ. Блок является программируемым для выполнения преобразований длитель- ностей, кратных степени 4 (т.е. 4,16, 64, 256, 1024, 4096) ; 3) блок фильтрации в частотной области — умножает спектр, полученный в результате БПФ, на частотную характеристику фильтра. Эта операция пред- ставляет собой простое поточечное перемножение; 4) блок вычисления спектральной плотности мощности — вычисляет спект- ральные составляющие, упорядочивает данные в порядке следования частот и выполняет операцию усреднения с экспоненциальным взвешиванием; 5) блок основной операции фильтра — представляет собой универсальную ЭВМ, реализующую адаптивный фильтр, основанный на использовании на- блюдаемой спектральной плотности мощности; 6) блок 4096-точечного комплексного обратного БПФ — вновь преобра- зует обработанный в фильтре спектр мощности во временную область. Схе- ма обратного БПФ является программируемой (аналогично схеме прямого 347
БПФ) для выполнения преобразований входных данных разной длитель- ности. Таким образом, требуется шесть основных блоков. Следует подчеркнуть, что уровень сложности указанных устройств различен; наиболее сложными из них являются блоки для выполнения прямого и обратного БПФ. После первоначальной обработки в блоке сбора данных все последующие вычисления выполняются с помощью арифметических операций над 22-раз- рядными числами с плавающей запятой (6 разрядов ~ порядок, 16 разря- дов — мантисса) для сохранения точности и исключения необходимости в адаптивном масштабировании данных. В рассматриваемом процессоре используется конвейерная обработка данных' четырех параллельных каналов с каскадной архитектурой [3]. Этот способ построения был выбран для обеспечения высокого быстро- действия (для обработки 4 • 107 оп./с) с использованием в то же время су- ществующей технологии СБИС (как отмечалось во введении, тактовая час- тота современных ИС составляет обычно порядка 10 МГц; для более вы- соких скоростей обработки потребуются специальные ИС с существенно меньшим уровнем интеграции). В настоящее время имеется большое разно- образие компонентов СБИС, реализуемых на базе различных технологий, обеспечивающих значение тактовой частоты 10 МГц. Примерами таких уст- ройств являются быстродействующая ЗУПВ емкостью 16 Кбит, 22-разрядные сумматоры и умножители с плавающей запятой и другие устройства [4]. 19.3. РАЗРАБОТКА ВЫЧИСЛИТЕЛЬНЫХ БЛОКОВ Здесь будет дан обзор конструкций основных блоков устройства обра- ботки, арифметические функциональные элементы которого выполнены на одном кристалле. Блок сбора данных. Этот блок обеспечивает интерфейс с источником дан- ных, распределяет поток входных данных по четырем каналам и выполня- ет взвешивание во временной области с использованием функций окна. Схе- ма реализации блока показана на рис. 19.3. Данные в комплексной форме, поступающие с тактовой частотой 40 МГц, загружаются в восемь сдвиговых регистров по четыре для каждой из двух комплексных составляющих дан- ных. Содержимое каждого из регистров затем передается в восемь парал- лельных фиксаторов с тактовой частотой 10 МГц. С помощью сдвигового регистра и фиксатора осуществляется переход от одного последовательного комплексного канала к четырем параллельным каналам комплексных дан- ных. Данные четырех параллельных каналов подвергаются весовой обработ- ке с использованием функции окна (шириной в 1024 отсчета [2]), храня- щейся в постоянном запоминающем устройстве (ПЗУ). Это ПЗУ содержит четыре параллельных канала памяти, каждый из которых содержит 1024 весовых коэффициента, так как все четыре канала работают одновременно. В этом блоке сдвиговые регистры и фиксаторы выполнены на элементах ЭСЛ для достижения тактовой частоты 4 • 107 оп./с. Поскольку для элемен- тов ЭСЛ характерна довольно низкая плотность на единицу площади, то в 348
Рис. 19.3. Структурная схема блока сбора данных одном кристалле можно разместить только четыре регистра или фиксатора. Умножитель и ПЗУ выполнены в виде СБИС, поэтому для построения всего блока потребуется около 120 БИС, но только 15 из них БИС ЭСЛ. Предполагается, что входными данными являются 16-разрядные слова с фиксированной запятой. Поскольку точность большинства быстродействую- щих АЦП низка (8,10, реже 12 разрядов), то в данном блоке можно исполь- зовать входные слова меньшей длины. Из-за низкой степени интеграции схем ЭСЛ уменьшение длины входных слов до 12 или 8 разрядов снижает слож- ность от 25 до 50% соответственно. С учетом приведенных данных была вы- брана с запасом 16-разрядная длина слова. Блок БПФ. Как уже отмечалось, блок БПФ оказывается сложнее других блоков. В результате для целей реализации блок разделен на функциональ- ные элементы двух типов. Такое разделение позволяет использовать преиму- щества конвейерного алгоритма БПФ Кули—Тьюки. Структура процессора БПФ показана на рис. 19.4. Процессор построен на базе вычислительных элементов (ВЭ) и элементов задержки — коммутации (3 — К). В этом проекте вычислительный элемент реализует бабочку БПФ с основанием 4, а элемент задержки — коммутации осуществляет преобразова- ние данных, необходимое для обработки с использованием алгоритма Кули— Тьюки [5]. Основной принцип конвейерной обработки был разработан в конце 1960-х годов [6], а затем он был распространен на БПФ с основанием 4 [1]. Алгоритм БПФ с основанием 2 в настоящее время реализуется на СБИС с аналогичным разделением схем на два типа [7]. Вычислительный элемент для бабочки БПФ с основанием 4 реализует 4-точечное дискретное преобразование Фурье. Для выполнения этой опе- рации требуется три умножителя комплексных чисел, восемь сумматоров 349
Рис. 19.4. Структурная схема блока вычисления Б ПФ с о снованием 4 с помощью конвей- ерного алгоритма Кули—Тьюки комплексных чисел (четыре выполняют суммирование, а остальные четыре — вычитание), таблицы функций sin, cos (хранящиеся в ПЗУ) и различные ло- гические адресации. Для реализации вычислительного элемента потребуется около 80 ИС. Такой невысокий уровень сложности является прямым резуль- татом наличия однокристальных арифметических устройств. Вторым элементом конвейерного БПФ является элемент задержки — ком- мутации, используемый для выполнения необходимых преобразований дан- ных для их обработки с помощью алгоритма Кули—Тьюки. Элемент состоит из входных линий задержки калиброванной длительности, коммутатора и выходных линий задержки тоже калиброванной длительности. Длительность задержки в элементе задержки равняется единице на последнем этапе БПФ и увеличивается с коэффициентом 4 на каждом предшествующем этапе. Для осуществления преобразования длиной 4096 разрядов потребуется около 180 ИС. Способ получения задержек показан на рис. 19.5. Запоминающее устройство с произвольной выборкой используется для последовательной записи данных (по сумме значения счетчика и сдвига в качестве адреса) и считывания (по значению счетчика в качестве адреса). Таким образом, дан- ные записываются в память последовательно (как это было бы в запоминаю- щем устройстве на магнитном барабане с последовательной выборкой) и счи- тывание задержанных данных также осуществляется последовательно. В своей основной форме конвейерного БПФ с основанием 4 вычисляют- ся преобразования последовательностей данных, длины которых являются степенями числа 4. Добавление вычислительного элемента с основанием 2 (являющегося частью вычислительного элемента с основанием 4) и специаль- ного элемента задержки — коммутации позволит осуществлять вычисление преобразований, длина которых является степенью числа 2. 350
Рис. 19.5. Схема реализа- ции временной задержки Входные данные Задержка Задержанные данные Блок фильтрации в частотной области. Операция фильтрации в частотной области включает поточечное умножение 4096-точечного комплексного спектра на частотную характеристику фильтра. Блок реализован с исполь- зованием четырех идентичных комплексных каналов, как показано на рис. 19.6. Частотная характеристика фильтра записана в запоминающем уст- ройстве с произвольной выборкой и вызывается из памяти по мере поступ- ления входных данных. Этот блок реализуется с использованием примерно 70 ИС. Блок вычисления спектральной плотности мощности (СПМ). Этот блок используется для вычисления оценки спектральной плотности мощности (суммированием квадратов действительной и мнимой составляющих на каж- дой частоте спектра) и усреднения последовательных СПМ с помощью рекур- Рис. 19.6. Структурная схе- ма блока фильтра в частот- ной области 351
Усредняющие коэффициенты Рис. 19.7. Структурная схема блока вычисления спектральной плотности мощности сивной процедуры усреднения. Структура этого элемента показана на рис. 19.7. После вычисления модулей комплексных входных данных выполняет- ся операция их усреднения. Процедура усреднения включает поточечное сум- мирование текущего спектра с частью ранее накопленных значений. Для по- строения такого блока потребуется примерно 90 ИС. Блок основной операции фильтра. Основные операции фильтра реализуют- ся с помощью универсальной мини- или микроЭВМ. Передаточная характе- ристика фильтра может быть фиксированной или подстраиваемой в зависи- мости от применения системы. Универсальная ЭВМ не учитывается при оцен- ке сложности системы, поскольку в большинстве систем имеется главная ЭВМ, которая и будет выполнять указанную функцию. Блок объединения. Выходы блоков обратного БПФ и перекрывающегося обратного БПФ мультиплексируются в блоке объединения, как показано на рис. 19.8. Все входные данные преобразуются к уровням элементов ЭСЛ. За- тем эти данные с помощью двухуровневого мультиплексора 8 :1 образуют один выходной канал. Технически это реализуется на базе двух мультиплек- соров 4:1, выходные сигналы которых поступают в мультиплексор 2:1. В состав блока объединения входят 143 ИС. 352 I
Выходные сигналы довременной области Рис. 19.8. Структурная схема блока объединения 19.4. ПОЛНАЯ СТРУКТУРА ФИЛЬТРА Как показано в табл. 19.1, для построения фильтра, выполняющего пол- ную обработку в частотной области (включая два канала совмещенной об- работки и два блока вычисления обратного БПФ), потребуется 49 печатных плат, содержащих около 6100 ИС и рассеивающих мощность примерно 6 кВт. Устройство компонуется на печатных платах, содержащих от 78 до 179 ИС при рассеиваемой мощности от 100 до 150 Вт. Размеры 22,5X40 см каждой печатной платы, что позволяет использовать промышленные шасси для их крепления (для макетирования) и монтажные платы промышленного про- изводства. Печатные платы устанавливаются в четырех выдвижных секциях стандарт- ной стойки для оборудования. Каждый из четырех процессоров для выпол- нения соответствующих БПФ (прямого, перекрывающегося прямого, обрат- ного и перекрывающегося обратного) размещается в отдельной выдвижной секции. Суммарный объем фильтра в настольном варианте исполнения, обес- печивающего полную обработку в частотной области, составляет около 305 см3. Входные данные поступают со скоростью 4 • Ю7 оп./с (эквивалентной 128 Гбит/с, если входные данные являются комплексными 16-разрядными словами). Частота данных на выходе фильтра та же самая 4 -107 оп./с. После выполнения соответствующих операций в блоках предварительной и весовой обработки все последующие вычисления выполняются с помощью 22-разрядного арифметического устройства с плавающей запятой (6 разря- 353
Таблица 19.1. Параметры, характеризующие сложность процессора Назначение блока Число бло- ков Общее чис- ло кристал- лов Общая мощ ность, Вт Сбор данных и весовая обработка БПФ 2 240 250 БПФ: вычислительные операции 12 960 1500 задержка - коммутация 10 1790 1000 Фильтрация в частотной области 1 140 150 Вычисление спектральной плотности мощности 1 78 100 Объединение каналов 1 143 150 Обратное БПФ (то же, что и для БПФ) 22 2750 2500 Итого: 49 6101 5650 дов которого используется для порядка и 16 — для мантиссы) для обеспе- чения точности и исключения необходимости применения адаптивного масш- табирования. 19.5. ЗАКЛЮЧЕНИЕ В этой главе проиллюстрированы потенциальные возможности достижения производительности около 109 оп./с, эквивалентных бабочке БПФ при осно- вании 2, на базе современной технологии СБИС. В табл. 19.2 приведены обоб- щенные характеристики фильтра, выполняющего полную обработку в частот- ной области. Двумя наиболее существенными характеристиками являются: скорость вычислений на единицу объема (960-1О6 бабочек БПФ в секунду при объеме 305 см3; примерно 108 таких операций в секунду при объ- еме 30,5 см3) и рассеиваемая при такой скорости мощность (примерно Таблица 19.2. Характеристики фильтра в частотной области (технология 1982 г.) Наименование характеристики Характеристики Логика Память Объем Биполярная иМОП 305 см3 (при использовании печатных плат с навесными проводниками) Мощность Прои зв о дите л ьно сть Размер слов 5,6 кВт 960 • 106 бабочек БПФ в секунду 16 разрядов с фиксированной запятой на входе 22 разряда с плавающей запятой (6 разрядов — порядок, 16 — мантисса) для основных операций Основные показатели 3,43 • 106 бабочек БПФ в секунду на 1 дм3 170 • 103 бабочек в секунду на 1 Вт
170 • 103 бабочек БПФ в секунду на 1 Вт рассеиваемой мощности). Эти циф- ры и скорость вычислений могут рассматриваться как перспективные, если учесть, что система SPS-1000 с четырьмя блоками конвейерной обработки обеспечивает выполнение около 42 • 106 бабочек БПФ в секунду [8]. В этой системе скорость вычислений на 1 дм3 составляет (1,8 —3,6) • 106 бабочек БПФ в секунду. Другой высокопроизводительный процессор достигает зна- чения скорости вычислений (при 16 вычислительных элементах) около 71 -106 бабочек БПФ в секунду [9]. Таким образом, разработки на базе СБИС обеспечивают увеличение производительности примерно на порядок по сравнению с любой из описанных серийно выпускаемых систем. Это исследование, конечно, не определяет верхнюю границу производи- тельности процессора. Можно ожидать, что в ближайшем будущем при усо- вершенствовании технологии микросхем типа ЭСЛ или на основе GaAs смо- гут быть достигнуты скорости вычислений около 1011 бабочек БПФ в се- кунду. СПИСОК ЛИТЕРАТУРЫ [1] J. Н. McClellan and R. J. Purdy, “Applications of Digital Signal Processing to Radar,” in A. V. Oppenheim, ed., Applications of Digital Signal Processing, Prentice-Hall, Englewood Cliffs, NJ., 1978, Chap. 5. [2] F. J. Harris, “On the Use of Windows for Harmonic Analysis with the Discrete Fourier Transform,” Proc. IEEE, 66:51-83 (1978). [3] C. D. Bergland, “Fast Fourier Transform Hardware Implementations—An Overview,” IEEE Trans. Audio Elect roac oust., A 17-/7:104-108 (1969). [4] J. A. Eldon and C. Robertson, “A Floating Point Format for Signal Processing,” Proc. ICASSP-82,1982, pp. 717-720. [5] J. W. Cooley and J. W. Tukey, “An Algorithm for the Machine Calculation of Complex Fourier Series,” Math. Comp., 79:297-301 (1965). [6] H. L. Groginsky and G. A. Works, “A Pipeline Fast Fourier Transform,” IEEE Trans. Comput., C-79:1015-1019 (1970). [7] A. Kanemasa, R. Maruta, K. Nakayama, Y. Sakamura, and S. Tanaka, “An LSI Chip Set for DSP Hardware Implementation,” Proc. I CASS P-81,1981, pp. 644-647. [8] R. A. Collesidis, T. A. Dutton, and J. R. Fisher, “An Ultra-High Speed FFT Processor,” Proc. I CASS P-80, 1980, pp. 784-787. [9] C. S. Joshi, J. F. McDonald, and R. H. Stinvorth, “A Video Rate Two Dimensional FFT Processor,” Proc. ICASSP-80, 1980, pp. 774-778. 355
20 ПАРАЛЛЕЛЬНАЯ СБ ИС-АРХИТЕКТУРА ЦИФРОВОГО ФИЛЬТРА, ИСПОЛЬЗУЮЩЕГО ТЕОРЕТИКО-ЧИСЛОВЫЕ ПРЕОБРАЗОВАНИЯ Т. Труонг1, И. Рид, К. Йе, Г. Чанг, X. Шао2 20.1. ВВЕДЕНИЕ Для решения многих практических задач цифровой обработки сигналов требуется циклическая свертка [1]. Для эффективного выполнения цикли- ческих сверток были развиты как быстрое преобразование Фурье (БПФ), так и теоретико-числовое преобразование (ТЧП). Циклическая свертка двух последовательностей целых чисел получается в результате обратного ТЧП, применяемого к результату ТЧП двух последовательностей. В частнос- ти, при цифровой фильтрации [4, 5], обработке изображений [8, 9], вос- становлении рентгеновского изображения и при кодировании и декодирова- нии некоторых кодов Рида—Соломона [4, 12] может быть использовано чис- ловое преобразование Ферма (ЧПФ). Теоретико-числовые преобразования обладают следующими преимущест- вами перед обычным БПФ: 1) для некоторых из них не требуются операции умножения; 2) используется арифметика целых чисел; 3) нет ошибок ок- ругления. Недостатками ТЧП являются: 1) противоречие между длиной пре- образуемых последовательностей и шириной динамического диапазона при приемлемых размерах слова, что часто ограничивает применимость этого преобразования; 2) арифметика преобразования требует операций над клас- сами вычетов по модулю некоторого простого числа. Важным видом ТЧП является числовое преобразование Ферма. Преиму- щество ЧПФ перед большинством ТЧП состоит в том, что длина преобразова- ния равна степени числа 2. В результате для выполнения ЧПФ может быть использована структура БПФ; число 2 является возможным корнем из еди- ницы в некотором конечном поле или кольце. Вместе с ЧПФ, которое имеет число 2 в качестве корня единицы, операции умножения на степень числа 2 по модулю числа Ферма легко выполняются посредством циклического сдви- га слова в двоичной арифметике. С другой стороны, БПФ требует умножения на комплексные корни единицы, имеющие вид eTnjnk/N. В [13] приводится описание аппаратной системы для реализации 64-точеч- ного ЧПФ над 17-разрядными числами на основе серийно выпускаемых ЭСЛ ИС. Для этой аппаратной реализации ЧПФ было разработано нестандарт- ное представление двоичных чисел, которое использовалось для выполнения двоичных арифметических операций по модулю чисел Ферма. Для этой цели Лейбовицем [14] было разработано простое представление двоичных чисел. В данной главе излагается обобщенный метод перекрытия с накоплением для разрешения противоречия между длиной преобразуемых последователь- 1 Калифорнийский технологический институт, Пасадина, Калифорния. 2 Университет Южной Калифорнии, Лос-Анжелес, Калифорния. 356
ностсй и размером динамического диапазона. На основе этого метода с по- мощью ЧПФ разработана параллельная архитектура реализации цифрового КИХ-фильтра с импульсной характеристикой произвольной длины. В разд. 20.2 кратко рассматривается ЧПФ, представление двоичных чисел, предло- женное Лейбовицем, и требуемые двоичные операции по модулю чисел ферма. В разд. 20.3 представлена конвейерная структура выполнения 128-точеч- ного ЧПФ над полем Fs, удобная для реализации на СБИС. При такой струк- туре требуются только операции сложения и циклического сдвига. Цикличес- кий сдвиг, необходимый для выполнения операции умножения на степень числа 2, может быть реализован модификацией стандартной схемы цикличес- кого сдвигового регистра [15]. В разд. 20.4 детально прорабатывается обобщенный метод перекрытия с накоплением для выполнения линейной свертки двух последовательностей произвольной длины. В конечном итоге разрабатывается параллельная ар- хитектура систолического типа для реализации обобщенного метода пере- крытий с накоплением, при этом используются схемы прямого и обратного ЧПФ на 129 отсчетов. Эта регулярная и допускающая расширение архитек- тура удобна для исполнения в виде СБИС. 20.2. ЧИСЛОВОЕ ПРЕОБРАЗОВАНИЕ ФЕРМА Пусть Fj = 22г +1 есть t-e число Ферма, где t > 0. Число Ft является простым для 0<Г <4. Пусть {хп} есть TV-точечная последовательность целых чисел, где t ~ — 1 и N — степень числа 2. Числовое преобразование Ферма последовательности над Ft определяется следующим об- разом : F-1 Хк = X хпапк (тъй FF), 0<A<7V- 1, л=0 (20.1) где — 1; а — корень /V-й степени из единицы, T.e.TV— наименьшее положительное целое число, такое, что оР = 1 (mod Ft). Соответствующее об- ратное преобразование ЧПФ определяется как 1 N-1 хп = - X Xka пк (modR),0<n</V-l, N к=о 1 (20.2) где 1 /N — число, обратное TVno модулю Ft. (Таким образом, 1 /Nтакже целое число.) В уравнениях (20.1) и (20.2) показатели степени предполагаются взятыми по модулю N. Циклическая свертка вычисляется с помощью преобразований ЧПФ (20.1) и (20.2). Длина преобразования N зависит от Ft и а, выбираемых, как в [4,5]. Более детальное изложение ЧПФ можно найти в [4,5]. Чтобы найти свертку без переполнения с помощью ЧПФ над полем Ft, не- обходимо ограничить диапазон изменения переменных. Для вычисления од- 357
позначной циклической свертки {TaJ двух TV-точечных целых последователь- ностей j хп ] и \h N - 1 У к = 2L Хп^(к--п) (20.3) и —О результирующие значения должны находиться внутри диапазона, ограничен- ного значением Ft, где (к-п) представляет собой остаток от (к-п) по мо- дулю N. Этого можно досзичь, если N 1 N - 1 Е I хп IIh (к - п) (20.4) п — О Пусть max \хп | = max |/zw| -А — максимальное значение переменных хп и hm — называется динамическим диапазоном хп и hm. Чтобы ограничить зна- чение \ук | в соответствии с (20.4), достаточно положить А = [VFt - 1“/(Ж) J , (20.5) где [х] означает наибольшее целое, меньшее, чем х. Однако для многих практических задач это значение А слишком пессимистично. В данной главе Ft, а и А выбираются равными F5 =232 + 1, л/2 и 128 со- ответственно. Поэтому данные ЧПФ являются целыми числами от 0 до 232. Следовательно, для представления числа достаточно 33 разрядов, а длина преобразования равна 128. В ЧПФ над Ft величина \/2~ представляет целое 22^-2 (22 —1) [4,5]. Для t =5, так как 232 = —1 (modF5), \/2~-224 — 28 -224 +240. Заниженное значение динамического диапазона составляет х^232/(2 • 128) = 212 [12]. Это значение является достаточно' большим для подавляющего числа прак- тических задач. Для облегчения выполнения двоичных арифметических операций, необ- ходимых для реализации схем ЧПФ, предложено два представления двоич- ных чисел [13,14]. В дальнейшем используется представление ”с уменьшением на 1 ”, предло- женное Лейбовицем. Пусть А представлено в виде [Яз2#з1 • • гДе 0^ । <L4<232 h£z- есть z-й двоичный разряд числа А. В табл. 20.1 показано соответ- ствие между десятичными числами в нормальном двоичном виде и их зна- чениями в представлении ”с уменьшением на 1 ”. В последнем случае самый старший разряд я32 равен 1 тогда и только тогда, когда значение целого чис- ла равно 0. Таким образом разряд а32 может быть использован как признак равенства нулю. Для определения ЧПФ необходимы две основные двоичные арифметичес- кие операции — сложение и умножение на степень числа 2 по модулю Ft. Другие операции могут быть выражены через эти две. Далее кратко описы- ваются операции сложения и умножения. Более детальное изложение можно найти в работе [14]. 358
1. Сложение. Пусть S=A +В. а) Если Л =0, то S=B. б) Если 5 = 0, то 5 = =Л. в) Если ни А, ни В не равны 0, то сложить [я31Язо • • и [Ъ^Ь^ .. . ,..ЬГЬО]. Затем получить дополнение к цифре переноса и прибавить его к предыдущей сумме. Это и даст S. Таблица 20.1 - Представление Двоичное представление ”с уменьшением на 1 99 Десятичное представление fl32 fl31 азо • . . «2 «1 ао а32 а2> 1 1 азо • • • а2 а1 «0 0 0 0 0 • . . 0 0 0 1 0 0 ... о 0 0 1 0 0 0 • . . 0 0 1 0 0 0 ... о 0 0 2 0 0 0 • . . 0 1 0 0 0 0 ••• 0 0 1 232 - 2 0 1 1 . . . 1 1 0 0 1 1 1 0 1 232 - 1 0 1 1 • . . J 1 1 0 1 1 1 1 0 232 1 0 0 . . . 0 0 0 0 1 1 ... 1 1 1 2. Умножение на степень числа 2. Пусть В-А 2е. а) Если А =0, то 5 = 0. б) Если А ± 0, то выполнить циклический сдвиг [яз^зо .. .а^о] на С разря- дов влево, значение 31-го разряда заменить на его дополнение, если он в ре- зультате сдвига попадет на место 0. Наконец положить Ь32 =0. 3. Вычитание. Так как 232 = -1 (mod F5), -Л=Л-232. Следовательно, если Л ^0, —Л = [032^31^30 • • • ^i^o] , где ^-обозначает дополнение а^ Если Л = 0, то —Л = 0. 4. Умножение на \[2. Так как у/2 = 224 + 240, Л \/2 = Л • 224 + Л • 240. S. Умножение на степень >/2. Пусть 5=Л(\/2)С. Если С четно, то 5 = =Л • 2с№ . Если С нечетно, то 5 = (Л • 2 (С~1) /2 е Сложение о\о о +)___0^1 о 0' 1 о +) Сложение 0\0 1 2 +) 0\1 0 3 Сложение 0\0 1 2 +) 0_\1 1 4 1\0 0 +) 0 0 0 1 Сложение 0\1 1 4 +)____0J 1 0 3 1*0 1 +) 0 0 1 2 0 ох/> мч О 0\е< о \/? А 0 1\/0 1 1x2=2 2x2^4 k ^2^3 3*2=1 а) б) Рис. 20.1. Примеры двоичных операций по модулю = 22 +1 в представлении с умень- шением на 1: а — сложение; б — умножение на степень числа 2 359
Примеры, приведенные на рис. 20.1, иллюстрируют операции сложения и умножения на степень числа 2 по модулю Ff. Для простоты Ft на рис. 20.1 выбрано равным F2 = 2 2 + 1. В этом случае для представления целого числа достаточно трех двоичных разрядов. На рис. 20.1 использовано представле- ние ”с уменьшением на 1 ”. 20.3. КОНВЕЙЕРНАЯ СТРУКТУРА ДЛЯ 128-ТОЧЕЧНОГО ЧПФ Согласно (20.1) математический алгоритм ЧПФ похож на алгоритм БПФ. Следовательно, для выполнения быстрого ЧПФ можно использовать почти точный аналог структуры типа БПФ. На рис. 20.2 показана конвейерная структура типа БПФ [1] для выполнения 128-точечного ЧПФ над полем Fs. Эта структура может рассматриваться как одномерная систолическая матри- ца. Ее основными элементами являются элементы задержки, коммутаторы и элементы выполнения операции ’’бабочка” БПФ. В структуре эти основные элементы чередуются, а используемый метод представляет собой метод про- реживания по времени по основанию 2. Схема выполнения обратного ЧПФ представляет собой зеркальное отображение схемы, показанной на рис. 20.2, в которой используется техника прореживания по частоте по основанию 2. На рис. 20.2 z~~i означает элемент задержки на / тактов. Этот элемент мо- жет быть реализован в виде множества из 33 сдвиговых регистров, состоя- щих из / ступеней. Коммутаторы управляются сигналом Sz«, где 1 <z<6. Операции, осуществляемые коммутаторами SWiy показаны на рис. 20.3. Уп- равляющие сигналы Sj могут быть просто получены с помощью шестираз- рядного счетчика прямого счета, если в бабочке ЧПФ не используются буфер- ные регистры [1]. Если же в бабочке ЧПФ буферные регистры используются, то на выходах счетчиков для синхронизации необходимо включать элементы задержки, как показано на рис. 20.4. На рис. 20.5 приведены условное обозначение и математическая запись операции бабочка ЧПФ с прореживанием по времени. Аналогичная бабочка с прореживанием по времени для ЧПФ была разработана в [13]. Структурная схема устройства, реализующего бабочку ЧПФ с прореживанием по времени, приведена на рис. 20.6. На этой схеме А, В, DnE представляют собой 33-раз- рядные числа, а С — 7-разрядный порядок числа а в (2Q.1), т.е. С-пк mod7V. Два способа реализации сумматора ЧПФ можно найти в [13]. Один из них показан на рис. 20.7. Умножитель на рис. 20.6 используется для умноже- ния числа на степень числа 2 по модулю F5. Схема этого умножителя приве- 360
Рис. 20.2. Конвейерная структура для выполнения 128-точечного ЧПФ Рис. 20.3. Коммутатор: а — прямое соединение; б — перекрест- ное соединение Рис. 20.4. Шестиразрядный суммирующий счетчик для формирования управляющих сигналов на рис. 20.1 Рис. 20.5. Условное изображение (я) и математическая запись (б) операции >»бабочка” ЧПФ с прореживанием по времени О А+В-(\/2)С Е **—А-В’(/2)С С0^-С1 : ~"с~ Рис. 20.6. Структурная схема операции ’’бабочка” ЧПФ с прореживанием по времени 361
33 Рис. 20.7. Структурная схема сумматора ЧПФ, выполняющего операцию Z =Х+ Y(mod Fg) 32 Ь31: Ьо ] B-Z Входные данные S3 S2 S1 so Выходные данные b* ь* 0 0 0 1 0 0 10 0 10 0 10 0 0 b1 bo bQ bj bi bo b1 Рис. 20.8. Схема выполнения операции В - 2^ 5) а) Рис. ра для ЧПФ над полем F, =22 + 1 362 20.9. Таблица истинности (fl) и схема (б) модифицированного сдвигового регист-
дена на рис.20.8. Регистр на рис. 20.8 является модификацией сдвигового регистра [15] для выполнения операции циклического сдвига. В качестве примера рассмотрим простое ЧПФ над полем Fj = 22 +1. На рис. 20.9 показана таблица истинности и схема модифицированного сдвиго- вого регистра для бабочки ЧПФ; входными величинами в этой схеме явля- ются [&!&()] и [^3^2^1^о] > 3 ВЫХОДНЫМИ — [&*&$]. 20.4. АРХИТЕКТУРА ЦИФРОВОГО ФИЛЬТРА С ПРОИЗВОЛЬНОЙ ДЛИНОЙ ПРЕОБРАЗОВАНИЯ ЧПФ В предыдущем разделе были выбраны значения Ft = FS, а~\/2 и N= 128. Максимальная длина преобразования над полем Fs равна N= 128 [2,3] и ди- намический диапазон равен 212. Длину преобразования можно увеличить, выбрав Ft при Z > 6. В таком случае, однако, для представления числа тре- буется по крайней мере 26 + 1 =65 разрядов. Другим вариантом увеличения длины преобразования является выбор а, при котором а уже не является степенью числа \/2 над полем F3 или F4. В таком случае необходима опера- ция полного умножения. К тому же динамический диапазон может быть недостаточным. Для преодоления этих трудностей при вычислении линейной свертки последовательностей (входных данных и импульсной характеристи- ки) произвольной длины обобщается метод перекрытий с накоплением. В итоге разработана параллельная архитектура системы, реализующей обоб- щенный метод перекрытия с накоплением при использовании 128-точечной схемы ЧПФ, рассмотренной в предыдущем разделе. Пусть {хп} и {hm} — входная последовательность и импульсная характе- ристика фильтра соответственно, где 0</z I и 0<m<M— 1. Выходная последовательность {у^ фильтра представляет собой линейную свертку и {hm} , где 0<£</V+4f — 1 [13]. В дальнейших рассуждениях предпо- ложим, что /V= 128 и М~ 256. Чтобы вычислить {^4 } с использованием 128-точечного ЧПФ, сформируем четыре 128-точечные характеристики {// , {/г j , [& и \h разделив { h следующим образом: hm для 64 (z — 1) 64z — 1, 0 в противном случае (20.6) Для 1 <z <4. Далее результат {Уд.] линейной свертки и вычисляется с по- мощью техники циклической свертки. Значение \у\ вычисляется стан- дартным методом перекрытий с накоплением [1] и ЧПФ. С этой целью ] хп j разделяется на 128-точечные подпоследовательности {xJn }, каждая из которых перекрывается в 64 точках {хп ] с любыми двумя смежными под- последовательностями, где у > 0, т. е. хп идя 64(/ — 1) <и<64(/ + 1) - 1, 0 в противном случае. (20.7) 363
Рис. 20.10. Пример обобщенного метода перекрытий с накоплением 364
Далее результат {z^J 128-точеч- ной циклической свертки {х0и {/zQ вычисляется с использова- нием ЧПФ. Последовательность ДО51 1 <4 получается от- брасыванием первой половины и сохранением второй половины каждой циклической свертки {z J , вычисленной ранее. Наконец, желаемая выходная последовательность равна арифметической сумме {yfy для l<z<4. В результате линейная свертка {%„} и вычисляется по следующему алгоритму. 1. Расчленить на последо- вательности в соответствии с (20.6). 2. Вычислить линейную свертку {h^ и{хи} с помощью стандарт- ного метода перекрытий с на- коплением следующим образом: а) разделить на последо- вательности { х]п } , как указано в (20.7); б) вычислить циклическую свертку {z^} последовательнос- тей {х^}и с использованием ЧПФ; в) получить {у^] отбрасыва- нием первой половины и со- хранением второй половины каж- дой свертки {Zfc} , вычислен- ной на шаге б. 3. Определить последователь- ность {ук} .как арифметичес- кую сумму {у . На рис. 20.10 показан пример обобщенного метода перекрытий с накоплением. Для простоты на диаграмме рис. 20.10 данные показаны, как если бы они явля- лись непрерывными. Для других случаев обобщенного метода пе- рекрытий с накоплением по- строение аналогично. Рис. 20.11. Блок-схема программы моде- лирования обобщенного метода пере- крытий с накоплением 365
Рис. 2(hl2. Свертка двух прямоугольных импульсов над кольцом целых чисел по моду- лю числа Ферма с использованием метода обобщенных перекрытий с накоплением Для проверки корректности обобщенного метода перекрытий с накопле- нием была написана моделирующая программа. На блок-схеме этой програм- мы (рис. 20.11) через t, М и ^обозначены Ft, длина импульсной характерис- тики фильтра и длина последовательности данных соответственно. Длина преобразования L = 2Г+2, если а = л/2 для ЧПФ над полем 2?+1, если хп 128-точеч- ное ЧПФ 128-точечное обратноечпФ ЧПФ импульсной характеристики фильтра "к ** 128-точечное . обратное ЧПФ * 128-точечное обратноечпФ 128-точечное обратное ЧПФ Z-6" -128 л к Рис. 20.13. Схема реализации цифрового фильтра, длина импульсной характеристи- ки которого составляет 256 отсчетов, обобщенным методом перекрытий с накоплени- ем и ЧПФ 366
a=2 для ЧПФ над полем Ft. По программе выполнялся расчет для несколь- ких примеров. Результаты расчета свертки, полученные с использованием ме- тода перекрытий с накоплением, точно совпадают с результатами, получен- ными непосредственным вычислением. Результаты свертки двух последова- тельностей единичной амплитуды каждая, полученные по программе моде- лирования перекрытий с накоплением для ЧПФ, приведены на рис. 20.12. Длина этих двух последовательностей равна 64 и 128 соответственно. Схема цифрового фильтра параллельной архитектуры, реализующего описанный обобщенный метод перекрытий с накоплением, приведена на рис. 20.13. Последовательность{н*к }на рис. 20.13 есть ЧПФ последователь- ности {^т}, умноженной на 1//V, где 1 <z<4. Начиная с шага 2в представ- ленного алгоритма, один из двух результатов операции обратного ЧПФ не нужен. Следовательно, последняя бабочка ЧПФ в обратной схеме ЧПФ яв- ляется вырожденной и элементов задержки, ассоциированных с этой ’’ба- бочкой”, не требуется. Сумматор на рис. 20.13 выполняет обычное двоичное сложение, а не сложение по модулю Ft. 20.5. ЗАКЛЮЧЕНИЕ Для вычисления 128-точечного числового преобразования Ферма разра- ботана конвейерная структура. В этом 128-точечном ЧПФ требуются только операции сложения и циклического сдвига. Схема циклического сдвигово- го регистра модифицирована для выполнения умножения целых чисел на сте- пень числа 2 по модулю числа Ферма. Аппаратная реализация ’’бабочки* ЧПФ для 32-точечного ЧПФ над полем F4 показана на рис. 20.14. Обобщен метод перекрытий с накоплением для вычисления линейной свертки в цифро- вом фильтре с произвольной длиной входной последовательности данных и импульсной характеристики фильтра. Разработана архитектура, реализующая этот обобщенный метод простой комбинацией одного элемента 128-точечно- го ЧПФ и нескольких элементов обратных ЧПФ. Преимущества реализации цифрового фильтра с помощью обобщенного метода перекрытий с накоплением и ЧПФ перед более распространенным Рис. 20.14. Аппаратная реализация операции бабочка ЧПФ для 32-точечного ЧПФ над полем F4 367
БПФ состоят в следующем: 1) не требуются операции умножения; 2) пре- одолевается противоречие между длиной преобразования и шириной дина- мического диапазона; 3) длина слова является приемлемой для многих практических задач, так как слово большего размера необходимо только на последнем шаге алгоритма; 4) длины входных данных и импульсной харак- теристики фильтра могут быть различны и произвольны; 5) архитектура яв- ляется регулярной, расширяемой и, следовательно, удобной для исполнения в виде СБИС. СПИСОК ЛИТЕРАТУРЫ [1] L. R. Rabiner and В. Gold, Theory and Application of Digital Signal Processing, Prentice-Hall, Englewood Cliffs, N.J., 1975. [2] J. H. McClellan and С. M. Rader, Number Theory in Digital Signal Processing, Prentice- Hall, Englewood Cliffs, N.J., 1979. [3] С. M. Rader, “Discrete Convolutions via Mersenne Transforms,” IEEE Trans. Comput., Cr2/( 12): 1269-1273 (Dec. 1972). [4] R. C. Agarwal and C. S. Burrus, “Fast Convolution Using Fermat Number Transforms with Applications to Digital Filtering,” IEEE Trans. Acoust. Speech Signal Process., ASSP-22(2):87-97 (Apr. 1974a). [5] R. C. Agarwal and C. S. Burrus, “Number Theoretical Transforms to Implement Fast Digital Convolution,” Proc. IEEE, 63(4):550-560 (Apr. 1975). [6] I. S. Reed and T. K. Truong, “The Use of Finite Field to Compute Convolutions,” IEEE Trans. Inf. Theory, IT-27(2):208-213 (Mar. 1975). [7] J. M. Pollard, “The Fast Fourier Transform in a Finite Field,” Math. Comp., 25:365- 374 (Apr. 1971). [8] I. S. Reed, T. K. Truong, Y. S. Kwoh, and E. L. Hall, “Image Processing by Transforms over a Finite Field,” IEEE Trans. Comput., C-26(9):874-881 (Sept. 1977). [9] С. M. Radar, “On the Application of the Number Theoretic Methods of High Speed Convolution to Two-Dimensional Filtering,” IEEE Trans. Circuits Syst., C4S-22(6):575 (June 1975). [10] I. S. Reed, Y. S. Kwoh, T. K. Truong, and E. L. Hall, “X-Ray Reconstruction by Finite Field Transforms,” IEEE Trans. Nuclear Sci., NS-24(l):843-849 (Feb. 1977). [11] I. S. Reed, T. K. Truong, and L. R. Welch, “The Fast Decoding of Reed-Solomon Codes Using Fermat Number Transforms,” IEEE Trans. Inf Theory, 7T-24(4):497-499 (July 1978). [12] H. F. A. Roots and M. R. Best, “Concatenated Coding on a Spacecraft-to-Ground Telemetry Channel Performance,” Process. ICC 81, Denver, Colo., 1981. [13] J. H. McClellan, “Hardware Realization of a Fermat Number Transform,” IEEE Trans. Acoust. Speech Signal Process., ASSP-24(3):216-225 (June 1976). [14] L. M. Leibowitz, “A Simplified Binary Arithmetic for the Fermat Number Transform,” IEEE Trans. Acoust. Speech Signal Process., ASSP-24(5):356- 359 (Oct. 1976). [15] C. A. Mead and L. A. Conway, Introduction to VLSI Systems, Addison-Wesley, Read- ing, Mass., 1980. 368
21 ПРИМЕНЕНИЕ СИСТОЛИЧЕСКИХ МАТРИЦ В РЕКУРСИВНЫХ ФИЛЬТРАХ Г. Травассос1 21.1. ВВЕДЕНИЕ Оценка частоты и угла прихода волны от точечного источника может рас- сматриваться как одна из областей применения кал манов ской фильтрации. Принятые на линейную решетку датчиков сигналы (рис. 21.1) несут инфор- мацию как об угле прихода волны, так и о частоте. Оценщик на рис. 21.1 может рассматриваться как система с пространственно-временным квантова- нием, где число датчиков m и число элементов памяти на датчик п определя- ют размер двумерного окна в пространстве сигнала. К двумерным сигналам применялись методы линейного прогнозирования [1,2]. В этих методах осуществляется предсказание наблюдаемых данных по методу наименьших квадратов и результаты используются для экстраполя- ции данных вне обозреваемого интервала наблюдения. Затем к полученным данным применяется двумерное быстрое преобразование Фурье. Хотя эти ме- тоды дают высокое разрешение как по частоте, так и по углу, при наличии ад- дитивного белого шума оценки получаются смещенными. Рис. 21.1. Схема определения максимального правдоподобия синусоидальных сигналов 1 Фирма Systolic Systems, Сан-Хосе, Калифорния. 369
Для одномерного случая Писаренко [3] предложил метод выделения си- нусоид из аддитивного белого шума, который устраняет смещение при сохра- нении высокого разрешения. Метод Писаренко, однако, не является эффек- тивным с точки зрения организации вычислений и не может использоваться в реальном масштабе времени. В работе [4] получен адаптивный вариант ме- тода Писаренко, но с медленной сходимостью, а в [5] — адаптивный вариант метода Писаренко с использованием метода наименьших квадратов, который близок' к алгоритму у-СКО, предложенному в [6] для подавления шума при выделении синусоидальной составляющей. Сравнение производительности адаптивного метода Писаренко и рекур- сивного метода максимального правдоподобия опубликовано в [7]. Ре- зультаты показывают, что рекурсивный метод максимального правдопо- добия дает большее разрешение. В данной главе используются понятия систолической матрицы для разра- ботки эффективной архитектуры, реализующей набор калмановских филь- тров, необходимых для оценивания, основанного на рекурсивном методе максимального правдоподобия. 21.2. ФОРМАЛИЗАЦИЯ ЗАДАЧИ Рассмотрим задачу оценки частоты и угла прихода множества синусои- дальных колебаний, искаженных широкополосным шумом. Обозначим к-й временной отсчет с z-го датчика линейной решетки на рис. 21.1 как xz (tk) и предположим, что синусоидальные сигналы имеют вид Xi(tk) = Ai cos [w,(tk - iy,) + </>,], (21.1) где coz -2л/7-, Ai и ^z- — частота, амплитуда и фаза синусоидального колеба- ния, принятого от датчика. Волновое число у /-го синусоидального колеба- ния определяется соотношением - sin Oi, с где d — расстояние между датчиками; с — скорость распространения плос- кой волны; — угол прихода волны относительно нормали к решетке. Фаза синусоидального колебания считается равномерно распределен- ной на интервале [0,2л]. В данной модели tkkT, Т — период кванто- вания. Дифференцируя xz- по времени: = -AiCOi sin [<ч(/ - iyj + Xi = -AiOjj cos [cof(t - /у J + <Pi] и вводя переменные состояния хи = Ai cos [cof(t - iyi) + <p;], x2l. = Ar sin [соДг - iy^ + (p^ 9 (21.2) (21.3)
получаем х1г- = —cozx2z и x2z =cozxlz- Задача может быть выражена в виде уравнения состояния: (21.4) или х = Fx. (21.5) Модель наблюдения дующей форме: для принятых сигналов может быть описана в сле- ^11 ^12 ^21 ^22 ^и2 (21-6) или y=Hx + v, (21.7) где v - шум измерения. При передаче синусоидальных сигналов их частоты со- обычно поддерживаются постоянными. Поэтому все тп блоков приведен- ной модели сигнала могут быть разделены и обрабатываются одновременно. Функция калмановского фильтра для каждого из блоков на рис. 21.1 име- ет вид хк +! = Фхк + К[ук - HxJ (21.8) или, что эквивалентно, Хк+ 1 = [Ф - КН ! К] матрица фильтра (21.9) где Ф — переходная матрица состояния в дискретном времени, соответствую- щая матрице F в уравнении (21.4), а К — коэффициент усиления калманов- ского фильтра. В этих выкладках элементы матрицы фильтра приняты по- стоянными. Однако значения Ф и К зависят от конкретных значений coz-,z = = 1, 2, . . . , m. Из структуры фильтра следует, что он может быть реализо- ван в виде матрично-векторного умножителя. Матрица фильтра может быть размещена в памяти для всего предполагаемого диапазона значений сог-. Набор калмановских фильтров, показанный на рис. 21.1, может быть ’’на- строен” на данный набор сигналов посредством использования соответст- вующей расчетной матрицы фильтра, хранящейся в памяти. 371
Условные вероятности могут быть рассчитаны по правилу Бай- еса [8]: ( \7\ = 1 = P(2JZk-l> <U.)P(ft>.lZfc-l) i = 1 где Zk — последовательность результатов измерений z0,z1,...,Z£.Ha вы- числение p(coJZ^) влияет распределение шума измерения. Например, для гауссовского шума вероятность p(wz|Z^) может быть рассчитана по фор- муле р(а>,- | = с det (R’)1/2 exp vp[a>t | Zk), (21.11) где с — нормирующий коэффициент, не зависящий от wz и выбранный так, чтобы Ер (coz- \Zk) = 1. Приращения Z^ = zk — Нхк\^. и их ковариация R, необходимые для вычисления р (cdz-|Z^), могут быть получены из набора кал- мановских фильтров. Отметим, что если вычислены значения р (coz- |Z^), z = = 1, 2, . . . , т, то с помощью последовательных сравнений можно рассчи- тать значения coz«, максимизирующие p(gjJZ^) — оценки максимального правдоподобия: ЙМП= тах Р^! I Z*)- tot е О (21.12) Оценки максимального правдоподобия синусоидальных сигналов опреде- ляются из (21.4) при сэ = сомп. Поскольку p(coz|Z^) необходимо вычис- лять быстро, величина p(coz|Z^) может храниться в памяти в табличной форме. Таким образом, ключом реализации всей схемы, показанной на рис. 21.1, является разработка быстродействующего процессора для расчетов по уравнениям калмановского фильтра. Благодаря соответствующей структу- ре уравнений фильтра для эффективного ускорения вычислений могут быть использованы систолические матричные системы. 21.3. ПАРАЛЛЕЛЬНАЯ КАЛМАНОВСКАЯ ФИЛЬТРАЦИЯ Калмановский фильтр успешно применялся во многих областях обработ- ки сигналов, включая предсказание положения цели, сопровождение цели, обработку радиолокационного сигнала, бортовую калибровку инерциальных систем, оценку устойчивости самолета и выработку управляющих воздейст- вий во время полета. Однако применимость калмановского фильтра для об- работки в реальном масштабе времени в значительной мере ограничена вви- ду относительной сложности вычислений. В частности, число арифметических операций, необходимых для реализации калмановского фильтра с п перемен- ными состояния, возрастает как О(п2) для уравнения оценки и как О(п3) для уравнения ковариации. В общем случае фильтрация в реальном масшта- бе времени для больших п не может быть выполнена при использовании од- нопроцессорных систем из-за резкого возрастания вычислительной нагрузки. Калмановская фильтрация может быть распространена на более широкий круг проблем при использовании параллельной обработки. При соответст- 372
вующем преобразовании структуры задачи и разделении арифметических процедур для обеспечения одновременной обработки можно обеспечить полностью параллельную обработку. До настоящего времени было проведено относительно немного исследо- ваний по преобразованию калмановского фильтра для параллельной обра- ботки. Было рассмотрено три подхода, а именно: 1) преобразование обыч- ных уравнений калмановской фильтрации к векторной форме и исполне- ние алгоритма на векторном или матричном процессоре [9], 2) декорреля- ция отсчетов, поступающих на фильтр, при которой каждый из них может быть конвейеризован в каждом из процессоров одновременно [10], и 3) раз- деление уравнений экстраполятора и корректора фильтра, при котором вы- числения для них могли выполняться одновременно на разных процессорах с использованием многопроцессорной обработки [11, 12]. Первый из подхо- дов был исследован ранее с использованием для решения уравнений фильтра матричного процессора [8, 13]. Хотя по сравнению с традиционными метода- ми этот подход может значительно ускорить вычисления (были получены ко- эффициенты ускорения от 6 до 10), производительность вычислений огра- ничивалась в основном архитектурой матричного процессора. Это было след- ствием того, что архитектура матричного процессора была оптимизирована для реализации быстрого преобразования Фурье (БПФ), а не калмановской фильтрации. Архитектура систем, обсуждаемых в данной главе, основана на отображе- нии уравнений калмановского фильтра непосредственно на линейно связан- ную систолическую матрицу. Таким образом, в систолических структурах, обсуждаемых в этой главе, для увеличения общего уровня производитель- ности используется структура фильтра. Для ускорения вычислений при калмановской фильтрации параллельная обработка осуществляется на двух уровнях: 1) уравнения экстраполятора и корректора калмановского фильтра разделяются таким образом, чтобы они могли обрабатываться на разных процессорах, и 2) отсчеты могли быть конвейеризованы в каждом процессоре. Следовательно, для увеличения ско- рости вычислений осуществляется как мультипроцессорная обработка, так и конвейеризация. 21.3.1. Разделение уравнений калмановской фильтрации Для модели синусоидального сигнала, определенной согласно (21.4) и (21.5), уравнения стандартного калмановского фильтра даются выраже- ниями для экстраполятора Гх^(-) =Ф*_1Х£_1(+), Щ(-) =Ф*-1РД+)ф£_1> для корректора X k (+) = £ к (-) + К* [Ул - пк*к (-) ] > Р* (+) = [I - ад] Р/с (-), (21.13) (21.14) (21.15) (21.16) 373
где коэффициент усиления калмановского фильтра = Рк (-)*% !НА<-)и/- + Rd • (21 -17) Отметим, что последовательность операций (21.13) — (21.17) весьма важна, поскольку вычисления уравнения экстраполятора должны быть вы- полнены до вычислений корректора. Это нежелательно, так как для вычис- ления уравнений корректора монопроцессор должен ждать, пока не будут вычислены уравнения экстраполятора. Устранить это затруднение можно, разделив уравнения экстраполятора-корректора с целью получения парал- лельного калмановского фильтра (ПКФ). Разделение уравнений оценки. Разделение функций экстраполятора и кор- ректора состояний достигается посредством задержки предикатора на один такт следующим образом: для экстраполятора хк+1 (-) = (+), (21.18) для корректора хк (+) = хк (-) + Кк [у*. - Нкхк (-)] - (21.19) Разделение уравнений дисперсии. Пусть ковариация погрешности вычис- ления до и после нового отсчета наблюдений определяется выражениями Р*+1 (-) = Ехл+1 (-)^+1 (-), (21.20) Р*(+)=ЕхЦ+) ££(+), (21-21) где Ч+1 (-) = £*+1 (-) - Х/м ; (21.22) ХД+) = £ц+) (21-23) Непосредственным вычислением может быть показано, что ковариация погрешности вычислений перед отсчетом определяется формулой [И, 12] Р*+1 (-) = (+)®LX‘ (21 -24) Поскольку форма записи (21.19) и (21.15) одинакова, ковариация погреш- ности вычислений после измерительного отсчета в ПКФ определяется как РД+) = (I-WPH-). (21.25) где коэффициент усиления калмановского фильтра Кк = Рк (-) н£ [НА (-) 4 + Rd • (21 -26) Сводка разделенных уравнений ПКФ. Вследствие того, что уравнения экстраполятора и корректора калмановского фильтра могут быть разделе- ны, вычисления могут производиться одновременно двумя различными про- цессорами: одним — уравнений экстраполятора, другим — уравнений кор- ректора. В целом уравнения параллельного калмановского фильтра запи- сываются как 374
для экстраполятора j Xfc+1 (-) = ®k*k-l*k-l (+) ’ l5+i (-) = ФЛ-Л-i ^Тк-Л для корректора Xfc(+) = Xit(-)+ Мул - НЛ (-) ], pjt(+) = [i-KfcPfc(-)H^ + Rd“1, где коэффициент усиления определяется в виде Кл = М-)МНЛ (-)н£ + Rfc]-1. (21.27) (21.28) (21.29) (21.30) (21.31) Метод разделения может быть использован для еще более заметного уменьшения времени вычисления уравнений экстраполятора и корректора. Отметим, что при = Ф^^ (т.е. при постоянном Ф) сложность расчетов ПКФ такая же, как и при обычном представлении. После выполнения раз- ложения может быть разработана архитектура систолической матрицы, ос- нованная на уравнениях параллельного калмановского фильтра. 21.3.2. Архитектура систолических процессоров калмановской фильтрации Структура алгоритма параллельного калмановского фильтра, описанная выражениями (21.27) — (21.31), предполагает, что уравнения могут быть реализованы на линейно связанной систолической матрице, первоначально представленной С. Т. Кунгом [14]. Архитектура, показанная на рис. 21.2, иллюстрирует возможности использования линейно связанной матрицы для вычисления выражения (21.29), записанного, например, в следующей ком- пактной форме: \t(+) = [FuiFnJ Ук Поток входных данных из измерительного конвейера Расчетная матрица конвейера =[f„ IР72] Решающий Оценки процессор состояний фильтра перед вычислением Процессоры скалярных произведений Оценки состояний фильтра после вычисления Рис. 21.2. Архитектура систолического процессора, реализующего калмановский фильтр (п+т) = 4 375
где Fn =1 — K^H^; F12~K/c. Чтобы проиллюстрировать порядок вычисле- ний, положим, что//;- -ij-й элемент матрицы [Fn ; F12]. Коэффициенты мат- рицы фильтра для заданного диапазона хранятся в памяти. Эти коэффи- циенты передаются в процессоры, вычисляющие скалярные произведения для вычисления оценок состояния (см. рис. 21.2). Для расчета оценок сос- тояния используется следующая рекурсивная процедура: FOR 7 = 1 tom g = +w + 1 NEXT / j = 1, 2,..., n + m \ Так как матрица фильтра имеет размер нХ (п +т) , то для расчета этой рекур- сии необходимо иметь п +т линейно связанных процессоров. Поток данных конвейеризованного алгоритма может быть представлен в следующем виде: элементы хг«, первоначально равные нулю, продвигаются влево, в то время как элементы s'. продвигаются вправо, a движутся вниз. Все перемещения данных синхронизированы. До того; как данные по- кинут сеть, каждый процессор скалярного произведения накапливает все произведения, а именно и Л i+lsi+l * Решающий процес- сор передает либо данные’ измерении, либо оценки состояния в процессоры внутренних каскадов в соответствии с приведенной выше рекурсивной про- цедурой. Эта процедура повторяется до тех пор, пока не будут обработаны все строки матрицы [Fn ; F12 J. Отметим, что в систолическом калмановском фильтре для устранения раз- дельных процедур загрузки и считывания данные проходят сквозь все про- цессоры. Каждый из процессоров принимает данные, производит предписан- ные ему внутренние вычисления и регулярно передает данные дальше. Допол- нительно отметим, что соединения процессоров скалярных произведений просты и данные передаются только между соседними процессорами. Это обстоятельство в значительной мере упрощает реализацию систолического калмановского фильтра. 21.4. НЕКОТОРЫЕ ВОПРОСЫ ПРОЕКТИРОВАНИЯ ПРОЦЕССОРА Рабочие характеристики систолического калмановского фильтра были получены методом имитационного моделирования. Этот этап проектирова- ния особенно важен, так как в систолическом калмановском фильтре одно- временно выполняется сразу несколько операций. Моделирование проводи- лось на ЭВМ VAX 11/750 с целью исследования следующих вопросов реали- зации: 1) влияния конечной длины слова процессоров скалярных произве- дений, 2) устойчивости решений уравнений калмановского фильтра, 3) вы- бора частоты квантования, 4) влияния погрешности округления, и 5) чувст- вительности оценщика. 376
21.4.1. Анализ устойчивости Рассмотрим уравнение 4+1 =Г11Х* + р12Уь где Fu = Ф —КН; F12 = К. Взяв z-преобразование от (21.32), можно пока- зать, что устойчивость определяется корнями многочлена A(z) = det(zI-Fn). (21.33) Для того чтобы решение калмановского фильтра было устойчивым, корни A(z) должны лежать внутри единичного круга [15]. Поскольку корни A(z) равны собственным значениям X/ матрицы Fn, решения параллель- ного калмановского фильтра будут устойчивы тогда и только тогда, когда |Х/|<1. Ввиду неточности моделирования важно проверить границы устойчивости, связанные с расчетами калмановского фильтра. На рис. 21.3 дано геометри- ческое представление запаса устойчивости в z-плоскости. Величина |z | пред- ставляет модуль корней A(z), а | A (z) |-расстояние от конца вектора |z |до окружности единичного радиуса. Для выполнения условий устойчивости не- обходимо, чтобы |z | +1 Az | < 1. Следовательно, | Az | может рассматриваться как запас устойчивости. Величина |Az | зависит от множества факторов, та- ких как погрешность моделирования и влияние дайны слова. Для удобства анализа следует объединить эти факторы в возмущение Fn и анализировать устойчивость собственных значений матрицы Fn + AFn . Если значение Fn отклоняется до Fn +AFn, то соответствующие изме- нения собственных значений матрицы Fn могут быть рассчитаны по фор- муле [16] АХ/ = v rAFHU/,z = 1,2, . . . ,п, (21.34) где векторы uz- , v / удовлетворяют условиям Fnuz- -Х/U/ =0, |uz| =1, F Hvz -\ vz = 0, vT^. =1. Если X/ + АХ/ — корни A (z) при отклонении FH до Fn+AFn, то для устойчивости калмановского фильтра значения | X/ + АХ/| < | X/1 + +1АХ/ должны лежать внутри ок- ружности единичного радиуса. Та- ким образом, |Az| = max <и| АХ/1 представляет запас устой- чивости калмановского фильтра. Рис. 21.3. Устойчивость в z-плоскости (21.35) 377
21.4.2. Выбор длины слова Выполненный в предыдущем подразделе анализ устойчивости может быть использован для определения минимального числа разрядов, необходимого для обеспечения устойчивости вычислений калмановского фильтра. Чтобы показать это, положим возмущения каждой из составляющих Fn G рав_ ными 2^, где Ъ - число разрядов. Тогда (и/2)2“^, так как эле- менты < 1 ввиду дискретизации. Далее согласно (21.34) собственные значения возмущенной системы находятся из выражения \ + Д\ = Xf + vfAFu U/. (21.37) Условие устойчивости выразится как |\ +у?’ДРпиг|<|Хг|+| vrAFnu.|<l. (21.38) i Взяв логарифм от обеих частей (21.38) и выполнив подстановки, получим требуемое соотношение: b = [ - (1 + log2 ((1 - Лтах)/н))] > 0, (21.39) где Хтах = max и [(•)] — функция, обозначающая ближайшее целое, превышающее (•) Формула выбора длины слова (21.39) представляет эффективный метод быстрого определения минимального числа разрядов, необходимого для реа- лизации калмановского фильтра в виде линейно связанной систолической матричной структуры. Модуль максимального собственного значения матри- цы является критическим параметром, который влияет на границу ус- тойчивости , и определяется выражением 11 — Xmax I = | ДХ | = | Дз |. Согласно (21.39) был выполнен расчет для различных значений Хтах и и. Результаты представлены на рис. 21.4. Отметим, что число разрядов, необ- ходимое для обеспечения устойчивости, с увеличением п быстро возрастает по мере того, как Хтах->1. Вследствие того, что функция Хтах прямо свя- зана с частотой квантования (1/Дг), из рис. 21.4 видно, что при больших Рис. 21.4. К определению минимального числа раз- рядов для обеспечения ус- тойчивости калмановско- го фильтра: N — порядок системы 378
частотах квантования для сохранения устойчивости вычислений параллель7 но го калмановского фильтра требуется большее число разрядов. Данный анализ показывает, что в систолических калмановских фильтрах при низких частотах квантования могут быть использованы 16-разрядные процессоры, так как при числе разрядов, большем 16, устойчивость увеличивается незна- чительно. 21.4.3. Выбор частоты квантования Частота квантования может быть выбрана исходя из рассмотрения чувст- вительности калмановского фильтра как функции от периода квантования. Например, возвращаясь к калмановскому фильтру (21.32), нетрудно видеть, что Фи К явно зависят от периода квантования Д/. Разлагая Ф = ехр(РДг) и К в ряд Тейлора, можно получить следующие аппроксимации этих функций: <D = I + FAZ + |г2Д?2 + <?(ДГ3), (21.40) К=КДГ+РКД?2+О(ДГ3), (21.41) где F определяется из непрерывной модели (21.5); К — коэффициент уси- ления калмановского фильтра, полученный из этой, непрерывной модели. Подстановка приведенных аппроксимаций функций ФиКв (21.32) дает xfc+1 = [ф ~ КН] х* + Кул = [I+(F -КН)ДГ+1(F2 -2FKH)Z2]x^ + + (КД? + РКДг2)уд. + <?(ДГ3). (21.42) Чувствительность оценки сигнала к изменениям периода квантования Lt определяется выражением одг = Мхд., (21.43) где М = (F — КН) + (F2 - 2FKH) Д/. На рис. 21.5 представлена зависимость чувствительности преобразователя от пе- риода квантования типичного случая реа- лизации калмановского фильтра с часто- тами квантования, намного превышаю- щими частоту Найквиста. Из этой зави- симости видно, что на высоких час- тотах квантования параметр хк бо- лее чувствителен к изменениям пе- риода квантования, чем на низких Рис. 21.5. Зависимость чувствительности оценщика от частоты квантования 379
частотах? то объясняется более близким расположением собственных зна- чений калмановского фильтра к окружности единичного радиуса; в резуль- тате фильтр оказывается более чувствительным к погрешностям округле- ния и дестабилизирующим факторам. 21.4.4. Анализ поведения погрешности округления Наряду с анализом чувствительности и устойчивости был проведен анализ распространения в калмановском фильтре погрешности округления. Накоп- ление погрешности округления исследовалось на основе основных уравне- ний процесса: хЛ+1 + ДхЛ+1 = (Fu + AFn) (хА + Дхд.) + (F12 + AF12) (yfc+Ayfc), (21.45) где AFn и AF12 появляются в результате представления Fu hF12 в памяти данных с ограниченной длиной слова; Ду — погрешности квантования при дискретизации. Оставляя только члены (21.45), дающие основной вклад в погрешность, получаем Xfc+1 + Дхд.+1 =Fuxfc+ Fi2yA.+efc, (21.46) где = fii^X£ + AFnxfc + AF12y£ + AFi2y£. (21.47) Теперь предположим, что погрешность округления равномерно рас- пределена в интервале ±£тах, 1^1 ^стах- Тогда может быть показано, что погрешность округления = xk —xk выражается согласно [12]: еЛ+1 = Fn ек + Ек, е0 = 0. (21.48) Ковариация погрешности может быть получена из следующих уравне- ний [12]: Ра+1 (21-49) где R^ = Ee^eJ. Соответственно масштабируя Fn для устойчивости калма- новского фильтра, можно минимизировать влияние погрешности округ- ления. 21.5. ЗАКЛЮЧЕНИЕ На основе выполнения операций калмановского фильтра непосредствен- но на линейно связанной систолической матрице разработана архитектура систолического процессора, реализующего калмановский фильтр. Прове- ден анализ рекурсивных уравнений для аналитического расчета длины сло- ва, частоты квантования и необходимого объема памяти процессорной ячей- ки. Анализ показал, что 16-разрядная процессорная ячейка удовлетворяет требованиям обеспечения устойчивости рекурсивных уравнений для низко- частотных вариантов применения при условии, что коэффициент усиления калмановского фильтра рассчитан заранее. Несмотря на то, что результаты, приведенные в данной главе, были получены для калмановской фильтрации, они в основном применимы ко всем известным линейным процедурам. 380
СПИСОК ЛИТЕРАТУРЫ [1] О. L. Frost and Т. М. Sullivan, “High-Resolution Twi>-Pimensional Spectral Analysis,” Proc. 1979 IEEE Int. Conf. Acoust. Speech Signal Proc?&’ APr- 1979’ PP* 673 676* [2] O. L. Frost, “High-Resolution 2-D Spectral Analysis al ^ow SNR, Proc. 1980 IEEE Int. Conf. Acoust. Speech Signal Process., Apr. 1980, pp 580-583. [3] V. F. Pisarenko, “The Retrieval of Harmonics from Co'ar^ance Functions, Feof Astron. Soc., 1973, pp. 347-366. [4] P. A. Thompson, “An Adaptive Spectral Analysis Te^bnNu® f°r ^biased Frequency Estimation in the Presence of White Noise,” Proc. Asllomar Со* C,rcu,ts’ Syst' Comp., New Mexico, 1979, pp. 529-533. [5] V. U. Reddy, B. Egardt, and T. Kaiiath, ^Least-Squa^ Implementation of Pisarenko’s Harmonic Retrieval » Speech Signal Process., June 1982, pp. 399-405. [6] O. L. Frost, “Resolution Improvement in AR Spectral Analysis by Noise Power Cancel- lation,” E ASCON, 1977. [7] V. U. Reddy, R. H. Travassos, and T. Kaiiath, “A C°^Panson of Nonlinear Spectral Estimation Techniques,” ISI Tech. Memo 5016-05, Jan- 1 [8] B. D. O. Anderson and J. B. Moore, Optimal Filtering. Pentice-Hall, Englewood Cliffs, N.J., 1979, pp. 267-274. [9] R. S. Bucy and K. D. Senne, “Nonlinear Filtering Algorithms for Vector Processing Machines,” Compl. Math. Appl., 6(3) :317-338 (Mar. 1980)* [10] A. Andrews, “Parallel Processing of the Kalman Filter’ Int- Conf Parallel Process^ Aug. 1981, pp. 216-220. [11] R. H. Travassos, “Parallel Kalman Filtering,” ISI-04 T^h. Rep., Oct. 1981. [12] R. H. Travassos and A. Andrews, “VLSI Implementation of Parallel Kalman Filters,** Al A A Guid. Cont. Conf, Advanced Avionics Session, Diego, Aug. 1982. [13] E. C. Dudzinskij “Software Optimization of a Kal*nan Filter for an AP-120B Array Processor,” Natl. Aerosp. Electron. Conf, May 1982, pF* 221-227. [14] H. T. Kung, “Communication and Concurrency in Conventional Computers, in Q. Mead and L. Conway, Introduction to VLSI Design, Addison-Wesley, Reading, Mass., 1980, pp. 264-270. [15] В. C. Kuo, Discrete-Data Control Systems, Prentice-НаР’ Englewood Cliffs, N.J., 1980. [16] Фаддеев Д. К., Фадеева В. Н. Вычислительные MeTO*bI линейной алгебры. - М.: Физматгиз, 1963. — 734 с.
22 СИСТОЛИЧЕСКИЕ ЛИНЕЙНЫЕ АЛГЕБРАИЧЕСКИЕ МАШИНЫ Р. Шрайбер, Ф. Кьюкес* 22.1. ВВЕДЕНИЕ Ряд недавних публикаций в литературе по обработке сигналов, архитек- туре ЭВМ и проектированию СБИС показали чрезвычайную полезность ис- пользования систолических структур при разработке специализированных высокопроизводительных приборов для реализации численных методов ли- нейной алгебры [1,5], Однако в них не было уделено внимания проблеме интеграции этих разработок в какой-либо вычислительной среде или систе- ме обработки сигналов. Целью данной главы является рассмотрение конк- ретного варианта применения систолических матриц, а именно для решения проблемы адаптивного формирования луча. Эта проблема проста и в то же время типична для обработки акустичес- ких сигналов. Сигналы принимаются антенной решеткой, состоящей из т идентичных датчиков, запоминаются и подвергаются преобразованию Фурье по времени. Результатом этих преобразований является множество комп- лексных величин х(со, i), зависящих от частоты (со) и номера датчика (/). Затем для каждой из результирующих частот должен быть получен массив значений выходных функций, зависящих от угловой координаты: т д(со, Э) = £ х(со, i)w(i, со, Э), ‘= 1 где w — комплексно-сопряженная величина. Вектор w определяет характеристики формирователя луча. Для форми- рователя с минимальной дисперсией неискаженного отклика w выбирается по критерию минимизации выходной мощности при ограничении т £ c(i, со, 9)w(i, со, ,9) = 1, i= 1 где c(i, со, £) — выходной сигнал датчика i на частоте со, обусловленный входным сигналом только от источника с угловой координатой б. Решением является весовой вектор w(co, 9) = (w(l, со, i9), ..., w(m, со, &))г вида W=RXXC/(C*RXXC)> -/V -/V -/V У\> -\ где с — вектор полезного сигнала; Rxx — ковариационная матрица сигнала на частоте со: Rxx(w) = £{х(со)х*(ш)}. I---------- 1 Фирма ESL, Саннивэйл, Калифорния. 382
На практике для каждой из частот получается (п Кт) -матрица отсчетов сигнала Х*(ш) = 1х*(со) 2х*(со) IT = а оценка R определяется соотношением R ~ХХ*, где верхний индекс * обозначает переход к сопряженной транспонированной матрице. Строкам матрицы _Х*(со) могут быть назначены разные веса. Решение дает следующий алгоритм. 1. Разложение X* = QU', где Q — унитарная (и Хп)-матрица; U* — верхняя треугольная (пХш)-мат- рица вида и . (22.1) 2. Для каждого угла приема $: а) прямой ход U*a(i?) =с(£), (22.2 а) б) обратный ход Uw(tf) =а(г>) (а*а)-1, (22.26) где а= (U*)“1c, т.е. а*а = c*U"x = c*R“*c. Весь последующий материал данной главы посвящен разработке процес- сора адаптивного взвешивания, выполняющего два рассмотренных шага ал- горитма. В нем будут использованы две систолические матрицы. Первая — вариант QU-разложения Джентелмена и Кунга [2] — выполняет шаг 1. Вто- рая — выполняет шаг 2 и является новым решением. 22.2. ПРОЦЕССОР QU-РАЗЛОЖЕНИЯ В этом разделе развиваются результаты, полученные Джентелменом и Кунгом, в нескольких направлениях: комплексные матрицы, вывод данных из матрицы, управление и синхронизация, изготовление ячеек, моделирова- ние больших матриц физически меньшим с помощью декомпозиции задачи. QU-разложение заключается в отыскании такой ортогональной матрицы Q* при которой матрица Q*A = U6buia бы верхней треугольной. Матрица Q* может быть произведением простых ортогональных матриц (вращение Гивенса), каждая из которых выбрана так, чтобы один из эле- ментов А под диагональю был нулем. Для обращения в нуль i- и (z — 1)-я строки матрицы А заменяются на 383
к — 1,2, ..., m, где (с, s) выбраны так, чтобы обращались в нуль и матрица была ортого- нальной : Эти элементы могут обращаться в нуль по столбцам снизу вверх в такой последовательности (и, 1), (п - 1,1), ... ,(2,1); (п, 2), . .. , 3,2; .. . ; (п, т), ..., (т + 1,т). Отметим, что преобразования, обращающие в нуль а-ф необходимо приме- нять только к столбцам j, j+ 1, . .. ,m, так как во время их выполнения эле- менты к и яг- к при k<j уже равны нулю. Систолическая структура Джентелмена—Кунга — треугольная процессор- ная (mXm)-матрица из тХт ячеек двух типов, вычисляющая QU-разложе- ние (22.1) входной матрицы размера пХт — показана на рис. 22.1. Кружка- ми обозначены граничные ячейки. На рис. 22.2 показаны функции этих яче- ек. Поясним теперь работу таких структур. Во-первых, отметим, что каждая ячейка имеет только одну ячейку памяти. Ее начальное значение равно нулю. Диагональные граничные ячейки вычисляют параметры вращений (с, s). Ячейки (/,/) вычисляют вращения, обращающие в нуль элементы столбца матрицы А. Результаты этих вращений затем перемещаются вправо по стро- кам процессорной матрицы. Квадратные ’’внутренние” ячейки осуществля- ют эти вращения в других столбцах. Матрица А подается на вход структуры сверху в последовательности, по- казанной на рис. 22.1. Для каждой из ячеек существует момент, когда сверху Рис. 22.1. Структура Джентелмена-Кунга для QU-разложения 384 s^yfffi+y1 у= /xz+y* y = cr+sy z=~sx+cy Рис. 22.2. Процессорные ячейки QU- структуры
слева поступает первый элемент массива А. Предположим, что ап j поступа- ет на ячейку (1,1) в момент t = 1. Первый элемент матрицы U, т.е. , вы- числяется в ячейке (1,1) в момент t - п. К моменту времени Z=w + 2(m — 1) вычисляется последний элемент ит т. Матрица U теперь находится в ячей- ках памяти структуры. Вращения/определяющие Q*, появятся на правой границе структуры. 22.2.1. Трапецеидальная систолическая подструктура Желательно решать задачи формирования луча различных размерностей, используя одну физическую структуру, поэтому следует решить, как моде- лировать полную (тХт) -структуру, используя только ее фрагмент. Предпо- ложим, что мы имеем трапецеидальную структуру размера pXq (рис. 22.3). Пусть В — матрица, содержащая п строк и q столбцов, загружается в верх- нюю часть процесса. Вычисляется разложение Q*B = Ци о и12 (22.3) где 0 — нулевая матрица размера (и-р)Хр; Uu -- верхняя треугольная матрица размера рХр; U12, В2 — заполненные матрицы с (q-p) столбцами. Матрица В2 выводится из нижней части структуры, a Un, U12 запоминают- ся внутри нее. Можно ли получить полное QU-разложение с помощью такой трапецеи- дальной структуры? Если q не меньше т (числа столбцов А), то сделать это можно; следовало бы обнулить группы из р столбцов матрицы слева напра- во, используя Гт/р\ проходов по матрице. Детали процесса очевидны. Однако если т>#, то решение невозможно. Для проверки предположим, что обнулены первые р столбцов под диагональю при проходе по столбцам 1,2,... Л матрицы. Затем желательно обнулить столбцы р + 1, . . ., 2р при проходе столбцов р + 1, . . . ,p+q. Однако пока не получено вращение после первого прохода для столбцов q + 1 , . . ,p+q их нельзя применить для вто- рого прохода. Для обеспечения разложения матриц с числом столбцов, большим q, не- обходима возможность применения ранее вычисленных и хранящихся в па- мяти результатов вращения к входным столбцам. Можно придать матрице такое свойство, отключая ячейки крайней ле- вой треугольной части размером pXq и под- держивая активным прямоугольник размером рХ(#—р). Параметры вращения вводятся че- рез левую границу. Подмножество из q—p столбцов может поступать в активный прямо- угольник сверху. В результате входные векто- ры, подвергнутые входным вращениям, появ- ляются в нижней части (за исключением пер- вых р строк, которые запоминаются в ячей- Рис- 22.3. Трапецеидальная ках активного прямоугольника). подструктура 385
22.2.2. Моделирование полной структуры В этом подразделе показано, как можно управлять процессором трапецеи- дальной структуры, снабженным соответствующей системой памяти для хра- нения промежуточных результатов, для осуществления разложения при т> Предположим, что множество задач, которые требуется решить, описы- ваются треугольной матрицей пар (z,/) : где пара (i,j) представляет задачу, заключающуюся в применении к столб- цу / вращений, с помощью которых обнуляются элементы столбца i. Эта матрица может служить для выполнения шагов ’’генерации”, в которых столбцы действительно обнулены, и ’’исполнительных” шагов, в которых используются сохраненные в памяти результаты вращения. При генерации осуществляется обработка трапецеидального участка (рХд)-множества ис- ходных пар задачи; при исполнительном проходе осуществляется обработ- ка прямоугольного участка размером рХ(#—р). Чередование шагов для выполнения всей задачи аналогично покрытию треугольника трапецеидаль- ными и прямоугольными ’’листами” в соответствии со следующими пра- вилами : 1) трапецеидальные листы должны прилегать к гипотенузе треугольника; 2) ни один лист не может быть размещен, пока не покрыта диагональная сторона слева от него; 3) ни один лист не может быть размещен, если не покрыто пространство непосредственно под ним. Существует множество допустимых вариантов покрытия; на рис. 22.4 по- казан один из них. При многопроходном получении QU-разложения вырабатываются про- межуточные результаты. Они должны запоминаться и позже вновь вводить- ся в процессор. На рис. 22.5 показана организация памяти. Важными явля- банки памяти Систоли- ческая матрица Рис. 22.4. План проходов при покры- Рис. 22.5. Организация QU-памяти тии ’’листами” для QU-разложения 386
Рис. 22.6 Двухматричная структура прямого и обратного хода ются ее следующие свойства. Имеется отдельный, независимый банк памя- ти для каждого столбца матрицы. Столбец матрицы запоминается в банке над ячейкой, в которую он вводится впервые. Столбец промежуточных ре- зультатов, который появляется из нижней части, пересылается в банк над ячейкой, в которую будет осуществляться следующий ввод. При чередова- нии шагов в соответствии с рис. 22.4 эти позиции для некоторых столбцов оказываются определенными однозначно, а для других существуют по две возможности. Поэтому соединения в структуре очень просты. Управление структурой также несложно ввиду регулярности путей до- ступа к данным (рис. 22.6). Адреса памяти могут вычисляться один раз и передаваться из одного банка в следующий. 22.2.3. Другая схема Существует другая возможность, заключающаяся в работе с листами следующих конфигураций: Процессор обрабатывает лист II, активно используя все внутренние ячей- ки; лист I обрабатывается так же, но с обратным порядком следования 387
столбцов, а лист III — с исключением некоторых внутренних ячеек. Лист III может быть обработан только тогда, когда помещается в структуре, т.е. при 2(р — 1) — р. Сравним последний вариант покрытия с вариантом на рис. 22.4. При первом варианте (рис. 22.4) средний размер листа p(q-p), а при втором — 2р (д —1)/3. Эти листы используются для покрытия прямоугольников 2(9-1) Первая схема более эффективна, если p{q -р) >2p(q -1)/3, т.е. при q>3p — 2. Поскольку для второго варианта требуется, чтобы значение q было по крайней мере равно Зр — 2, он никогда не может быть эффектив- нее первого. 22.2.4. Выбор конфигурации матричного процессора Предположим, что какие-либо причины — например, стоимость — огра- ничивают размер матрицы величиной pq —р (р — 1) /2. Какова наилучшая из возможных конфигурация? На решение влияют два конкурирующих фак- тора. Полоса частот для обмена меньше для матрицы, близкой к квадратной, так как с окружающими системами связаны только граничные ячейки. Однако число проходов, необходимое для решения задачи, не будет, как правило, минимально при p=q. Для типичного случая [скажем, при т - 100, pq — р(р — 1)/2 = 31] при оптимальной конфигурации матрица может быть достаточно узкой (в данном примере р = 2, q = 16). 22.2.5. Вывод данных из памяти ячеек Трапецеидальный матричный QU-процессор выполняет разложение матри- цы (22.3). Однако, как выводить элементы Un и U12, хранящиеся в ячей- ках матрицы? Построим схему со следующими свойствами: 1) выходной поток данных полностью однороден; 2) управляющие сигналы поступают только на граничные ячейки; 3) для внутренних ячеек не требуется никаких функций с особым уп- равлением; 4) процессор может заканчивать разложение матрицы, выводить содер- жимое памяти ячеек и начинать разложение следующей матрицы без какой- либо задержки. Ключевым моментом схемы вывода данных из памяти является поведе- ние ячейки при передаче ей ’’единичной” функции вращения (с = 1, s=0). В этом случае ячейка работает как элемент единичной задержки: 388
I Для начала предположим, что за входной матрицей А следует матрица В. Данные будут подаваться в процессор в следующем формате: (22.4) так, что две обрабатываемые матрицы разделены диагональю нулей. В ре- зультате процессор будет ’'выталкивать” U сразу по получении результата и заполнять каждую ячейку нулями непосредственно перед тем, как элемент поступит в нее. Следовательно, процессор ’’рассматривает” новую матрицу В таким образом, как если бы она первоначально содержала только нули. Когда элемент В впервые поступает на граничную ячейку, в ней содер- жится нуль (это будет показано позже). Обычной функцией граничной ячейки (см. рис. 22.2) является запоминание абсолютной величины этого элемента в ее памяти и выдача ’’единичной” функции вращения, если эле- мент был неотрицательным, или произведения — 1 на ’’единичную” функцию вращения в противном случае. По мере продвижения результата вращения вправо встречаются ячейки, содержащие в памяти нули, эти нули выталки- ваются и замещаются элементами (возможно, отрицательными) строки матрицы В. Таким образом, нули передвигают столбцы вниз по всей матри- це процессора. Теперь покажем, как считываются элементы U. Положим, что время t = О есть время ввода в ячейку (1,1) элементами . Тогда ячейка (/,/) принимает последний элемент матрицы А и вычисляет элемент матрицы В в момент t=i+j — 2, тем самым работа заканчивается. В соответствии с принятой здесь последовательностью ввода (см. рис. 22.4) нулевые данные появля- ются на входе ячейки (1,7) в момент / непосредственно после вычисления tijj. Для обеспечения правильной работы процессора желательно получить в то же время единичное вращение, обусловливающее выталкивание эле- мента и Г и загрузку нуля. Это может быть реализовано специальной функ- цией граничной ячейки. Положим, что в цикле 1 ячейка (1,1) выполняет операцию 389
Операция вращения, сформированная таким образом, достигнет ячейки (1, /) в момент /, как и требуется. Далее, положим, что в момент времени 3 ячейка (2,2) выполняет ту же операцию: U22 (Элемент н1>2 был вытолкнут из первой строки, как описывалось ранее.) Эта операция вращения будет передана далее для выталкивания элементов из ячеяки (2, А) и загрузки = 3, 4, . . . ,q. В момент времени 4 эта специальная функция вновь потребуется в ячейке (2,2): Данное вращение следует за предыдущим вниз по строкам, выталкивая элементы и загружая нули. В общем случае ячейка (А,А) выполняет данную специальную функцию к раз в моменты времени t = 2к — 1,..., Зк — 2. Затем единичное вращение движется ниже строки к, выталкивая строки к, к — 1, . . ., 1 матрицы и загружая нули, предшествующие следующей матрице. Для обеспечения однородного вывода из процессора следует добавить несколько ячеек внизу слева для получения прямоугольной структуры: 390
Единственным назначением ромбических ячеек является задержка оконча- тельного вывода элементов U, которые выходят теперь из процессора в том же формате, что и элементы А (элементы i,j выходят в момент времени т— i +/ ). 22.3. МАТРИЧНЫМ ПРОЦЕССОР ДЛЯ ОБРАТНОГО ХОДА Для решения треугольной системы U^Y = В (матрицы У и В имеют разме- ры тХп) можно использовать треугольную структуру, показанную на рис. 22.7. Детали устройства такой структуры достаточно очевидны и не приво- дятся. Отметим лишь, что оно состоит из треугольного массива процессор- ных ячеек, каждая из которых подобно матрице Джентлмена—Кунга содер- жит один элемент матрицы U, так что для решения некоторых прикладных задач может быть полезна одинаковая реализация обеих структур. В рассматриваемых примерах значение п часто может быть довольно ве- лико. Пусть требуется решить две системы: U^Y = В и UX= Y, но элементы Y не представляют интереса. Если X хранится в памяти, то там же можно хра- нить и Y. Предположим, однако, что X не хранится в памяти. Можно задать- ся целью минимизировать объем промежуточной памяти для хранения Y. Он может быть сокращен до О(т2) ячеек двумя способами. Можно использо- вать еще одну структуру для решения UX = Y и направлять результаты пер- вой структуры во вторую. При этом необходим интерфейс из Зт(т — 1)/2 ячеек задержки, как показано на рис. 22.6. Другой возможностью является использование одной и той же структуры для решения обеих систем одно- временно. На рис. 22.8 показаны два последовательных цикла ра- боты такого устройства. В каж- дый данный момент половина диагоналей работает над одной системой уравнений, а другая половина диагоналей — над дру- гой. В этом случае необходима матрица из (3m2— 2т) /4 ячеек задержки, что приблизительно вдвое меньше, чем в двухматрич- ной структуре. Рис. 22.7. Структура для решения 7' уравнения U Y - В 391
a) 5) Рис. 22.8. Одинарная структура для прямого и обратного хода: а — цикл 11; б - цикл 12 22.3.1. Вычисление масштабных коэффициентов Вычисление (22.26) требует масштабного множителя а*($)а(1У), т.е. скалярного произведения решения системы (22.2а) на себя. Поскольку векторы решения а получаются поэлементно (один элемент за цикл) с по- следовательных столбцов матричного процессора, эти скалярные произве- дения можно накапливать, присоединив строки ячеек к нижней части матри- цы (см., например, рис. 22.7). 22.4. КОМПЛЕКСНОЕ QU-РАЗЛОЖЕНИЕ В действительности должны обрабатываться комплексные матрицы А. Конечно, можно решить комплексную (2иХ2лг)-задачу наименьших квадра- тов с помощью QU-разложения действительной матрицы размера 2лХ2ш где А = +jA^ — результат разложения матрицы А на вещественную и мни- мую части. Однако при использовании вращений Гивенса это требует в 8/3 раз больше операций вещественного умножения, чем при непосредственном комплексном QU-разложении матрицы А. 392
Операция QU-разложения является един- ственной только с точностью до умноже- ния строк матрицы U на коэффициенты с модулем 1: A = (QD)(D₽1U) — также QU- разложение при любой унитарной диаго- нальной матрице D. Поэтому необходимо, чтобы диагональные элементы U были по- ложительными вещественными. Это и есть c = xf$ б = п/р 1=? у =с*х+бу 1 = -бХ+Су Рис. 22.9. Процессорные ячейки для комплексного QU-разложе- ния единственная функция разложения, вычис- ляемая рассматриваемой структурой. Изменим описания ячеек на рис. 22.1 на описания, представленные на рис. 22.9. Договоримся обозначать строчными латинскими буквами комплексные величины, а греческими — вещественные, т. е. а =а + jet, х =f + j£', где j = Такие ячейки, конечно, более сложны в реализации, чем ве- щественные ячейки Гивенса. Далее мало что меняется. Когда первый элемент входной матрицы ока- зывается в граничной ячейке, происходит следующее: с** a/iai б^о Таким образом, вместо единичного вращения, реализуемого в вещественном варианте, осуществляется унитарное диагональное вращение. 22.5. РЕАЛИЗАЦИЯ СБИС В этом разделе обсуждается, как могут быть выполнены внутренние ячейки вещественной и комплексной QU-матриц, а также комплексной матрицы для обратного хода при использовании внутреннего систолического кристалла (ВСК), разработанного фирмой ESL. Следует особо отметить, что эти ячейки можно получить, используя одни и те же блоки на СБИС без дополнительных микросхем. Более того, мы использовали ВСК для построе- ния и других смешанных ячеек для вещественного или комплексного QU-раз- ложения. Вполне вероятно, что систолические матрицы для большинства стандартных алгоритмов линейной алгебры могут быть получены на данном кристалле .и еще на одном, к которому обратимся позже. Сначала дадим краткое описание ВСК. Он спроектирован на основе КМОП- технологии с разрешением 2 мкм фирмы ESL. Его функции таковы: 393
где s — знак, используемый при сложении. Им может быть знак , или он может меняться. Операнды представляются в формате с плавающей запятой. Значительные усилия были направлены на обеспечение коммутационных функций и увеличение числа внутренних регистров для повышения гибкости архитектуры ВСК. Для выполнения арифметических операций над комплексными величина- ми могут быть построены комбинированные ячейки. Здесь представлены две разработки Кунга: комплексная ячейка, содержащая два ВСК: (с =x+j?', а = a.+ja{ и другая — на четырех кристаллах, в которой один из операндов постоянен: Это внутренняя ячейка для комплексной матрицы обратного хода. На рис. 22.10 представлена схема ячейки для комплексного вращения Гивенса, содержащая шесть ВСК. Имеются две двухкристальные ячейки комплексного умножителя-сумматора, одна из них для вычисления с*х, другая — для су, а также две однокристальные ячейки для вещественно- комплексного умножителя-сумматора; одна для вычисления ах и дру- 394
Рис. 22.10. Комплексная ячейка Гивенса гая — для оу. Комплексные величины представлены в одном из форматов, рассмотренных ранее. Новые операнды могут поступать в ячейку в каждом втором такте. Задержка в тракте x — z составляет три такта, а в трактах свх ” свых и авх “ авых “ всего один такт. К сожалению, ограниченный объем раздела не позволяет обсудить деталь- но способы реализации граничных ячеек. Необходим еще один ВСК — крис- талл, характеризуемый наличием еще более быстродействующих логичес- ких элементов или большим внутренним параллелизмом, который мог бы обеспечить выполнение операций деления, извлечения корня и его обратной величины за один цикл. Этот кристалл мог бы использоваться наряду с ВСК при создании конвейеризованной граничной ячейки для выполнения опера- ций QU, обратного решения или LU с достаточной для матрицы производи- тельностью. Граничные ячейки обычно характеризуются большей задержкой, чем внутренние. В трапецеидальной QU-матрице эта повышенная задержка граничной ячейки рассинхронизирует процессы, если не обеспечены приемлемые за- держки в линиях связи между ячейками. К счастью, эти задержки необхо- димы только в левой треугольной части матричной структуры. На рис. 22.11 приведен соответствующий пример. В нем задержка граничных ячеек состав- ляет 5 единиц, внутренних — 4 единицы, хотя задержка при передаче слева направо равна 1. Для каждой ячейки указано время поступления операнда. Задержки обозначены ромбами; они задерживают данные на четыре цикла. 395
Рис. 22.11. Влияние задержки граничных ячеек Их назначением является выравнивание задержек различных трактов в мат- рице. В матричном процессоре размером pXq потребуются ячейки с задерж- кой р(р — 1)/2. Эти задержки влияют на общую задержку тракта и на за- держку в тракте от входа к выходу (это уже не параллелограмм). Однако снижения пропускной способности не происходит. СПИСОК ЛИТЕРАТУРЫ [1] A. Bojanczyk, R. Р. Brent, and Н. Т. Kung, “Numerically Stable Solution of Dense Systems of Linear Equations Using Mesh-connected Processors,” Siam Jour, on Scientific and Statistical Computing, 5:1, pp. 95 104, 1984. [2] W. M. Gentleman and H. T. Kung, “Matrix Triangularization by Systolic Arrays,” Real Time Signal Processing IV, SPIE, Vol. 298, Society of Photo-optical Instrumentation Engineers, Bellingham, Wash., 1981. [3] D. E. Heller and I. C. F. Ipsen, “Systolic Networks for Orthogonal Decompositions.” Siam Jour, on Scientific and Statistical Computing, 4:2, pp. 261-269, 1983. [4] R. Schreiber, “Systolic Arrays for Eigenvalue Computation,” Real Time Signal Processing V, SPIE Vol. 341, Society of Photo-optical Instrumentation Engineers, Bellingham, Wash., 1982. [5] H. J. Whitehouse and J. M. Speiser, “Sonar Applications of Systolic Array Technology,” IEEE EASCON Proc., 1981. 396
23 МНОГОПРОЦЕССОРНЫЕ ПАРАЛЛЕЛЬНЫЕ СТРУКТУРЫ, КОНВЕЙЕРЫ И ПИРАМИДЫ ДЛЯ ВОСПРИЯТИЯ ОБРАЗОВ Л. Ур1 2.3.1. ВВЕДЕНИЕ: ЗНАЧИТЕЛЬНОЕ УВЕЛИЧЕНИЕ МОЩНОСТИ И ПРОИЗВОДИТЕЛЬНОСТИ ПРИ ИСПОЛЬЗОВАНИИ СБИС Универсальные приборы, эквивалентные по значению транзистору, кото- рые создаются на тонких кремниевых пластинках СБИС, в настоящее вре- мя так миниатюрны и дешевы, что настал момент, когда чрезвычайно боль- шое число процессоров может быть объединено в единую сеть. В 1978 г. 100 000 элементов было успешно интегрировано в ЗУПВ объемом 64 Кбит. В 1981 г. фирма Hewlett-Packard объявила о создании микропроцессорно- го кристалла, содержащего 450000 элементов. Мы явились свидетелями уд- воения степени интеграции приблизительно каждые 12—18 мес. в течение последних 10—20 лет, и весьма вероятно, что такое положение будет сохра- няться еще от 10 до 20 лет. Следовательно, многопроцессорные компьюте- ры ’’среднего класса” с числом кристаллов от нескольких тысяч и до мил- лиона, или даже 10 миллионов элементов в каждом кристалле, скоро станут реальностью. Это означает, что отдельный компьютер может содержать 104Х ХЮ7 = 1011 элементов. Такие микропроцессорные системы могут быть очень успешно исполь- зованы для штурма чрезвычайно больших проблем, примером которых яв- ляется моделирование в трех измерениях атмосферных масс для прогноза погоды, моделирование трехмерных зон земной коры для изучения таких явлений, как землетрясения, моделирование обширных сетей нейронов, составляющих мозг человека, и очень большой набор преобразований, необ- ходимых для восприятия сложного поведения пространственных объектов. Для таких компьютеров обработка изображений и восприятие образов станут основными областями применения, так как они выдвигают чрезвычай- но серьезные проблемы информационной обработки, решение которых тре- бует очень больших и быстродействующих микро модульных компьютеров с высоким параллелизмом. При очень большом потоке исходных данных об изображении, растрированном на 5122, 10242 и более элементов, массив элементов растра может быть весьма эффективно обработан с помощью локальных операций, в процессе которых ’’рассматривается” каждый эле- мент, а также его соседи. Такое локальное операционное ’’окно” может быть высокоэффективно реализовано на соответствующим образом спроек- тированном параллельном процессоре. При этом производительность может быть повышена на много порядков по сравнению с производительностью 1 Висконсинский университет, Мадисон, Висконсин. 397
п ЧП I Вдод—^ р-^ Вы Вод Память Память ЭВМ —ЭВМ— а) 5) д) Рис. 23.1. Традиционная однопроцессорная последовательная ЭВМ: а — ЗУ подключено к ЦП (содержащему и процессор, и контроллер) ; в свою очередь, они связаны с устройствами ввода и вывода (часто через регистры R) ; б — процессор подключен к ЗУПВ относительно большой емкости (ввод и вывод не показаны, но имеются) ; в — отдельная ЭВМ (ввод и вывод подразумеваются) и ЭВМ с вводом и выводом, показанными стрелками обычного последовательного процессора. Это впервые сделает возможным создание программ обработки изображений и восприятия образов, способ- ных распознавать сложные образы реального мира при их движении в реаль- ном масштабе времени, т. е. в отрезке 30 мс или менее на кадр изображения. 23.2 . ТРАДИЦИОННЫЕ ОДНОПРОЦЕССОРНЫЕ ПОСЛЕДОВАТЕЛЬНЫЕ ЭВМ И МНОГОПРОЦЕССОРНЫЕ СЕТИ Обычная ’’последовательная универсальная ЭВМ” (рис. 23.1) строится, как правило, посредством подключения быстродействующей памяти к един- ственному центральному процессору (ЦП), который выбирает команды из памяти, декодирует каждую из них, выбирает данные (в соответствии с пред- писанием в команде), хранящиеся в указанных ячейках памяти, выполняет указанные операции и запоминает результаты в предписанных ячейках. Кроме того, к системе должны быть подключены устройства ввода и выво- да. На рис. 23.1 приведено несколько вариантов представления такой сис- темы. 23.3 . КОНВЕЙЕРНЫЕ СИСТЕМЫ КОМПЬЮТЕРОВ (ИЛИ ПРОЦЕССОРОВ) Было построено несколько конвейерных систем, и большинство из них — в духе заводских сборочных линий. Каждый процессор в системе много- кратно выполняет одну и ту же команду над последовательностью данных, проходящих через систему. Это значит, что если одна и та же последователь- ность команд должна выполняться над большим числом различных блоков данных (случай, когда данные, составляющие массив, должны обрабатывать- ся параллельно подобно выполнению вложенных циклов FOR, как в рас- сматриваемых примерах прикладных задач), может быть построена конвей- ерная система длиной во всю последовательность команд и данные (напри- мер, информация, хранящаяся в ячейках матрицы) могут быть пропущены через процессоры системы П1-IIN (рис. 23.2). 'з98
Устройство ввода Устройство пн вывода Рис. 23.2. Конвейер из Nпроцессоров, через которые проходят данные. В такте 1 про- цессор П1 будет выполнять первую команду над первым блоком данных. В такте 2 про- цессор П2 будет выполнять вторую команду над первым блоком данных, а П1 — пер- вую команду над вторым блоком данных и т. д. Если в конвейере имеется Nпроцессоров, программа будет выполняться приблизительно в dN раз быстрее, чем в однопроцессорной ЭВМ. (d — коэф- фициент, учитывающий, что нет необходимости в выборке и декодировании следующей команды, поскольку каждый процессор осуществляет выборку один раз, а затем многократно повторяет выполнение одной и той же ко- манды.) Наиболее высокопроизводительные из современных ’’супер-ЭВМ”, напри- мер Сгау-1 и CDC-255 фирмы Seymour Cray (см. [11]), содержат подобные конвейеры из дюжины или около того очень мощных и дорогостоящих процессоров для выполнения векторных операций над массивами данных. Машина PICAP [12] содержит конвейер из процессоров, специально спроектированный для реализации окна размером 3X3, в котором выполня- ется любая логическая или арифметическая операция, операндами которой являются центральная ячейка окна, а также восемь соседних ячеек по выбо- ру программиста. Наиболее длинный из построенных к настоящему времени конвейеров — конвейер многопроцессорной системы Cytocomputer [22], специализиро- ванный на выполнение операций обработки изображений. В его состав входят процессоры двух типов, один из которых предназначен для вычисления бу- левых функций над содержимым центральной и восьми соседних с ней яче- ек, а другой — для вычисления арифметических функций над 3-разрядными величинами в шкале серого, хранящимися также в девяти ячейках окна. Каждый из процессоров машины Cytocomputer гораздо проще и меньше, чем в ЭВМ Сгау-1, но их общее число составляет 113. Используя новые крис- таллы СБИС (один процессор в кристалле), проектируемые на будущее сис- темы планируется построить из еще большего числа процессоров, которые могут быть объединены в конвейеры (теоретически произвольной дли- ны [23]). 23.4 . МАТРИЧНЫЕ СТРУКТУРЫ ИЗ ОЧЕНЬ БОЛЬШОГО ЧИСЛА ПРОСТЫХ ПРОЦЕССОРОВ В последние годы были построены, или уже завершаются, три очень боль- шие двумерные системы. В их число входят: распределенный матричный процессор размером 64X64 DAP (distributed array processor), спроектиро- ванный фирмой ICL [16]; сотовый логический процессор изображений раз- мером 96X96 CLIP4 (cellular logic image processor), разработанный в Лон- донском университетском колледже [3]; и большой параллельный процес- 399
сор размером 128X128 MPP (massively parallel rpocessor), спроектирован- ный фирмами Goodyear-Aerospace и NASA Goddard и установленный в мае 1983 г. В этих системах каждый из тысяч процессоров выполняет одну и ту же команду над различными потоками данных. Данные, которые необходимо обработать и объем которых в идеале соответствует размерам матрицы про- цессоров, вводятся в систему таким образом, что каждый из процессоров имеет в собственной памяти одно подмножество таких данных, например один элемент растра. Затем каждый из процессоров обрабатывает данные, хранящиеся в собственной памяти, а также данные его ближайших соседей (рис. 23.3). Процессор CLIP4 построен из заказных КМОП-кристаллов, спроекти- рованных для работы с тактовой частотой 2,5 МГц. Каждый кристалл содер- жит матрицу размером 2X4 из восьми вычислителей, состоящих из процес- соров, дополнительных логических элементов для параллельной выборки и обработки восьми соседних переменных, необходимых для организации опе- рационного окна, и памяти на 32 бит (плюс несколько одноразрядных ре- гистров). Реально работающие процессоры DAP построены на обычных ТТЛ ИС, работающих с тактовой частотой 10 МГц (каждый из процессоров содержит ЗУПВ емкостью 4К). Однако уже опробованы кристаллы с четырь- мя процессорами и набором регистров, и предполагается, что в будущем в распределенных матричных процессорах будут использоваться эти кристал- п—п—п—п—п—п—п—п I I I I I 1 I I Ввод-*- R-R-R~R--R~-R~R-R--** Выдид I I I I I I I I ММММММММ 5) Рис. 23.3. Матричные структуры ЭВМ: а — двумерная матрица из 8X8 процессоров. Каждый процессор соединен с четырьмя соседними по горизонтали и вертикали (в других структурах процессоры могут быть соединены в четверки по диагоналям или каждый процессор может быть соединен с шестью соседними). Каждый процессор непосредственно связан с общей памятью (на рис. не показано), а также по изображенным линиям связи с памятью четырех со- седних; б - матрица из 1X8 процессоров, каждый из которых соединен с собственной памятью ш, а также (через регистры R) с вводом и выводом (иначе это можно рас- сматривать как вид на приведенную выше структуру 8X8 с одной стороны, показываю- щий, как каждый из процессоров (Л) одномерной подматрицы размером 1X8 двумер- ной структуры размером 8X8 соединяется с собственной памятью М и вводом-выводом через регистры R) \ 400 G I
лы, а также серийно выпускаемые кристаллы ЗУПВ [17]. В процессоре МРР используются заказные МОП-кристаллы, спроектированные для работы с тактовой частотой 40 МГц. Кристалл содержит восемь процессоров, каждый с 32-разрядным регистром, к каждому из них вне кристалла подключается ЗУПВ емкостью 1К и с циклом 80 нс. Базовая команда процессора CLIP4 включает выборку команды (каж- дые 11 мкс) всеми процессорами параллельно и обработку информации из собственной памяти, а также памяти любого из восьми (или всех сразу) непосредственно окружающих данный процессор и ближайших к нему про- цессоров, т.е. из окружающего окна размером 3X3. Эта команда очень по- хожа на операции в окне, выполняемые процессорами PICAP и Cytocomputer. Однако ее аппаратная реализация существенно иная, так как процессор СЫР выполняет за одну команду все действия в операционном окне матрицы, в то время как конвейерные системы должны последовательно обрабаты- вать каждый элемент растра и соседние с ним элементы в процессорах, вы- полняющих эту команду. Процессоры DAP и МРР не имеют встроенного операционного окна. Их ба- зовая команда состоит из ’’выборки-сложения”, ’’выборки-дизъюнкции” или какой-либо другой последовательности одной выборки и арифметической или логической операции над одноразрядным срезом данных и данными в аккумуляторе. Это означает, что они должны использовать последователь- ность до 12 команд, включающую две команды сдвига переменных в диаго- нальных ячейках окна для выполнения одной операции в окне. Длительность выполнения базовой команды в процессоре DAP составляет 250 нс, а в МРР ожидается получить длительность выполнения 100 нс. Современные большие матричные структуры содержат от 4000 до 16000 процессоров, но при современной технологии и современных экономичес- ких возможностях можно построить гораздо большие системы с 256X256, 512X512, 1024X1024 и более процессорами. Например, построение CLIP4 с 10000 процессоров в 1980 г. обошлось приблизительно в 100000 дол., т. е. в 10 дол. на процессор. А вот окончательная стоимость: в состав крис- талла CLIP4 стоимостью 25 дол. входит 8 процессоров, следовательно, каж- дый процессор стоит около 3 дол. Стоимость кристалла сотового процессора CLIP и всей системы в целом быстро снижается в результате его перепроектирования; так, сейчас цена кристалла составляет 4 дол., а процессора — 50 центов [4]. Следовательно, система из 250000 или около того процессоров может быть построена в сле- дующие два-три года не более чем за 1 млн дол., а возможно, и значительно дешевле. Это означает, что каждый элемент массива 512X512 телевизион- ного изображения может запоминаться в памяти отдельных процессоров и все элементы могут обрабатываться за то же время, за которое обычная система может обработать один элемент. Однако матричные системы, построенные к настоящему времени, имеют размеры меньше 512X512 и стоят они намного больше 3 дол. за процессор: процессор размером 64X64 DAP стоит более 1000000 дол. в дополнение к 3 000 000 дол. за центральный процессор ICL; процессор МРР, включая стои- 401
la 1b 2a 2b 3a 3b 4a 4b 1c 1d 2c 2d 3c 3d 4c 4d 5a 5b 6a 6b 7a 7b 8a 8b 5c 5d 6c 6d 7c 7d 8c 8d 9a 9b 10a 10b 11a 11b 12a 12b 9c 9d 10c 10d 11c lid 12c 12d 13a 13b 14a 14b 15a 15b 16a 16b 13c 13d 14c 14d 15c 15d 16c 16d a) 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 1 1 1 1 2 2 2 2 3333 4444 3333 4444 3333 4444 3333 4444 6) Рис. 23.4. Матрицы обрабатываемого изображения, большие по размерам, чем матрица процессора: а — подматрицы изображения запоминаются в памяти каждого процессора. Элементы с одинаковыми номерами запоминаются в соответствующих ячейках памяти процес- соров. Матрица изображения размером 16X16 элементов располагается и запоминается в структуре 4X4 из 16 процессоров (под номерами с 1 по 16). Память каждого процес- сора хранит подматрицу изображения размером 2X2 (под номерами а — d) ; б — подмат- рицы изображения одинаковых с матрицей процессора размеров обрабатываются по очереди. Иллюстрируется декомпозиция матрицы изображения размером 16X16 на четыре подматрицы размером 4X4, которые вводятся и обрабатываются матричным процессором размером 4X4 по одной в каждый момент времени мость разработки, стоит 5 000 000 дол. Как показано на рис. 23.4, массивы данных об изображениях, большие, чем матрицы процессоров, легко могут быть обработаны двумя следующими способами: 1) часть полного массива изображения запоминается в собственной памя- ти каждого процессора, например (8X8)-подмассив полного (1024X1024)- массива может запоминаться в каждой ячейке (128 X128)-матрицы процес- соров ; 2) часть полного массива изображения, совпадающая по размеру с матри- цей процессоров, вводится в матрицу так, что каждый элемент массива изображения запоминается в памяти каждого процессора; этот процессор повторяется до тех пор, пока не будет обработан весь массив изображения. 402 \
Каждый из этих методов имеет свои недостатки: 1) оба, конечно же, характеризуются гораздо большей продолжитель- ностью обработки, поскольку должен последовательно обрабатываться больший массив меньшей по размерам матрицей процессоров; 2) при первом способе, кроме того, требуется дополнительное время [или (и) оборудование] для индексации подмассива, а также дополнитель- ная память для всего подызображения и всех получаемых результатов преобразований; 3) при втором способе должны обрабатываться окна на внутренних границах, где элементы, прилегающие к обрабатываемому подмассиву, но не входящие в него, должны рассматриваться как часть окна. Это означает, что должно выполняться одно из следующих условий: а) должны постоянно просматриваться в необходимых границах строки и столбцы; б) должны обрабатываться перекрывающие подмассивы, что обусловли- вает дополнительные затраты времени; в) должно быть добавлено оборудование для запоминания перекрываю- щихся столбцов изображения, которые могут рассматриваться как его ле- вая или правая граница, и перекрывающихся строк, которые могут рас- сматриваться как верхняя или нижняя граница. Такие большие матричные системы возможны только благодаря тому, что каждый процессор выполнен настолько простым, насколько это воз- можно, и все они выполняют одну и ту же команду (что означает, что не- обходим только один контроллер). В современных матрицах использу- ются процессоры, которые обрабатывают в каждый момент времени один бит данных. Это эффективно для логических операций. Логические операции включают в себя очень важный класс операций обработки изображений, в которых совместно и одновременно проверяются несколько признаков, а получаемая характеристика (часто называемая меткой) считается либо ’’при- сутствующей”, либо ’’отсутствующей” в каждой из ячеек. Арифметические и строковые операции, которые должны выполняться над элементами дан- ных длиной, превышающей 1 бит, выполняются достаточно просто, но толь- ко последовательно, побитно, т. е. в так называемом ’’последовательном по битам” режиме. Это означает, что если должны выполняться, например, 3-, 21-, 33-, 47-, 64- или 89-разрядные арифметические операции или операции сравнения, то их выполнение займет в 3k, 21k, 33k, 41k, 64k или 89& раз больше времени, чем выполнение соответствующей 1-разрядной операции (здесь к — небольшая постоянная, приблизительно от 2 до 5, определяемая дополнительными затратами). Таким образом, ценой возможного 3-, 64- кратного и более снижения производительности ввиду необходимости последовательной обработки многоразрядных чисел и строк существующие в настоящее время системы дают увеличение скорости обработки в 4 000 — 16 000 раз при параллельной обработке больших массивов чисел. В системах будущего с сотнями тысяч или миллионами процессоров будет достигнуто увеличение скорости обработки на пять, шесть и более порядков. 403
Базовая команда процессора CLIP4 обрабатывает окно размером 3X3 (плюс десятое число, которое берется в качестве второго операнда только из памяти ячейки). Это дает дополнительное десятикратное приращение производительности при условии, что обрабатывается 10 информационных элементов. Вероятно, наиболее важным свойством этого матричного процессора, которое станет наиболее привлекательным в ближайшие 10—20 лет, являет- ся то, что он легко может быть расширен. Матрица размером 512X512 — это просто матрица размером 4X4 из матриц, содержащих 128X128 элементов. Наряду с этим следует учитывать количественный фактор, так как по мере увеличения числа изготавливаемых однотипных кристаллов, а также объ- единяемых однотипных плат и других модулей осуществляется переход к массовому производству. При использовании СБИС-технологий будущего такие параллельные матричные системы будут становиться все более привле- кательными из-за простоты и высокой повторяемости их микромодульной структуры. В противоположность этому слишком мало может быть сделано для уве- личения мощности современных последовательных ЭВМ. Они быстро при- ближаются к черте, за которой их невозможно будет сделать более быстро- действующими (за исключением объединения специализированных парал- лельных процессоров в один центральный процессор), так как они скоро достигнут непреодолимого барьера ’’скорости света”, 23.5. МНОЖЕСТВО ВАРИАНТОВ БОЛЕЕ ОБЩИХ СТРУКТУР СЕТЕЙ Из-за ограниченных возможностей матриц, вызванных в основном сооб- ражениями стоимости (одноразрядные процессоры, единый контроллер и связи только с соседними процессорами), многие предпочли бы иметь дело с сетями других видов. Было разработано много типов сетей, включая коль- цевые [6], «-кубические [25], решетчатые [38], звездные [26], ’’снежин- ка” [7], чечевицеобразные [8], древовидные [14], х-древовидные [2], пирамидальные, и множество структур, описываемых другими графами (см., например, [31, 35]). В нашем случае граф — просто отображение на- бора подсистем, объединенных в единый мультипроцессор; иногда узлами графа являются отдельные процессоры или память, а не полные ЭВМ. Однако таких систем в действительности было построено очень мало и только две из них с числом процессоров более 50: Ст* [26] и Genoa machine [15]. Число вариантов построения практически бесконечно, поскольку они включают все мыслимые способы соединения все возрастающего по мере совершенствования и удешевления технологии числа процессорных элемен- тов, т.е. все возможные графы. Проблемы, возникающие на этом пути, огромны. Сегодня специалисты еще только приступают к штурму очень сложных проблем проектирования таких многопроцессорных систем, разра- батывая распараллеливаемые алгоритмы, методы программирования и отображения их на сети, а также организуя взаимодействие этого множества различных процессоров, выполняющих одну и ту же программу, штя получе- 404
ния приемлемой эффективности (для ознакомления с этими взаимосвязан- ными проблемами см. [35 — 37] ). 23.6. АЛГОРИТМИЧЕСКИ СТРУКТУРИРОВАННЫЕ МНОГОПРОЦЕССОРНЫЕ СЕТИ Среди наиболее привлекательных целей выделяется построение сетей, структура которых отражает выполняемый алгоритм. Наиболее интерес- ными примерами таких структур являются древовидные, в особенности большие х-деревья [2] , гипердеревья [9], и матрицы изменяемой конфи- гурации из обычных ЭВМ [20]. Деревья имеют хорошую структуру для большого числа задач, в которых информация сортируется, сравнивается или каким-либо образом уплотняется и реорганизуется, а также где она за- поминается, извлекается или передается. Матрицы имеют хорошую струк- туру для локальной передачи информации, а введение в них реконфигури- рующих коммутаторов [19] при вычислении быстрого преобразования Фурье [24] и решение многих других задач преобразования информации диктуются непосредственно видом потоков данных. Матрицы одноразрядных процессоров, рассмотренные ранее, также явля- ются хорошим примером таких алгоритмически структурированных сис- тем. Пирамидальные многопроцессорные системы, рассматриваемые далее, считаются наилучшими, поскольку они очень эффективны не только при параллельной локальной обработке, но и при глобальных передачах и преоб- разованиях информации. 23.7. АРХИТЕКТУРА АППАРАТНЫХ СРЕДСТВ ПИРАМИДАЛЬНЫХ МАТРИЧНЫХ МНОГОПРОЦЕССОРНЫХ СИСТЕМ Возможно несколько вариантов построения матриц, зависящих от вида связей между процессорами. Однако начнем с конкретного примера. В од- ной из простейших и наиболее привлекательных схем каждый процессор свя- зан с четырьмя соседними (’’четырехсвязный процессор”) таким образом, что может получать одно слово информации из любого из четырех запоми- нающих устройств (или из пятого, собственного) . Один из простейших путей начать построение пирамиды — взять матрицу и, начиная с любого из углов (пусть из левого верхнего), связать каждую подматрицу из 2X2 процессоров с новым процессором, в то же время свя- зывая полученную группу новых процессоров в 4-связную матрицу. Это да- ет еще одну матрицу, число процессоров в которой составляет 1/4 от их числа. Теперь продолжим связывание подматриц размера 2X2 в один узел верх- ней (по иерархии) матрицы, пока не достигнем ’’наивысшей” матрицы с одним-единственным узлом. Это дает пирамиду с числом матриц, равным log (TV) + 1, где матрица у основания имеет размер NXN, а размер каждой из верхних матриц состав- ляет одну четвертую размера ближайшей снизу матрицы. Диаметр, т.е. кратчайшее расстояние между наиболее удаленными узлами такой пирами- ды, равен log4 (TV). 405
П /7 г, Р П П П П пплппплп пппллллп пплппплп ппппплпп п п п п СлойО П ппппллпп п п п п Слой 1 л п пплппплп п п п п п п Слой 2 п п п п пплппплп п п л п л п п СлойЗ п п п л п л л п Слой 0 Слой / Слой Z Слой 3 (основание) (вершина) a) б) лпр Пр Вид сбоку (одна строка) Пр лп Л пр лп Лл Вид сверху в) Рис. 23.5. Построение иерархической пирамиды матриц убывающего размера; четырех- слойная пирамида с основанием размером 8X8 и конвергенцией 2X2 с каждого слоя на следующий: а — первоначально сгруппированы четыре матрицы процессоров, образующие слои пи- рамиды; б — эти матрицы (слои) последовательно составлены в структуру по порядку убывания размера (вид сбоку, показывающий лишь одну строку каждого слоя) ; в — процессоры связаны от слоя к слою так, что каждый ’’предок” ное число ’’потомков” (77п) , а ’’потомки” имеют предков (77 ) имеет достаточ- пр 23.8. ПОСЛЕДОВАТЕЛЬНОЕ ОБЪЕДИНЕНИЕ МАТРИЦ ДЛЯ ПОСТРОЕНИЯ ПИРАМИДЫ Пирамида может быть построена последовательным составлением мень- ших по размеру матриц, как показано на рис. 23.5. Из рисунка видно, каким образом матрица может быть связана с матри- цей меньшего уровня, которая вдвое больше порождающей матрицы по длине и ширине и поэтому содержит вчетверо больше процессоров. 23.9. СОСТАВЛЕНИЕ ПИРАМИД СОЕДИНЕНИЕМ В МАТРИЦУ КАЖДОГО ИЗ ЯРУСОВ ДЕРЕВА Еще одна из иллюстративных процедур построения начинается с дерева четвертого порядка (т.е. с корневого узла дерева, связанного с четырьмя узлами-потомками, каждый из которых, в свою очередь, соединяется далее с четырьмя узлами-потомками и так до достижения концевых узлов-почек). Таким образом, каждый новый ярус (т.е. слой потомков) содержит в че- тыре раза больше узлов, чем предыдущий. Теперь добавим горизонтальные линии связи между узлами-братьями (узлами того же слоя) для преобра- зования каждой из групп одного слоя в матрицу. Корневая матрица — это матрица размером 1X1, содержащая единственный узел. Матрица в следую- щем слое дерева — матрица размера 2X2 из четырех потомков корневого узла, дополненная линиями связи между ними, т. е. братскими связями. 406 \ \
Каждый набор из четырех потомков узла также геометрически представля- ется в виде подматрицы размера 2X2, помещенной рядом с подматрицами- братьями и другими соседними узлами своего слоя. Таким образом, двумер- ные геометрические связи матрицы покрываются топологией дерева. Термин квадродерево был использован для определения варианта данной структуры — дерева, наибольший из слоев которого преобразован в матрич- ную структуру или используется для ввода образа матрицы. Промежуточ- ные ярусы не имеют горизонтальных линий связи для образования матрич- ной структуры. Квадродеревья — очень полезные структуры для решения задач сжатия, запоминания, описания и восстановления больших двумерных изображений. Октодерево имеет восемь потомков, организованных в трех- мерную пространственную конструкцию размером 2X2X2, вследствие че- го оно может использоваться как четырехмерное дерево, воспринимающее и обрабатывающее трехмерные изображения (или другие информационные множества), вводимые в его базовую матрицу — матрицу почек. В более общем виде можно определить С-конвергентное1 D-мерное дере- во CD. Например: дерево размера 22 - квадродерево, дерево размера 23 - октодерево, дерево размера З2 — дерево степени 9, в котором каждый узел имеет девять потомков, организованных в подматрицу размера 3X3. Дерево размера З5 - есть дерево степени 243, где каждый узел имеет 243 потомка, организованных в пятимерную конструкцию, каждая из сторон ко- торой образована тремя узлами. Мы можем расширить это определение включением числа слоев Р в дере- ве в деревья CD, Р. Число слоев равно log^D, где В — число ’’почек” дерева. Естественно, что B=NXN, где N — длина и ширина базовой матрицы размера NXN, кото- рая присоединяет ’’почки”. Таким образом, дерево 22, log22 (256) является четырехсловным квадро- деревом, базовая матрица которого имеет 256 ’’почек”, организованных в матрицу размера 256X256. Пирамида CD, Р, S похожа на дерево CD, Р, но с добавлением в каждом слое линий связи с братьями для образования матрицы. 23.10. РАЗЛИЧНЫЕ СПОСОБЫ ВИДОИЗМЕНЕНИЯ ПИРАМИД Возможен ряд вариаций на основе пирамидальных построений. Наиболее интересными являются следующие. 1. Конвергенция (С) может быть любым небольшим целым числом. (Воз- можен также выбор дробных значений посредством интерполяции, что мо- жет явиться привлекательным способом расширения последовательности преобразований в пирамиде.) 1 Ввиду отсутствия соответствующего термина в русском языке, переводим слово ’’convergence” как конвергенция. Конвергенцию можно понимать как показатель связи при объединении подматриц в узлы. - Прим, перев. МУ1
2. Возможны разные значения конвергенции между различными пара- ми слоев. 3. Может отсутствовать конвергенция между частью пар или всеми пара- ми слоев (в этом случае система преобразуется в трехмерную прямоуголь- ную матрицу), т.е. показатель связи С может быть установлен равным 1. 4. Конвергенции по строкам и столбцам могут различаться (это может быть полезным при обработке прямоугольных, а не квадратных изобра- жений) . 5. Родители могут располагаться на расстоянии S (одного шага) друг от друга. Тогда при С-S пирамида не имеет перекрытия; при OS каждый из предков делит потомков с непосредственными соседями, образуя пере- крытие. Привлекательные возможности имеются при С~3 и S =2, когда каж- дый из родителей связан с окном из 3X3 потомков и родители расположе- ны над каждым вторым потомком (что дает связь 2X2) . 6. В отличие от организации связей в соответствии с рангом дерева или пирамиды, дающей пирамиды размером O(logTV), в другой очень простой схеме они организуются за Nшагов. Это достигается простым построением матриц со связями между диагоналями наряду со связями между ортого- нальными соседями, а также ликвидацией всех узлов вне пирамиды, как показано для двумерного случая на рис. 23.6. В отличие от ранее опреде- ленных и описанных пирамид размером О (log N) такие пирамиды можно рассматривать как пирамиды О (N) . Такие матрицы могут оказаться пригод- ными для решения многих практических задач, но по сведениям, которыми располагает автор, они совершенно не исследованы. При построении этих матриц, имеющих достаточно большие размеры для обработки реальных изображений, т.е. с базовой матрицей размера 512X512 и более, присущие им расстояния N/2 цдя преобразования изображения и передачи сообщений, а также число узлов, равное O(N3), а не O0V2), представляются чрезмерно большими. 7. Связи с братьями и потомками могут меняться, например девять линий связи с братьями и четыре с потомками или наоборот. 8. Пирамида может быть усечена, когда небольшая верхняя часть матрицы удаляется или заменяется более мощными вычислителями другого типа. Л п-п-п п-п-п-п-п п-п-п-п-п-п-п Рис. 23.6. Двумерная пирамида размером O(N). Каждый процессор соединен по диаго- налям с двумя соседними (на рис. не показано) в двух прилегающих слоях (или толь- ко с одним из соседей в меньшем верхнем слое, если процессор находится на перифе- рии) . Таким образом, каждый слой содержит на два процессора меньше, чем сосед- ний нижний слой, а вся пирамида состоит из 7V/2 слоев (N — длина одной стороны пи- рамиды) / X 408 \
23.11. РЕАЛИЗАЦИЯ ПИРАМИД Большое и все возрастающее число специалистов занимается анализом свойств пирамид и их применением, и множество алгоритмов уже приспо- соблено к выполнению базовых операций по обработке изображений [10, 13, 18, 29, 32, 33]. Однако лишь три-четыре специалиста основательно иссле- довали вопросы архитектуры пирамид и подошли к предложению много- процессорных систем пирамидальной архитектуры [5, 27, 28, 30, 34—37]. Только одна из них в настоящее время реализована конструктивно. Этот пирамидальный процессор обработки изображений PIP (Pyramid image processon) разработан совместно фирмой Boeing Aerospase и Вашингтон- ским университетом [21] на основе идей [27, 28, 30]. Планируется, что та- кой процессор будет иметь базовую матрицу, состоящую из 128X128 про- цессоров. Он представляет собой полную пирамиду с конвейеризацией глу- биной 2 без перекрытий. Таким образом, вся пирамида содержит восемь слоев: 128X128, 64X64, 32X32, 16X16, 8X8, 4X4, 2X2 и 1X1 на вершине. Каждый процессор в составе PIP связан с четырьмя потомками в нижнем слое (это и дает связи вида 2X2), восемью соседними (а также с собствен- ной памятью) в своем слое, а также с его единственным родителем. Таким образом, каждая базовая команда может выбирать слово информации из любого набора блоков памяти этих четырнадцати процессоров (включая собственную) и производить вычисления на основе этой информации. Это означает, что информация может передаваться вверх и (или) вниз или по горизонталям матрицы процессоров. В настоящее время разрабатывается кристалл, который объединит 64 процессора (связанных с ЗУПВ кристалла) одним из двух способов в за- висимости от того, насколько хорошо отдельные модули, которые уже про- ходят проверку, можно будет объединять: либо 4 процессора по отдель- ности будут производить обработку 16 элементов растра каждый (в целом за 2 мкс), либо 8 процессоров будут последовательно обрабатывать по 8 элементов каждый (всего за 1 мкс). 23.12. АРХИТЕКТУРА ПРОБЛЕМНО-ОРИЕНТИРОВАННЫХ СИСТЕМ ДЛЯ ПРЕОБРАЗОВАНИЯ ПОТОКОВ ДАННЫХ Программа разрабатывается для реализации алгоритма, который, в свою очередь, выбирается для выполнения набора преобразований информации (данных). Как преобразования, так и информация имеют собственную структуру, и хороший алгоритм должен следовать этой структуре. Такой проблемно-ориентированный алгоритм наилучшим образом размещается в многопроцессорной сети так, что операции организуются как на сбороч- ном конвейере, а информация продвигается также как бы через конвейер. Это дает поток, похожий на транспортный, но уже поток данных о двумер- ном изображении, и этот поток проходит по трехмерной структуре, т.е. этот процесс гораздо сложнее, чем в современных одномерных конвейе- рах. Такая структура имеет некоторые аналогии с живым мозгом, через который проходят данные от органов чувств. 409
Такая хорошо организованная сеть может в действительности содержать подсистемы различной структуры, в том числе и матрицы. Она также может содержать программно-управляемые коммутаторы, которые могут исполь- зоваться для реконфигурации структуры с целью лучшего соответствия различным программам и даже различным процессам одной программы. Большие двумерные образы прекрасно размещаются в больших матрич- ных структурах, и большие матричные многопроцессорные системы спо- собны очень эффективно производить последовательности операций по обработке поэтапно преобразуемого изображения. Пирамидальные процессоры в дополнение к этому позволяют програм- мисту свертывать и сжимать запоминаемую информацию о преобразован- ном изображении, когда необходимо сократить объем этих данных. Напри- мер, при использовании окна размером 3X3 для вычисления градиента изображение может быть передано на следующий слой 3-конвергентной пи- рамиды. Когда несколько штрихов или других элементов, содержащихся в окне размером 2X2, 3X4 или 7VX7V, объединены в один элемент высокого уровня, матрица, в которой запоминаются их данные, может быть соответ- ственно меньшего размера. В пирамиде есть локально-соседние связи, соот- ветствующие обработке информации, взаимодействия в которой локаль- ны, как и связи, подходящей для эффективного сокращения информацион- ных потоков и передачи сообщений структуры. Представляется, что пира- мидальные процессоры потенциально должны обеспечивать чрезвычайно вы- сокую мощность при обработке потоков изображений в реальном масшта- бе времени (например, с телевизионной камеры, выдающей кадр изображе- ния каждые 30 мс) благодаря конвейерной организации обработки таких двумерных изображений при сложной последовательности операций поэтап- но нарастающей глобальности, выполняемых в различных слоях трехмерной пирамиды. 23.13. СООТВЕТСТВИЕ МАТРИЧНЫХ И ПИРАМИДАЛЬНЫХ ПРОЦЕССОРОВ ТЕХНОЛОГИИ СБИС Процессоры, используемые в матричных и пирамидальных системах, обычно стремятся сохранить чрезвычайно простыми. Почти во всех вариан- тах систем использовались одноразрядные процессоры с числом вентилей от 100 до 800. Причиной этого является то, что для достижения четырех- кратного и большего увеличения скорости и вычислительной мощности обработки благодаря последовательному наращиванию числа параллель- но работающих процессоров архитекторы систем выбирали для использо- вания наиболее простые из возможных одноразрядные процессоры, обеспе- чивая выполнение К одноразрядных операций дня обработки А"-разрядных чисел или строк. По-видимому, объем памяти, необходимый каждому процессору, явля- ется функцией от общего объема памяти, необходимого для обработки изображений или других наборов данных, поступающих в систему. Поэтому каждый процессор нуждается в памяти относительно небольшого объема (реализованные системы снабжены памятью от 32 до 4096 бит на процессор). 410 /
Процессоры объединяются в высокорегулярную микромо дульную сис- тему, которая является одной из наиболее пригодных для реализации в ви- де СБИС при высокой плотности упаковки. В настоящее время по четыре, восемь и более таких одноразрядных процессоров выпускаются в одном кристалле СБИС. Ввиду высокоинтег- рированной микромодульной конструкции таких систем вскоре должно стать возможным производство в одном кристалле сотен и даже тысяч про- цессоров с собственной памятью для каждого. Это резко контрастирует с реализацией в СБИС обычных однопроцессорных систем, для которых (да- же при возможности упаковки одного или нескольких процессоров на од- ном кристалле) останется необходимым наличие нескольких кристаллов для работы с несколькими миллионами байт быстродействующей памяти каждого из процессоров. Многопроцессорные матричные и пирамидальные системы из 1024 или более процессоров можно будет построить на основе матрицы размером 16X16, т.е. всего из 256 кристаллов, в каждом из которых содержится мат- рица размером 64X64 из 4096 400-элементных процессоров с памятью объемом 512 бит. Такая матрица или пирамида, основанием которой была бы матрица, содержащая не более одной трети числа процессоров в основа- нии, может быть реализована на достаточно небольшом числе кристаллов со степенью интеграции 107, упакованных на одной пластине. Высокорегуляр- ная микромодульная матричная или пирамидальная структура является осо- бенно привлекательной для изготовления отказоустойчивой СБИС с интегра- цией на уровне пластины. 23.14. ЗАКЛЮЧЕНИЕ В начале данной главы исследуются и описываются параллельные матрич- ные, конвейерные и некоторые другие многопроцессорные системы, как обеспечивающие огромный потенциальный рост производительности и вычис- лительной мощности. Действительно, любой граф, узлами которого явля- ются отдельные процессоры, а дугами — непосредственные связи между ни- ми, сейчас можно разместить в конкретной многопроцессорной системе. Затем внимание концентрируется на сравнительно новой топологии, ко- торая представляется особенно подходящей для обработки изображений, распознавания образов и машинного зрения. Это топология, при которой последовательно уменьшающиеся матрицы объединяются в единую пирами-, дальную структуру. Каждый слой пирамидальной системы может достигать такой же потенциально высокой производительности обработки, как и со- поставимые по размерам матричные процессоры, поскольку каждый ее слой в сущности и является матричным процессором. К тому же все слои пирамидальной системы могут работать одновременно. Важно и то, что внутренняя древовидная топология пирамиды определяет возможность накопления и объединения информации по мере поэтапного преобразования изображения. Части одного и того же объекта, которые первоначально далеко отстояли друг от друга, поэтапно сближаются (и в то 411
же время они поэтапно преобразуются в большие по размерам и более гло- бальные подобъекты). Таким образом, древовидная структура из большого числа простых и локальных детекторов элементов изображения может слу- жить для распознавания больших и сложных объектов. По объему сообще- ний размер пирамиды О (log Л) является существенным улучшением в срав- нении с размером матрицы O(N) . Действительно, на практике при обработке изображений размером от 256X256 до 1024X1024 элементов это является существенным различием. Матричные, конвейерные и в особенности пирамидальные структуры обес- печивают увеличение производительности и вычислительной мощности на несколько порядков по сравнению с традиционными ЭВМ с одним централь- ным процессором. Представляется, что они особенно пригодны для обработ- ки изображений, распознавания образов и в системах технического зрения. Они также хорошо соответствуют требованиям технологии СБИС благодаря своей регулярной микромодулыюй структуре. СПИСОК ЛИТЕРАТУРЫ [1] К. Е. Batcher, “Design of a Massively Parallel Processor,” IEEE Trans. Comput., 29:836-840 (1980). [2] A. M. Despain and D. A. Patterson, “X-Tree: a Tree Structured Multi-processor Com- puter Architecture,” Proc. 5th Annu. Symp. Comput. Arch., Apr. 1978, pp. 144-151. [3] M. J. B. Duff, CL1P4: “A Large Scale Integrated Circuit Array Parallel Processor,” Proc. IJCPR-3, 4:728-733 (1976). [4] M. J. B. Duff, personal communication, 1982. [5] C. R. Dyer, “Pyramid algorithms and machines,” in: K. Preston, Jr., and L. Uhr, eds., Multicomputers and Image Processing, Academic Press, New York, 1982, pp. 409-420. [6] D. J. Farber and К. C. Larson, “The System Architecture of the Distributed Computer System—The Communications System,” Symp. Comput. Networks, Polytechnic Institute of Brooklyn, Apr. 1972. [7] R. A. Finkel and M. H. Solomon, “Processor Interconnection Strategies,” Comput. Sci. Dept. Tech. Rep. 301, University of Wisconsin, 1977. [8] R. A. Finkel and M. H. Solomon, “The Lens Interconnection Strategy,” Comput. Sci. Dept. Tech. Rep. 387, University of Wisconsin, 1980. [9] J. R. Goodman and A. M. Despain, “A Study of the Interconnection of Multiple Processors in a Data Base Environment,” Proc. 1980 Int. Conf. Parallel Process., 1980, pp. 269-278. [10] A. R. Hanson and E. M. Riseman, “A Progress Report on VISIONS,” COINS Tech. Rep. 76-9, University of Massachusetts, 1976. [11] E. W. Kozdrowicki and D. J. Thies, “Second Generation of Vector Supercomputers,” Computers, /3:71-83 (Nov. 1980). [12] B. Kruse, “The PICAP Picture Processing Laboratory,” Proc. IJCPR-3, 4:875-881 (1976). [13] M. D. Levine, “A Knowledge-Based Computer Vision System,” in A. Hanson and E. Riseman, eds., Computer Vision Systems, Academic Press, New York, 1978, pp. 335-352. [14] G. A. Mago, “A Cellular Computer Architecture for Functional Programming,” Proc. COMPCON Spring 1980, 1980, pp. 179-187. 412
[15] R. Manara and L. Strihga, “The EMMA System: An Industrial Experience on a Multi- processor/’ in M. J, B. Duff and S. Lerialdi, eds., Languages and Architectures for Image Processing, Academic Press, London, 1981. [16] S. F. Reddaway, “DAP-—A Flexible Number Cruncher,” Proc. 1978 LASL Workshop Vector Parallel Process., Los Alamos, 1978, pp. 233-234. [17] S. F. Reddaway, personal communication, 1982. [18] A. Rosenfeld, ed., Multi-resolution Systems for Image Processing, North-Holland, Am- sterdam, 1983, in press. [19] H. J. Siegel, “A Model of SIMD Machines and a Comparison of Various Interconnec- tion Networks,” IEEE Trans. Comput., 28:9W1 917 (1979). [20] H. J. Siegel, “PASM: A Reconfigurable Multimicrocomputer System for Image Pro- cessing,” in M. J. B. Duff and S. Levialdi, eds., Languages and Architectures for Image Processing, Academic Press, London, 1981. [21] W. Snapp, personal communication, 1982. [22] S. R. Sternberg, “Cytocomputer Real-Time Pattern Recognition,” 8th Pattern Recogni- tion Symp., National Bureau of Standards, 1978. [23] S. R. Sternberg, personal communication, 1982. [24] H. S. Stone, “Parallel Processing with the Perfect Shuffle,” IEEE Trans. Comput., 20:153 161(1971). [25] H. Sullivan, T. Bashkov, and D. Klappholz, “A Large Scale, Homogeneous, Fully Distributed Parallel Machine,” in Proc. 4th Annu. Symp. Comput. Arch., 1977, pp. 105- 124. [26] R. J. Swan, S. H. Fuller, and D. P. Siewiorek, “Cm*—A Modular, Multi- microprocessor,” Proc. AEIPS NCC, 1977, pp. 637-663. [27] S. L. Tanimoto, “Towards Hierarchical Cellular Logic: Design Considerations for Pyramid Machines,” Computer Science Dept. Tech. Rep. 81-02-01, University of Wash- ington, 1981. [28] S. L. Tanimoto, “ Programming Techniques for Hierarchical Parallel Image Processors,” in K. Preston, Jr., and L. Uhr, eds., Multi-computers and Image Processing, Academic Press, New York, 1982, pp. 421 429. [29] S. L. Tanimoto and A. Klinger, eds., Structured Computer Vision, Academic Press, New York, 1980. [30] S. L. Tanimoto and J. J. Pfeiffer, Jr., “An Image Processor Based on an Array of Pipelines,” Proc. Workshop on Computer Architecture for Pattern Analysis and Image Data Base Management, IEEE Computer Society Press, 1981, pp. 201-208. [31] K. J. Thurber, Large Scale Computer Architecture, Hayden, Rochelle Park, N.J., 1976. [32] L. Uhr, “Layered ‘Recognition Cone' Networks That Preprocess, Classify and De- scribe,” IEEE Trans. Comput., 21:758 768 (1972). [33] L. Uhr, “‘Recognition Cones’ and Some Test Results,” in A. Hanson and E. Riseman, eds.. Computer Vision Systems, Academic Press, New York, 1978, pp. 363-372. [34] L. Uhr, “Converging Pyramids of Arrays,” Proc. Workshop on Computer Architecture for Pattern Analysis and Image Data Base Management, IEEE Computer Society Press, 1981, pp. 31 34. [35] L. Uhr, Algorithm-Structured Computer Arrays and Networks: Parallel Architectures for Perception and Modelling, Academic Press, New York, 1984. 413
[36] L. Uhr, “Pyramid Multi-computer Structures, and Augmented Pyramids,” in M. Duff, ed., Computing Structures for Image Processing, Academic Press, London, 1983, in press. [37] L. Uhr, “Pyramid Multi-computers, and Extensions and Augmentations,” in D. Gannon, H. J. Siegel, L. Siegel, and L. Snyder, eds., Algorithmically Specialized Com- puter Organizations, Academic Press, New York, 1984, in press. [38] L. D. Wittie, “MICRONET: A Reconfigurable Microcomputer Network for Distrib- uted Systems Research,” Simulation, 37:145-153 (1978). 24 ПАРАЛЛЕЛЬНЫЕ АЛГОРИТМЫ ДЛЯ АНАЛИЗА ИЗОБРАЖЕНИЙ А, Розенфелд1 24.1. ВВЕДЕНИЕ В системах обработки и анализа изображений (ОАИ) используется широ- кий круг методов кодирования, преобразования, сегментации и измерения характеристик изображения. Многие из этих методов пригодны для эффек- тивной параллельной обработки. В данной главе рассматриваются некоторые основные классы алгоритмов ОАИ и демонстрируется, как такие алгоритмы могут быть распараллелены и реализованы на различных видах ячеечных многопроцессорных систем. По тематике ОАИ выпускается много литературы. Имеется как минимум дюжина учебников [1 — 12], охватывающих основную часть предмета, не считая книг по конкретным проблемам и подборок статей. Последний биб- лиографический ежегодник приведен в статье [13]; он охватывает в основ- ном не ориентированную на приложения американскую литературу и вклю- чает до 1000 наименований в год. Ссылки на конкретные алгоритмы (клас- сы алгоритмов) в данной главе не приводятся. Около 25 лет назад было впервые высказано предположение [14] о воз- можности параллельной реализации алгоритмов ОАИ в машинах с ячеечной матричной структурой (рис. 24.1) — двумерной матрицей процессоров (яче- ек) , работающих синхронно и связанных каждый со своими соседями в мат- рице. Было построено несколько машин такого типа с размером матриц до 128X128. Было разработано множество алгоритмов ОАИ, подходящих для реализации на ячеечных матрицах (общие сведения можно найти в работах [15, 16]). В последнее время наметился интерес к использованию пирамид ячеечных матриц размером 2"X2W, 2W~1X2W~1, . . . , 2X2, 1X1, где каждая ячейка связана не только со своими соседями-братьями на собственном уров- не, но также и с четырьмя своими ’’детьми” на уровне, расположенном ни- же, и’’родителем” на верхнем [15,17] (рис. 24.2). 1 Мэрилендский университет, Колледж-Парк, Мэриленд.
Уродень I +/ Рис. 24.1. Ячеечная матрица Уровень I Рис. 24.2. Ячеечная пирамида Ячеечные матрицы или пирамиды пригодны для выполнения многих ти- пов операций ОАИ на уровне элементов растра. С другой стороны, в неко- торых операциях анализа изображений, выполняемых над участками изоб- ражения, используются не матрицы элементов растра, а некоторые другие структуры данных для представления участков и их связей. Для таких опе- раций больше подошел бы более общий класс матричных машин графояче- ечной структуры, в котором ячейки, соответствующие узлам графа, связа- ны со своими соседями в соответствии с дугами графа. О таких графояче- ечных машинах можно прочесть в [18, 19]; об архитектуре систем, соот- ветствующих более частным типам структур данных, см. [20 — 22]. 24.2. ОБРАБОТКА НА УРОВНЕ ЭЛЕМЕНТОВ РАСТРА Любой цифровой образ есть прямоугольная матрица элементов растра. Элемент является, как правило, целочисленным (наиболее часто использу- ется 8-разрядное целочисленное представление), но может быть представ- лен также в вещественной, комплексной и векторной форме (в случае цветного изображения). В данном разделе описываются алгоритмы обработ- ки матриц элементов растра. 24.2.1. Точечная и локальная обработка Большинство операций, обычно выполняемых при ОАИ, преобразуют изображение в изображение, при этом значение элемента в выходном обра- зе зависит только от значения соответствующего элемента и, возможно, некоторых близлежащих элементов во входном образе или образах. При- мером таких операций являются: 415
1) увеличение контрастности с помощью тонового преобразования; при этом новое значение элемента зависит только от его прежнего значения, оп- ределенного исходным заданием; 2) увеличение резкости, например, с помощью лапласовской фильтрации, основанной на различии между значением элемента и средним уровнем значений соседних с ним элементов; 3) сглаживание локальным усреднением (нахождение усредненного, воз- можно, взвешенного значения элемента и некоторых соседних с ним элемен- тов), с помощью медианной фильтрации или усреднением множества изобра- жений ит.д.; 4) сегментация путем сравнения с порогом (элемент принимает новое значение 1 или 0 в зависимости от того, превышает ли прежнее значение ус- тановленный порог) или, в более общем виде, в соответствии с классифи- кацией элементов по набору характеристических величин (по компонентам цветности, локальным характеристикам и т. д.); 5) выделение контура (или другой локальной характеристики), основан- ное на вычислении разности значений соседних элементов; 6) расширение или сжатие; новое значение элемента является максималь- ным или минимальным в группе значений окружающих его элементов (в не- которых случаях, например при изменении ширины, перед изменением элемента должны быть соблюдены дополнительные условия). Отметим, что некоторые из этих операций линейны и поэтому являются свертками, но большинство — нет. Операции этих типов могут очень эффективно выполняться на ячеечных матричных машинах, содержащих в идеале по процессору на каждый эле- мент. Каждый из процессоров собирает данные от своих соседей, а затем вычисляет требуемую функцию от этих величин. Необходимое для этого время зависит от размеров окружающих элементов и сложности операции, но не от размеров изображения. Если не имеется достаточного числа процес- соров, то изображение можно обрабатывать поблочно, используя необходи- мое перекрытие между блоками для устранения граничных эффектов. 24.2.2. Преобразования * Над изображениями часто выполняются различные виды интегральных преобразований (или их дискретных вариантов) ; наиболее общим их приме- ром является преобразование Фурье. В случае преобразований выходным изображением также является матрица того Же размера, что и входная, но соответствия между их элементами уже нет. Преобразования обычно разделимы так, что они могут производиться сначала по строкам, а затем по столбцам; тогда значение нового элемента является линейной комбина- цией значений элементов строки (или столбца) изображения. При выполнении преобразований на обычной ЭВМ можно использовать эффективные алгоритмы, например быстрое преобразование Фурье, для ко- торого требуется О(п log и) операций вместо О(п2) по каждой строке или столбцу; общий объем вычислений для изображения размером пХп при 416 С\
этом составляет О(п2 log п). Здесь игнорируются проблемы доступа к изоб- ражению, располагаемому во внешней памяти, а также возможной необхо- димости в транспонировании изображения для обеспечения эффективного дост/па к нему как по строкам, так и по столбцам. В ячеечной матричной ма- шине строки или столбцы могут преобразовываться параллельно, а время, необходимое для преобразования каждой строки, равно О(п) (каждый элемент должен быть перемножен на п коэффициентов, а результаты умно- жения сгруппированы и просуммированы); таким образом, общее время преобразования также равно О (п). Над изображением можно выполнить много полезных типов операций, например свертку, выполняя прямое преобразование Фурье, перемножая поточечно его результаты на соответствующие весовые функции (или по- точечно перемножая преобразования двух изображений), а затем выполняя обратное преобразование Фурье над результатами для получения обработан- ного изображения. При этом общее время преобразования матричной маши- ны также составит всего О(п). Для сверток с большим числом весов это может оказаться более эффективным, чем непосредственное выполнение свертки при параллельном сборе информации о близлежащих элементах. 24.2.3. Геометрическая обработка Следующий класс операций типа ’’изображение—изображение” исполь- зует геометрические преобразования изображений (например, масштабиро- вание, вращение или произвольную ’’деформацию” для корректирования геометрических искажений или сличения с другим изображением). В дан- ном случае выходные элементы растра соответствуют входным, но не один к одному (даже такое преобразование, как вращение, будучи выполнено в цифровой форме, не дает однозначного соответствия). Для выполнения та- ких преобразований над некоторым изображением следует вычислить для каждого элемента выходного растра соответствующую позицию во входном (которая в общем случае не совпадает с позицией входного элемента). За- тем следует присвоить значение этой выходной позиции, интерполировав значения близлежащих входных элементов. Основой метода выполнения геометрических преобразований в ячеечной матричной машине является закрепление за каждым процессором выход- ного элемента и сканирование входного изображения таким образом, чтобы каждый процессор мог получить входные величины, необходимые ему для вычисления выходных. Для иллюстрации того, как это может быть сделано за О(п) шагов, обозначим через Sy множество входных элементов, необ- ходимых для вычисления выходного элемента (/,/); пусть Rj обозначает z-ю строку, а Су — /-й столбец. Будем считать, что для всех i nj множество КЦ-5^) АЛг-| ограничено, т.е., другими словами, число входных элементов в данной строке Ri9 значение которого требуется знать для выходных элемен- тов в данном столбце Су, ограничено. (Это утверждение не является спра- ведливым для всех возможных преобразований; например, оно ложно для операции транспонирования. Тем не менее для любого общепринятого гео- 417
метрического преобразования существует такая пара направлений — не обя- зательно по строкам и столбцам, для которой аналогичное условие выполня- ется.) Затем циклически сдвинем входные данные по строкам, дав возмож- ность каждой ячейке собрать все данные в множество | (Ц-5^) ПЛ 1 по мере продвижения, а собранные данные циклически сдвинем по столбцам так, чтобы каждая ячейка (/,/) выбрала необходимые ей величины, т.е. величи- ны из множества Sz-y. 24.2.4. Измерение характеристик Теперь рассмотрим операции преобразования входного изображения не в выходное, а в набор значений характеристик изображения. Примерами та- ких операций являются: 1) определение наличия или отсутствия конкретного значения элемента растра или расчет статистических характеристик (минимального, макси- мального, медианного значений, диапазона, среднеквадратического откло- нения и т. д.); 2) подсчет числа появлений конкретного значения, например: число единиц в двоичном изображении характеризует площадь единичных значе- ний; число возможных значений определяет гистограмму тонового изоб- ражения; число пар элементов с данным относительным расположением, характеризуемых возможной парой значений, определяет ’’матрицу совмест- ных реализаций” изображения, которая полезна при описании его текстуры. Отметим, что в двух последних случаях участвуют к или к2 характеристик, где к — число тонов; 3) подсчет числа связанных участков из элементов, имеющих определен- ное значение; это стандартный метод подсчета объектов в сегментированном изображении. В ячеечной матричной машине объем таких операций составляет О(п), так как для подсчета значений элементов растра и статистических вычисле- ний нужно сконцентрировать их в одном месте, а это требует для организа- ции связи дополнительного числа шагов, пропорционального размеру матри- цы. Подсчет связанных участков требует предварительных шагов вычисле- ний, при выполнении которых число элементов каждого из участков сокра- щается до одного, но это также может быть выполнено за время О(п) при использовании специальных процессов сжатия. Статистические вычисления и подсчет в пирамидальной матричной маши- не (см. разд. 24.1) могут быть выполнены за время О (log и). Значение каж- дого элемента передается ’’родителю”, который подсчитывает или объеди- няет значения, полученные от его ’’детей”, и передает результаты своему ’’родителю”; таким образом, через log п шагов (число уровней) ячейка на вершине пирамиды получает окончательное требуемое значение. Отметим, что в этом процессе используются только вертикальные связи между уровня- ми пирамиды, но не используются собственные связи данного уровня; та- ким образом, для преобразования требуется только ячеечная древовидная машина, в которой элементы растра расположены как листья. Подсчет связанных участков требует горизонтальных связей \в основании пирами-
ды для выполнения шагов сжатия, которые тоже выполняются за время О(п); следовательно, пирамида не обеспечивает больших преимуществ при подсчете числа участков, а также не дает большого выигрыша при вы- полнении операций типа ’’изображение—изображение”. 24.3. ОБРАБОТКА НА УРОВНЕ РЕГИОНОВ 24.3.1. Представление регионов Участок изображения (регион), или фактически любой набор его точек, может быть представлен двоичным изображением-маской, в котором все точки, принадлежащие набору, имеют значение 1, а все другие — значение 0. Такое представление имеет то преимущество, что находится в определен- ном соответствии с исходным изображением, однако его недостатком яв- ляется необходимость в памяти объемом п2 независимо от сложности дан- ного региона. Регионы могут представляться и другими способами, при ко- торых для представления простых регионов требуется меньший объем па- мяти. Более того, можно вычислять свойства регионов и получать новые регионы из данных, обрабатывая непосредственно представления. Выполне- ние таких операций также можно реализовать параллельно, но при этом ар- хитектура процессорной матрицы уже не будет для этого подходить, так как представления теряют подобие с матрицами. В данном подразделе рас- сматриваются некоторые стандартные представления регионов и возмож- ности их параллельной обработки при использовании соответствующих многопроцессорных систем. Регион может быть определен указанием его границ (он может иметь более одной границы при наличии дыр); для каждой из границ необходимо указать координаты начальной точки, а также последовательность кодов, определяющих перемещения от точки к точке по границе [3 бита на пере- мещение, поскольку последовательные элементы растра являются соседни- ми и имеют всего по восемь непосредственных соседей (рис. 24.3,а,б)]. Естественная архитектура для параллельной обработки граничных кодов [20] состоит из процессоров, объединенных в кольцевые структуры, где каждое из колец представляет границу (по процессору на код). Время вы- числения в последовательной машине характеристик регионов, представ- ленных таким образом, составляет О(т) , где т — длина границы; одна- ко некоторые задачи, время последовательного решения которых состав- ляет О(т2), могут быть выполнены за время О(т) в системе кольцевой структуры (например, вычисление граничных кодов объединения или пере- сечения двух объектов, заданных граничными кодами). Другим способом представления региона является отображение каждой строки его изображения в виде ряда проходов последовательностей нулей, заменяемых на последовательности единиц. Каждая строка определяется указанием начального значения (1 или 0) и длин последовательностей (рис. 24.3,в). Характеристики региона и коды длин последовательностей произ- водных регионов могут вычисляться непосредственно из кодов заданного региона. Простая схема для параллельной обработки проходов может сос- 419
00000000 00000000 0 0 1 0 0 0 0 0 1111110 0 1111110 0 1111110 0 111110 0 0 111110 0 0 a) 0210303332322515 0:8 0:8 0:2, 1, 5 0:6, 2 0:6, 2 0:6, 2 0:5, 3 0:5, 3 6) к у г 2 2 2 2 5 0 4 3 1 б) г) Рис. 24.3. Представления регионов: а — регион (единицы) ; б — коды границ (по часовой стрелке, начиная слева сверху) ; i = 9 Of, a обозначает к повторений; в — коды длин последовательностей: для каж- дой строки за обозначением первого элемента растра следует список длин последова- тельностей; г — преобразование осей: центры (х, у) и радиусы (г) максимальных блоков; левый нижний угол изображения (0,0); д — квадродерево: порядок ’’сыно- вей” каждого узла, , , . Узлы-листья помечены их значением тоять из строк процессоров, каждая из которых содержит длины для соот- ветствующей строки растра. Большую эффективность можно получить при установлении прямых связей между строками процессоров, представляю- щими соседние строки растра, где каждый из процессоров, представляю- щих заданную строку растра, непосредственно связан с процессорами, пред- ставляющими прилегающие строки. Такой подход к параллельной обработ- ке регионов нельзя считать достаточно полно исследованным (см. [21]). Проходы — это горизонтальные ’’полоски” максимальной длины из эле- ментов растра с постоянными значениями; более компактной формой представления региона является использование двумерных блоков элемен- тов растра с постоянными значениями. Каждый из таких блоков определя- ется указанием его центра и радиуса, а регион является объединением бло- ков (рис. 24.3,г). Такое представление было предложено около 20 лет на- зад, однако оно не применялось сколько-нибудь широко, поскольку по не- му трудно вычислить характеристики региона или поручить новые регионы непосредственно из-за перекрытия блоков и их несистематического распо- 420 \
ложения. В некоторых случаях может оказаться возможным представление региона в виде’’обобщенныхлент” где каждая лента есть объединение наи- больших блоков, центры которых лежат на некоторой кривой. Такое пред- ставление гораздо более продуктивно, и обработка может вестись парал- лельно за счет размещения кода (т.е. последовательности перемещений и соответствующих радиусов) каждой кривой в строке процессоров; такая возможность еще не исследовалась. Другой тип представления региона максимальными блоками может быть основан на рекурсивном разбиении заданного двоичного образа на квадран- ты, подквадранты и т.д. до получения блоков постоянных размеров. Полу- ченная структура блоков может быть представлена деревом 4-й степени (квадродеревом), в котором маршрут соответствует целому образу, а уз- лы-потомки — его квадрантам (рис. 24.3,Э). Для изображения размером и Хи, где п — степень числа 2, высота дерева не превышает log2 и, а каждый лист дерева представляет блок изображения, целиком состоящий из нулей или единиц. Характеристики региона и квадропредставления производных регионов могут вычисляться из квадропредставлений заданных регионов при последовательном обходе дерева. Для параллельного выполнения дан- ных операций могут быть эффективно использованы квадрообъединения процессоров [22]. Для представления многомерных изображений в виде объединений однородных блоков (например, блоков с постоянными зна- чениями или блоков, в которых среднеквадратическое отклонение значе- ний элементов растра невелико) можно использовать обобщенный вариант данного подхода, при котором блок делится на квадранты тогда и только тогда, когда он неоднороден. 24.3.2. Характеристики и отношения регионов Описанные представления регионов особенно полезны при работе с ба- зами данных регионов (например, в цифровой картографии). При анализе изображений такие представления используются для измерения характерис- тик регионов и получения новых регионов из заданных. В этом разделе рас- смотрим более абстрактный уровень обработки, при котором регионы не полностью определены, а представлены перечнями их характеристик. На этом уровне разбиение изображения может быть представлено в виде графа, уз- лы которого соответствуют регионам, отмеченным списком значений харак- теристик, а дуги — связанным парам регионов (например, прилегающих) от- меченных значениями отношений (например, длиной общей границы). Прос- той пример приведен на рис. 24.4. Разбиение может быть модифицировано слиянием пар регионов, основан- ным на информации, даваемой представлением в виде графа, без необходи- мости обращения к исходному изображению; граф нового разбиения может быть построен непосредственно из заданного. Например, предположим, что граф содержит информацию о площади, периметре и среднем значении элементов растра каждого региона, а также длину общих границ каждой пары прилегающих регионов. Возможные критерии слияния пар прилегаю- 421
a) Рис. 24.4. Регионы (а) и граф их расположения (б) щих регионов могут быть следующими: их средние значения весьма близ- ки; их площади сильно различаются; длина общей границы составляет большую часть длины их периметров (или одного из них). Эти критерии могут быть проверены непосредственно по графу. Более того, если мы ре- шили слить два региона, то можно построить новый граф непосредственно из старого замещением двух старых узлов одним, связанным со всеми со- седями старого узла. Характеристики нового узла могут быть вычислены следующим образом: его площадь равна сумме площадей старых узлов; среднее значение его элементов является взвешенным средним старых значений пропорционально площадям; его периметр является суммой ста- рых, из которой вычитается длина общей границы. Наконец, длина общей границы между новыми узлами и их соседями может быть вычислена не- посредственно из длин границ старых узлов; они остаются прежними, за исключением случая, когда старые узлы имели общих соседей, и обе длины должны суммироваться. Процесс слияния регионов, подобный описанному, может быть выполнен параллельно при использовании сети процессоров, в которой каждому ре- гиону приписан процессор, и процессоры, соответствующие прилегающим узлам, могут связываться непосредственно — другими словами, сеть процес- соров изоморфна графу расположения регионов. Таким образом, каждый процессор может проанализировать информацию, хранящуюся в соседних процессорах и на соответствующих им дугах, и принять решение о возмож- ности слияния. Следует отметить, что, когда слияние осуществляется парал- лельно, решение о слиянии должно быть согласовано обоими процессорами; если разрешить принимать решение о слиянии регионов самостоятельно, то можно обнаружить, что регион А объединяется с регионом В и в то же время регион В объединяется с регионом С, что ведет к несостоятельности (имеются новые узлы, представляющие А + В и В + С, но нет узла А +В + С, что в любом случае не является правильным слиянием). Для устранения этого следует разрешать слияние только несвязанных пар. Дополнительные сведения по параллельной обработке регионов можно найти в работе [18]. 422
24.4. ЗАКЛЮЧЕНИЕ В данной главе рассмотрены некоторые основные типы операций, исполь- зуемых в обработке и анализе изображений как на уровне элементов растра, так и регионов, а также описаны идеализированные конфигурации много- процессорных . систем пригодных для параллельного выполнения таких операций. Показано, что для операций на уровне элементов, преобразующих изоб- ражение в изображение, наиболее естественной является ячеечная матрич- ная архитектура, при которой процессоры объединены в регулярную решет- ку. С другой стороны, при измерении характеристик изображений наиболь- шая эффективность может быть достигнута при использовании древовид- ной структуры соединений, в которой процессоры расположены в позициях листьев дерева. Для параллельной обработки регионов, определенных ко- дами границ, пригодна кольцевая структура многопроцессорной системы. Если регионы определены наибольшими блоками, например кодами длин проходов или квадродеревом, то удобны другие схемы соединений. На более абстрактных уровнях, когда регионы определены списками характеристик, слияние регионов может выполняться параллельно при использовании сети процессоров, связанных в соответствии с графом расположения регионов. Параллельная обработка на уровне регионов требует, как правило, гораз- до меньшего числа процессоров, чем параллельная обработка на уровне элементов растра. В состав ячеечной матричной машины для параллельной обработки изображения размером 512X512 при ее конфигурации ’’процес- сор на элемент изображения” должно входить около 1/4 миллиона процес- соров, что на практике пока невозможно, в то время как обработка на уров- не регионов требует всего нескольких сотен процессоров на регион (в зави- симости от их сложности) или даже нескольких процессоров — при обработ- ке графа связи регионов в зависимости от сложности разбиения. Такое чис- ло процессоров в системе вполне допустимо, но организация их связи пред- ставляет проблему. При обработке на уровне элементов растра обрабатыва- емые изображения всегда будут одного и того же размера, и соединения с со- седями остаются одними и теми же для различных изображений, поэтому та- кая ячеечная матричная машина может быть построена раз и навсегда. На- против, при обработке на уровне регионов соединения меняются от образа к образу, поскольку формы регионов нельзя предсказать заранее. Хуже того, может потребоваться изменять соединения в ходе вычислений по мере того, как вводятся новые регионы или сливаются старые. Это требует некоторо- го типа реконфигурируемой многопроцессорной архитектуры [19], в кото- рой реконфигурация сама должна в идеале осуществляться параллельно. Для некоторых типов представлений (например, для представления в ко- дах границ, для которого могут использоваться связанные кольца процес- соров) такая реконфигурация может быть относительно легкой; однако для других представлений, требующих древовидной графоподобной конфигу- рации соединений, параллельную реконфигурацию может оказаться не так просто реализовать таким образом, чтобы избежать узких мест в межпро- цессорных соединениях. По мере того, как достижения в технологии произ- 423
водства аппаратуры делают возможным построение больших многопроцес- сорных сетей, должны решаться и проблемы, связанные с разработкой эф- фекивных систем обработки и анализа изображений как на уровне элемен- тов растра, так и на уровне регионов. СПИСОК ЛИТЕРАТУРЫ [1] Н. С. Andrews, Computer Techniques in Image Processing, Academic Press, New York, 1970. [2] D. Ballard and C. Brown, Computer Vision, Prentice-Hall, Englewood Cliffs, N.J., 1982. [3] K. R. Castleman, Digital Image Processing, Prentice-Hall, Englewood Cliffs, N.J., 1979. [4] R. O. Duda and P. E. Hart, Pattern Classification and Scene Analysis, Wiley, New York, 1973. [5] R. C. Gonzalez and P. Wintz, Digital Image Processing, Addison-Wesley, Reading, Mass., 1977. [6] E. L. Hall, Computer Image Processing and Recognition, Academic Press, New York, 1979. [7] T. Pavlidis, Structural Pattern Recognition, Springer-Verlag, New York, 1977. [8] T. Pavlidis, Algorithms for Graphics and Image Processing, Computer Science Press, Rockville, Md., 1982. [9] W. K. Pratt, Digital Image Processing, Wiley, New York, 1978. [10] A. Rosenfeld, Picture Processing by Computer, Academic-Press, New York, 1969. [11] A. Rosenfeld and А. С. Как, Digital Picture Processing, Academic Press, New York, 1976; 2nd ed. (2 vols.), 1982. [12] J. Serra, Image Analysis and Mathematical Morphology, Academic Press, New York,» 1982. [13] A. Rosenfeld, “Picture Processing: 1981,” Comput. Graphics Image Process., 19:35-15 (1982). [14] S. H. Unger, “A Computer Oriented toward Spatial Problems,” Proc. IRE, 46:1744- 1750(1958). [15] A. Rosenfeld, Picture Languages, Academic Press, New York, 1979. [16] C. R. Dyer and A. Rosenfeld, “Image Processing by Memory-Augmented Cellular Automata,” IEEE Trans., PAMI-3.29-A1 (1981). [17] C. R. Dyer and A. Rosenfeld, “Triangle Cellular Automata,” Inf. Control, 48:54-69 (1981). [18] A. Rosenfeld and A. Wu, “Parallel Computers for Region-Level Image Analysis,” Pat- tern Recog., 75:41-50 (1982). [19] A. * Rosenfeld and A. Wu, “Reconfigurable Cellular Computers,” Inf Control, 50:64-84 (1982). [20] T. Dubitzki, A. Wu, and A. Rosenfeld, “Parallel Computation of Contour Properties,” IEEE Trans., PAM7-3:331-337 (1981). [21] J. S. Todhunter and С. C. Li, “A New Model for Parallel Processing of Serial Images,” Proc. 5th Int. Conf Pattern Recog., 1980, pp. 493-496. [22] T. Dubitzki, A. Wu, and A. Rosenfeld, “Region Property Computation by Active Quadtree Networks,” IEEE Trans., PAM I-3:626-633 (1981). 424 \
25 СБИС-АРХИТЕКТУРЫ ДЛЯ АНАЛИЗА ФОРМЫ И УПРАВЛЕНИЕ БАЗОЙ ДАННЫХ ИЗОБРАЖЕНИЯ К, Фу, К. Хуанг, Б. Ва1 25.1. ВВЕДЕНИЕ В этой главе рассматриваются структуры СБИС для анализа и управления графической информацией. Специалисты в области информатики давно при- знали, что лучше один раз увидеть, чем тысячу раз услышать. Интеллект ЭВМ будущего значительно возрастет по сравнению с современными, если будет разработано новое поколение машин для обработки многомерных графических данных в дополнение к построчной обработке алфавитно-циф- ровой информации. За последнее десятилетие интенсивные исследования и разработки позволили осуществить машинный анализ и распознавание об- разов. Практические приложения таких машин включают анализ биомеди- цинской информации, распознавание символов, отпечатков пальцев и дви- жущихся объектов, дистанционное восприятие, промышленный контроль, системы зрения роботов, военную разведку и сжатие данных в системах связи [11, 12, 24]. Под анализом изображений понимается использование ЭВМ для распозна- вания образов и обработки изображений. Оперативные графические данные необходимо сохранять на диске и быстро вызывать с него для решения ука- занных задач. Машины анализа изображений, построенные на СБИС, должны объединять возможности анализа образов и управления базой данных изоб- ражения в рамках единой системы [ 1, 10]. 25.2. СБИС И МАШИННАЯ ГРАФИКА Мы вступили в эру сверхбольших интегральных схем (СБИС). Интеграль- ные схемы проникли во все области человеческой цивилизации. Размер плас- тин ИС за 20 лет возрос с 25 до 150 мм. Фирма Bell Laboratories изготавлива- ет пластины размером 200 мм и кристаллы памяти на 2 Мбит. Японская фирма Fujitsu объявила о создании нового некремниевого прибора, тран- зистора с высокой подвижностью электронов, имеющего время переклю- чения 17 пс, т. е. в 30 раз меньше, чем у кремниевых аналогов. Проект по раз- работке сверхскоростных интегральных схем (ССИС) посягнул на выпуск приборов с временем переключения 4 пс. В кругах разработчиков усиленно обсуждаются возможности использования интеграции на уровне пластины в алгоритмически специализированных машинах. Достижения в технологии СБИС пробудили мысль о реализации многих алгоритмов обработки сигналов и изображений непосредственно в специали- зированных кристаллах. Для внедрения образного восприятия в ЭВМ буду- 1 Лафайеттский университет, Лафайетт, Индиана. 425
щего было бы весьма желательно иметь поддерживающую машину баз дан- ных. Новый подход вычисления с управлением от данных может быть при- менен для систем искусственного интеллекта. Новые направления СБИС — архитектура и многопроцессорные системы с асинхронными потоками дан- ных — должны быть серьезно исследованы на предмет потенциального ис- пользования в обработке сигналов и распознавании образов. Реалистичным подходом является также расширение потока управления в архитектуре с двумерного в матричных машинах до трехмерного в пирамидальных. Хоро- шими кандидатами для параллельной обработки изображений будут и много- конвейерные машины при условии эффективного решения проблем распре- деления задач. Принципиальные ограничения сегодняшних ЭВМ заложены в их механиз- мах ввода-вывода. Компьютеры все еще не могут эффективно общаться с человеком в естественных формах, таких как устная или письменная речь, рисунки или образы, документы и иллюстрации. Существующие ЭВМ пока далеко не удовлетворительны из-за малой скорости ввода-вывода, отсут- ствия речи и зрения, возможностей перевода и обработки в реальном масш- табе времени. Для построения ’’ориентированных на человека” интерактив- ных ЭВМ потребуется прежде всего повысить их возможности в понимании ’’естественных” форм представления информации, разумной и, возможно, Логическая схема Аэрофотоснимок База знании Челобек- оператор База данных изображения Эскиз изображения Рентгеновский снимок Рис. 25.1. Функции анализа (поиска) изображения Анализ образоб и обработка знаний 426
Таблица 25.1. Графические алгоритмы для реализации на СБИС Название алгоритма Реализуемые функции Обработка изображений Распознавание образов Статистическая обработ- ка изображений Обработка баз данных Коррекция, фильтрация, повышение четкости, выделение контура, сегментация, регистрация, восстановление, груп- пировка, свертка, фурье-анализ и т.д. Выделение признаков, сравнение с эталоном, статистическая классификация, синтаксический анализ, регистрация изме- нений, восприятие языка, анализ и синтез сцен и т. д. Статистическая декомпозиция, манипуляция атрибутами, реконструкция изображений, алгоритмы поиска-сортировки, подбор по образцам и т. д. Реляционные операторы (объединение, пересечение, проек- ция, дополнение), реляционно-эскизное преобразование, вы- деление сходства, структурирование данных, очереди приори- тетов, динамическое программирование, пространственные операторы и т.д. более надежной, чем у человека, реакции на них. Естественные языки и об- работка речи выходят за пределы тематики данной главы. Далее остановим- ся на разработках интеллектуальных ЭВМ с возможностями распознава- ния образов. Для реализации этих функций необходимо разработать системы ввода, вывода и анализа графической информации, выбираемой из большой базы данных изображения. Графические функции такой интеллектуальной ЭВМ анализа изображений в общих чертах приведены на рис. 25.1. На вход могут поступать чертежи или тоновые изображения,.такие как функциональные схемы, рентгеновские или аэрофотоснимки. Соответствующим выходом мо- жет быть классификация и (или) интерпретация входных данных, например: рисунок топологии СБИС, точное описание патологии в области легкого или карта поля боя в реальном масштабе времени. Машина базы данных изобра- жения может быть частью большой системы баз знаний. Множество функ- ций анализа изображений требуется встроить в обрабатывающую секцию средней производительности для коррекции и сегментации изображений, выделения характеристик, классификация образов и форм, структурного анализа, описания и интерпретации изображений, как показано в табл. 25.1. Некоторые из этих функций могут быть реализованы непосредственно ап- паратурой СБИС, а другие — специальными программными пакетами. Для построения интегрированных систем анализа (поиска) изображений необ- ходим прогресс в разработке устройств ввода-вывода изображений, графи- ческой обработке запросов и методах управления базами данных. 25.3. ПРОЦЕССОРЫ НА СБИС ДЛЯ ОБРАБОТКИ ИЗОБРАЖЕНИЙ В недавнее время предпринимались многочисленные попытки разработ- ки СБИС-устройств для обработки сигналов (изображений) и анализа обра- зов. Статистические подходы к этим задачам часто приводили к вычислениям 427
A Модуль типов °7/ а12 °13 1 0 0 а2! а22 °23 121 1 0 ?31 а32 азз_ Ул 132 1 а) Модуль munai иП UJ2 и13 О U22 и23 О О u3S U U~’=V и„ и12 и13 ° и22 и23 О О и33 =• vrz „Г3 О v22 v23 О О v33 б) JL Модуль —\ в типам и D~c+ £ Aj'Bj где С,в,и {Aj и дляматрицы размера rxr д) С р d~c+ £ А.-Ь.где cd i=T Л {Ь; для 1=ц...,р}-8еяторы- столдцы^ дллЫ1,..^р} матрицы размера гхг Z) Рис. 25.2. Простейшие матричные арифметические модули на СБИС: а — модуль разложения подматриц; б — модуль обращения матриц; в — умножитель матриц; г — векторный умножитель матриц * с матрицами больших размеров. Структурные подходы требуют выполне- ния операций синтаксического анализа и грамматического разбора. Здесь приводится пример проекта конвейерной архитектуры на СБИС для статис- тического выделения и классификации признаков. Ступени конвейера спро- ектированы из модульных арифметических устройств в соответствии с рис. 25.2. Эти арифметические модули на СБИС будут использоваться итеративно при вычислении подматриц. Конвейерная архитектура основана на алгорит- мах обработки блочных матриц, разработанных в [9] для VAJ-разложения, умножения матриц, обращения треугольных матриц и решения треугольных систем уравнений. На рис. 25.3 показана конвейерная структура для реализации алгоритма обращения блочных матриц, исполняемого за четыре шага. Каждая СБИС выполняет вычисления с подматрицами размера г Кг, порядок входной мат- рицы U равен п. На практике считается, что п = кг и п ^>г . Случай, когда к = = и/г =4, показан на рис. 25.3. При больших к э|гот конвейер требует исполь- 428 \ \
=» Ufj Uf2 U13 ^14 ° U22 U23 U23 0 0 U3J U34 0 0 0 ~1 УП Уп у>з vri ° Угг Угз Уц 0 0 У33 Узо ООО Уц шаг!: v„=u;!;^uaiv33=u33ivi‘f=u^ Moiynul Шаг?: Vn*-V„-(иа-УггЛУгз—Угг^гз' Узз^Узо^-Узз^зоУ^ Нодулим Ulaz3: Vtj*-Vn • (Ча~ V23 + U>3' V33> “ ^22 ’ (U23' K34 * U24 ' V44) Модули M '(U,2 • Vz4+ U13 ' V31+ ui4' ^41) Модули M Рис. 25.3. Конвейерный блок обращения матриц на СБИС, основанный на алгоритме Хуанга-Чена: Z—модуль обращения; М — модуль умножителя; L — регистр-защелка; СЛ7-, V;; — подматрицы размера тХт зования О (Л) = О (п/г ) модулей СБИС. Общая задержка при вычислении V=U~l составит О(п2/г). Аналогичный конвейер может быть построен для перемножения матриц, LU-разложения и решения треугольных систем. Подробные сведения можно найти в статье [8]. СБИС и выделение признаков. На рис. 25.4,а показана функциональная схема экстрактора признаков на СБИС. Этот экстрактор состоит из трех подсистем: генератора матрицы рассеяния, системы обращения матриц и генератора признаков, которые выделены штриховыми линиями. Вычита- тель векторов реализован на модифицированных модулях типа V для гене- рирования разностных матриц входных отсчетов и средней разности. Сеть из двух матричных умножителей используется для умножения на ортого- нальную матрицу. Каждая сеть содержит п/г модулей умножителей. Весо- вой матричный сумматор может быть реализован на п/r модулях умножи- телей с несколькими дополнительными входами для констант. Обращение 429
I Генератор матрицы рассеяния Обучающие последова- тельности 'ычитатель векторов -♦ Сеть умножителей матриц Сеть умножителей матриц I- Векторы [ образов Векторы признаков Матрично- векторный -< умножитель Генератор Весовой матричный сумматор векторов преобразования -----—-------------п блок обращения матрицы Генератор признаков J а) б) ‘ Рис. 25.4. СБИС для анализа (распознавания) образов: а — экстрактор признаков; б — классификатор образов I матриц рассеяния выполняется с применением сети LU-разложения, двух устройств обращения треугольных матриц и сети умножителей для выпол- нения вычислений А*-1 = (L -U)=U”1 • L"1. Генератор признаков может быть реализован на модулях типа V с модифицированными входами конс- тант. Наконец, матрично-векторный умножитель также строится на моду- лях типа V. / СБИС и классификация образов. Примерная функциональная схема клас- сификатора образов приведена на рис. 25.4,6. Схемотехническое решение 430 /
генератора ковариационных матриц такое же, как у генератора матриц рассеяния на рис. 25.4,а. Блок линейной системы состоит из сети для LU- разложения и блока решения треугольной системы. Этот матричный решаю- щий блок необходим для приведения запомненной системы к треугольному виду. Фишеровский классификатор реализуется на небольшом числе комби- национных логических схем и модифицированных модулях типа V. Распознавание контекстно-свободных языков. В синтаксическом анализе образов форма образа часто представляется строкой контекстно-свободно- го языка. Распознавание формы образа выполняется с помощью грамма- тического разбора строки по правилам заданной грамматики образов [14]. Систолическая структура СБИС для высокоскоростного распознавания контекстно-свободных языков показана на рис. 25.5. Процесс распознава- ния основан на алгоритме Кока—Казами—Янгера (Cocke—Kasami—Younger). Эта конвейерная треугольная матрица, построенная из п(п+ 1)/2 процессор- ных ячеек, может быть использована в синтаксическом распознавании обра- зов. Каждая ячейка имеет два однонаправленных канала данных и одну ли- нию управления по каждому из направлений. Данные, поступающие в виде строк символов, проходят через распознающую матрицу слева направо и снизу вверх, как показано на рис. 25.5. Эта двумерная матрица может рас- познать любую входную строку длиной п за 2п тактов. Такой языковой анализатор и его расширение для распознавания конечных языков более детально описаны в работе [3]. Недавно была предложена архитектура СБИС распознавания языков [21]. СБИС в сейсмической классификации. Здесь представлен специализиро- ванный СБИС-процессор для быстрой классификации сейсмических волн [20]. Этот специализированный процессор, содержащий три систолические матрицы, может быть подключен к универсальной ЭВМ. Каждая систоличес- кая матрица имеет такую временную характеристику 0(1), чтобы входные данные могли подаваться соответствующим образом. Систолическая матрица для вы соединенные процессорные элемен- ты, как показано на рис. 25.6. Вход- ные данные, которыми являются дискретизированные и квантован- ные сейсмические волны, кодиро- ванные в двоичном коде, запоми- наются в отдельных модулях па- мяти. Вычисляются два призна- ка: число переходов через нуль Рис. 25.5. Архитектура СБИС для распоз- навания контекстно-свободных языков для п =4: сплошной квадрат — ячейка; штрихо- вой квадрат — граничная ячейка признаков содержит линейно 1Ж‘1 431
и сумма абсолютных значений. Переход через нуль определяется проверкой знаков в каждой паре последовательных точек. Для определения изменения знака используются схемы ’’Исключающее ИЛИ”. Все п процессорных эле- ментов вычисляют оба признака одновременно и передают частичные резуль- таты следующим процессорным элементам. Для простейшего распознавания вычисляется расстояние между вектором неизвестных признаков и каждым из опорных векторов, например вектором средних, каждой из групп (примитивов), а затем вектор неизвестных приз- наков приписывается ближайшей группе. Эта процедура может быть разде- лена на два этапа: вычисление расстояния между вектором неизвестных признаков и опорными векторами и далее выбор одного из них — ближай- шего. В системе используется процессорная матрица, содержащая процес- соры-вычислители для вычисления расстояния, и процессорная матрица, содержащая процессоры-компараторы для сравнения расстояний. Предпо- ложим, что имеется I примитивов; каждый примитив i имеет опорный вектор признаков [т\, т12 ,..., т1^ ], где к — общее число признаков. Процессорная матрица размера которая выполняет вычисление рас- стояний, показана на рис. 25.7. Опорные векторы примитивов вводятся снизу и продвигаются вверх, в то время как векторы неизвестных призна- ков вводятся сверху и продвигаются вниз. Хорошо известно, что расстояние Левенштейна (Levenshtein) между двумя строками может быть вычислено с помощью процедуры динамичес- кого программирования. Следовательно, оно может быть реализовано парал- лельной обработкой в СБИС. В определении расстояния Левенштейна каж- дая вставка, удаление и замена подсчитываются как одно ошибочное преоб- разование. Для таких вычислений со строками построена процессорная мат- 432 /
Рис. 25.7. Процессорные матрицы и схема перемещения данных при распознавании при- митивов рица, изображенная на рис. 25.8. Предлагаемый компаратор строк может использоваться в любой задаче, где требуется вычислять расстояние Левен- штейна. С его помощью можно осуществить анализ строк при распознавании сейсмических волн, распознавании строк символов при приеме информации или сравнение образов при анализе графических очертаний, если объект может быть представлен строкой, например цепным кодом. Данный простей- ший анализатор может быть также применен в любых задачах распознава- ния по наименьшему кодовому расстоянию и векторного сравнения об- разов. Было проведено имитационное моделирование трех описанных систоли- ческих матриц: матрицы выделения признаков, матрицы простейшего рас- познавания и матрицы анализа строк. Доказана корректность проекта сис- 433
Рис. 25.8. Процессорная мат- рица и схема перемещения данных при вычислении рас- стояний Левенштейна топических матриц и 11равильность их функционирования. Детальные све- дения о систолических матрицах и результаты моделирования приведены в работе [20]. 25.4. МАШИНЫ БАЗ ДАННЫХ ИЗОБРАЖЕНИЯ Система управления базой данных изображения предоставляет простой доступ большого числа пользователей к широкому набору структуриро- ванных графических данных (цифровых образов). Она обеспечивает как высокоуровневый, так и низкоуровневый доступ к изображениям. Боль- шинство существующих систем баз данных изображения применяются со специально разработанными пакетами математического обеспечения и для специализированных систем анализа образов. Было бы весьма желательно разработать специализированную машину баз данных для управления базой данных изображения. Пока было предпринято несколько попыток создания аппаратуры [4, 16, 22], но ни одна из них на самом деле не была применена для управления базой данных изображения. Функции по управлению базой данных изображения и их периферийная поддержка изображены на рис. 25.9. Во-первых, необходимы быстродей- ствующие и интеллектуальные входные графические устройства. Признаки и структура изображения (очертания, тестура и пространственные связи), выделяемые главным графическим процессором, должны быть преобразо- ваны в символьные эксизы (sketches) изображения, запоминаемые в логи- ческой базе данных изображения. Эти не преобразованные ’’сырые” образы система должна преобразовать в эффективные коды, запоминаемые в физи- 434 \
Сырые образы Рис. 25.9. Функции управления базой данных изображения ческой базе данных изображения. За счет использования высокоуровневых языков управления изображением должна быть обеспечена гибкая манипу- ляция и образом, и функцией доступа. Дня восстановления изображения из реляционных эскизов используется логическая база данных. Для отображе- ния на дисплее с высоким разрешением сжатые изображения должны быть подвергнуты декомпрессии1. Функции передачи выделенных результатов в главную ЭВС выполняет выходное устройство. Рассмотренные функции управления базой данных изображения должны быть поддержаны специаль- но спроектированными аппаратными устройствами, которые и составляют машину базы данных. Машина баз данных для обработки изображений может быть определена следующими функциональными характеристиками. Реализуются такие высо- коуровневые функции баз данных, как выбор, проекция и соединение. Эти функции предназначены для манипуляции базой данных изображения. С другой стороны, реализуются и такие низкоуровневые операции обработ- ки, как построение гистограмм и выделение контура. Таким образом, маши- на баз данных изображений — это обычная машина баз данных, дополненная низкоуровневым оборудованием для обработки изображений. Обычно считают, что СБИС дешевы. В действительности для сложных операций это не так, поскольку необходимо обеспечить внешнее управле- ние, синхронизацию, память и программирование. Кроме того, по мере роста числа типов кристаллов система становится дорогостоящей. Реше- нием этой проблемы является общее использование ресурсов сети и соеди- нений. Такой путь решения проблемы иллюстрируется рис. 25.10. Кристал- лы СБИС распределены по всем модулям памяти. Они могут использовать- ся разными трактами в реальном масштабе времени. Пул общих ресурсов 1 Операция, обратная по отношению к операции сжатия. — Прим. ред. 435
Рис. 25.10. Принцип построе- ния машины базы данных изображения Связной процессор распределяется также и между модулями памяти. Сеть соединений с разде- лением ресурсов связывает эти ресурсы с запоминающей средой. При орга- низации реляционной базы данных будут использоваться общие операторы для фильтрации данных, проектирования, объединения и других операций. Некоторые из операторов базы данных на СБИС приведены в табл. 25.1. 25.5. РАСПРЕДЕЛЕНИЕ РЕСУРСОВ В общем случае через сеть соединений передаются запросы от некоторого множества источников к множеству пунктов назначения (они могут совпа- дать друг с другом). В режиме разделения ресурсов пунктами назначения являются идентичные ресурсы, такие как специализированные кристаллы СБИС, на которые и могут направляться запросы или задания. В этом слу- чае работы, инициированные в процессорах-источниках, могут пересылать- ся в любой из свободных ресурсов данного типа в месте приема. Именно это важное обстоятельство отличает разделение ресурсов от адресации. Поскольку система работает непрерывно, запросы от процессоров-ис- точников могут поступать в случайные моменты времени. В любое время часть процессоров может выставлять запросы, а часть ресурсов может быть свободной. Функцией планировщика и является такое распределение запро- сов, при котором к процессорам было бы подключено максимальное ко- личество ресурсов. 436
Самые ранние работы по сетям распределения ресурсов были реализова- ны с использованием централизованного управления. Например, в универ- сальной шине используется принцип разделения времени при подключении устройств ввода-вывода к центральному процессору. Многопроцессорная система мини-ЭВМ PLURIBUS содержала множество разделяемых во вре- мени шин. В системе C.mmp использовался коммутатор, хотя система в ос- новном работала в режиме адресации. Одно- или многошинный подход—ис- точник узких мест, но и наименее дорогостоящий принцип. При наличии коммутатора сеть дорогостоящая, но при этом минимальна степень блоки- ровок. Компромиссным вариантом является использование сети меньшей стоимости, чем при наличии коммутатора, но имеющей меньшую вероят- ность блокировок, чем одношинная система. Это было исследовано при рассмотрении баньяновской (Banyan) сети. Предложена древовидная струк- тура, помогающая планировщику в распределении ресурсов. Древовидная структура имеет задержку О (log2 п) при выборе свободного ресурса (п — общее количество ресурсов). Исследованные ранее алгоритмы планирования являются централизован- ными и ориентированы на использование адресных сетей соединений. В худ- шем случае сложность алгоритма распределения п запрашивающих процес- соров по п ресурсам равна О (п log2 п) . Эта сложность зависит от числа за- прашивающих процессоров. Подход практичен при малом п или при не слиш- ком высокой частоте поступления запросов. Решением, которое устраняет последовательное распределение запросов, является разрешение распростра- нения запросов без каких бы-то ни было тэгов назначения и перенесение на сеть ответственности за маршрутизацию максимального числа запросов к свободным ресурсам. Таким образом, ’’интеллект распределения” рассре- доточивается по сети соединений. Этот подход позволяет одновременно передавать множество запросов. Такую сеть называют сетью соединений с разделением ресурсов. Сети ’’Омега” и ’’Обобщенный куб” принадлежат к классу сетей, в кото- рых задержка от источника до любого достижимого приемника пропор- циональна логарифму числа источников. Основным элементом этих сетей является устройство обмена на два входа, два выхода, выполняющее четы- ре функции: прямое, перекрестное, верхнее общее и нижнее общее соедине- ния. Для сети, соединяющей N входов с N выходами (/V является степенью числа 2), число каскадов равно log2TV, а число устройств обмена (7V/2)log2^. При этом задержка в сети равна 0(log2AO- Сложность аппаратуры, опреде- ляемая как O(log2VV), гораздо меньше, чем O(N2) в сети коммутаторов. Так как сети имеют отличную от ненулевой вероятность блокировки, не- которые из возможных распределений источников и приемников не приво- дят к полному распределению ресурсов. Централизованный планировщик должен проверить все возможные из запрошенных соединения для распре- деления наибольшего количества ресурсов. Предположим, что х процессо- ров выдают запросы и свободны у ресурсов. Планировщик должен проверить максимум (прих>у) или (*)*! (приу>х) соединений, чтобы най- 437
ти лучшее. Может быть использовано близкое к оптимальному эвристичес- кое решение [19], но оно применимо только при малыхх иу. В противоположность этому децентрализованный алгоритм распределе- ния допускает параллельную маршрутизацию всех запросов. При этом за- траты на распределение пропорциональны задержке в сети О (log2TV) и не за- висят от числа запрашивающих процессоров. Децентрализованный алгоритм реализуется распределением функций маршрутизации по сети соединений и поэтому централизованного управ- ления нет. Каждое устройство обмена может разрешать конфликты и марш- рутизировать запросы к соответствующим приемникам. Если запрос забло- кирован, он отсылается обратно к устройству обмена в предыдущем кас- каде. Маршрутизация, таким образом, выполняется динамически, и все устройства обмена работают независимо. Децентрализованный алгоритм проиллюстрирован рис. 25.11 на приме- ре сети ’’Омега” размером 8X8. Предположим, что имеются ресурсы Ro, Ri, Ra, Rs и информация о состоянии поступает в процессоры. Цифры, проставленные на портах ввода-вывода, представляют передаваемую и при- нимаемую информацию о состоянии. Предположим, что процессоры Ро, Р3, Р4 и Р$ запрашивают по одному ресурсу каждый и запросы в сеть передают- ся по поступлении новой информации о состоянии одновременно. В каскаде О конфликтов нет. В каскаде 1 устройство Bi i принимает два запроса. Так как только один терминал вывода приводит к свободным ресурсам, запрос, поступающий с устройства В0,з? отклоняется. Далее этот запрос находит другой маршрут через и В2,2 и R5. В данном примере каждый из запро- сов должен проходить в среднем через 3,5 устройства обмена до того, как Рис. 25.11. Пример сети ’’Омега” с четырьмя запрашивающими процессорами и четырь- мя свободными ресурсами (25 % всех запросов блокируются и направляются обратно; 100 %-ное распределение ресурсов; средняя задержка равна 3,5) : ----прямой путь;-----обратный путь 438
будет найден свободный ресурс. В целях упрощения изменение состояния при поступлении новых запросов на рисунке не показано. Рассмотренная здесь сеть распределения ресурсов является обобщенным вариантом адресных сетей соединений с тэгами маршрутизации. Адресная сеть - сеть распределения ресурсов, соединяющая процессоры и множество типов ресурсов с одним ресурсом каждого типа. В режиме разделения ресур- сов имеется множество ресурсов каждого типа. Такая сеть распределения ресурсов имеет регулярную структуру, пригодную для реализации на СБИС. 25.6. ЗАКЛЮЧЕНИЕ Выделение признаков и классификация образов — первые кандидаты на возможную реализацию в СБИС. Для реализации в СБИС были предложе- ны [8] метод выделения признаков Фоли—Сэммона [5] и фишеровский линейный классификатор. Другие методы, такие как метод, основанный на использовании собственных векторов для выделения признаков, и метод байесовских квадратических дискриминантных функций, также должны быть реализуемы на СБИС-оборудовании. Весьма желательно создать вычис- лительные структуры на СБИС для сглаживания, регистрации, выделения контура, сегментации, анализа текстуры, многоэтапного выделения призна- ков, распознавания синтаксических форм, обработки и графического ана- лиза, управления базой данных изображения и других операций. Потенциаль- ный выигрыш состоит не только в увеличении скорости, но и в повышении надежности и экономичности . Анализ изображения и управление базой данных изображения являются неотделимыми функциями эффективной графической информационной системы. Интегрированный системный подход обеспечивается слиянием технологии СБИС с разнообразными методами параллельной обработки. Ключевой проблемой разработки специализированных машин для обработ- ки, распознавания и управления базой данных изображения является эко- номическая эффективность. Для реализации интегрированных вычислитель- ных систем анализа и поиска изображений предлагаем ряд важных иссле- довательских проектов: 1) разработка систематической методологии реализации алгоритмов рас- познавания образов и обработки изображений в виде СБИС-аппаратуры [3,6-9, 15, 20,21]; 2) разработка кристаллов СБИС для описания, манипуляции и исследова- ния изображений [2,11,13,17]; 3) разработка машин баз данных изображений с учетом вопросов как структуры баз данных, так и стратегии управления [4, 16, 22]; 4) разработка сетей распределения ресурсов для процессорных систем с общим пулом ресурсов СБИС [1, 18,19]; 5) исследование возможности использования понятия потока данных при проектировании СБИС-систем распознавания образов, обработки изображе- ний и искусственного интеллекта [1,7, 23]; 6) объединение СБИС-систем анализа изображений со СБИС-системами обработки речи и естественных языков [10, 23, 24]. 439
СПИСОК ЛИТЕРАТУРЫ [1] F. A. Briggs, К. S. Fu, К. Hwang, and В. W- Wah, PljMPS Architecture for Pattern Analysis and Image Database Management” ^rans. Comput., Oct. 1982, pp. 969-982. [2] S. K. Chang, J. Reuss, and В. H. McCormick, “Design Considerations of a Pictorial Database System,” Inti. J. Policy Anal. Inf. SfsE> 7(2):49-»7q (Jan. 1978). [3] К. H. Chu and K. S. Fu, “VLSI Architecture f°r High-Speed Recognition of General Context-Free Languages and Finite-State Lan8ua£es»” Proc. 9th Inti. Symp. Comput. Arch., Austin, Tex., Apr. 1982, pp. 43-49. [4] T. DeWitt, “DIRECT: A Multiprocessor Database Machine,” IEEE Trans. Comput., 1979, pp. 395-406. [5] D. H. Foley and J. W. Sammon, “An Optbnal Set of Discriminant Vectors,” IEEE Trans. Comput., Mar. 1975, pp. 281-289. [6] M. J. Foster and H. T. Kung, “The Design of Special-Purpose VLSI Chips,” Comput. Mag., Jan. 1980, pp. 26-40. [7] K. Hwang and F. A. Briggs, Computer Arch^tectures f°* Parallel Processing, McGraw- Hill, New York (in press to appear). [8] K. Hwang and S. P. Su, “VLSI ArchiteC’tures f°r feature Extraction and Pattern Classification.” J. Comput. Graphics Image process., faceted to appear in 1983). [9] K. Hwang and Y. H. Cheng, “Partitioned Matrix Algorithms for VLSI Arithmetic Systems,” IEEE Trans. Comput., Dec. 1982, jPP- 1215-1224. [10] K. Hwang and K. S. Fu, “Integrated Comp,uter Architectures for Pattern Analysis and Image Database Management,” Computer, Jfan-1983, pp, 51—61. [11] M. Опое, K. Preston, and A. Rosenfeld, <eds., Real-Tjne/Parallel Computing: Image Analysis, Plenum Press, New York, 1981. .* [12] K. Preston, Jr., and L. Uhr, eds., Multicomptuters an& Ifyaye Processing, Academic Press, New York, 1982. [13] N. S. Chang and K. S. Fu, “Picture Query ] Languages for Pictorial Database Systems,” Computer, 14, Nov. 1981. [14] K. S. Fu, Syntactic Pattern Recognition Applications, Prentice-Hall, Englewood Cliffs, N.J., 1982. [15] E. E. Swartzlander, “VLSI Architecture,” in1 D. F- ®arbe,ed., Very Large Scale Integra- tion (VLSI): Fundamentals and Applications^ Springer-Verlag, New York, 1980. [16] B. W. Wah and S. B. Yao, “DIALOG—A Distributed Processor Organization for Database Machines,” AFIPS Conf. Proc., Vc°l- 49, 1980, JSCC, pp. 243-253. [17] M. Yamamura, N. Kamibayashi, and T. Ichia^awa» ^gaiization of an Image Database Manipulation System,” Proc. Workshop CooinPut- Arc^pr PAIDM, Hot Springs, Va., 1981, pp. 236-241. [18] D. W. L. Yen and A. V. Kulkami, “The EJSL Systolic pocessor for Signal and Image Processing,” Proc. Workshop Comput. Arclfi- for ?AIIjfc, Hot Springs, Va., 1981, pp. 265-272. [19] B. W. Wah, “A Comparative Study of Re£source Sharif on Multiprocessors,” IEEE Trans. Comput., Aug. 1984. [20] H. H. Liu and K. S. Fu, “VLSI Systolic Processor f°r t’ait Seismic Classification,” Proc. 1983 Inti. Symp. VLSI Tech. Syst. Appl., Та#Р«, Taiwa^ Иап 31? 1983 440
[21] Y. T. Chiang and К. S. Fu, “A VLSI Architecture for Fast Context-Free Language Recognition (Earley’s Algorithm),” Proc. 3rd Inti. Conf. Distributed Comput. Syst., Oct. 1982. [22] K. Yamaguchi and T. L. Kunii, “PICCOLO Logic for a Picture Database Computer and Its Implementation,” IEEE Trans. Comput., Oct. 1982, pp. 983-996. [23] K. Hwang, “Computer Architectures for Image Processing,” (Guest Editor’s Introduc- tion), Computer, Jan. 1983, pp. 10-13. [24] K. S. Fu, ed., Applications of Pattern Recognition, CRC Press, Boca Raton, Fla., 1982. 26 ОБРАБОТКА СИГНАЛОВ ПРИ ВЫСОКОЙ СКОРОСТИ ПОСТУПЛЕНИЯ ДАННЫХ: ИСПОЛЬЗОВАНИЕ СИСТЕМ С ПАРАЛЛЕЛЬНОЙ АРХИТЕКТУРОЙ И ВЫСОКИМИ ТАКТОВЫМИ ЧАСТОТАМИ Б. Гилберт, Т. Кинтер, Д. Шваб, Б. Нау сед, Л. Крюгер, В. Ван Нурден1, Р. Зукка2 26.1. ВВЕДЕНИЕ В данной главе исследуются методы использования появившейся недавно технологии изготовления сверхбольших интегральных схем (одна интеграль- ная схема может содержать более 10000 логических элементов) для решения сложных задач обработки сигналов. В предлагаемой главе основное внима- ние будет уделено узкоспециализированному классу задач обработки сиг- налов, а именно той незначительной части этих задач, в которой на вход цифрового процессора в реальном масштабе времени поступает один поток необработанных данных с очень большой шириной полосы частот. Этот на- сыщенный поток данных должен быть обработан, по крайней мере, устрой- ством предварительной обработки процессора сигналов со скоростью, рав- ной или превышающей скорость их поступления; на последующих стадиях обработки возможны разделение единого высокоскоростного потока дан- ных на серию подпотоков, имеющих меньшую скорость, и организация их параллельной обработки. Наша лаборатория с начала 70-х годов исследует возможные способы решения подобных задач, характеризуемых высокой скоростью поступления данных. Был проведен сравнительный анализ вы- двигаемых при этом требований с возможностями как технологии кремние- вых СБИС, так и других потенциально перспективных для этих задач тех- нологий. Развитие технологии изготовления цифровых ИС общего, а частично и военного назначения было направлено на формирование физических струк- 1 Mayo Foundation, Рочестер, Миннесота. 2 Фирма Rockwell International, Таузанд-Окс, Калифорния. 441
Рис. 26.1. Эксплуатационные характеристики некоторых семейств кремниевых и арсе- нид-галлиевых цифровых ИС: МИС — малая степень интеграции, УМОП— МОП-технология с V-образной канавкой; МЕП — металл-полупроводниковые полевые транзисторы тур как можно меньших размеров в серийно выпускаемых ИС. Это стрем- ление к массовому выпуску и высокой плотности упаковки вызвало повы- шенный интерес к структурам типа и МОП, КМОП на кремниевой подложке и КМОП на сапфире (КМОП, КНС), технические характеристики которых допускают задержку распространения на вентиль около 2—20 нс (рис. 26.1). Наиболее перспективные из этих структур допускают работу на тактовых частотах 30—50 МГц. Однако некоторые классы задач (например, задачи радиопротиводействия, обработки радиолокационных сигналов, широко- полосных военных линий связи, а также некоторые сложные вычислитель- ные задачи биомедицины) могут требовать очень высокой пропускной спо- собности — от 0,1 до 2-109 бит/с [1], что соответствует тактовой частоте устройств до 2 • 109 Гц. Обеспечивающая высокую степень интеграции, но невысокую тактовую частоту, СБИС-технология в настоящее время не спо- собна решить эти задачи, и поэтому следует искать новые пути решения. В следующем разделе будет рассмотрено несколько примеров сложных вычислительных задач в области биомедицины. 442
26.2. ПРИМЕРЫ ЗАДАЧ С БОЛЬШИМ ОБЪЕМОМ ВЫЧИСЛЕНИЙ, ВОЗНИКШИЕ В БИОМЕДИЦИНЕ Использование компьютеров в биомедицине, наверное, лучше всего показать на примере рентгеновской автоматизированной томографии (АТ). Рентгеновская уста- новка автоматизированной томографии включает рентгеновский излучатель и прием- ник, который накапливает данные рентгеновского проникающего облучения, но в фор- мате, не позволяющем непосредственно построить изображение. Входящий в состав установки компьютер реорганизует информационное содержание этих данных для построения изображения тела с ракурсом, не достигаемым с помощью обычной радио- графии [2,3], Возможности дальнейшего развития этих систем были очевидны с момента их откры- тия в 1973 г. Возросший интерес к автоматизированной томографии обусловил стрем- ление к постоянному увеличению пространственной и яркостной разрешающих спо- собностей, к возможности отображения все более тонких слоев и к сокращению дли- тельности всей процедуры от облучения пациента до получения результатов анализа. Эти повышенные требования были достигнуты, однако, ценой усложнения датчиков и методов вычислений. Алгоритмы формирования изображений, используемые в совре- менных сканирующих АТ-системах, характеризуются исключительно высоким объ- емом вычислений; для построения одного яркостного элемента растра автоматизиро- ванной томографии требуется от 1 000 до 10 000 арифметических операций. В 1973 г., используя ЭВМ с производительностью 2 • 105 оп./с, изображение размером 80x80 эле- ментов можно было получить за 5—6 минут. К концу 70-х гг. для обеспечения возрос- ших требований к разрешающей способности (512X512 элементов растра) и скорости построения томограмм потребовались вычислительные средства с производительностью не менее 107 оп./с (что обычно обеспечивалось мощной мини-ЭВМ и промышленно вы- пускаемым матричным процессором). В настоящее время для получения типовой рентгеновской томограммы требуется выполнить несколько сотен миллионов отдель- ных операций. Тем не менее при исследованиях, требующих просмотра большого числа поперечных сечений (слоев), врачи бывают вынуждены ожидать результатов обработ- ки от одного до двух часов после завершения сканирования. Другой способ получения изображений для медицинской диагностики, широко ис- пользуемый в последнее время, основывается на применении в качестве зондирующих ультразвуковых сигналов. Ультразвуковой приемопередатчик может работать в так называемом режиме эхо-сигнала; подобно локатору подводной лодки, в таком режиме изображение строится на основе акустических сигналов, отраженных от объектов внутри изучаемого участка ткани (пространства) . Следует, однако, заметить, что полез- ность этих изображений из-за их качественного характера в значительной мере зависит от особенностей каждого конкретного устройства и квалификации оператора. Ограниченные возможности ультразвукового эхо-сканирования стимулировали ис- следования по созданию более совершенных методов ультразвукового отображения, основанных на распространении методов рентгеновской автоматизированной томо- графии, В рентгеновской АТ взаимодействие между излучаемой энергией и тканью, через которую она проходит, определяется явлением поглощения, которое изменяется вместе с излучаемой энергией. Ультразвуковые сигналы взаимодействуют с тканью более сложным образом, описываемым так называемыми волновыми уравнениями, которые предсказывают взаимодействие ткани с ультразвуковыми волнами. Ткань считается (предполагается) неоднородной средой, характеризуемой определенными упругостью, плотностью, поглощением, эффективной поверхностью рассеяния и т.д., которые изменяются в зависимости от местоположения и направления, а также от центральной частоты и спектрального состава излучаемых сигналов. 443
Обобщенные волновые уравнения для таких сложных (т.е. реальных) тканей не решаются в явном виде, что не позволяет произвести вычисление параметров каждо- го рассматриваемого участка ткани для формирования ультразвуковой томограммы. Поэтому при разработке методов получения изображений с помощью ультразвуковой автоматизированной томографии (УЗАТ) были сделаны различные допущения и упро- щения волновых уравнений [4,5]. Уступая рентгеновской АТ по пространственной разрешающей способности, УЗА Г, тем не менее, обеспечивает достаточно высокое ка- чество изображения, которое зависит от оборудования или оператора. Различные осо- бенности взаимодействия ультразвука с тканью могут быть использованы для построе- ния отдельных типов изображений (томограмм), основанных на конкретных свойст- вах ткани, таких как поглощение, скорость распространения звуковых волн, которые дают независимые, но дополняющие друг друга результаты [б]. Изображения, получаемые с помощью УЗАТ, в настоящее время еще уступают рентгеновским томограммам как по пространственной и яркостной разрешающей способности, так и по достоверности результатов полученного изображения. Дефекты и погрешности в изображении в значительной мере вызваны погрешностями метода получения томограмм, обусловленными упомянутыми упрощениями волновых урав- нений, которые позволяют уменьшить объем их вычислений при численном решении на ЭВМ и, следовательно, удешевить процесс решения. В принципе, более строгая фор- мулировка волновых уравнений, с большей точностью учитывающая неоднородность свойств ткани, будет обеспечивать большую четкость изображения. Волновые уравне- ния общего вида существенно нелинейны, но тем не менее могут быть решены различ- ными численными методами [7]. В настоящее время решение этих проблем сдержива- ется высокой стоимостью реализации подобных точных численных методов на больших ЭВМ. Приведенный сравнительный анализ показал, что для получения точного трех- мерного ультразвукового изображения с помощью решения волновых уравнений тре- буется вычислительная мощность, на несколько порядков большая, чем в различных случаях рентгеновской томографии, описанных ранее (т.е. около 109-10п оп./с). Возможности мощных ЭВМ и цветных графических дисплеев начинают также изме- нять средства и методологию биохимических исследований. С помощью специализиро- ванных аппаратных и программных средств становится возможным детально изучать структуры сложных макромолекул и их химически активные связывающие участки и исследовать как пространственное взаимодействие рецепторов с химически активны- ми участками потенциально полезных лекарств, так и динамику этих молекулярных взаимодействий. Большинство методов, используемых ранее для изучения этих свойств структуры и функций макромолекул, позволяло лишь косвенно исследовать молекулы. Только рентгеновская кристаллография могла прорисовать атомарную структуру биологичес- ких молекул, таких как протеины. Основываясь на данных рентгеновской кристалло- графии, исследователь был вынужден выполнять трудоемкую работу по созданию трехмерной физической модели молекулы из подручных средств (из палочек и про- волоки) . Теперь стало возможным ввести кристаллографические данные любой макромоле- кулы в ЭВМ, затем изобразить молекулу в цвете и, поворачивая изображение, посте- пенно строить трехмерный образ структур или любых их частей под любым желаемым углом зрения [8]. Соответствующее программное обеспечение позволяет ’’очистить” внешнюю оболочку сложных молекул для выявления их внутреннего строения, кото- рое может характеризоваться пустотами или включениями, и даже создавать образ молекулы изнутри. Было показано, что поскольку структура макромолекул может искажаться при их близком взаимном расположении, то полагаться только на результаты кристалло- 444
графин для определения возможных химически активных участков недостаточно - это может привести к ошибкам. Поэтому были разработаны программы, способные распознавать одиночные ковалентные связи с окрестности потенциально активного участка, поворачивать, вытягивать и изгибать эти связи при анализе полученных трех- мерных образов активных участков [9]. Подобные исследования с поворотами и из- гибами могут быть совмещены с подсчетом общей энергии связей в структуре, вклю- чающей активный участок, для определения наиболее вероятных очертаний (модели) активных областей [10]. Кроме того, специальные программы могут заменить одни фрагменты структуры на другие в исследуемых препаратах. Используя цветной графический дисплей, управ- ляемый ЭВМ, исследователь может выделять небольшую часть цельной сложной моле- кулы, оперативно (работая в интерактивном режиме) заменять, например, существую- щую структурную составляющую на другой фрагмент какого-либо иного трехмерного изображения и повторять анализ препарата на химическую активность. Такой, основан- ный на использовании ЭВМ, подход не только позволяет очень быстро и досконально анализировать существующие структуры, но и в прямом смысле осуществлять истин- но автоматизированное проектирование препаратов. Доступные на сегодняшний день системы синтезирования лекарств, базирующиеся на мощной мини-ЭВМ и связанном с ней матричном процессоре, из-за недостаточной вычислительной мощности ограничивают возможность автоматизированного поиска потенциальных связей лекарства с рецепторами ткани, позволяя исследовать на вра- щение и изгиб не более четырех межатомных связей. В то же время, как было указано в [10], для существенного расширения сегодняшних возможностей требуется провер- ка 8 — 10, а иногда и большего числа связей. Анализ четырех связей, реализуемый в ви- де единого длинного группового задания, требует производительности около (10—12) X Х106 оп./с, в то время как анализ 10 связей может потребовать (40-50) -106 оп./с. При обработке в реальном масштабе времени или близком к нему, как того хотят биохимики, эти вычисления будут требовать быстродействия от 5 до 50 • 106 оп./с. Наконец, не снижается интерес к использованию ЭВМ для анализа математических моделей биологических процессов, включая прохождение газов и питательных веществ сквозь биологические мембраны, изучение свойств электрической проводимости нерв- ных и мышечных волокон как функции локальной концентрации ионов в прилегающей среде [11]. Анализ механизма протекания крови через сосудистую систему, сердечную камеру и искусственные клапаны сердца посредством двумерного решения упрощенной версии уравнений Навье—Стокса для неньютоновских жидкостей (т.е. крови) был осу- ществлен за последнее десятилетие несколькими исследователями [12, 13]. Картины напряжений и деформаций на стенках сердечных камер также были исследованы с ис- пользованием метода конечных элементов, первоначально разработанных для оценки этих сил в сложных искусственно созданных системах, например крыльях самолета [14]. Вычислительная сложность многих из этих прикладных задач, особенно задач мо- делирования молекул и потока крови, столь велика, что они смогут загрузить самые мощные вычислительные ресурсы, доступные в настоящее время и ожидаемые в бли- жайшем будущем. Резюмируя, можно сказать, что в настоящее время осуществляется несколько инте- ресных и многообещающих биомедицинских исследований и проектов клинической диагностики, которые не только используют вычислительную технику, но и влияют на ход ее развития, стимулируя достижение таких уровней пропускной способности, при которых требуются нестандартные подходы к вычислениям и прогрессивные архитек- турные решения. Лучшие подходы к достижению столь высоких характеристик произ- водительности являются предметом обсуждения оставшейся части главы. 445
26.3. АРХИТЕКТУРНЫЕ РЕШЕНИЯ, НАПРАВЛЕННЫЕ НА УВЕЛИЧЕНИЕ ПРОПУСКНОЙ СПОСОБНОСТИ ПРОЦЕССОРА Архитектурные методы повышения производительности вычислительных систем, предложенные за последние 15 лет, как правило, предполагают, что очень большое число отдельных логических элементов может быть объ- единено для получения очень высокой производительности процесса благо- даря параллельному выполнению операций [15]. Значительные усилия были затрачены на нахождение общих методов распараллеливания алгоритмов обработки данных и сигналов, которые, в свою очередь, могли бы быть выполнены в различных параллельных системах или сетях взаимодействую- щих процессоров, а также в специализированных устройствах, сочетающих особенности этих классических структур. Как будет показано далее, эти по- пытки распараллелить архитектуру процессоров осуществлялись на практи- ке при решении большинства задач обработки сигналов, особенно при реали- зации на СБИС. Однако их не всегда можно применить для этого подклас- са прикладных задач обработки сигналов, который характеризуется очень широкой полосой частот входных данных в сочетании с требованием обра- ботки в реальном масштабе времени. По определению, вычислительные структуры типа ОКМД (с одним пото- ком команд и множеством потоков данных) объединяют множество иден- тичных процессоров, одновременно обрабатывающих параллельные потоки данных, выполняя одинаковую для всех процессоров команду в каждый такт. Команды могут быть переданы всем процессорам одновременно из единой памяти программ или могут быть заранее размещены в локальной памяти каждого процессора [16]. Эти структуры сравнительно легко проек-. тировать и создавать, поскольку все процессоры идентичны. Система в це- ( лом довольно проста для программирования и для тестирования. Однако в системах этой архитектуры предполагается существование параллельного потока данных; если процессорные элементы будут реализовываться в ви- де СБИС, то отдельные потоки данных должны характеризоваться весьма умеренной шириной полосы. Если ширина полосы входных данных высо- кая, становится необходимым разрабатывать подсистему предварительной обработки, достаточно быстродействующую для разделения единого высоко- скоростного потока данных на множество более медленных подпотоков перед выдачей каждого из них на процессор с ОКМД-архитектурой. Естест- венно, удвоение, утроение и т.д. пропускной способности процессора ОКМД требует по крайней мере удвоения, утроения и т.д. общего числа логичес- ких элементов системы, что в крупных системах может стать ограничением даже при использовании СБИС. Кроме того, структуры ОКМД непримени- мы для тех вычислительных задач, в которых возможна неодинаковая об- работка всех потоков данных. К вычислительным системам типа МКМД относятся системы, в которых несколько взаимодействующих между собой практически независимых процессоров оперируют с различными потоками команд и данных, которые могут существенно отличаться друг от друга [17, 18]. Индивидуальные под- программы для каждого независимого процессора обычно хранятся в его 446
локальной памяти. Как показывает опыт, разработка эффективных аппа- ратных и программных средств систем МКМД вызывает значительные труд- ности. Возможно, более важным, но не всегда учитываемым фактором яв- ляется сложность организации эффективного управления вычислительным процессом в системе независимых взаимодействующих процессоров. При этом либо отдельные процессоры должны быть автономными, но с возмож- ностью установления связи друг с другом, что требует больших затрат как аппаратуры, так и программного обеспечения [18], либо должно существо- вать некоторое центральное управляющее устройство, координирующее их работу. В последнем случае, как показала практика, весьма трудоемкой задачей является разработка глобального программного обеспечения. Из- вестно несколько МКМД-структур, в которых эти трудности были прео- долены, как говорится, ”в лоб” или обойдены благодаря специализации системы на решение лишь узкого класса задач [19]; однако МКМД-системы далеко не всегда одинаково эффективны. Как подтверждают завершен- ные подобные проекты, их удовлетворительное решение в значительной степени обусловлено изобретательностью [20]. За исключением нескольких заслуживающих внимания проектов, систе- мы взаимодействующих процессоров редко дают увеличение производи- тельности в универсальных системах обработки данных или сигналов, равное произведению производительности одного процессора на число за- действованных в данной задаче процессоров. В результате при разработке нескольких основных проектов отказались от использования большого числа параллельных процессоров как в ОКМД-, так и в МКМД-системах и использовали альтернативные подходы. 26.4. ПОЧЕМУ РЕШЕНИЕ ЗАДАЧ БОЛЬШОЙ ВЫЧИСЛИТЕЛЬНОЙ СЛОЖНОСТИ НЕ ВСЕГДА МОЖЕТ БЫТЬ ДОСТИГНУТО АРХИТЕКТУРНЫМ РЕШЕНИЕМ: АНАЛИЗ ОПЫТА Задачи обработки биомедицинских изображений (сигналов), требующие быстродействия около нескольких миллиардов арифметических операций в секунду, изучались в нашей лаборатории с начала 1970-х годов. Для полу- чения достоверных трехмерных рентгеновских (вычислительных) томо- грамм, принадлежащих к качественно новому поколению, нам понадобил- ся динамический пространственный построитель (ДПП) — высокопроизво- дительный процессор изображения. В отличие от серийно выпускаемого оборудования рентгеновский АТ, которое для создания изображения од- ного слоя накапливает необходимое число проекций в течение 5—20 с, ДПП за 11 мс накапливает данные для построения до 240 смежных слоев, окружающих цилиндрический участок ткани (например, грудной или брюш- ной полости) длиной 22 и диаметром 24 см [22, 23]. Поскольку процедура накопления входных данных может повторяться 60 раз в секунду, то с по- мощью сканирования, длящегося 10 с, производится достаточное число про- екций для построения 150000 поперечных сечений, при этом интенсивность входного потока данных составит от 100 до 200 Мбайт/с. Преобразование и наглядное трехмерное отображение этих поперечных сечений приводит к по- 447
лучению динамического истинно трехмерного рентгеновского изображения изучаемой структуры, что открывает большие возможности как доя биоме- дицинских исследований, так и доя клинической диагностики [22, 23]. Для достижения максимальных удобств клинической диагностики дли- тельность всего процесса, включающего и демонстрацию объемного изобра- жения, должна быть сокращена до нескольких минут при фактическом вре- мени накопления данных в несколько минут. Для нахождения оптималь- ного решения этой сложной вычислительной задачи было проведено мно- жество алгоритмических и имитационных исследований [7, 22, 24]. Пре- дельная производительность мощного мини-компьютера, связанного с до- ступным в настоящее время программируемым матричным процессором, составляет одно поперечное сечение за 2—10 с. Вместе с тем было опреде- лено, что в ближайшем будущем доя достижения требуемой производитель- ности эквивалентной скорости вычислений не менее 4 • 109 оп./с необходимо будет увеличить быстродействие (процессора) на несколько, порядков; использование проекций наглядно свидетельствует’о необходимости дости- жения в конечном счете к концу 80-х годов быстродействия в 90 • 109 оп./с. Поскольку такая высокая производительность не будет обеспечиваться да- же следующим поколением программируемых матричных процессоров, было принято решение о разработке специализированного высокопроизво- дительного процессора, ориентированного на узкий класс алгоритмов. Был выбран наиболее эффективный алгоритм и вложен в несколько возможных вариантов процессоров разной архитектуры, оказалось, что, несмотря на различия в способе реализации, общим доя этих процессоров является то, что все они принадлежат к двум различным типам ОКМД-сис- тем. Далее будет приведено краткое описание алгоритма воссоздания изоб- ражения и характерной архитектуры таких процессоров. Алгоритм построения изображения, используемый в АТ, включает не- сколько этапов. После аналого-цифрового преобразования каждая полу- ченная вектор-строка входных данных умножается на заранее вычисленный весовой вектор такой же размерности доя коррекции искажений, вызван- ных изменением интенсивности рентгеновского излучения на краях лучей. Каждый из этих ’’векторов данных”, используемых доя построения изобра- жения, затем фильтруется непосредственным вычислением свертки или с помощью преобразования Фурье для корректировки апертурных искажений, вызванных конечной шириной рентгеновского луча. Отфильтрованные векторы данных затем ’’собираются” в пространство изображений доя по- лучения величины, характеризующей яркость данного элемента растра. Для получения значения яркости элемента путем обратной проекции из па- мяти считывается один элемент из каждого отфильтрованного вектора дан- ных и взвешивается с последующим суммированием всех взвешенных зна- чений. Эта процедура повторяется для получения каждого из (всех) 16 000 — 250000 элементов растра, составляющих изображение одного поперечного сечения [3, 14 — 16]. На рис. 26.2 приведена функциональная схема специализированного аппаратурно-параллельного процессора, разработанного для реализации не- 448
Сглажи- вающий фильтр —---------(Pi) _ Отсчеты проекции Парал- лельный сумматор Формирова- тель адре- сов элемен- тов изоб- ражений Память изобра- жений, 16 к слов х *16 разрядов К ЗУ большой емкости и устройствам отображения ЗУ проекций (N блоков по 4 Келов каждый) 12-разрядный адрес Информаци- онный выход Информационный вход (ИВ12) 12-разрядные адреса _ ЗУ проекции А123 Разряд о JLtL Разряд(12N-1) AN Слово о 1 2 16127 16128 ЗУ адресов проекций, 16 К слов* * 16 раз- рядов Арифметическое устройство Управляющее устройство Рис. 26.2. Функциональная схема специализированного параллельного процессора, разработанного для реализации нескольких тесно связанных алгоритмов построения биомедицинских изображений (алгоритмов автоматизированной томографии), в част- ности алгоритма свертки и восстановления изображения для расходящегося пучка. Верхний процессор выполняет операции предварительного взвешивания и фильтрации. Нижний ОКМД-процессор выполняет параллельные операции восстановления изобра- жения. Адреса проекций и весовых коэффициентов формируются табличным методом. В таблице хранятся 8 весовых коэффициентов обратного преобразования. Управление осуществляется с помощью микроконтроллеров скольких однотипных алгоритмов восстановления изображения [22, 24]. Арифметическое устройство, изображенное в верхней части рисунка, реали- зует операцию линейной фильтрации векторов данных отдельных проек- ций, каждый из которых содержит до 512 элементов. Полученные промежу- точные результаты передаются на параллельно работающие подпроцессоры, расположенные в нижней части рисунка, которые реализуют ’’собирающую” часть алгоритма. 449
Несмотря на многолетнюю интенсивную работу, основные проблемы, связанные с данной архитектурой, остаются нерешенными. После тщатель- ного изучения основного алгоритма построения АТ-изображений и приме- нения этого алгоритма в конкретных проектах становится очевидным, что разделение процесса вычислений более чем на 30 отдельных подпроцессов, которые могут выполняться на отдельных параллельных процессорах, невоз- можно. В предельном случае система в целом объединяет, около 225 000 ло- гических вентилей (не считая памяти). Каждый из процессоров, в свою оче- редь, может быть реализован в виде СБИС, тем более что 28 из них могут быть идентичны. В предположении, что эти СБИС будут работать на мак- симально возможной тактовой частоте (20 МГц для современных СБИС), была получена верхняя оценка производительности процессора, равная 2-109 оп./с. В то же время требуемая по нашим оценкам производитель- ность составляет (4 — 90)-109 оп./с, что соответствует рабочим частотам 30—675 МГц. Такая же дилемма возникает при решении некоторых вычис- лительных задач биомедицины и при решении многих задач военного харак- тера. Данная проблема лишь частично может быть решена с помощью архи- тектурных решений, алгоритмических трюков, параллелизма и конвейер- ности. Этот пример, по-видимому, является характерным для целого подклас- са задач обработки сигналов и изображений, которому присущи исключи- тельно жесткие временные и экономические ограничения. В таких задачах на вход процессора поступает поток данных со столь большой скоростью, что по крайней мере предварительная обработка (а в некоторых случаях и послепроцессорная) должна выполняться с тактовыми частотами 0,1 — 2 ГГц. Основная операционная часть такого процессора может функционировать с меньшей частотой, но, как правило, все же превышающей допустимую так- товую частоту современных СБИС и СБИС ближайшего будущего. Отметим также, что частота внутренних микро тактов процессора часто должна в несколько раз превышать частоту поступления данных; например, некото- рые алгоритмы предварительной обработки радиолокационных эхо-сигналов требуют выполнения от 10 до 20 (микро) операций за период поступления входных отсчетов. Если в этом случае скорость поступления данных состав- ляет 108 отсч./с, то для некоторых блоков процессора потребуется такто- вая частота от 1 до 2 ГГц. Причем по крайней мере для нескольких подоб- ных задач процессор в целом реализуется наиболее просто, если все его бло- ки работают на максимальной рабочей частоте [25]. Существует еще одно и, возможно, наиболее существенное препятствие на пути решения задач, требующих столь высокой производительности. Оно связано с часто возникающей необходимостью использовать специали- зированные компоненты, оптимизированные на решение конкретной зада- чи. Однако, как следует из рассмотренного примера, для многих систем обработки сигналов потребность в специализированных ИС столь мала, что изготовление заказных ИС, особенно заказных СБИС, недопустимо. Стоимость полной разработки СБИС до сих пор очень высока даже с учетом 450
последних достижений в области автоматизированного проектирования [26]. Обычно выпуск даже 50— 100 процессоров с заказными компонентами совершенно недостаточен, чтобы окупить затраты, связанные с разработкой специализированных СБИС. Из сказанного следует, что усилия, направленные на увеличение пропуск- ной способности процессоров, предназначенных для классической обработ- ки исключительно широкополосных сигналов в реальном масштабе време- ни, не могут полностью основываться только на оптимальных архитектурных решениях даже при их реализации на СБИС. В ряде разработок подобных систем, включая проведенные в нашей лаборатории, в таких случаях увели- чение быстродействия было достигнуто благодаря использованию логичес- ких схем, реализованных на более ’’быстрых” транзисторах. 26.5. МЕТОДЫ УВЕЛИЧЕНИЯ СКОРОСТИ ОБРАБОТКИ, ОСНОВАННЫЕ НА ИСПОЛЬЗОВАНИИ БОЛЕЕ СОВЕРШЕННЫХ ТЕХНОЛОГИЙ Высокая скорость переключения транзисторов — параметр, который трудно использовать на уровне СБИС, поскольку достижение задержек распространения сигнала длительностью в единицы и доли наносекунды на вентиль требует рассеивания больших мощностей в кремниевых ИС (см. рис. 26.1). Рассеиваемая мощность при этом увеличивается, поскольку требуются большие мгновенные токи при данном перепаде логических уров- ней напряжения для перезаряда паразитных емкостей линий связи между смежными логическими схемами на кристалле или (и) между интеграль- ными схемами. Если каждый вентиль рассеивает в среднем 1 мВт, то СБИС, содержащая 10 000 вентилей, будет рассеивать 10 Вт. Организовать необхо- димое охлаждение таких ИС обычными способами очень трудно. Кремние- вые СБИС со сложностью около 10 000 вентилей должны рассеивать не бо- лее 100 — 400 мкВт на вентиль; при таком низком уровне рассеиваемой мощности переключающие токи столь малы, что трудно достичь средней задержки, намного меньшей 1 — 2 нс (см. рис. 26.1) . Хотя уменьшение размеров транзисторов и вентилей теоретически могло бы привести к уменьшению средней задержки распространения на вентиль при том же уровне рассеиваемой мощности, эта тенденция не всегда будет приводить к более высокой скорости работы компонентов СБИС. Причина состоит в том, что разработчики будут использовать возможность создания транзисторов меньших размеров для изготовления ИС с еще большей сте- пенью интеграции. Например, в ИС, содержащей 100000 вентилей, мощность, рассеиваемая одним вентилем, должна быть ограничена величиной 10 — 40 мкВт для сохранения мощности рассеивания всего кристалла на уровне 1—4 Вт. Из рис. 26.1 видно, что только одна технология изготовления — КМОП, КНС — позволяет достичь такого низкого уровня. Таким образом, в обозримом будущем высокие тактовые частоты и высокие уровни слож- ности будут являться несовместимыми требованиями для кремниевых СБИС. 451
26.6. ИСПОЛЬЗОВАНИЕ АРСЕН ИД-Г А ЛЛИЕВОЙ ТЕХНОЛОГИИ ИЗГОТОВЛЕНИЯ БИС ДЛЯ УВЕЛИЧЕНИЯ СКОРОСТИ ОБРАБОТКИ Каким же может быть решение задачи обработки сигналов, ограниченное, с одной стороны, очень широкой полосой частот входных сигналов и высо- кой тактовой частотой, а с другой стороны, требующее разработки специа- лизированной элементной базы для производства* в небольших количест- вах в сжатые сроки? Один из способов, интенсивно изучаемый сейчас в нескольких исследовательских лабораториях, включает комплексное ис- пользование как новых технологий, позволяющих поднять рабочую частоту выше 250 МГц, так и методов быстрого проектирования и изготовления от- дельных компонентов элементной базы и системы в целом. Такие возмож- ности открываются благодаря физическим свойствам арсенида галлия при его использовании для формирования подложки ИС вместо обычных инер- ционных подложек из кремния или кремния на сапфире. Потенциальное преимущество использования GaAs при изготовлении цифровых ИС было известно давно. Однако развитие этой технологии сдерживалось тем, что некоторые физические свойства GaAs не позволяли использовать для не- го технологическое оборудование, разработанное для кремниевых устройств. Физические свойства кристаллической структуры такой подложки намного сложнее, чем кремниевой, и в настоящее время интенсивно исследуются; соответствующие уровни технологии и производственное оборудование, развиваемое в течение 25 лет для кремния, в настоящее время претерпева- ют изменения и тем не менее еще недостаточно отрегулированы для арсе- нида галлия. Однако в противовес этим очевидным недостаткам существует ряд факторов, говорящих в пользу арсенид-галлиевой технологии. Во-пер- вых, подвижность электронов в GaAs при заданном градиенте напряжения в шесть-восемь раз больше, чем в кремнии. Это в конечном счете приво- дит к большей скорости прохождения электронов через каналы ^-каналь- ных полевых, транзисторов, сформированных на подложке из GaAs, и позво- ляет более чем в три раза уменьшить задержку распространения на вентиль по сравнению с такими же структурами на кремнии или уменьшить мощ- ность рассеивания на вентиль при той же скорости, или соответственно улучшить обе эти характеристики (см. рис. 26.1). Эффект высокой под- вижности электронов этого материала уже демонстрировался в функцио- нальных ИС на уровне СИС и БИС [27, 28]. Арсенид-галлиевые МИС и СИС опытной серии (т.е. не единичные, соз- данные в лабораторных условиях экземпляры ИС) были помещены в кор- пуса и установлены на испытательный стенд, где работали с задержками и рабочими частотами, недостижимыми для промышленно выпускаемых кремниевых ЭСЛ ИС с задержкой менее 1 нс. На рис. 26.3 показаны харак- теристики функционирования опытных ИС малой степени интеграции (не- больших контрольных структур на БИС), работающих в диапазоне частот 1—2,5 ГГц. Эти данные, по-видимому, являются первой демонстрацией функционирования несколько связанных цифровых GaAs ИС. Измерения показали, что внутрикристальная задержка на вентиль составляет 80 — 452
120 пс, а вне кристалла возрастает до 250 — 350 пс при малых уровнях шу- ма даже несмотря на то, что оптимальные способы корпусирования и меж- компонентных соединений не применялись на этих ранних стадиях исследо- вания. Были разработаны ИС на полевых транзисторах с наиболее важным технологическим параметром — размером вентиля, равным 1 мкм, вполне достижимым на GaAs (но не в кремнии) вследствие простой структуры по- левых транзисторов на GaAs и небольшого числа технологических опера- ций. Кроме того, есть все основания надеяться, что положительные эффек- ты, полученные за счет уменьшения геометрических размеров в кремние- вых ИС, проявятся так же, а возможно, и в большей степени, в арсенид- галлиевых ИС, включая эффект баллистического пролета электронов через транзисторы [29]. Размер вентилей на полевых транзисторах, который, собственно, и определяет скорость работы транзисторов и мощность рас- сеивания при заданных характеристиках подложки, по-видимому, можно уменьшить по крайней мере до 0,7 мкм. Это уменьшит время внутрикрис- таллической задержки на вентиль до уровня 50 — 80 пс и даст дополнитель- ный выигрыш в быстродействии [29]. Кроме того, характеристики энергетических зон арсенида галлия и ар- сенида алюмогаллия позволяют создавать определенные типы структур, которые в принципе невозможны в кремнии. Например, могут быть созда- ны различные типы биполярных транзисторов с неоднородными перехода- ми (гетеропереходами), включающие несколько слоев арсенида алюмогал- лия и арсенида галлия [28]. К середине 80-х годов значение /т одной из та- Лоложение испыта- тельного зонда 8: GaAs GaAs С: GaAS ~^ЭСЛ D Положе- ние йены- А: Входные синхроимпульсы тательно- g: GaA$ GoAs го зонда В: GaAs-^GaAs В: GaAs-^GaAs С: GaAs ЭСЛ D: ЭСЛ-выход Рис. 26.3. Функционирование нескольких арсенид-галлиевых и кремниевых ЭСЛ-эле- ментов, соединенных, как представлено на схеме. Межкристальная задержка существен- но меньше 300 пс. Рабочая частота 2,07 ГГц 453
ких биполярных структур при 300 К должно обеспечивать задержку 10 — 20 пс на вентиль соразмерных с выполненными на кремнии [30]. С другой стороны, были разработаны и достаточно хорошо описаны неоднородные транзисторы, содержащие слои GaAs и AlGaAs, но имеющие структуру по- левых транзисторов и называемые обычно транзисторами с высокой подвиж- ностью электронов (ВПЭ-транзисторов) [31]. Эффективная подвижность электронов в канале достигает уровня по крайней мере в 7 — 10 раз вы- ше, чем в обычных полевых транзисторах. Эти структуры на ВПЭ-транзис- торах, каждый длиной 1 мкм, уже продемонстрировали возможность полу- чения задержки примерно 30-40пс при комнатной температуре и 12,8 пс при 77 К, а также более высоких коэффициентов усиления и проводимости, чем в обычных полевых транзисторах на GaAs. Кроме того, по всей вероят- ности, арсенид-галлиевые ИС на основе ВПЭ-транзисторов достигнут уровня плотности СБИС уже в этом десятилетии. 26.7. СРАВНИТЕЛЬНЫЙ АНАЛИЗ УЗЛОВ КОММУТАЦИИ, ВЫПОЛНЕННЫХ НА ОСНОВЕ КРЕМНИЯ И АРСЕНИДА ГАЛЛИЯ Подробное сравнение характеристик существующих и ожидаемых арсе- нид-галлиевых транзисторов и вентилей с аналогичными параметрами высо- коскоростных кремниевых ЭСЛ-структур может быть поучительным. На- пример, были произведены оценки характеристик гипотетической заказной ЭСЛ БИС с задержкой менее 1 нс, представляющей собой коммутирующий узел в сети ЭВМ с восемью входными и восемью выходными линиями. При современном уровне развития ЭСЛ-технологии такая БИС может быть из- готовлена и будет содержать 500 — 700 вентилей. Она будет способна переда- вать данные от одного или нескольких из восьми входных портов к одно- му или нескольким из восьми выходных портов со скоростью до 500 Мбит/с на линию при суммарной рассеиваемой мощности ИС около 4 — 8 Вт. Экстра- поляция развития технологии до уровня 1985—1987 гг. показывает, что прогрессивные методы литографии позволят при изготовлении таких ЭСЛ- структур приблизительно с тем же числом вентилей вдвое уменьшить мощ- ность рассеивания или вдвое увеличить пропускную способность (т.е. дос- тигнуть скорости в 1 Гбит/с на линию) или частично улучшить и ту и другую характеристики. Такой же коммутационный узел был затем разработан согласно совре- менной технологии арсенид-галлиевых ИС с использованием обоих путей достижения требуемой производительности. Результаты разработки пока- зывают, что в этом случае требуется минимальное число вентилей. При на- личии примерно 500 одно компонентных вентилей пропускная способность 1,5 Гбит/с на линию достигается на уровне технологии 1982 г. при рассеивае- мой мощности 1,6 Вт (т.е. производительность в 3 раза выше, чем у крем- ниевых приборов образца 1982 г. при увеличении мощности лишь на 20 — 40%). При последующей более оптимальной реализации такого коммута- тора с использованием современной арсенид-галлиевой технологии пропуск- ная способность составила 3 Гбит/с на линию при рассеиваемой мощности 454
0,3 Вт. Была оценена также ожидаемая производительность арсенид-галлие- вых ИС образца 1985 — 1987 гг. Предполагается, что технологический пара- метр составит 0,5—0,7 мкм, при этом производительность возрастает до 4 Гбит/с, а рассеиваемая мощность составит 0,2 Вт. Для арсенид-галлиевой разработки 1985 —1987 гг. была сделана также вторая оценка, но с учетом возможностей ВПЭ-транзисторов с длиной кана- ла 0,9 мкм. Исходя из таких предположений и недавно опубликованных данных можно сделать вывод о реальности создания БИС коммутатора на 500 вентилей со следующими значениями пропускной способности и рас- сеиваемой мощности: 18 Гбит/с на линию, 0,2 Вт на кристалл; 14 Гбит/с на линию, 0,058 Вт или 10 Гбит/с на линию, 0,015 Вт на кристалл. Другими авторами были опубликованы более скромные результаты, которые экстра- полируются до уровня пропускной способности в 8 Гбит/с при 0,048 Вт на кристалл. При достаточно интенсивных исследованиях и проектировании такой рост производительности, по-видимому, будет достигнут в ближай- шие 5 лет. 26.8. ВЕНТИЛЬНЫЕ И ЯЧЕЕЧНЫЕ МАТРИЦЫ НА ОСНОВЕ АРСЕНИДА ГАЛЛИЯ Скоростные и мощностные характеристики, описанные в разд. 26.7, под- черкивают некоторые из преимуществ использования арсенид-галлиевой технологии в тех случаях, когда требуется очень малая задержка на вен- тиль или очень высокая тактовая частота. Однако, как упоминалось ранее, дополнительные трудности, с которыми сталкиваются разработчики высоко- производительных процессоров сигналов, связаны с их малосерийным производством независимо от того, готовые, заказные или полузаказные ИС использованы в процессоре. Учитывая эту проблему, несколько лабораторий начали разработку уни- версальных вентильных матриц и (или) базовых матричных кристаллов (ячеечных матриц) на основе арсенида галлия. Отражая результаты, полу- ченные недавно для кремниевых матричных ЭСЛ-кристаллов первого поко- ления, автор работы [28] указывает на возможность создания арсенид- галлиевых матриц, содержащих 1000 — 4000 эквивалентных вентилей и более. Сравнение максимальной плотности компоновки, достижимой в заказ- ных ИС, и короткого цикла проектирования и изготовления полузаказных ИС на базе вентильных матриц показывает, что второй подход предпочти- тельнее, если высокая плотность компоновки не требуется или является экономически нецелесообразной. С другой стороны, то, что большая часть площади кристалла отводится на линии связи, не позволяет вентильным (ячеечным) матрицам достичь уровня плотности СБИС в ближайшее время. Действительно, существу- ют разные мнения относительно целесообразности применения ячеечных GaAs-матриц. Основным отрицательным аргументом при этом является то, что скорость переключения GaAs-транзисторов будет снижаться из-за длин- ных линий соединений, характерных для матриц такого типа. 455
26.9. ХАРАКТЕРИСТИКИ АЛГОРИТМОВ ОБРАБОТКИ СИГНАЛОВ, ДЕЛАЮЩИЕ ЦЕЛЕСООБРАЗНЫМ ИХ РЕАЛИЗАЦИЮ НА АРСЕНИД-ГАЛЛИЕВЫХ ВЕНТИЛЬНЫХ (ЯЧЕЕЧНЫХ) МАТРИЦАХ Поскольку в настоящее время в арсенид-галлиевых вентильных (ячееч- ных) матрицах нельзя достичь уровня интеграции СБИС, естественно воз- никает вопрос, есть ли смысл использовать их в качестве серьезных конку- рентов заказных СБИС, основным достоинством которых является возмож- ность реализации части или полностью центрального процессора на одной СБИС? Должны быть приведены серьезные аргументы, доказывающие воз- можность и целесообразность использования полузаказных ИС, содержащих лишь 2000—10 000 вентилей, в аппаратуре высокопроизводительных про- цессоров сигналов. Ответ на этот вопрос неоднозначен. Во-первых, харак- теристики алгоритмов обработки сигналов существенно отличаются от ха- рактеристик обработки данных по следующим причинам. Операции обра- ботки сигналов обычно производятся над массивами, содержащими очень много элементов. Отдельные элементы этих массивов имеют сравнительно невысокую точность и представлены в виде операндов фиксированной раз- рядности (8 — 12 разрядов), а в ряде случаев в виде комплексных величин фиксированной разрядности типа Real [12] +Imag [12] и еще реже в виде операндов с блочной запятой или обычных малоразрядных операндов с плавающей запятой [21]. Высокочастотные вычисления с плавающей запя- той, требующие сложной аппаратуры, используются крайне редко. Алгоритмы обработки сигналов, разработанные в последние три десяти- летия и часто применяемые в различных комбинациях, включают корреля- цию, взаимную корреляцию, свертку, быстрое преобразование Фурье, умно- жение векторов на скаляр, формирование скалярных и векторных произ- ведений, матричные операции и Z-преобразование с ЛЧМ-фильтрацией. Все эти алгоритмы характеризуются: 1) регулярностью элементарных арифме- тических операций (т.е. операций умножения, сложения и вычитания, с по- мощью которых они реализуются), 2) ничтожно малым числом условных переходов и 3) большим отношением числа вычислительных операций к чис- лу операций цикла в течение их выполнения. Поэтому большое число общих операций реализовано однообразно. Кроме того, использование двоичных дополнительных кодов фиксированной разрядности позволяет реализовы- вать сложение и вычитание одной элементарной операцией. Обычное умно- жение операндов фиксированной разрядности в отдельных случаях может быть осуществлено комбинацией двоичных сдвигов, которые даже легче реализовывать [3,32]. Основные'’Ъперации обработки сигналов часто свя- заны друг с другом и образуют цепочку, а внутренняя структура получаю- щихся аппаратных средств также регулярна. Вследствие этого весьма привле- кательным является поточное выполнение алгоритмов обработки сигналов с передачей промежуточных результатов от одного этапа к последующему, при котором практически отсутствуют ветвления, циклы или прямая и об- ратная связи по операндам. Если такие алгоритмические структуры, характеризующиеся небольшой точностью вычислений и относительно невысокой сложностью, реализуют 456
на ИС, то часто можно расположить элементы, выполняющие смежные фрагменты алгоритма, в непосредственной близости друг от друга, что поз- воляет получить очень короткие линии связи на кристалле. Упомянутый по- точный характер алгоритмов позволяет также включать в различные узлы аппаратуры конвейерные регистры, тем самым удваивая или учетверяя ско- рость работы процессора при данной рабочей частоте с очень незначительным увеличением объема аппаратуры (число вентилей увеличивается обычно лишь на 10 — 20%). Хотя алгоритмы обработки сигналов во многих случаях могут быть распараллелены [3, 33], увеличение объема аппаратуры при этом всегда значительно выше, чем при конвейерной реализации алгоритма, обес- печивающей ту же производительность. Для решения многих задач обработки сигналов можно также использо- вать так называемую разрядно-модульную организацию их структур, т.е. полный процессор может быть разделен ’’вертикально” таким образом, что одна ИС, содержащая среднее число вентилей, реализует вычисления над младшими разрядами всех операндов, в то время как связанная с ней со- седняя микросхема (часто идентичная ей) или микросхемы реализуют вы- числения над старшими разрядами тех же операндов. Этот метод более при- годен для реализации алгоритмов, в которых используются операнды с фик- сированной разрядностью или с блочной запятой, чем для решения задач обработки данных с плавающей запятой и высокой точностью. Все сказанное лишь частично касается различий между: 1) большими настраиваемыми вентильными матрицами или ячеечными матрицами со сложностью примерно 1000 — 10000 эквивалентных вентилей и 2) заказ- ными СБИС (хотя и работающими со значительно меньшей скоростью), включающими 10000 — 50 000 вентилей. Хотя очевидно, что сложные крем- ниевые СБИС должны найти широкое применение в большинстве устройств обработки сигналов, недавние исследования, проведенные в нашей лабора- тории, показывают, что обладающий большими возможностями высоко- производительный процессор сигналов может быть изготовлен на основе настраиваемых вентильных или ячеечных матриц умеренной сложности. В этих исследованиях различные элементы классической структуры обработ- ки сигналов, включая арифметические устройства, порты ввода-вывода, контроллеры памяти, были разработаны на основе макро ячеек малой и средней степени интеграции и затем были расчленены на гипотетические вентильные или ячеечные матрицы со сложностью, измеряемой в преде- лах 1000—16000 эквивалентных вентилей и с числом выводов корпуса 100-200. Типовые элементы структуры сигнальных процессоров, описанные ранее, включая узлы коммутации, контроллеры памяти и арифметические устрой- ства, могут быть расчленены на вентильные или ячеечные матрицы, содержа- щие не менее 2000 — 4000 вентилей; для обеспечения ввода-вывода требует- ся примерно 125 — 185 выводов. Так как сложность базовых матричных кристаллов превышает 4000 эквивалентных вентилей, проблема расчлене- ния в некоторых случаях значительно упрощается и, кроме того, в некото- рых случаях минимально требуемое число выводов уменьшается на 15 — 20%. 457
г При уровне интеграции в 8000 — 10 000 вентилей на кристалле могут быть размещены арифметические устройства, реализующие примитивные опера- ции малоразрядных чисел с плавающей запятой, а также операции над комп- лексными числами с фиксированной запятой. При таком уровне сложности почти все исследованные на сегодня структуры процессоров могут быть ре- ализованы на кристаллах одного типа. Таким образом, вполне реальными являются создание быстродействующего процессора сигналов на основе арсенид-галлиевых ИС с умеренным числом вентилей и появление таких ИС в ближайшее время. 26.10. ТЕХНИЧЕСКИЕ ВОЗМОЖНОСТИ АРСЕНИД-ГАЛЛИЕВЫХ ПРОЦЕССОРОВ БЛИЖАЙШЕГО БУДУЩЕГО В ближайшее время станет технически возможным проектировать и из- готавливать арсенид-галлиевые процессоры или смешанные арсенид-галлие- вые и кремниевые процессоры с тактовой частотой 100 МГц и выше. Во- первых, разработано и проверено более 30 различных заказных МИС и СИС 5350 мкм оааоаоааааоооооааоо OOOODDOO OOODOOOOD о OOODCDaCOaonDODDDOQDCOOQOOaOOOOO □ D гт т Т г ? т т тт-7 I ! I I I I I I t I тл т-> ч-г-т i О О — > * > > 4. J 4 > 4 4 4 4, «I 4 4 1 * и с а О а О В В о □ п свав в а а а в а о о Н Резервная ячейка Ввода-Вывода (контактное окно) iqei авап go овшявв ю ввв о о о «ввв ов а в в в ° ® швее ев gg с шшаш а оевв евввов По оаввевсшвав ошв вв в р 1 Tl i ВканалоО 7675 мкм па ошшиаош а = □«опа = 2 ошшв®® gg овевав ga Ошшвии “о оваш Ей °® Ов □а ш швв Шина г— питаниям Шина земли <Е' 5 а о« О о Qm О Ш08 ячеек I i; эквивалентных s g Вентилей) I ' 5 каналод --= sg Резервная ячейка Ввода-Вывода _ ° g § (контактное окно) SSg° ea a Н во □ --------------- QO □ о л/ !{ J-Jb57 \яВ1 [н 07и А2я В2я С Р2я к Hl яА1 яВ1 яС1 яВ1 ц 0/в ~^{21мкм '^8 мкм Кана/] 2мкм Змкм (Защитная) изолирующая полоса I > □ о ш „ О о 11 11 ВканалоВ Io о О О ооаап 1 Шина _{питания Выводы для подключения} кристалла 4 I Выходная (периферийная) ячейка \Шина 4пи гания К Внутренней ячейке или от нее Шина !— земли г DOQODODOOODDDDODDOOOOQDOOC 8пШЛмл11!Лания Внешние контакт - и земли ные площадки 100 х 100 мк мх '<А1 •81 I \ключения \С1 Змкм * ^IL о (Защитная) изолирующая ^ванал змкм каналов полоса 75 мкм 70 мкм 3! ) В2\ С2\ 02\ 07я ° _-02 ° j Внутренняя ячейка (пара базовых ячеек) Рис. 26.4. Структура арсенид-галлиевой настраиваемой ячеечной матрицы на полевых транзисторах, разрабатываемой в настоящее время (4000 эквивалентных вентилей, задержка распространения 200 пс). Отмечено расположение ячеек и типовых каналов между ними, а также возможность реализации каждой ячейкой различных типов логи- ческих схем 458
на GaAs. Процент выхода годных многослойных ИС стал настолько прием- лемым, что МИС сейчас включены в экспериментальные образцы процес- соров, которые предполагается изготавливать и поставлять [25]. Во-вто- рых, заказные БИС, содержащие более 1000 вентилей, уже успешно прошли испытания, но процент выхода годных пока неприемлемо мал. Однако и процент выхода годных, и плотность компоновки этих заказных устройств, по-видимому, будут расти подобно тому, как у кремниевых БИС во второй половине 70-х годов. Разрушая упомянутые ранее позиции скептиков относительно целесооб- разности создания арсенид-галлиевых вентильных и ячеечных матриц, про- гресс для этих устройств также становится очевидным. Вентильные и яче- ечные матрицы, изготавливаемые как по биполярной И2Л-технологии [28], так и по технологии полевых транзисторов (рис. 26.4), в 1984 г. должны были проходить испытания. Ячеечные матрицы по своей сути более при- годны для высокопроизводительных приборов, особенно на арсенид-гал- лиевой подложке, поскольку любую вентильную структуру можно помес- тить в любом желаемом месте на ИС для обеспечения минимального рас- стояния между источником сигнала и его предполагаемыми приемниками (рис. 26.4). Наконец, такие вентильные или ячеечные матрицы могут ока- заться полезными при использовании высокоскоростных биполярных или ВПЭ-структур для увеличения коэффициента разветвления на выходе и про- пускной способности ИС. Следовательно, такая комбинация технологий позволяет разрабатывать сверхвысокочастотные, обладающие высокой производительностью процес- соры, базируясь в большей степени на ’’заказных” GaAs ИС, чем на крем- ниевых СБИС, и в то же время допуская малосерийный выпуск таких уст- ройств и систем. 26.11. СРЕДСТВА АВТОМАТИЗИРОВАННОГО ПРОЕКТИРОВАНИЯ, ТРЕБУЕМЫЕ ДЛЯ РАЗРАБОТКИ ПРОЦЕССОРОВ НА ОСНОВЕ АРСЕНИДА ГАЛЛИЯ Для достижения столь высокой производительности арсенид-галлиевых процессоров следующего поколения необходимо предусмотреть соответ- ствующие методы и поддерживающие их средства. Во-первых, обязатель- ным является наличие удовлетворительного испытательного оборудования, а также персонала, имеющего опыт в отладке и разработке высококачест- венных систем, как и в разработке и осуществлении соответствующего кор- пусирования ИС и в изготовлении многослойных печатных плат. Вследствие очень коротких длин волн, формируемых арсенид-гал лиевыми приборами, соединения между компонентами на таких печатных платах должны вести себя как длинные линии (фидеры). Анализ стандартных пакетов программ для трассировки печатных плат показал, что программы, по которым осу- ществляется разводка без учета требований, предъявляемых к линиям пе- редачи, должны быть модифицированы с учетом особенностей полосковых и микрополосковых линий, присутствующих в многослойных печатных платах [34, 35]. 459
Но даже более важным, чем наличие аппаратуры для разработки и изго- товления плат с фидерными линиями связи и соответствующего корпуси- рования ИС, является наличие систем автоматизированного проектирования, оптимизированных для разводки (разработки цифровых устройств, рабо- тающих в сантиметровом диапазоне) . Программное обеспечение таких САПР должно, конечно, поддерживать иерархический подход к проектированию ’’сверху вниз”, которое начинается с грубого уровня больших концептуаль- ных блоков с последующим возрастанием степени детализации при перехо- де к логическим структурам меньшего уровня. Этот подход начинает ис- пользоваться во всех САПР. Однако САПР, предназначенные для проекти- рования высокопроизводительных процессоров, должны также обладать возможностью проектирования ’’снизу вверх” той части процессора, ком- поненты которой должны отвечать некоторым технологическим ограниче- ниям для надлежащего выполнения подзадач. Эти технологически важней- шие части должны быть тщательно спроектированы вручную с максимально возможной степенью интеграции так, чтобы их связь с остальной частью системы не вызвала технологических трудностей. Эти наиболее ’’рискован- ные” функциональные блоки можно затем применять как заранее разрабо- танные ’’макросы”, не заботясь о том, что их технологически чувствительное ’’ядро” будет демонстрировать некоторую неэффективность, характерную для проектирования ’’сверху вниз”, но и не подвергая остальные части сис- темы необоснованному риску перепроектирования. Такой иерархический подход, включающий также возможность проекти- рования ’’сверху вниз”, настоятельно рекомендуется для разработки сиг- нальных процессоров на арсениде галлия, характеризуемых высокими тактовыми частотами, короткими фронтами и широкой полосой частот об- рабатываемых сигналов. Становится все более трудно разделять такую систему на отдельные блоки, за проектирование которых отвечают различ- ные специалисты (инженеры), и объединять эти отдельные блоки только при окончательной сборке процессора. Логическое расчленение, разработка меж- кристальных протоколов связи, корпусирование кристаллов, разработка платы и сборка при очень высоких частотах связаны друг с другом и требу- ют учета эффектов, не наблюдаемых в процессорах, построенных на обыч- ных ИС. Средства автоматизированного проектирования могут облегчить реализа- цию иерархической стратегии проектирования, если при разработке заказ- ных кристаллов для специализированной части системы используется кон- цепция вентильных матриц, ячеечных матриц или так называемых стан- дартных ячеек. Концептуально вентильно-ячеечная матрица подобна монтаж- ной плате с заранее сформированными каналами взаимосвязи между ’’ком- понентами” или элементарными блоками (см. рис. 26.4). Подобно тому, как ИС вставляются в посадочные' разъемы монтажной платы, макросы размещаются в определенной области ячеек в матрице. Следовательно, если база данных и структура программного обеспечения САПР с самого начала разработаны для поддержки проектирования и пе- 460
Узеп 8 TZ м 750м 750м 75 Ом 750м 75 Ом 750м Т /4,54 мм и 63,5 мм 63,5 мм Г { 63,5 мм L узел 4 \ }750м Минимальна 1 п я длина -1 L Рис. 26.5. Временное моделирование 75-омной передачи линии, связывающей один ис- точник сигнала с гремя приемниками. Длительность фронта ступенчатого сигнала 100 пс. Отметим заметный ’’звон” сигналов, не уменьшающийся до приемлемого уровня по крайней мере в течение 4 нс. Такая реализация взаимосвязи привела бы к недопустимо низкой производительности на GaAs плате, из-за чего требуется повторное проекти- рование чатных плат и вентильных или ячеечных матриц, то одни и те же програм- мные модули могут быть использованы реентерабельно для обеих структур. Программное обеспечение САПР высокочастотных устройств, разраба- тываемое в лаборатории, разделено на: 1) оперативную систему графичес- кого ввода с цветным растровым терминалом, имеющим разрешение 1024Х Х1280, и внутренним процессором и 2) намного большую часть программно- го обеспечения САПР, реализуемую на главной ЭВМ типа VAX. Эта основ- ная часть программного обеспечения осуществляет переход к реальной ап- паратуре от логической структуры, спроектированной на графическом тер- минале, а также временною верификацию, моделирование, анализ состав- ляющих шумов и перекрестных помех, подсчет потребляемой мощности, расположение и формирование соединений на печатной плате, расположе- ние макросов и анализ передачи сигнала в вентильных или ячеечных матри- цах. Это программное обеспечение формирует и проверяет соединения и загрузку данных с помощью прямой имитации функционирования во вре- менной области, причем полученные результаты используются для оптими- 461
зации расположения линий передач в многослойных печатных платах (рис. 26.5). Выходные форматы, обеспечиваемые программами САПР, совмести- мы с управляемым от ЭВМ графопостроителем, используемым для построе- ния логических схем, схем расположения плат, карт компоновки печатных плат и вентильных или ячеечных матриц и выходного файла для подготовки производства многослойных плат. Транслирующие программы формируют описание разработки на языке описания аппаратуры, требуемое некоторыми изготовителями элементной базы для преобразования логической схемы в соответствующие маски ин- тегральных схем, или управляющие команды для автомата электронной послойной записи для формирования линий внутренней связи на вентиль- ных или ячеечных матрицах. Это же программное обеспечение поддержива- ет оперативный диалоговый режим, позволяющий техникам-электронщикам проверять правильность работы нового процессора с помощью представле- ния подходящих контрольных данных из базы данных САПР, непосредствен- но используемых для изготовления системы. СПИСОК ЛИТЕРАТУРЫ [1] В. К. Gilbert, “New Computer Technologies and Their Potential for Expanded Vistas in Biomedicine. The 26th Annual Bowditch Lecture,” Physiologist, 25(1):2-18 (1982). [2] R. A. Brooks and G. DiChiro, “Principles of Computer-Assisted Tomography (CAT) in Radiographic and Radioisotopic Imaging,” Phys. Med. Biol., 27:689-732 (Sept. 1976). [3] В. K. Gilbert, S. K. Kenue, R. A. Robb, A. Chu, A. H. Lent, and E. E. Swartzlander, Jr., “Rapid Executibn of Fan Beam Image Reconstruction Algorithms Using Efficient Com- putational Techniques and Special-Purpose Processors,” IEEE Trans. Biomed. Eng., BME-2#(2):98-115 (Feb. 1981). [4] J. F. Greenleaf and R. C. Bahn, “Clinical Imaging with Transmissive Ultrasonic Com- puterized Tomography,” IEEE Trans. Biomed. Eng., BME-28(2)ATl-\%5 (Feb. 1981). [5] J. F. Greenleaf, “Computerized Transmission Tomography,” Methods Exp. Phys., 79:563-589(1981). [6] J. F. Greenleaf, S. A. Johnson, and A. H. Lent, “Measurement of Spatial Distribution of Refractive Index in Tissues by Ultrasonic Computer-Assisted Tomography,” Ultrasound Med. Biol., 3:327-339 (1978). [7] S. A. Johnson, T. H. Yoon, and J. W. Ra, “Inverse Scattering Solutions of Scalar Helmholtz Wave Equation by a Multiple Source Moment Method,” Electron. Lett., 79(4):130-132 (Feb. 17, 1983). [8] R. Langridge, T. E. Ferrin, I. D. Kuntz, and M. L. Connolly, “Real-Time Color Graph- ics in Studies of Molecular Interactions,” Science, 217(4483):661-666 (Feb. 13,1981). [9] G. R. Marshall, C. D. Barry, H. E. Bosshard, R. A. Dammkoehler, and D. A. Dunn, “The Conformational Parameter in Drug Design. The Active Analog Approach,” American Chemical Society, ACS Symp. Ser. 112, American Chemical Society, Wash- ington, D.C., 1979, pp. 205-225. [10] D. C. Weaver, C. D. Barry, M. L. McDaniel, G. R. Marshall, and P. E. Lacy, “Molecu- lar Requirements for Recognition at a Glucoreceptor for Insulin Release,” Mol. Phar- macol., 16:36'l-368 (1979). 462
[11] G. W. Beeler, Jr., and H. Reuter, "Reconstruction of the Action Potential of Ventricular Myocardial Fibres,” J. Physiol. (bond.), 268:177-210 (1977). [12] M. Bercovier and M. Engelman, “A Finite Element for the Numerical Solution of Viscous Incompressible Flows,” J. Comp. Phys., 30:181-201 (1979). [13] M. S. Engleman, S. E. Moskowitz, and J. B. Borman, “Computer Simulation: A Diag- nostic Method in Comparative Studies of Valve Prosthesis,” J. Cardiovasc. Surg., 79(3):402-412 (Mar. 1980). [14] Y. C. Pao, G. K. Nagendra, R. Padiyar, and E. L. Ritman, “Derivation of Myocardial Fiber Stiffness Equation Based on Theory of Laminated Composite,” J. Biomech. Eng., 102:252-257 (Aug. 1980). [15] H. J. Siegel, L. J. Siegel, F. C. Kemmerer, P. T. Mueller, H. E. Smalley, and S. D. Smith, “PASM: A Partitionable SIMD/MIMD System for Image Processing and Pattern Recognition,” IEEE Trans. Comput., C-30£12):934-947 (Dec. 1981). [16] L. J. Siegel, H. J. Siegel, and A. E. Feather, “Parallel Processor Approaches to Image Correlation,” IEEE Trans. Comput., C-3J(3):208-218 (Mar. 1982). [17] D. Katsuki, E. S. Elsom, W. F. Mann, E. S. Roberts, J. G. Robinson, F. S. Skowronski, and E. W. Wolf, “Pluribus—An Operational Fault-Tolerant Multiprocessor,” Proc. IEEE, 66(10):l 146-1159 (Oct. 1978). [18] L. D. Wittie, “Communication Structures for Large Networks of Microcomputers,” IEEE Trans. Comput., C-30(4):264-273 (Apr. 1981). [19] A. Jagodnik, Raytheon Corporation, private communication, Jan. 1983. [20] N. Lincoln, “Technology and Design Tradeoffs in the Creation of a Modern Supercom- puter,” IEEE Trans. Comput., C-37(5):349-362 (May 1982). [21] S-l Project Staff, The S-l Project, Vols. II and III, Lawrence Livermore Laboratory Rep.UCID 18619,1979. [22] В. K. Gilbert, A Chu, D. E. Atkins, E. E. Swartzlander, Jr., and E. L. Ritman, “Ultra High-Speed Transaxial Image Reconstruction of the Heart, Lungs and Circulation via Numerical Approximation Methods and Optimized Processor Architecture,” Comput. Biomed. Res., 12:17-3% (1979). [23] E. E. Swartzlander and В. K. Gilbert, “Supersystems: Technology and Architecture,” IEEE Trans. Comput., C-3/(5):399-409 (May 1982). [24] В. K. Gilbert, T. M. Kinter, and L. M. Krueger, “Advances in Processor Architecture, Device Technology, and Computer-Aided Design for Biomedical Image Processing,” in K. Preston and L. Uhr, eds., Multicomputers and Image Processing: Algorithms and Programs, Academic Press, New York, 1982, pp. 385-407. [25] Rockwell International/Mayo Foundation/U.S. Navy Internal Report, Aug. 1982. 463
[26] W. W. Latten, J. A. Bayliss, D. ,L. Budde, J. R. Rattner, and W. S. Richardson, “A Methodology for VLSI Chip Design,” LAMBDA (now VLSI Design), 2(2):34-45 (Apr- June 1981). [27] D. Kimell, “A 320 Gate GaAs Logic Gate Array,” 1982 GaAs Integrated Circuit Symp. Tech. Dig., IEEE 82CH1764-0, pp. 17-20. [28] J. Yuan, “GaAs Bipolar Gate Array Technology,” 1982 Integrated Circuit Symp. Tech. Dig., IEEE 82CH1764-0, pp. 100-103. [29] S. Swierkowski, Lawrence Livermore Laboratories, private communication, Mar. 8, 1983 (unpublished data). [30] P. Asbeck, Rockwell International, private communication, Feb. 21, 1983 (unpublished data). [31] P. Tung, D. Delagebeaudeuf, P. Delescluse, M. Laviron, I. Chaplart, and N. Linh, “High-Speed Low Power Planar Enhancement Mode Two Dimensional Electron Gas FET,” 1982 GaAs Integrated Circuit Symp. Tech. Dig., IEEE 82CH1764-0, pp. 10-12. [32] S. K. Kenue, “High-Speed convolving kernels for CT having triangular spectra and/or binary values,” IEEE Trans. Nuclear Sci., NS-26(2), Part 2:2693-2696 (Apr. 1979). [33] Special Issue on Parallel Processors and Processing, IEEE Trans. Comput., C-26(2):97- 169 (Feb. 1977). [34] H. Howe, Stripline Circuit Design, Artech House Press, Dedham, Mass., 1982. [35] T. C. Edwards, Foundations for Microstrip Circuit Design, WiRey, New York, 1981. СПИСОК РАБОТ, ПЕРЕВЕДЕННЫХ НА РУССКИЙ ЯЗЫК 1.38. Маркел Дж. Д., Грей А. X. Линейное предсказание речи: Пер. с англ. - М.: Связь, 1980. - 308 с. 1.52. Робинсон Э. А. Спектральный подход к решению обратной задачи в геофизике на основе преобразования Лоренца, Фурье и Радона//ТИИЭР. — 1982- — Т. 70, № 9. — С. 153-174. 1.57. Сеге Г. Ортогональные многочлены: Пер. с англ. - М.: Физматгиз, 1962. - 500 с. 2.15. Уидроу Б. и др. Адаптивные компенсаторы помех. Принципы построения и при- менения//ТИИЭР. - 1975. - Т.63, № 12. - С. 69 - 98. 2.17. Монзинго Р. А., Миллер Т. У. Адаптивные антенные решетки: Пер. с англ. — М.: Радио и связь, 1986. - 448 с. 3.1, 7.2, 14.34. Оппенгейм А. В., Шафер Р. В. Цифровая обработка сигналов: Пер. с англ. — М.: Связь, 1980. — 416 с. 3.4. Кеи С. М., Марпл С. Л. Современные методы спектрального анализа: Обзор// ТИИЭР. - 1981. - Т. 69, № 11. - С. 5 - 51. 3.5. Дженкинс Г., Ватте Д. Спектральный анализ и его приложения: Пер. с англ. - М.: Мир, 1971 - 1972. - Вып. 1 - 2. 3.8, 19.2, Хэррис Ф. Дж. Использование окон при гармоническом анализе методом дискретного преобразования Фурье//ТИИЭР. - 1978. - Т. 66, № 1. - С. 60 - 96. 3.17, 4.2. Кейпон Дж. Пространственно-временной спектральный анализ с высоким разрешением//ТИИЭР. - 1967. - Т.57, № 8. - С. 69 - 79. 3.20. Бокс Дж., Дженкинс Г. Анализ временных рядов. Прогноз и управление: Пер. с англ. - М.: Мир, 1974. - Вып. 1, 2. 464
3.21. Кэдзоу Дж. А. Спектральное оценивание: Метод переопределенной системы уравнений рациональной модели//ТИИЭР. — 1982. — Т. 70, № 9. — С. 256 — 293. 3.22. Тафтс Д. У., Кумаресан Р. Оценивание частот суммы нескольких синусоид: Модификация метода линейного предсказания, сравнимая по эффективности с мето- дом максимального правдоподобия//ТИИЭР. — 1982. — Т. 70, № 9. — С. 77 — 94. 3.26. Бэггероуэр А. Б. Обработка сигналов в гидролокации// Применение цифро- вой обработки сигналов: Пер. с англ./Под ред. Э. Оппенгейма, — М.: Мир, 1980. — С. 367-485. 3.43. Кайлатц Т. Метод порождающего процесса в применении к теории обнаружения и оценки//ТИИЭР. - 1970. - Т. 58, № 5. - С. 82. 3.52. Гейбриел У. Ф. Спектральный анализ и методы сверхразрешения с использова- нием адаптивных решеток//ТИИЭР. — 1980. — Т. 68, № 6. — С. 19 — 32. 6.12. Парлет Б. Симметричная проблема собственных значений. Численные методы: Пер. с англ. — М.: Мир, 1983. — 384 с. 6.19. Уилкинсон Дж. X. Алгебраическая проблема собственных значений: Пер. с англ. — М.: Наука, 1970. — 564 с. 6.20. Уилкинсон, Райнш. Справочник алгоритмов на языке АЛГОЛ. Линейная алгеб- ра: Пер. с англ. — М.: Машиностроение, 1976. — 392 с. 7.3, 20.1. Рабинер Л., Гоулд Б. Теория и применение цифровой обработки сигналов: Пер. с англ. - М.: Мир, 1978. - 848 с. 7.27. Гун Суньюань. Систолические и волновые матричные процессоры для высоко- производительных вычислений//ТИИЭР. - 1984. - Т. 72, № 7. — С. 133 - 153. 8.49, 16.1. Питерсон У., Уэлдон Э. Коды, исправляющие ошибки: Пер. с англ. — М.: Мир, 1976. - 594 с. 10.8. Прайс Дж. Э. Новый взгляд на выход годных интегральных схем//ТИИЭР. - 1970. - Т. 58, № 6. - с. 124 - 125. 13.5. Дийкстра Э. Взаимодействие последовательных процессов. — В кн.: Языки программирования: Пер. с англ./Под ред. Женюи. - М,: Мир, 1972. - С. 9 - 86. 13.13. Питерсон Дж. Теория сетей Петри и моделирование систем: Пер. с англ. — М.: Мир, 1984. 14.5. Голд Б., Рейдер Ч. Цифровая обработка сигналов: Пер. с англ. — М,: Сов. радио, 1973. 16.26. Дженкинс У. К. Высокоэффективные комбинированные цифровые фильт- ры//ТИИЭР. - 1978. - Т. 66, № 6. - С. 87 - 89. 17.14, 24.9. Прэтт У. Цифровая обработка изображений: Пер. с англ. — М.: Мир, 1982. - 792 с. 19.1. Макклеллан Дж. X., Пурди Р. Дж. Применение цифровой обработки сигналов в радиолокации//Применение цифровой обработки сигналов: Пер. с англ./Под ред. Э. Оппенгейма. - М.: Мир, 1980. - С. 268 - 366. 20.2. Макклеллан Дж. X., Рейдер Ч. М. Применение теории чисел в цифровой обра- ботке сигналов: Пер. с англ. — М.: Радио и связь, 1983. - 264 с. 20.4. Агарвал Р. С., Баррас Ч. С. Быстрая свертка, использующая преобразование с числами Ферма, и ее применение в цифровой фильтрации//Макклеллан Дж. X., Рей- дер Ч. М. Применение теории чисел в цифровой обработке сигналов: Пер. с англ. - М.: Радио и связь, 1983. - С. 156 - 172. 20.5. Агарвал Р., Баррас Ч. Теоретико-числовые преобразования для быстрого вычис- ления цифровой свертки//ТИИЭР. - 1975. - Т. 63, № 4. - С. 6 - 20. 465
20.6. Рид. И. С., Труонг Т. К. Применение конечных полей для вычисления сверток// Макклеллан Дж. X., Рейдер Ч. М. Применение теории чисел в цифровой обработке сиг- налов: Пер. с англ. — М.: Радио и связь, 1983. — С. 207 — 216. 20.7. Поллард Дж. Быстрое преобразование Фурье в конечном поле// Макклел- лан Дж. X., Рейдер Ч. М. Применение теории чисел в цифровой обработке сигналов: Пер. с англ. - М.: Радио и связь, 1983, - С. 147 — 156. 20.13. Макклеллан Дж. X. Аппаратурная реализация преобразования Ферма//Мак- клеллан Дж. X,, Рейдер Ч. М. Применение теории чисел в цифровой обработке сигналов: Пер. с англ. — М.: Радио и связь, 1983. — С. 186 — 202. 20.14. Лейбовиц Л. М. Упрощенная двоичная арифметика для преобразования с числами Ферма//Макклеллан Дж. X., Рейдер Ч. М. Применение теории чисел в цифро- вой обработке сигналов: Пер. с англ. — М.: Радио и связь, 1983. — С. 202 — 207. 24.1. Эндрюс Г. Применение вычислительных машин для обработки изображений: Пер. с англ. - М.: Энергия, 1977. - 160 с. 24.4. Дуда Р., Харт П. Распознавание образов и анализ сцен: Пер. с англ. — М.: Мир, 1976,- 511 с. 24.10. Розенфельд А. Распознавание и обработка изображений: Пер. с англ. — М.: Мир, 1972. - 232 с. 26.17. Pluribas — отказоустойчивый операционный микропроцессор/Д. Катсуки, Э. С. Элсом, У. Ф. Манн и др.//ТИИЭР. - 1978. - Т. 66, № 10. - С. 49 - 67.
СОДЕРЖАНИЕ Предисловие редактора перевода............................................5 Предисловие...............................................................6 Часть I. Обработка сигналов: теория и алгоритмы...........................8 1.Обработка сигналов в эпоху СБИС (Г. Кайлат)...........................10 1.1. Введение.........................................................10 1.2. Некоторые алгоритмы для теплицевых матриц........................12 1.3. Распространение результатов разд. 1.2 на матрицы, близкие к теплицевым... 20 1.4. Заключение.......................................................25 Список литературы..................................................25 2 .Применение параллельных матричных процессоров для обработки сигналов (X. Уайтхаус, Дж. Спейзер, К. Бромли)..................................28 2.1. Введение.........................................................28 2.2. Задачи метода наименьших квадратов.......;.......................31 2.3. Встречно-поточный процессор......................................34 2.4. Заключение.......................................................43 Список литературы..................................................44 3 .Спектральный анализ: от обычных методов к методам с высокой разрешающей способностью (С. Гун, Д. Рао, К. Арун).................................45 3.1. Введение....................................................... 45 3.2. Обычные методы спектрального анализа [5].........................46 3.3. Методы, основанные на моделях исследуемых процессов..............48 3.4. Моделирование сигналов на основе сингулярного разложения.........57 3.5. Заключение.......................................................60 Список литературы..................................................61 4 .Спектральный анализ с высокой разрешающей способностью. Подчеркивание основных мод (Н. Аузли)................................................64 4.1. Введение.........................................................64 4.2. Модель сигнала...................................................65 4.3. Спектральный анализ..............................................68 4.4. Разрешающая способность..........................................73 4.5. Вычисление модифицированных спектральных оценок..................74 4.6. Оценивание дальности с высокой разрешающей способностью..........77 4.7. Заключение.......................................................84 Список литературы..................................................84 5 .Принципы обработки сигналов антенных решеток, обеспечивающие высокую разрешающую способность (Г. Бъенвеню, А. Мермо)........................86 5.1. Введение.........................................................86 5.2. Основные принципы методов, обеспечивающих высокую разрешающую способность...........................................................88 5.3. Обобщения методов, обеспечивающих высокую разрешающую способность . . 92 5.4. Реализация метода высокой разрешающей способности...............102 5.5. Заключение......................................................107 Список литературы.................................................107 467
6.Замечания по поводу вычисления собственных значений матриц {Б. Парлетт) . . 108 6.1. Введение.......................................... ..........108 6.2. Приведение к стандартному виду..............................109 6.3. Возможности современных программ.............................ПО 6,4. Положение дел при решении проблем, приводящих к большим матрицам . . 112 6.5. Методы анализа малых матриц ..............................................113 6.6. Обратная итерация...........................................116 6.7. О методах решения проблемы собственных значений больших симметричных матриц............................................. ...............117 6.8. Метод итерирования подпространства для решения уравнения (К - XM)z=0. 118 6.9. Алгоритм Ланцоша [ 12, гл. 13].......................... .... 119 6.10. Сингулярные значения (для малых матриц) .................................120 6.11. Сингулярные значения (для больших матриц)................................122 6.12. О проблеме собственных значений для больших несимметричных матриц. . 122 6.13. Вопросы на будущее...................................................... 122 Список литературы.............................................123 Часть II. Параллельные матричные процессоры: архитектура и языки.................126 7. СБИС-обработка сигналов: от трансверсальной фильтрации к параллельной обработке (С. Гун) ....................................... 131 7.1. Введение....................................................... 131 7.2. Матричные СБИС-процессоры для обработки сигналов .........................133 7.3. От анализа алгоритмов к разработке архитектуры............................135 7.4. Волновая матричная обработка..............................................141 7.5. Программное обеспечение и средства автоматизации проектирования для разработки СБИС-структур........................................ 149 7.6. Заключение................................................................155 Список литературы..........................................................156 8. Специализированные СБИС-архитектуры: общее суждение и анализ опыта (А. Фишер, С. Кунг) . . ...................... .....................157 8.1. Введение..................................................................157 8.2. Слагаемые успеха..........................................................158 8.3. Программируемые систологические кристаллы: анализ опыта...................161 8.4. Заключение................................................................170 Список литературы..........................................................171 9. Роль высокопараллельных вычислителей с перестраиваемой конфигурацией в обработке сигналов (Л. Снайдер)...................................175 9.1. Введение................................................................ 175 9.2. ВППК-процессор............................................................176 9.3. Универсальный сигнальный процессор на основе ВППК-процессора..............178 9.4. Некоторые проблемы реализации.............................................180 9.5. Заключение................................................................181 Список литературы..........................................................182 10. Увеличение доли выхода годных СБИС за счет обеспечения свойства отказо- устойчивости систолических структур (Р. Кун).....................................182 10.1. Введение.................................................................182 10.2. Структурная отказоустойчивость...........................................184 10.3. Анализ выхода годных.....................................................185 10.4. Заключение............................................................. 188 Список литературы.........................................................188 468
11. Де композиция больших матриц для ограниченных систолических структур (Д. Хеллер)..............................................................189 11.1. Введение .......................................................189 11.2. Аддитивное разбиение.......................................... 191 11.3. QR-разложение...................................................193 11.4. Разбиения.......................................................200 11.5. Разреженные матрицы.............................................201 Список литературы................................................ 202 12. Спецификация параллельных алгоритмов в терминах аппликативного прост- ранства данных (А, Кремере, Т. Хиббард)..................................201 12.1. Введение....................................................... 203 12.2. Пространство данных и запись алгоритмов.........................205 12.3. Глобальная синхронизация........................................209 12.4. Локальная синхронизация.........................................214 П рил о жение.....................................................218 Список литературы.................................................223 13. Параллельные алгоритмы в терминах пространственно-временных рекуррент- ных уравнений (М. Чен, К, Рид)...........................................224 13.1. Введение...................................................... 224 13.2. Модель вычислений...............................................228 13.3. Язык Кристал.................................................... . 229 13.4. Поведение алгоритма.............................................231 13.5. Простой пример пространственно-временного алгоритма.............231 13.6. Пространственно-временные алгоритмы для параллельных систем.....233 13.7. Заключение.................................................. 240 Список литературы............................................... 240 14. Обзор способов представления сигналов в программах (С. Колец)........241 14.1. Введение......................................>.................241 14.2. Требования к способу представления сигналов.....................243 14.3. Потоки и языки блок-схем..................................... 244 14.4. Массивы и их обработка..........................................249 14.5. Язык представления сигналов.....................................250 Заключение........................................................255 Список литературы.................................................255 15. Параллельный и конвейерный способы реализации алгоритмов обработки сигналов на СБИС (77. Девилъд, Е. Депреттъер, Р. Нута)...................257 15.1. Введение...................................................... 257 15.2. Параллелизм и конвейерность.....................................258 15.3. Параллельно и конвейерные ортогональные фильтры.................263 15.4. Модуль алгоритма Cordie с двойным конвейером....................269 15.5. Заключение......................................................272 Список литературы.................................................273 16. Архитектура арифметических устройств для цифровых процессоров сигна- лов на СБИС (X. Ахмед)...................................................274 16.1. Введение........................................................274 16.2. Взаимозависимость арифметических операций и операций управления . . . 275 16.3. Основные операции, используемые при обработке сигналов..........277 16.4. Архитектуры устройств быстрого умножения........................279 16.5. Алгоритм Cordie.................................................287 16.6 Метод последовательных приближений...............................294 469
16.7. Сравнение арифметических устройств............................295 16.8. Заключение....................................................298 Список литературы..............................................299 Часть III. Применение параллельных матричных процессоров...............302 17. Применение параллельных систем на СБИС при двумерной обработке сиг- налов (Г. Надд, Дж. Наш)...............................................304 17.1. Введение......................................................304 17.2. Требования к производительности при анализе изображений.......305 17.3. Архитектура для анализа изображений...........................308 17.4. Архитектура параллельных СБ ИС................................310 Список литературы..............................................320 18. Кристаллы СБИС-процессоров для матричной обработки (Р. Вуб, Г. Коллер, Э. Гринвуд, Д. Харрисон) ................................ 321 18.1 . Введение.....................................................321 18.2 . Обоснование выбора матричного процессора.....................321 18.3 . Характеристики матричного процессора.........................323 18.4 . Основные характеристики арифметического устройства обработки.324 18.5 . Кристалл арифметического устройства обработки................325 18.6 . Выбор функций кристалла......................................336 18.7 . Разработка СБИС..............................................337 18.8 . Заключение . ................................................343 Список литературы..............................................344 19. Цифровая фильтрация в частотной области при использовании СБИС (£. Шварц- ландер мл., Г. Холлнор)................................................345 19.1. Введение......................................................345 19.2. Требования к фильтру..........................................346 19.3. Разработка вычислительных блоков...............'..............348 19.4. Полная структура фильтра......................................353 Список литературы..............................................355 20. Параллельная СБИС-архитектура цифрового фильтра, использующего теоре- тико-числовые преобразования (Т. Труонг, И. Рид, К. Йе, Г. Чанг, X. Шао) .... 356 20.1. Введение.........................................................356 20.2. Числовое преобразование Ферма.................................357 20.3. Конвейерная структура для 128-точечного ЧПФ...................360 20.4. Архитектура цифрового фильтра с произвольной длиной преобразования ЧПФ........................................'...................363 20.5. Заключение....................................................367 Список литературы..............................................368 21. Применение систолических матриц в рекурсивных фильтрах {Г. Травассос) . . . 369 21.1. Введение.........................................................369 21.2. Формализация задачи...........................................370 21.3. Параллельная калмановская фильтрация...*......................372 21.4. Некоторые вопросы проектирования процессора...................376 21.5. Заключение....................................................380 Список литературы.............................\................381 22. -Систолические линейные алгебраические машины (Р. Шрайбер, Ф. Кьюкес) .... 382 22.1. Введение.........................................................382 22.2. Процессор QU-разложения...................................... 383 22.3. Матричный процессор для обратного хода........................391 470
22.4. Комплексное QU-разложение..................................... 392 22.5. Реализация СБИС............................................... 393 Список литературы.............................................. 396 23. Многопроцессорные параллельные структуры, конвейеры и пирамиды для восприятия образов (Л. Ур)............................................. 397 23.1. Введение: значительное увеличение мощности и производительности при использовании СБИС............................................ 397 23.2. Традиционные однопроцессорные последовательные ЭВМ и многопроцес- сорные сети....................................................... 398 23.3. Конвейерные системы компьютеров (или процессоров)............. 398 23.4. Матричные структуры из очень большого числа простых процессоров . . . 399 23.5. Множество вариантов более общих структур сетей................ 404 23.6. Алгоритмически структурированные многопроцессорные сети....... 405 23.7. Архитектура аппаратных средств пирамидальных матричных многопрсоцес- сорных систем....................................................... 405 23.8. Последовательное объединение матриц для построения пирамиды ..... 406 23.9. Составление пирамид соединением в матрицу каждого из ярусов дерева . 406 23.10. Различные способы видоизменения пирамид...................... 407 23.11. Реализация пирамид . . . .................................... 409 23.12. Архитектура проблемно-ориентированных систем для преобразования потоков данных.........................................•......... . . 409 23.13. Соответствие матричных и пирамидальных процессоров технологии С13ИС.410 23.14. Заключение.................................................„ . . 411 Список литературы........................................... . . 412 24. Параллельные алгоритмы для анализа изображений (А. Розенфелд)...... . . 414 24.1. Введение.................................................... . . 414 24.2. Обработка на уровне элементов растра........................s . . 415 24.3. Обработка на уровне регионов................................ . . 419 24,4. Заключение.................................................., . . 423 Список литературы............................................л. .424 25. СБИС-архитектуры для анализа формы и управление базой данных изображе- ния {К. Фу, К. Хуанг, Б. Ва)........................................ 5 . . 425 25.1. Введение...................................................... 425 25.2. СБИС и машинная графика...................................... . 425 25.3. Процессоры на СБИС для обработки изображений................. . 427 25.4. Машины баз данных изображения............................... . . 434 25.5. Распределение ресурсов....................................... . 436 25.6. Заключение.................................................... 439 Список литературы............................................. . 440 26. Обработка сигналов при высокой скорости поступления данных: использовав ние систем с параллельной архитектурой и высокими тактовыми частотами (Б. Гилберт, Т. Кинтер, Д. Шваб, Б. Нау сед, Л. Крюгер, В. Ван Нурден, Р. Зукка} ..441 26.1. Введение........................................................ . 441 26.2. Примеры задач с большим объемом вычислений, возникшие в биомеди- цине......................................................... . 443 26.3. Архитектурные решения, направленные на увеличение пропускной спо- собности процессора............................................... . . 446 26.4. Почему решение задач большой вычислительной сложности не всегда мо- жет быть достигнуто архитектурным решением: анализ опыта..... . . 447 26.5. Методы увеличения скорости обработки, основанные на использовании более совершенных технологий..........................................451 471
26.6. Использование арсенид-галлиевой технологии изготовления БИС для уве- личения скорости обработки..............................................452 26.7. Сравнительный анализ узлов коммутации, выполненных на основе крем- ния и арсенида галлия............................................... 454 26.8. Вентильные и ячеечные матрицы на основе арсенида галлия......... 455 26.9. Характеристики алгоритмов обработки сигналов, делающие целесообраз- ным их реализацию на арсенид-галлиевых вентильных (ячеечных) матри- цах................................................................. 456 26.10. Технологические возможности арсенид-галлиевых процессоров ближайше- го будущего ........................................................ .458 26.11. Средства автоматизированного проектирования, требуемые для разработ- ки процессоров на основе арсенида галлия . .............................459 Список литературы............................................... 462 Список работ, переведенных на русский язык .............................. 465 Производственное издание Сверхбольшие интегральные схемы и современная обработка сигналов Заведующий редакцией Ю.Г.Ивашов Редактор И. И. Р ю ж и н а Художник А. С. Д з у ц е в Художественный редактор А.С.Широков Технический редактор I'. 3.Кузнецова Корректор Т. С. Власкина ИБ № 1751 Подписано в печать 10.11.89. Формат 60x88/16. Бумага офсетная № 2. Гарнитура ’’Пресс-роман”. Печать офсетная. Усл. печ. л. 28,91. Усл. кр.-отт. 28,91. Уч.-изд. л. 32,86. Тираж 20 000 экз. Изд. № 22386. Заказ № 6833. Цена 2 р. 50 к. Издательство ’’Радио и связь”. 101000 Москва, Почтамт, а/я 693 Ордена Октябрьской Революции и ордена Трудового Красного Знамени МПО ’’Первая Образцовая типография” Государственного комитета СССР по печати. 113054 Москва, Валовая, 28