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

Иллюстрации

Показать все

Реферат

 

Изобретение относится к вычислительной технике и может быть использовано в высокопроизводительных специализированных процессорах для обработки больших массивов данных. Цель изобретения - снижение аппаратурных затрат. Устройство содержит вычислительные блоки, сгруппированные в вычислительные модули, блоки суммирования, информационные входы и выходы, входы управления. Каждый вычислительный модуль содержит информационные входы и выходы, мультиплексоры, элементы задержки, блоки памяти и входы управления. Блок суммирования содержит информационные входы и выходы, сумматоры. Вычислительный блок содержит информационные входы и выходы, регистры операндов, умножитель и регистр результата. В основу работы устройства положен рекуррентный алгоритм перемножения 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