8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 61 62 63 64 65 66 67 ... 78

столбцов, а лист III - с исключением некоторых внутренних ячеек. Лист III может быть обработан только тогда, когда помещается в структуре, т.е. при 2(р - l)<q-p.

Сравним последний вариант покрытия с вариантом на рис. 22.4. При первом варианте (рис. 22.4) средний размер листа p(q-p), а при втором - 2p(q - 1)/3. Эти листы используются для покрытия прямоугольников

2(а-1)

1

J /

л

I

1

р

\

1

Первая схема более эффективна, если p(q-р) >2p(q -1)/3, т.е. при q>3p - 2. Поскольку для второго варианта требуется, чтобы значение q было по крайней мере равно Зр - 2, он никогда не может быть эффективнее первого.

22.2.4.Выбор конфигурации матричного процессора

Предположим, что какие-либо причины - например, стоимость - ограничивают размер матрицы величиной pq-pip- 1)/2. Какова наилучшая из возможных конфигурация? На решение влияют два конкурирующих фактора. Полоса частот для обмена меньше для матрицы, близкой к квадратной, так как с окружающими системами связаны только граничные ячейки. Однако число проходов, необходимое для решения задачи, не будет, как правило, минимально при p-q. Для типичного случая [скажем, при т = 100, pq ~-р{р - 1)/2 = 31] при оптимальной конфигурации матрица может быть достаточно узкой (в данном примереp = 2,q = \6).

22.2.5.Вывод данных из памяти ячеек

Трапецеидальный матричный QU-процессор выполняет разложение матрицы (22.3). Однако, как выводить элементы Un и U12, хранящиеся в ячейках матрицы? Построим схему со следующими свойствами:

1)выходной поток данных полностью однороден;

2)управляющие сигналы поступают только на граничные ячейки;

3)для внутренних ячеек не требуется никаких функций с особым управлением;

4)процессор может заканчивать разложение матрицы, выводить содержимое памяти ячеек и начинать разложение следующей матрицы без какой-либо задержки.

Ключевым моментом схемы вывода данных из памяти является поведение ячейки при передаче ей "единичной" функции вращения (с = 1, 5=0). В этом случае ячейка работает как элемент единичной задержки:

У

Для начала предположим, что за входной матрицей А следует матрица В. Данные будут подаваться в процессор в следующем формате:

Ь

пт

0

Ъп2 . dim

Ьп1 0,(22.4)

0 а12

\ I

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

Когда элемент В впервые поступает на граничную ячейку, в ней содержится нуль (это будет показано позже). Обычной функцией граничной ячейки (см. рис. 22.2) является запоминание абсолютной величины этого элемента в ее памяти и выдача "единичной" функции вращения, если элемент был неотрицательным, или произведения -1 на "единичную" функцию вращения в противном случае. По мере продвижения результата вращения вправо встречаются ячейки, содержащие в памяти нули, эти нули выталкиваются и замещаются элементами (возможно, отрицательными) строки матрицы В. Таким образом, нули передвигают столбцы вниз по всей матрице процессора.

Теперь покажем, как учитываются элементы U. Положим, что время г = 0 есть время ввода в ячейку (1,1) элементами . Тогда ячейка (/,/) принимает последний элемент матрицы А и вычисляет элемент матрицы В в момент t =/+/ - 2, тем самым работа заканчивается. В соответствии с принятой здесь последовательностью ввода (см. рис. 22.4) нулевые данные появляются на входе ячейки (1»/) в момент / непосредственно после вычисления щ j. Для обеспечения правильной работы процессора желательно получить в то же время единичное вращение, обусловливающее выталкивание элемента и xj и загрузку нуля. Это может быть реализовано специальной функцией граничной ячейки. Положим, что в цикле 1 ячейка (1,1) выполняет операцию


С=1

s=0

с7

Операция вращения, сформированная таким образом, достигнет ячейки (1, /) в момент /, как и требуется. Далее, положим, что в момент времени 3 ячейка (2,2) выполняет ту же операцию:

и

zz

(Элемент и12 был вытолкнут из первой строки, как описывалось ранее.) Эта операция вращения будет передана далее для выталкивания элементов и2Л из ячейки (2, к) и загрузки и lM = 3, 4, . . . , q. В момент времени 4 эта специальная функция вновь потребуется в ячейке (2,2):

s=0

гг

Данное вращение следует за предыдущим вниз по строкам, выталкивая элементы ulk и загружая нули. В общем случае ячейка (к,к) выполняет данную специальную функцию к раз в моменты времени t = 2к - 1,..., Зк - 2. Затем единичное вращение движется ниже строки к, выталкивая строки к, к - 1,. . ., 1 матрицы и загружая нули, предшествующие следующей матрице.

Для обеспечения однородного вывода из процессора следует добавить несколько ячеек внизу слева для получения прямоугольной структуры:

Единственным назначением ромбических ячеек является задержка окончательного вывода элементов U, которые выходят теперь из процессора в том же формате, что и элементы А (элементы i,j выходят в момент времени га- i +/).

22.3. МАТРИЧНЫЙ ПРОЦЕССОР ДЛЯ ОБРАТНОГО ХОДА

Для решения треугольной системы UY = В (матрицы Y и В имеют размеры тХп) можно использовать треугольную структуру, показанную на рис. 22.1. Детали устройства такой структуры достаточно очевидны и не приводятся. Отметим лишь, что оно состоит из треугольного массива процессорных ячеек, каждая из которых подобно матрице Джентлмена-Кунга содержит один элемент матрицы U, так что для решения некоторых прикладных задач может быть полезна одинаковая реализация обеих структур.

В рассматриваемых примерах значение п часто может быть довольно велико. Пусть требуется решить две системы: UY = В и UX= Y, но элементы Y не представляют интереса. Если X хранится в памяти, то там же можно хранить и Y. Предположим, однако, что X не хранится в памяти. Можно задаться целью минимизировать объем промежуточной памяти для хранения Y. Он может быть сокращен до О (га2) ячеек двумя способами. Можно использовать еще одну структуру для решения UX = Y и направлять результаты первой структуры во вторую. При этом необходим интерфейс из Зга (га - 1)/2 ячеек задержки, как показано на рис. 22.6. Другой возможностью является использование одной и той же структуры для решения обеих систем одновременно. На рис. 22.8 показаны два последовательных цикла работы такого устройства. В каждый данный момент половина диагоналей работает над одной системой уравнений, а другая половина диагоналей - над другой. В этом случае необходима матрица из (Зга2 - 2га) /4 ячеек задержки, что приблизительно вдвое меньше, чем в двухматрич-ной структуре.

Рис. 22.7. Структура для решения уравнения Lr Y - В

(ylt+yis+fflt)


S)

f-CUH2inHrPHaaдаЯ ПРямого и обратного хода-

а - цикл 11; б - цикл 12

22.3.1. Вычисление масштабных коэффициентов

Вычисление (22.26) требует масштабного множителя а*(#)а(#), т.е. скалярного произведения решения системы (22.2а) на себя. Поскольку векторы решения а получаются поэлементно (один элемент за цикл) с последовательных столбцов матричного процессора, эти скалярные произведения можно накапливать, присоединив строки ячеек к нижней части матрицы (см., например, рис. 22.7).

22.4. КОМПЛЕКСНОЕ QU-РАЗЛОЖЕНИЕ

В действительности должны обрабатываться комплексные матрицы А. Конечно, можно решить комплексную (2пх2т)-задачу наименьших квадратов с помощью QU-разложения действительной матрицы размера 2пх2т

ar -aj 1 А/A* J

где А = Ад +jA7 - результат разложения матрицы А на вещественную и мнимую части. Однако при использовании вращений Гивенса это требует в 8/3 раз больше операций вещественного умножения, чем при непосредственном комплексном QU-разложении матрицы А.

392

Су6

с = х/д 6=п/Р П = ?

т

с.б

у =с*х+бу z=-6x+cy

Операция QU-разложения является единственной только с точностью до умножения строк матрицы U на коэффициенты с модулем 1: A = (QD)(D *и) - также QU-разложение при любой унитарной диагональной матрице D. Поэтому необходимо, чтобы диагональные элементы U были положительными вещественными. Это и есть единственная функция разложения, вычисляемая рассматриваемой структурой.

Изменим описания ячеек на рис. 22.1 на описания, представленные на рис. 22.9. Договоримся обозначать строчными латинскими буквами комплексные величины, а греческими - вещественные, т.е.

а =а + jcv, х =f + j£ ,

Рис. 22.9. Процессорные ячейки для комплексного QU-разложения

где j = \j-l. Такие ячейки, конечно, более сложны в реализации, чем вещественные ячейки Гивенса.

Далее мало что меняется. Когда первый элемент входной матрицы оказывается в граничной ячейке, происходит следующее:

й

©

с~ а/\а\

Таким образом, вместо единичного вращения, реализуемого в вещественном варианте, осуществляется унитарное диагональное вращение.

22.5. РЕАЛИЗАЦИЯ СБИС

В этом разделе обсуждается, как могут быть выполнены внутренние ячейки вещественной и комплексной QU-матриц, а также комплексной матрицы для обратного хода при использовании внутреннего систолического кристалла (ВСК), разработанного фирмой ESL. Следует особо отметить, что эти ячейки можно получить, используя одни и те же блоки на СБИС без дополнительных микросхем. Более того, мы использовали ВСК для построения и других смешанных ячеек для вещественного или комплексного QU-разложения. Вполне вероятно, что систолические матрицы для большинства стандартных алгоритмов линейной алгебры могут быть получены на данном кристалле .и еще на одном, к которому обратимся позже.

Сначала дадим краткое описание ВСК. Он спроектирован на основе КМОП-технологии с разрешением 2 мкм фирмы ESL. Его функции таковы:



0 ... 61 62 63 64 65 66 67 ... 78