Устройство для умножения матриц

 

Изобретение относится к вычислительной технике и может быть использовано в высокопроизводительных специализированных процессорах для обработки больших массивов данных. Цель изобретения - снижение аппаратурных затрат. Устройство содержит вычислительные блоки, сгруппированные в вычислительные модули, блоки суммирования, информационные входы и выходы, входы управления. Каждый вычислительный модуль содержит информационные входы и выходы, мультиплексоры, элементы задержки, блоки памяти и входы управления. Блок суммирования содержит информационные входы и выходы, сумматоры. Вычислительный блок содержит информационные входы и выходы, регистры операндов, умножитель и регистр результата. В основу работы устройства положен рекуррентный алгоритм перемножения N . N матриц, разбитых на блоки размерностью P . P (N кратно P). 3 з.п. ф-лы, 5 ил.

СООЭ СОВЕТСКИХ соцИАлистичесних

РЕСГ1УБ ЛИК рцs С 06 F 15/347

ОПИСАНИЕ ИЗОБРЕТЕНИЯ

К А ВТОРСКОМУ СВИДЕТЕЛЬСТВУ

° °

z), ГОСУДАРСТВЕННЫЙ КОМИТЕТ

ПО ИЗОБРЕТЕНИЯМ И ОТНРЬГГИЯМ

ПРИ ГКНТ СССР 1 (21) 4497393/24-24 (22) 21,10.88 (46) 15.08.90. Бюл. К 30 (72) А.В. Демидов, А.Н. Бондарь, В.Г. Гриневич и A.Н. Семашко (53) 681,38(088.8) (56) Заявка Великобритании 9 2144245, кл. G 06 P 7/52, 1985, Гун Суньюань. Систолические и волновые матричные процессоры для высокопроизводительных вычислений, ТИИЭР, т. 72, 1984, N - 7, с. 140, рис. 8. (54) УСТРОЙСТВО ДЛЯ УМНОЖЕНИЯ МАТРИЦ (57) Изобретение относится к вычислительной технике и может быть использовано в высокопроизводительных специализированных процессорах для обработки больших массивов данных.

„„ЯУ„„1585804 А 1

Цель изобретения — снижение аппаратурных затрат. Устройство содержит вы" числительные блоки, сгруппированные в вычислительные модули, блоки суммирования, информационные входы и выходы, входы управления. Каждый вычислительный модуль содержит информацион ные входы и выходы, мультиплексоры, элементы задержки, блоки памяти и вхо. ды управления. Блок суммирования содерлжт информационные входы и выходы, сумматоры. Вычислительный блок содержит информационные входы и выходы, регистры операндов, умножитель и регистр результата. В основу работы уст. ройства положен рекуррентный алгоритм перемножения п х и матриц, разбитых на ф блоки размерностью р х р (и кратно р).

3 э.п. ф-лы, 5 ил.

С: 1585804

h„h

Г 1! hЯ hb4

А 1!т!

Г!1! "о!

Ч q!! " fb Ч!а ч!! Ч Ч хъ Ч!

"зъ 1а

Ь!с Г!4ъ Г!,!

q3ñ q ЬЪ ЧЗа

ЧФ! q4t ЧФЬ Ч!

1! 12 1а 14

21 f 22 23 с24

Я1 .а2 35 f 34

L 41 с 42 с 4.3 сФ4 с!, сс с!а ...с, Eàt с 21 с из ° ° с RS

b5| big Ь!а ° ° Ьil...а !! с@1 B! а! " 6!

Изобретение относится к вычислительной технике и может быть использовано в высокопроизводительных специа- лизированных процессорах для обработки больших Массиввов данных, Цель изобретения — снижение аппаратурных затрат.

На фиг. 1 представлена структурная схема устройства для умножения мат1О риц А и В размерности и хп (пунктиром выделен фрагмент, вход управления не показан); на фиг. 2-4 — составные элементы устройства для умножения матриц А и В дпя случая и х и = 8 х 8 и р х р = 2 х 2, где р — размерность блоков, на которые разбиваются перемножаемые матрицы (на фиг. 2 — структурная схема вычислительного мс1дуля; на фиг. 3 — структурная схема блока

20 суммирования, на фиг. 4 — структурная схема вычислительного блока); на фиг. 5 — последовательность ввода данных и получения результатов.

Устройство (фиг. 1) содержит ие1формационные входы 1, вычислительные модули выходы 3 вычислительных модулей,. входы блоков 4 суммирования, блоки 5 суммирования, выходы 6 блоков суммирования, вхоцы 7 блока суммиро1 вания, блок 8 суммирования, выход 9 устройства.

Вычислительный модуль (фиг. 2) содержит первую 10, и 10 2 и вторую 103 и 104 группы информационных входов, мультиплексоры 11, элементы 12 задерж-35 ки, вычислительные блоки 13, блоки

14 памяти, первый 15 и второй 16 управляющие входы, группу выходов 17.

Блок суммирования (фиг. 3) содержит первую 18 и вторую 19 группы вхо- 40 дов, сумматоры 20, группу выходов 21.

Вычислительный блок (фиг. 4) содержит первый 22 и второй 23 входы, ре-, . гистры 24 и 25, умножитель 26, первый

27 .и второй 28 выходы, регистр 29 и третий выход 30.

Работу устройства можно пояснить на примере умножения квадратных 8 х 8 матриц A,è В: А В = C,.

1 50

ft t! а lb ...ач (Ьll Ъг Ьfi Ь

Ч а!1 ас! а !а ...а!; Ь|! b!t brb ...Ъ!! а, а ° а!! ...аа! ° Ъа Ьас Ьаа ° ° ° Ьа = с! с ьс с!! ° с!!!

1) 55

Каждый элемент с результирующей матрицей С определяется по рекуррентной формуле с. =О, 1ci j<8;

1< а - г t (2) с1 . =- с", + а. Ь,, К=1,8. к!

Сгруппируем элементы матриц A..è В (1) в блоки размерности р х р = 2 х 2

H обозначим блоки матрицы А ii;j(i=

1,1=1,4; j=1, 1 1,4), а блоки матрицы

В с,"(= 1, 1; 1= 1,1) .

Результирующая матрица С также будет разбита на блоки p x р = 2 х 2 (i=1 1=1,4; j=1 1=1,4).

Блоки f; матрицы С также будут вычисляться йо рекуррентной формуле (2)

О й! !сс 0,„1 i, j <1;

f к = f " "+h q, К f, 1=1,4.

i) !J >к к)

Следовательно, по рекуррентной формуле (3) сразу будут вычисляться р элементов результирующей матрицы

С одного блока Й; . Соотношение (3) положено в основу работы предлагаемого устройства для умножения матриц.

Устройство работает следующим образом.

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

На первом такте (фиг. 5) на информационные входы устройства 1;(i--1,4) поступают 4 элемента а!, соответственно блоков h, 1ч12, 1!лэ, гг 1ч и 4 элемента Ь „, блоков q, q

1! 21 3! 41, причем элементы à, поступают на. входы 10„, а элементы Ь; — на входы 10з вычислительных модулей 2. (i= i 1;

1-1,4). На входы 15 и 16 управления подается разрешающий сигнал логическая "1". Операнды а „ через мультиплексоры 11, поступают ча первые входы вычислительного блока 13„„ а операнды

Ь„, через мультиплексоры 11 д — на вторые входы вычислительного блока 13 1„

4, 6

На четвертом такте сигналы логического "0" задержанные на один такт в, элементах 12„ блоков 2; (i=1 4), поступают соответственно на третьи входы мультиплексоров 11 . Эти сигналы запрещают прием операндов по первым и одновременно разрешают прохождение операндов по вторым входам мультиплексоров 11 . Через эти мультиплексоры проходят операнды соответственно с первых выходов вычислительных блоков

13 . Кроме этого, операнды Ь, блоков 1 7.

q,,q,,Ч, q с вторых выходов

Z11 91 1 9 вычислительных блоков 13 записываются соответственно в первые регистры блоков 14 7 памяти всех вычислительных модулей °

Вычислительные операции выполняются аналогично описанным. Исключение составляют операции сложения в сумматорах последнего блока 8 суммирова1 ния, в котором в накапливающих сумматорах 20 к ранее вычисленным операндам производится прибавление операндов, поступающих на первые и вторые входы блока 8 суммирования. Обнуле1 ние этих сумматоров происходит на следующем такте после вычисления каждого элемента с результирующей матрицы С.

На чертертом такте на первые входы

18 блока 8 суммирования поступают операции с выходов 21 блока 5 суммирования, а на вторые входы 19 — с выходов

21 блока 5< суммирования.

В конце четвертого такта работы устройства на выходах блока 8, суммирования будут сформированы следующие операнды: на выходе 21, — с „=а „Ь;, +

+а19 Ь91+ а75Ь 9-1+ а17 Ь.,„+ а 7 Ь 1+

+ a«b«+ а, ЬС1+ 1ВЬЭ1, н» выходе

211 а,„Ь 17+ а 1 ьЬ97+ а 1 Ь .+ а 17Ь7,; на выходе 21 9 — а 1Ь „, + а г Ь Э1+ а p +

+ а, 7 b; на выходе 21 + — О.

Таким образом, в конце 4 такта на сумматоре 20, блока 8„ суммирования будет сформирован первый элемент с

11 результирующей матрицы С, а на сумматорах 21 и 21 начнется формирование соответственно элементов с и с 1.

Аналогично вычисляются остальные элементы матрицы-результата С.

5 158580 (фиг. 2). Операнды а„ записываются в первые 24, а операнды Ь „ — во вторые .

25 регистры операндов (фиг. 4). После этого умножители 26 вычислительных блоков 13„, выполняют ойерацию умноже- 5 ния а Ь и результаты записываются в регистры 29 результатов. На этом первый такт работы устройства заканчивается. Остальные вычислительные блоки

13 вычислительных модулей 2; и сумма1О торы 20 блоков 5 и 8 суммирования произ-водят операции с нулевыми операндами, так как перед началом работы они были обнулены.

Таким образом, после первого такта работы в регистрах 29 результата вычислительного блока 13 вычислитель11 ных модулей 2 будут следующие операнды: а„ Ь,„ — в вычислительном модуле

2 ; а Ъ „ — в вычислительном модуле

2; а1 Ь, — в вычислительном модуле 2, а17Ь „,— в вычислительном модуле 2„.

kfa втором такте на информационные входы устройства поступают элементы а„, а,, Ь17, Ь7, тех же блоков

h;(j=1,4) и q,(i=1 4), причем элементы а, поступают на входы 10, а эле11 менты а, — на входы 101, элементы

bz, — на входы 10 >, элементы Ь вЂ” на входы 109 всех вычислительных блоков

2 (i=1,4). Элементы а „ перепись1ваются из регистров 24 вычислительных блоков 13и в регистры 24 вычислительных блоков 13,,„ Элементы Ь, переписы11 ваются из регистров 25 вычислительных 35 блоков 13 в регистры 25 вычислитель11 ных блоков 13,. Операнды из регистров

29 результата вычислительных блоков

13 всех вычислительных модулей пои парно поступают,на сумматоры 20 бло- 40 ! ков 5 и 5 суммирования. Элементы а „, а, Ь 1, Ь g, записываются в пер17. вые 24 и вторые 25 регистры вычислительных блоков 13,„, 13 „ 13 1 . В результате выполнения операций умно- 45 жения в регистрах 29 результата вычислительных модулей 2,. в конце 2-го такта будут следующие операнды: а «bz» а17 Ь, а 1Ь и (= 1); на выходе 21 . блока 5, — а1 b «+ а1 b 1, 50 на выходе 21 блока 5 7. — а 1 Ь 9 7+

+ а Ь,. на выходе 21 блока 5z а 9Ь 1 + а Ь „; на выходе 21„блока

51- О.

В регистрах 29 результата вычислительных блоков 13 вычислительных мо-. дулей 2 будут сформированы произведения в соответствии с поступивпыми операндами (фиг. 2 и 5).

Формула из оOpereния

1. Устройство для умножения матриц. содержащее m = ри вычислительных ièîäóëåé (п — размерность обрабатываемых матриц, кратная р; р — размер7 I 585804 8 ности блоков обрабатываемых матриц)„

i e u j e информационные входы которых (i=1,р; j=p+1;2p) образуют соответственно первую и вторую груп5 пы информационных входов устройства, отличающееся тем, что, с целью снижения аппаратурных затрат, устройство содержит 1-1 блоков суммирования (1=п/р), причем входы первой и aòoðoé групп К-го (К=1,1/2) блока суммирования подключены к соответствующим выходам групп выходов соответственно (2К-1)-го и 2К-ro вычислительнЫх модулей, группа выходов (1-1.)=го блока сумматоров является группой выходов устройства, входы первой и второй групп S-го блока суммирования (Б= г+1 r+t; r l/2+1/4+ ° ..+1/2t;t=

191/2) подключены к соответствующим вы- 20 ходам групп выходов соответственно (S-2t)-го и (S+2t+1)-ro блоков суммирования, управляющие входы вычислительных модулей образуют группу управляющих входов устройства. 25

2. Устройство по и. 1, о т л и— ч а ю щ е е с я тем, что,каждый вычислительный модуль содержит 2р мультиплексоров, 2р-1 элементов задержки, р вычислительных блоков и р блс- 30 йов памяти, причем i-е входы первой и второй групп информационных входов вычислительного модуля соединены с первыми информационными входами соответственно 1-го и (+р)-го мультиплексоров, первый и второй управляющие входы вычислительного модуля, подключены соответственно к управляющим входам первого и (р+1)-го мультиплексоров, управляющие Выходы i-ГО и (i+p)

ro мультиплексоров подключены к вхо4О дам соответственно 1-го и (х+р)го элементов задержки, выходы которых подключены к управляющим входам cooтветственно (i+1) го и (i+p+1) го мультиплексоров, информационный выход

i-ro мультиплексора подключен к первому входу (i, 1)-ro вычислительного блока, первый выход (i ч)-го вычислительного блока (v--1,р-1) подключен к первому входу (i v+t)-ro вычислительного блока, а первый выход (i.,р)-го вычислительного блока подключен к второму информационному входу i-го мультиплексора, информационный выход (i+p)-ro мультиплексора подключен к второму входу (1,i)-го вычислительного блока, второй выход (v,i)-го вычислчтельного блока подключен к второму входу (v+1 i)-ro вычислительного блока, второй выход (р,i)-го вычислительного блока подключен к входу i-го блока памяти, вы-. ход которого подключен к второму информационному входу (i+p)-го мультиплексора, третий выход (i,j)-ro вычислительного блока подключен к ((i-1)p+j)-му выходу вычислительного модуля.

3. Устройство по п. 1, о т л и ч а ю щ е е с я тем, что блок суммирования содержит р сумматоров, первые и вторые входы которых образуют соответственно первую и вторую группы входов блока суммирования, группу выходов .которого образуют выходы сумматоров.

4. Устройство по п. 2, о т л ич а ю щ е е с я тем, что вычислительный блок содержит три регистра и умножитель, первый и второй входы которого подключены соответственно к первому и второму выходам вычислительного блока, первый и второй входы которого подключены к входам соответственно первого и второго регистров, выходы которых подключены соответственно к первому и второму входам умножителя, выход которого является третьим выходом вычислительного блока.

1585804

4 4 de >Е Ои d» d22 d22

dn dn n ds da de d22 8п

° "0 1 1 1 1 1 1 1 1

° ° 1 0 0 0 0 0 0 1 1 а„а„

15r

dg

1У»

1585804

° ° s э

2 " З

ФЧ ре ev г ч

Составитель К. Кухаренко

Техред Л.Сердюкова Корректор В. Гирняк

Редактор Е. Копча

Тираж 5á9

Заказ 2327

Подписное

ВНИИПИ Гоаьударственного комитета по изобретениям и открытиям при ГКНТ СССР

113035, Москва, Ж-35, Раушская наб., д. 4/5

Производственно-издательский комбинат "Патент", r. Ужгород, ул. Гагарина, 101

Устройство для умножения матриц Устройство для умножения матриц Устройство для умножения матриц Устройство для умножения матриц Устройство для умножения матриц Устройство для умножения матриц 

 

Похожие патенты:

Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении специализированных матричных вычислителей

Изобретение относится к автоматике и вычислительной технике и может быть использовано в специализированных матричных вычислителях

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

Изобретение относится к вычислительной технике и может быть использовано в специализированных вычислительных машинах и устройствах цифровой обработки сигналов

Изобретение относится к вычислительной технике и может быть использовано в специализированных вычислительных машинах и устройствах цифровой обработки сигналов для перемножения матриц

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

Изобретение относится к области вычислительной техники и может быть использовано для операций над матрицами

Изобретение относится к цифровой вычислительной технике и может быть использовано автономно или в составе ЭВМ в качестве вычислителя свертки

Изобретение относится к области вычислительной техники и может быть использовано в специализированных вычислительных системах для вычисления сверстки

Изобретение относится к вычислительной технике и может быть использовано в специализированных вычислительных системах для вычисления двумерной свертки

Изобретение относится к области вычислительной техники и может быть использовано в специализированных вычислительных системах для вычисления собственных значений матрицы (n n)

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

Изобретение относится к области спектрального анализа и может быть использовано при классификации квазипериодических сигналов

Изобретение относится к вычислительной технике и может быть использовано в системах интеллектуального анализа данных, в том числе при обработке и анализе геолого-геофизической информации и других данных, полученных при исследовании природных или социально-экономических объектов или явлений

Изобретение относится к вычислительной технике, а именно к устройствам обработки числовых массивов информации, предназначенным для перестановки строк и столбцов двумерного массива данных, представленного в виде матрицы
Наверх