Устройство для умножения матриц
Иллюстрации
Показать всеРеферат
Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении специализированных , в том числе систолических устройств, предназначенных для выполнения операций над матрицами. Целью изобретения является повышение быстродействия. Новым вустройстве для умножения матриц, содержащем пхп вычислительных модулей 1 первого типа и блок 3 управления, является введение пхп вычислительных модулей 2 второго типа, что дает возможность организовать непрерывную обработку потока трех матриц, а это, в свою очередь, обеспечивает повышение производительности устройства в 2 раза. 2 з.п. ф-лы, 4 ил.
СОЮЗ СОВЕТСКИХ
СОЦИАЛИСТИЧЕСКИХ
РЕСПУБЛИК (я)5 G 06 F 15/347
ГОСУДАРСТВЕННОЕ ПАТЕНТНОЕ
ВЕДОМСТВО СССР (ГОСПАТЕНТ СССР) ОПИСАНИЕ ИЗОБРЕТЕНИ
К ПАТЕНТУ 4
О
С> 4
00 (Л (21) 4880892/24 (22) 05.11.90 (46) 23.01.93. Бюл, ¹ 3 (71) Киевский политехнический институт им,50-летия Великой Октябрьской социалистической революции (72) Р.Выжиковский, Ю.С.Каневский, М.К.Клименко и С.Г.Овраменко (73) Киевский политехнический институт (56) Авторское свидетельство СССР
N 1363247, кл. G 06 В 15/347, 1986.
Авторское свидетельство СССР
¹ 1552200, кл. G 06 F 15/347, 1988. (54) УСТРОЙСТВО ДЛЯ УМНОЖЕНИЯ МАТРИЦ
„,. Ж» 1790785 А3 (57) Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении специализированных, в том числе систолических устройств, предназначенных для выполнения операций над матрицами, Целью изобретения является повышение быстродействия, Новым вустройстве для умножения матриц, содержащем пхп вычислительных модулей 1 первого типа и блок 3 управления, является введение пхп вычислительных модулей 2 второго типа, что дает возможность организовать непрерывную обработку потока трех матриц, а это, в свою о4Ьредь, обеспечивает повышение производительности устройства в 2 раза. 2 з,п. ф-лы, 4 ил.
1790785
Изобретение относится к автоматике и вычислительной технике и может быть использовано при построении специализированных, в том числе и систолических устройств, предназначенных для выполнения операций над матрицами.
Целью изобретения является повышение быстродействия устройства, На фиг. 1,представлена структурная схема устройства для умножения матриц; на фиг, 2 — структурная схема вычислительного модуля первого тра на фиг. 3 — структурная схема вычислительного модуля второго типа; на фиг. 4 — структурная схема блока управления, вариант реализации.
Устройство для умножения матриц (фиг, 1) содержит пхп вычислительных модулей 1 первого типа, пхп вычислительных модулей
2 второго типа и блок 3 управления.
Вычислительный модуль первого типа (фиг, 2) содержит регистры 4, 5, умножитель
6, сумматор 7, регистр 8 и триггер 9.
Вычислительный модуль второго типа (фиг. 3) содержит регистр 10, умножитель 11, регистр 12, сумматор 13 и регистр 14, Блок 3 управления (фиг, 4) содержит элемент ИЛИ 15, счетчик 16, дешифратор 17, регистр 18.
Устройство предназначено для умножения матриц АхВхС = F, где А, В и С вЂ” матрицы размерности NxN, и может быть реализовано при следующих формулах;
dij = > Bikbkj
k=1 где a;k, Ь 1 и С1 — элементы матриц А, В и С;
4; — элементы промежуточной матрицы;
tis — элемент конечной матрицы F.
Кратко рассмотрим работу устройства, Для простоты описания и без потери общности положим N = 3. Условимся, что прием информации во все регистры осуществляется по переднему фронту синхроимпульса, то есть в начале такта. Считаем, что перед началом вычислений все регистры установлены в нулевое состояние. Имйульс пуска поступает на первый вход блока управления
3 (вход запуска) через элемент ИЛИ 15 поступает на второй вход счетчика 16 (вход разрешения записи s счетчик 16). Счетчик 16 работает в режиме вычитания. Дешифратор
17 дешифрирует состояние нуля. На первые входы вычислительных модулей 1 первого типа первого столбца поступают элементы, а матрицы А по строкам. На вторые входы— элементы матрицы B по столбцам. Элементы с1> матрицы С поступают на первые входы вычислительных модулей 2 второго типа первого столбца по строкам, а11а12а13 b» b12b13 d» d 12d13 а21а22а23 Ь21Ь22Ь23 = о21о22о23 а31а32а33 b31b32b33, d31d32d33 с111д12о13 с»с12с13 f11f12f13
О21о22О23 С21С22С23 = f21f22f23
d31d32d33 С31С32С33 f31f32f33
Результирующая матрица получена следующим образом; т» = d11c» + о13С13+ d12c12: т12 = d22C12 + о21С» + d23C13
f13 = С133С13 + d32C22 + d31C»
f21 = О11С21 + О13С13 + О12С22;
f22 = о22С22 + о21С21 + О23С23; т23 = оЗЗс23 + о32с22 + d31c21:
f31 = о»с31 + о13с33 + d12c32;
f32 = О22С32 + о21С31 + о2ЗСЗЗ:
f33 = ОЗЗСЗЗ+ о32С32 + о31С31.
25
Нулевой такт, На первый и второй входы вычислительного модуля 1.1,1 соответственно поступают элементы а» и Ь» и записываются соответственно в регистры 4.1.1 и
5,1.1. На первый и второй входы вычислительного модуля 1.2.1 соответственно поступают а21 и b12 и записываются соответственно в регистры 4,2,1 и 5,2.1. На первый и второй входы вычислительного модуля 1.3.1 соответственно поступают а31 и
b13 и записываются соответственно в реги40 стры 4.3.1 и 5.3.1.
В первом такте с вь1ходов регистров
4.1.1 и 5,1.1 элементы а11 и Ь» поступают на первый и второй выходы вычислительного модуля 1.1.1 и на первый и второй входы
45 умножителя 6.1.1, с выхода которого произведение а»Ь» поступает в сумматор 7,1,1, где складывается с нулем а11Ь11+0 и записывается в регистр 8.1.1. На входы вычислительного модуля 1,1.1 поступают следующие элементы а12 и b21 и записываются в регист ры 4.1.1 и 5.1,1. На входы вычислительного модуля 1,1.2 поступают элементы а11 и b13 и записываются в регистры 4,1,2 и 5.1,2. На первый вход сумматора
7,2,1 вычислительного модуля 1.2.1 поступает произведение а21Ь12, где складывается с нулем и а21Ь12+О записывается в регистр
8.2.1. В регистры 4,2.1 и 5.2.1 соответственно записываются а22 и Ь22 В регистры 4,2.2
1790785
10
50
55 и 5.2.2 вычислительного модуля 1.2.2 соответственно записываются элементы а21 и
Ь11, На первый вход сумматора 7.3.1 вычислительного модуля 1.3.1 поступает произведение a31b13 и складывается с нулем, результат a31b13+0 записывается в регистр
8.3.1. В регистры 4.3.2 и 5.3,2 вычислительного модуля 1.3,2 соответственно записываются элементы а31 и Ь12.
Во втором такте с выхода регистра 8 1.1 вычислительного модуля 1,1.1 на второй вход сумматора 7.1,1 поступает произведение а»Ь», на первый вход которого с выхода умножителя 6,1.1 поступает a12b21 и результат а»Ь»+а21Ь21 снова записывается в регистр 8,1,1, В регистры 4.1.1 и 5.1.1 соответственно записываются элементы а13 и b31. На выходе сумматора 7.1,2 вычислительного модуля 1.1.2 будет сумма а11Ь13+О, которая записывается в регистр 8.1.2. В регистры 4,1,2 и 5,1.2 записываются а12 и Ь23.
В регистры 4.1,3 и 5;1.3 вычислительного модуля 1,1,3 записываются а» и Ь12. На входы сумматора 7.2.1 вычислительного модуля 1,2.1 поступают произведения а21Ь12 и а22Ь22 и с его выхода сумма а21Ь12+а22Ь22 записываются в регистр 8,2.1. В регистры
4,2,1 и 5.2.1 записываются а23 и b32, На выходе сумматора 7,2.2 вычислительного модуля 1,2,2 появляется сумма а21Ь»+О и записывается в регистр 8.2.2, В регистры
4.2.2 и 5.2.2 записываются а22 и Ь21 В регистры 4.2.3 и 5.2.3 вычислительного модуля
1.2.3 записываются а21 и b13. на входы сумматора 7 вычислительного модуля 1.3.1 поступают произведения a31b13 и а32Ь23 и результат a31b13+a32b23 записывается в регистр 8.3,1. В регистры 4.3.1 и 5.3.1 записываются а33 и ь33. С выхода сумматора 7.3.2 вычислительного модуля 1.3.2 a31b1z+0 записывается в регистр 8.3.2. В регистры 4.3,2 и 5,3,2 записываются a3z u bzz. В регистры
4.3.3 и 5.3.3 вычислительного модуля 1.3.3 записываются а31 и b», В третьем такте в сумматорах 7.1.1—
7,7.п вычислительных модулей 1.1,1 — 1,1,п получаем первые элементы dij промежуточной матрицы D, Таким образом, с выхода сумматора 7.1.1 вычислительного модуля
1.1.1 на третий выход поступает
a«b»+a1zbz1+a13b31= d» и d» записывается в регистр 10 вычислительного модуля 2.1.1, На входы регистров 4.1,1 и 5.1,1 поступают элементы а» и b» новых матриц А и В. В регистр 12,2,1 с первого входа вычислительного модуля 2.1.1 записывается элемент с» матрицы С, С выхода сумматора 7.1.2 вычислительного модуля 1,1.2 в регистр 8.1,2 записывается а»Ь13+а12Ь23. В регистры 4.1,2 и 5.1.2 соответственно записываются а13 и
Ь33. С выхода сумматора 7.1.3 вычислительного модуля 1.1.3 в регистр 8,1,3 записывается а»Ь12+О. В регистры 4.1.3 и 5.1,3 записываются а12 и Ь22. В сумматоре 7.2.1 вычислительного модуля 1.2.1 получаем д21Ь12+а22Ь22+а23Ь32 = б22 и элемент б22 записывается в регистр 10.2.1 вычислительного модуля 2,2,1, На входы регистров 4,2,1 и
5.2,1 поступают элементы новых матриц, В регистр 12.2.1 записывается с12, С выхода сумматора 7.2.2 вычислительного модуля
1.2,2 в регистр 8.2.2 записывается сумма
az1b»+az2bz1, В регистры 4,2.2 и 5.2.2 записываются элементы а23 и b31. С выхода сумматора 7,2.3 вычислительного модуля 1.2.3 в регистр 8,2.3 записывается а21Ь13+О. В регистры 4.2.3 и 5,2,3 записываются azz u bz3.
В сумматоре 7,3.1 вычислительного модуля
1,3.1 получаем a31b13+a32b23+a33b33 = б33 и элемент б33 записывается в регистр 10.3.1 вычислительного модуля 2,3.1. В регистры
4.3.1 и 5,3.1 записываются элементы новых матриц. В регистр 12,3.1 записывается с13.
С выхода сумматора 7.3,2 вычислительного модуля 1.3.2 в регистр 8.3,2 записывается а31Ь12+а32Ь22. В регистры 4,3,2 и 5.3.2 записываются а33 и Ь32. С выхода сумматора
7,3.3 вычислительного модуля 1.3.3 в регистр 8.3.3 записывается а31Ь11+О. В регистры 4,3,3 и 5.3.3 записываются а32 и b21.
В четвертом такте в сумматоре 7.1.2 вычислительного модуля 1.1.2 получаем сумму
a»b13+a12bz3+a13b33 = б13 и элемент d13 записывается в регистр 10,1,2 вычислительного модуля 2.1.1. В регистр 12,1.2 записывается с13. С вь1хода сумматора 7.1,3 вычислительного модуля 1.1.3 поступает
a11Ь12+э11Ь22 и записывается в регистр
8,1.3. В регистры 4,1,3 и 5,1.3 записываются а13 и Ь23. На входы умножителя 11.1.1 вычислительного модуля 2,1.1 поступают элементы d» и с», где происходит умножение
d»c» и произведение поступает в сумматор
13.1.1, где складывается с нулем и записывается в регистр 14.1,1, В регистр 12.1.1 записывается элемент С22, а элемент с» передается в вычислительный модуль 2.2,2 и записывается в регистр 12,2,2. В сумматоре
7.2,2 вычислительного модуля 1.2,2 получаоМ а21Ь»+а22Ь21+э23Ь31 = б21 и элемент б21 записывается в регистр 10.2.2, С выхода сумматора 7.2.3 вычислительного модуля
1,2.3 получаем a21b13+a22b23 и эта сумма записывается в регистр 8.2,3, В регистры 4.2,3 и 5.2.3. Записываются az3 и Ь33. В сумматоре 13.2.1 вычислительного модуля 2.2.1 получаем сумму б22с21+О, которая записывается в регистр 14.2.1. В регистр 2.2,1 записывается czz. В сумматоре 7.3.2 вы1790785
55 т31, тзг и f33, числительного модуля 1.3,2 получается а31Ь12+азгЬ22+аззЬ32 = бзг и записывается в регистр 10,3.2 вычислительного модуля
2,3.2, В регистр 12.3.2 записывается 012.
С выхода сумматора 7.3.3 вычислительного модуля 1.3.3 поступает а31Ь»+азгЬг1 записывается в регистр 8.3.3. B регистры 4,3,3 и
5.3 3 записываются а33 и Ь31. С выхода сумматора 13.3.1 вычислительного модуля 2.3.1 поступает бззс13+О записывается в регистр
14,3.1. В регистр 12,3.1 записывается с23.
В пятом такте в сумматоре 7.1.3 вычислител ьного модуля 1.1.3 получаем а»Ь12+а12Ь22+а13Ь32 = б12 и элемент б12 за писывается в регистр 10.1,3 вычислительного модуля 2,1.3, В регистр 12.1,3 записывается с,г. С выхода сумматора
13.1.2 вычислительного модуля 2,1.2 поступает б11с11 б13с13 и записывается в регистр 14,1.2 вычислительного модуля
2.1.2. В регистр 12.1.2 записывается элемент с23. С выхода сумматора 13.1.1 вычислительного модуля 2,1.1 выдается d»c21+0 и записывается в регистр 14,1,1, В регистр
12.1.1 записывается с31. В сумматоре 7.2.3 получаем аг1Ь13+аггЬ23+аггЬ33 = бгз и элемент d23 записывается в регистр 10,2.3 вычислительного модуля 2,2.3. В регистр
12,2.3 записывается с13. С выхода сумматора 13.2.2 вычислительного модуля
2.2,2 выдается бггс12+бг1с11 vi записывается в регистр 14.2.2. B регистр
12.2,2 записывается сзг, B сумматоре
7.3.3 вычислительного модуля 1.3.3 получаем а31Ь»+азгЬ21+а33Ь31 = б31 и элемент
d31 записывается в регистр 10,3.3 вычислительного модуля 2.3.3, B регистр 12.3,3 вычислительного модуля 2.3.3 записывается с11.
С выхода сумматора 13.2.2 вычислительного модуля 2,3,2 поступает d33013+d32c12 и записывается в регистр 14.2.3. В регистр 12.3.2 записывается сгг, С выхода сумматора
13.3.1 вычислительного модуля 2,3,1 поступает бззс23+О и записывается в регистр
14.3.1. В регистр 12,3.1 записывается — с33.
В шестом такте в сумматоре 13.1.3 вычислительного модуля 2.1.3 получаем первый окончательный результат
d»c»+d13c13+d12c12 = f», который записывается в регистр 14,1,3. В регистр 12,1.3 за пис ы вает ся — c22. С выхода сумматора
13,1,2 вычислительного модуля 2.1.2 поступает d»c21+d13023 и записывается в регистр
14,1,2, В регистр 12.1,2 записывается — сзз.
С выхода сумматора 13.1.1 вычислительного модуля 2.1,1 поступает б»с31+О и записывается в регистр 14,1,1, В сумматоре 13.2.3 вычислительного модуля 2,2,3 получаем б22с12+б21с»+б23с13 = f12 и результат f12 за20
50 писывается в регистр 14.2,3, В регистр
14,2,3 записывается — сгз. С выхода сумматора 13.2,2 вычислительного модуля 2.2.2 поступает d22022+d21021 и записывается в регистр 14.2.2, В регистр 12,2.2 записывается с31. С выхода сумматора 13,2.1 вычислительного модуля 2.2.1 поступает бггсзг+О и записывается в регистр в регистр 14.2,1, В сумматоре 13,3,3 вычислительного модуля
2.3.3 получаем бззб13+б32012+б31011 = 113 и результат записывается в регистр 14.3.3. B регистр 12,3,3 записывается с21, С выхода сумматора 13,3.2 вычислительного модуля
2.3.2 поступает d33023+d32022 и записывается в регистр 14,3.2, В регистр 12,3,2 записывается 032. С выхода сумматора 13,3,1 вычислительного модуля 2.3,1 поступает бззс33+О и записывается в регистр 14.3.1.
В седьмом такте в сумматоре 13.1.3 вычислительного модуля 2.1.3 получаем
d»c21+d13c23+d12022 = f21 и результат записывается в регистр 14,1.3, а с его выхода на выход устройства выдается f11, В регистр
12.1.3 записывается с32. С выхода сумматора 13,1,2 вычислительного модуля 2.1,2 поступает б11с31+б13с33 и записывается в регистр 14,1.2, В сумматоре 14.2,3 вычислительного модуля 2,2,3 получаем
d22022+d21021+d23023 = Ы и результат записывается в регистр 14.2.3, с выхода которого на выход устройства выдается f12. В регистр
12.2.3 записывается сзз, С выхода сумматора 13.2.2 вычислительного модуля 2.2,2 поступает бггсзг+бг1с31 и записывается в регистр
14.2,2, В сумматоре 13.3,3 вычислительного модуля 2.3,3 получаем бззсгз+бзгсгг+б31021 =
123 и результат записывается в регистр 14.3.3, с выхода которого выдается f13. В регистр
12,3,3 записывается с31. С выхода сумматора 13.3.2 вычислительного модуля 2.3.2 поступаетт бззс33+бзгсзг и за и ис ы ва ется в регистр 14,3.2.
В восьмом такте в сумматоре 13.1.3 вычислительного модуля 2.1.3 получаем б11с31+б13сзз+б12с32 = f31 и результат за пи сывается в регистр 14,1,3, с выхода которого выдается f21, В сумматоре 13,2,3 вычислительного модуля 2.2.3 получаем бггсзг+бг1с31+б23033 = 32 и результат записывается в регистр 14,2,3, с выхода которого выдается f22, В сумматоре 13,3,3 вычислительного модуля 2.3.3 получаем бззсзз+бг1сзг+б31с31 = 133 и результат записывается в регистр 14.3.3, с выхода которого выдается f33, В девятом такте с выхода вычислительных модулей 2.1,3, 2,2.3 и 2.3.3 соответственно выдаются окончательные результаты
1790785
-55
На этом работа устройства по вычислению матрицы F = АхВхС заканчивается.
Формула изобретения
1. Устройство для умножения матриц, содержащее пхп вычислительных модулей первого типа и блок управления (где и— размерность матриц), причем первый информационный выход (Ц)-го вычислительного модуля первого типа (i = 1, ..., и; J = 1, „„и-1) соединен с первым информационным входом (Ц+1)-го вычислительного модуля первого типа, входы запуска, сброса, записи и счетный вход устройства соединены с соответствующими входами блока управления, выход которого соединен с входом разрешения записи (i,1)-го вычислительного модуля первого типа, первый и второй информационные входы которого соединены соответственно с первым и вторым информационными входами устройства, о т л и ч а ю щ е е с я тем, что, с целью повышения быстродействия, в него введены пхп вычислительных модулей второго типа, причем первый информационный вход (i,1)-го вычислительного модуля второго типа соединен с третьим информационным входом устройства, вход логического нуля которого соединен с вторым информационным входом (i,1)-ro вычислительного модуля второго типа, второй информационный выход (К))-го вычислительного модуля первого типа (k=1, ..., и-1) соединен с вторым информационным входом (k+1, j+1)-ro вычислительного модуля первого типа, второй информационный выход (п,))-го вычислительного модуля первого типа соединен с вторым информационным входом (1, j+1)-го вычислительного модуля первого типа, третий информационный выход (i,i)-го вычислительного модуля первого типа (l=1, ..., и) соединен с третьим информационным входом (i,l)-го вычислительного модуля второго типа, первый информационный выход (КДго вычислительного модуля второго типа соединен с первым информационным входом (k+1, j+1)-го вычислительного модуля второго типа, первый информационный выход (n,j)-го вычислительного модуля второго типа соединен с первым информационным входом (1, J+1)-го вычислительного модуля второго типа, второй информационный выход (I j)-го вычислительного модуля второго типа соединен с вторым информационным
50 входом (i, j+1)-ro вычислительного модуля второго типа, вторые выходы (i, n)-ных вычислительных модулей второго типа соединен с выходами устройства, выход разрешения записи (i,l)-го вычислительного модуля первого типа соединен с входами разрешения записи (i, I+1)-го вычислительного модуля первого типа и (i, 1)-го вычислительного модуля второго типа.
2, Устройство по и, 1, о т л и ч а ю щ е ес я тем что каждый вычислительный модуль первого типа содержит три регистра, умножитель, сумматор и триггер, выход которого соединен с выходом разрешения записи модуля, первый информационный вход которого соединен с информационным входом первого регистра, выход которого соединен с первым информационным выходом модуля и первым входом умножителя, второй вход которого соединен с вторым информационным выходом модуля и выходом второго регистра, информационный вход которого соединен с вторым информационным входом модуля, вход разрешения записи которого соединен с входом триггера, выход умножителя соединен с входом триггера, выход умножителя соединен с входом первого слагаемого сумматора, выход которого соединен с третьим информационным выходом модуля информационным входом регистра, выход которого соединен с входом второго слагаемого сумматора.
3, Устройство по и, 1, о т л и ч а ю щ е ес я тем, что каждый вычислительный модуль второго типа содержит три регистра, умножитель и сумматор, выход которого соединен с информационным входом первого регистра, выход которого соединен с вторым информационным выходом модуля, второй информационный вход которого соединен с входом первого слагаемого сумматора, вход второго слагаемого которого соединен с выходом умножителя, первый вход которого соединен с выходом второго регистра, информационный вход и вход разрешения записи которого соединен соответственно с третьим информационным входом и входом разрешения записи модуля, первый информационный вход которого соединен с вторым входом умножителя и выходом третьего регистра, информационный вход которого соединен с первым информационным входом модуля.
1790785!
Составитель Ю.Каневский
Техред М.Моргентал Корректор 3.Салко
Редактор
Производственно-издательский комбинат "Патент", г. Ужгород, ул.Гагарина, 101
Заказ 375 Тираж Подписное
ВНИИПИ Государственного комитета по изобретениям и открытиям при ГКНТ СССР
113035, Москва, Ж-35, Раушская наб., 4/5