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

Реферат

 

Изобретения относятся к вычислительной технике и могут быть использованы для формирования нейронных сетей. Техническим результатом является расширение функциональных возможностей за счет изменения разрядности результатов. Нейропроцессор содержит регистры, блоки памяти магазинного типа, коммутатор, вычислительное устройство, сдвиговый регистр и устройства для вычисления функции насыщения, устройство для вычисления функции насыщения построено на логических элементах, мультиплексорах и схемах распространения и формирования переносов. Вычислительное устройство содержит матрицу умножения, дешифраторы, триггеры, элементы ЗАПРЕТ и мультиплексоры. Сумматор выполнен на логических элементах и схеме формирования переносов. 4 с. и 4 з.п. ф-лы, 9 ил.

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

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

Такой нейропроцессор в каждом такте выполняет взвешенное суммирование фиксированного числа входных данных для фиксированного числа нейронов независимо от реального диапазона значений входных данных и их весовых коэффициентов. При этом каждое входное данное, так же как и каждый весовой коэффициент, представляется в виде операнда фиксированной разрядности, определяемой разрядностью аппаратных узлов нейропроцессора. Однако, значения входных данных и весовых коэффициентов могут варьироваться в очень широком диапазоне как при переходе от одной нейронной сети к другой, так и при переходе от одного фрагмента нейронной сети к другому фрагменту этой же сети. Поэтому при эмуляции нейронной сети или ее фрагмента с малыми значениями входных данных и (или) весовых коэффициентов аппаратура известного нейропроцессора используется неэффективно.

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

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

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

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

Известно цифровое устройство ограничения числа по модулю [3], содержащее три регистра, сумматор, два преобразователя кодов, два блока анализа знаков, блок коррекции, две группы элементов И и группу элементов ИЛИ. Такое устройство позволяет за 2N тактов вычислять функции насыщения для вектора из N входных операндов.

Недостатками известного устройства ограничения числа по модулю являются низкая производительность и большие аппаратные затраты.

Наиболее близким по технической сущности к второму изобретению является устройство для вычисления функций насыщения [4], содержащее мультиплексор, компаратор и два индикатора насыщения. Такое устройство позволяет за N тактов вычислять функции насыщения для вектора из N входных операндов.

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

Известно вычислительное устройство [2], содержащее умножители, сумматоры, регистры, мультиплексор и блок памяти магазинного типа. Данное устройство позволяет за один такт вычислить скалярное произведение двух векторов, каждый из которых содержит по M операндов, и за N тактов выполнить умножение матрицы, содержащей N x М операндов, на вектор, состоящий из М операндов.

Недостатками известного вычислительного устройства являются низкое быстродействие и большие аппаратные затраты.

Наиболее близким по технической сущности к третьему изобретению является вычислительное устройство [5], содержащее 3N/2 логических элементов И, N/2 дешифраторов разрядов множителя по алгоритму Бута, матрицу умножения из N столбцов по N/2 ячеек, каждая из которых состоит из схемы формирования разряда частичного произведения по алгоритму Бута и одноразрядного сумматора, 2N-разрядный сумматор, N/2 мультиплексоров, N/2 дополнительных схем формирования разряда частичного произведения по алгоритму Бута и N/2 логических элементов импликации. Данное устройство позволяет за один такт перемножить два N-разрядных операнда или перемножить поэлементно два вектора, каждый из которых содержит по два (N/2)-разрядных операнда.

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

Известно устройство для сложения векторов операндов программируемой разрядности [6], содержащее сумматоры и логические элементы ЗАПРЕТ.

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

Наиболее близким по технической сущности к четвертому изобретению является сумматор [7], содержащий схему формирования переносов и в каждом своем разряде - полусумматор и логический элемент ИСКЛЮЧАЮЩЕЕ ИЛИ. Данный сумматор позволяет за N тактов выполнить сложение двух векторов, состоящих из N операндов каждый.

Недостатком такого сумматора является низкая производительность при сложении векторов данных.

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

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

В нейропроцессоре может применяться вычислительное устройство, содержащее сдвиговый регистр, выполняющий за один такт арифметический сдвиг всех операндов хранящегося в нем N-разрядного вектора на J разрядов влево, где J - минимальная величина, которой кратны разрядности данных в векторах вторых операндов вычислительного устройства, элемент задержки, первый блок памяти, имеющий порт ввода магазинного типа и содержащий N/J ячеек для хранения N-разрядных данных, второй блок памяти, содержащий N/J ячеек для хранения N-разрядных данных, N/J блоков умножения, каждый из которых умножает N-разрядный вектор данных программируемой разрядности на J-разрядный множитель, и схему сложения векторов, формирующую двухрядный код суммы N/J+1 векторов данных программируемой разрядности, причем входы разрядов вектора третьих операндов вычислительного устройства подключены к информационным входам сдвигового регистра, выходы которого соединены с информационными входами первого блока памяти, выходы каждой ячейки которого соединены с информационными входами соответствующей ячейки второго блока памяти, выходы каждой ячейки которого соединены с входами разрядов вектора множимых соответствующего блока умножения, входы разрядов множителя которого подключены к входам соответствующей J-разрядной группы разрядов вектора вторых операндов вычислительного устройства, выходы каждого блока умножения соединены с входами разрядов соответствующего вектора слагаемых схемы сложения векторов, входы разрядов (N/J+1)-го вектора слагаемых которой подключены к входам разрядов вектора первых операндов вычислительного устройства, входы установки границ данных в векторах третьих операндов которого подключены к соответствующим входам установки границ данных в векторах операндов сдвигового регистра, вход режима работы которого подключен к первому входу управления загрузкой векторов третьих операндов в первый блок памяти вычислительного устройства, второй вход управления загрузкой векторов третьих операндов в первый блок памяти которого подключен к тактовому входу сдвигового регистра и входу элемента задержки, выход которого соединен с входом управления записью первого блока памяти, вход управления записью второго блока памяти подключен к входу управления пересылкой матрицы третьих операндов из первого блока памяти во второй блок памяти вычислительного устройства, каждый вход установки границ данных в векторах вторых операндов которого подключен к входу знаковой коррекции соответствующего блока умножения, входы установки границ данных в векторах первых операндов и результатов вычислительного устройства подключены к входам установки границ данных в векторах множимых и результатов каждого блока умножения и к входам установки границ данных в векторах слагаемых и результатов схемы сложения векторов, выходы разрядов векторов первых и вторых слагаемых результатов которой являются соответствующими выходами вычислительного устройства.

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

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

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

Указанный технический результат достигается тем, что в устройство для вычисления функций насыщения, содержащее в каждом из N разрядов первый мультиплексор, второй информационный вход которого подключен к входу соответствующего разряда вектора входных операндов устройства, выход каждого разряда вектора результатов которого подключен к выходу первого мультиплексора соответствующего разряда устройства, введены схема распространения переносов и схема формирования переносов, а в его каждый разряд введены второй мультиплексор и логические элементы ИСКЛЮЧАЮЩЕЕ ИЛИ, РАВНОЗНАЧНОСТЬ, И-НЕ и ЗАПРЕТ, причем прямой вход элемента ЗАПРЕТ и первые входы элементов И-НЕ и РАВНОЗНАЧНОСТЬ каждого разряда устройства объединены и подключены к соответствующему управляющему входу устройства, выход элемента И-НЕ n-го разряда устройства соединен с входом распространения переноса через (N-n+1)-й разряд схемы формирования переносов, выход переноса в (N-n+2)-й разряд которой соединен с управляющим входом первого мультиплексора n-го разряда устройства, выход элемента ЗАПРЕТ которого соединен с управляющим входом второго мультиплексора этого же разряда устройства, входом генерации переноса в (N-n+1)-м разряде схемы формирования переносов и инверсным входом распространения переноса через (N-n+1)-й разряд схемы распространения переносов, вход переноса из (N-n+1)-го разряда которой соединен с выходом второго мультиплексора n-го разряда устройства (где n=1,2,...N), первый вход элемента ИСКЛЮЧАЮЩЕЕ ИЛИ и прямой вход элемента ЗАПРЕТ q-го разряда устройства соединены соответственно с вторым входом элемента ИСКЛЮЧАЮЩЕЕ ИЛИ и инверсным входом элемента ЗАПРЕТ (q-1)-го разряда устройства, первый информационный вход второго мультиплексора которого соединен с выходом переноса в (N-q+2)-й разряд схемы распространения переносов (где q=2,3,...,N), входы начальных переносов схемы распространения переносов и схемы формирования переносов, второй вход элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, инверсный вход элемента ЗАПРЕТ и первый информационный вход второго мультиплексора N-го разряда устройства объединены и подключены к шине логического нуля, а в каждом разряде устройства выход второго мультиплексора соединен с вторым входом элемента РАВНОЗНАЧНОСТЬ, выход которого соединен с первым информационным входом первого мультиплексора, второй информационный вход которого соединен с вторым информационным входом второго мультиплексора и первым входом элемента ИСКЛЮЧАЮЩЕЕ ИЛИ, выход которого соединен с вторым входом элемента И-НЕ этого же разряда устройства.

В частных случаях применения второго изобретения, когда предъявляются жесткие требования по минимизации аппаратных затрат, в схеме распространения переносов выход переноса в q-й разряд соединен с входом переноса из (q-1)-ro разряда (где q=2,3,...,N), а схема формирования переносов содержит по N логических элементов И и ИЛИ, причем каждый вход распространения переноса через соответствующий разряд схемы формирования переносов подключен к первому входу соответствующего элемента И, выход которого соединен с первым входом соответствующего элемента ИЛИ, второй вход и выход которого подключены соответственно к входу генерации переноса в соответствующем разряде схемы формирования переносов и выходу переноса в этот же разряд схемы формирования переносов, второй вход первого элемента И является входом начального переноса схемы формирования переносов, второй вход q-го элемента И соединен с выходом (q-1)-ro элемента ИЛИ (где q=2,3,...,N).

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

Указанный технический результат достигается тем, что в вычислительное устройство, содержащее N/2 дешифраторов разрядов множителя и матрицу умножения из N столбцов по N/2 ячеек, каждая из которых состоит из схемы формирования разряда частичного произведения и одноразрядного сумматора, причем соответствующие управляющие входы схем формирования разряда частичного произведения i-x ячеек всех столбцов матрицы умножения объединены и подключены к соответствующим выходам i-го дешифратора разрядов множителя (где i= 1,2, . . . ,N/2), первый вход одноразрядного сумматора каждой ячейки матрицы умножения соединен с выходом схемы формирования разряда частичного произведения этой же ячейки матрицы умножения, введены N/2 логических элементов ЗАПРЕТ, элемент задержки и N-разрядный сдвиговый регистр, каждый разряд которого состоит из логического элемента ЗАПРЕТ, мультиплексора и триггера, а в каждую ячейку матрицы умножения введены первый и второй триггеры, выполняющие функции ячеек памяти соответственно первого и второго блоков памяти устройства, логический элемент ЗАПРЕТ и мультиплексор, причем вход каждого разряда вектора первых операндов устройства подключен к второму входу одноразрядного сумматора первой ячейки соответствующего столбца матрицы умножения, управляющие входы мультиплексоров и инверсные входы элементов ЗАПРЕТ всех ячеек каждого столбца которой объединены и подключены к соответствующему входу установки границ данных в векторах первых операндов и результатов устройства, каждый вход установки границ данных в векторах вторых операндов которого подключен к инверсному входу соответствующего элемента ЗАПРЕТ, выход которого соединен с первым входом соответствующего дешифратора разрядов множителя, второй и третий входы i-го дешифратора разрядов множителя подключены к входам соответственно (2i-1)-го и (2i)-го разрядов вектора вторых операндов устройства (где i=1,2,...,N/2), прямой вход j-го элемента ЗАПРЕТ соединен с третьим входом (j-1)-го дешифратора разрядов множителя (где j= 2,3, . ..,N/2), вход каждого разряда вектора третьих операндов устройства подключен к второму информационному входу мультиплексора соответствующего разряда сдвигового регистра, первый информационный вход которого соединен с выходом элемента ЗАПРЕТ этого же разряда сдвигового регистра, первый инверсный вход которого подключен к соответствующему входу установки границ данных в векторах третьих операндов устройства, второй инверсный вход элемента ЗАПРЕТ q-го разряда сдвигового регистра соединен с первым инверсным входом элемента ЗАПРЕТ (q-1)-го разряда сдвигового регистра (где q=2,3,..., N), прямой вход элемента ЗАПРЕТ r-го разряда сдвигового регистра соединен с выходом триггера (r-2)-го разряда сдвигового регистра (где r=3,4,...,N), управляющие входы мультиплексоров всех разрядов сдвигового регистра объединены и подключены к первому входу управления загрузкой векторов третьих операндов в первый блок памяти устройства, входы синхронизации триггеров всех разрядов сдвигового регистра и вход элемента задержки объединены и подключены к второму входу управления загрузкой векторов третьих операндов в первый блок памяти устройства, выход мультиплексора каждого разряда сдвигового регистра соединен с информационным входом триггера этого же разряда сдвигового регистра, выход которого соединен с информационным входом первого триггера последней ячейки соответствующего столбца матрицы умножения, выход первого триггера j-й ячейки каждого столбца матрицы умножения соединен с информационным входом первого триггера (j-1)-й ячейки этого же столбца матрицы умножения (где j= 2,3, ...,N/2), входы синхронизации первых триггеров всех ячеек матрицы умножения объединены и подключены к выходу элемента задержки, входы синхронизации вторых триггеров всех ячеек матрицы умножения объединены и подключены к входу управления пересылкой матрицы третьих операндов из первого блока памяти во второй блок памяти устройства, второй информационный вход схемы формирования разряда частичного произведения i-й ячейки q-го столбца матрицы умножения соединен с выходом элемента ЗАПРЕТ i-й ячейки (q-1)-го столбца матрицы умножения (где i=1,2,...,N/2 и q=2,3,...,N), второй вход одноразрядного сумматора j-й ячейки каждого столбца матрицы умножения соединен с выходом суммы одноразрядного сумматора (j-1)-й ячейки этого же столбца матрицы умножения (где j=2,3,...,N/2), третий вход одноразрядного сумматора j-й ячейки q-го столбца матрицы умножения соединен с выходом мультиплексора (j-1)-й ячейки (q-1)-го столбца матрицы умножения (где j=2,3, . . . , N/2 и q=2,3,...,N), третий вход одноразрядного сумматора j-й ячейки первого столбца матрицы умножения соединен с третьим выходом (j-1)-го дешифратора разрядов множителя (где j=2,3,...,N/2), выход суммы одноразрядного сумматора последней ячейки каждого столбца матрицы умножения является выходом соответствующего разряда вектора первых слагаемых результатов устройства, выход мультиплексора последней ячейки (q-1)-го столбца матрицы умножения является выходом q-го разряда вектора вторых слагаемых результатов устройства (где q= 2,3, ...,N), первый разряд вектора вторых слагаемых результатов которого подключен к третьему выходу (N/2)-го дешифратора разрядов множителя, второй инверсный и прямой входы элемента ЗАПРЕТ первого разряда и прямой вход элемента ЗАПРЕТ второго разряда сдвигового регистра, вторые информационные входы схем формирования разряда частичного произведения всех ячеек первого столбца матрицы умножения, третьи входы одноразрядных сумматоров первых ячеек всех столбцов матрицы умножения и прямой вход первого элемента ЗАПРЕТ объединены и подключены к шине логического нуля, а в каждой ячейке матрицы умножения выход первого триггера соединен с информационным входом второго триггера, выход которого соединен с прямым входом элемента ЗАПРЕТ и первым информационным входом схемы формирования разряда частичного произведения, третий управляющий вход которой соединен с вторым информационным входом мультиплексора, первый информационный вход которого соединен с выходом переноса одноразрядного сумматора этой же ячейки матрицы умножения.

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

Указанный технический результат достигается тем, что в каждый разряд сумматора, содержащего схему формирования переносов, а в каждом из N своих разрядов - полусумматор и логический элемент ИСКЛЮЧАЮЩЕЕ ИЛИ, причем вход каждого разряда вектора первых слагаемых сумматора и вход соответствующего разряда вектора вторых слагаемых сумматора подключены соответственно к первому и второму входам полусумматора соответствующего разряда сумматора, выход суммы которого соединен с первым входом элемента ИСКЛЮЧАЮЩЕЕ ИЛИ этого же разряда сумматора, выход которого является выходом соответствующего разряда вектора сумм сумматора, второй вход элемента ИСКЛЮЧАЮЩЕЕ ИЛИ q-го разряда сумматора соединен с выходом переноса в q-й разряд схемы формирования переносов (где q= 2,3, . . .,N), вход начального переноса которой и второй вход элемента ИСКЛЮЧАЮЩЕЕ ИЛИ первого разряда сумматора подключены к шине логического нуля, введены первый и второй логические элементы ЗАПРЕТ, причем выход суммы полусумматора каждого разряда сумматора соединен с прямым входом первого элемента ЗАПРЕТ этого же разряда сумматора, выход которого соединен с входом распространения переноса через соответствующий разряд схемы формирования переносов, выход переноса полусумматора каждого разряда сумматора соединен с прямым входом второго элемента ЗАПРЕТ этого же разряда сумматора, выход которого соединен с входом генерации переноса в соответствующем разряде схемы формирования переносов, инверсные входы первого и второго элементов ЗАПРЕТ каждого разряда сумматора объединены и подключены к соответствующему входу установки границ данных в векторах слагаемых и сумм сумматора.

На фиг. 1 приведена блок-схема нейропроцессора, на фиг.2 - общий вид функций насыщения, формируемых устройствами для вычисления функций насыщения, на фиг.3 - модель слоя нейронной сети, эмулируемой нейропроцессором, на фиг. 4 - блок-схема вычислительного устройства, на фиг.5 - схема устройства для вычисления функций насыщения векторов данных программируемой разрядности, на фиг.6 - схема формирования переносов, которая может применяться в устройстве для вычисления функций насыщения, на фиг.7 - схема вычислительного устройства, на фиг.8 - примеры схемотехнической реализации дешифратора разрядов множителя и схемы формирования разряда частичного произведения по алгоритму Бута, применяемых в вычислительном устройстве, на фиг.9 - схема сумматора векторов данных программируемой разрядности.

Нейропроцессор, блок-схема которого представлена на фиг.1, содержит первый 1, второй 2, третий 3, четвертый 4, пятый 5 и шестой 6 регистры, сдвиговый регистр 7, логический элемент И 8, первый 9 и второй 10 блоки памяти магазинного типа, коммутатор с трех направлений в два 11, мультиплексор 12, первое 13 и второе 14 устройства для вычисления функций насыщения, каждое из которых имеет входы разрядов вектора входных операндов 15, управляющие входы 16 и выходы разрядов вектора результатов 17, вычислительное устройство 18, имеющее входы разрядов вектора первых 19, вектора вторых 20 и вектора третьих 21 операндов, входы установки границ данных в векторах первых операндов и результатов 22, в векторах вторых операндов 23 и векторах третьих операндов 24, первый 25 и второй 26 входы управления загрузкой векторов третьих операндов в первый блок памяти, вход управления пересылкой матрицы третьих операндов из первого блока памяти во второй блок памяти 27 и выходы разрядов вектора первых 28 и вектора вторых 29 слагаемых результатов операции сложения вектора первых операндов с произведением вектора вторых операндов на матрицу третьих операндов, хранящуюся во втором блоке памяти, и сумматор 30, имеющий входы разрядов вектора первых 31 и вектора вторых 32 слагаемых, входы установки границ данных в векторах слагаемых и сумм 33 и выходы разрядов вектора сумм 34. Нейропроцессор имеет первую 35 и вторую 36 входные шины и выходную шину 37. Управляющие входы 38 коммутатора с трех направлений в два 11, управляющий вход 39 мультиплексора 12, управляющий вход 40 первого регистра 1, управляющий вход 41 второго регистра 2, управляющий вход 42 третьего регистра 3, управляющий вход 43 четвертого регистра 4, вход управления записью 44 сдвигового регистра 7, вход управления записью 45 первого блока памяти магазинного типа 9, входы управления записью 46 и чтением 47 второго блока памяти магазинного типа 10 и указанные выше управляющие входы 26 и 27 вычислительного устройства 18 являются соответствующими управляющими входами нейропроцессора. Выходы состояния 48 первого блока памяти магазинного типа 9 и выходы состояния 49 второго блока памяти магазинного типа 10 являются выходами состояния нейропроцессора.

Первые информационные входы разрядов коммутатора с трех направлений в два 11, информационные входы первого блока памяти магазинного типа 9, первого 1, второго 2, третьего 3 и четвертого 4 регистров и параллельные информационные входы сдвигового регистра 7 поразрядно объединены и подключены к первой входной шине 35 нейропроцессора, разряды второй входной шины 36 которого соединены с вторыми информационными входами соответствующих разрядов коммутатора с трех направлений в два 11. Первые выходы разрядов коммутатора с трех направлений в два 11 соединены с входами соответствующих разрядов вектора входных операндов 15 первого устройства для вычисления функций насыщения 13, управляющие входы 16 разрядов которого соединены с выходами соответствующих разрядов второго регистра 2. Вторые выходы разрядов коммутатора с трех направлений в два 11 соединены с входами соответствующих разрядов вектора входных операндов 15 второго устройства для вычисления функций насыщения 14, управляющие входы 16 разрядов которого соединены с выходами соответствующих разрядов третьего регистра 3. Выходы разрядов первого регистра 1 соединены с первыми информационными входами соответствующих разрядов мультиплексора 12, вторые информационные входы разрядов которого соединены с выходами соответствующих разрядов вектора результатов 17 первого устройства для вычисления функций насыщения 13. Выходы разрядов мультиплексора 12 соединены с входами соответствующих разрядов вектора первых операндов 19 вычислительного устройства 18, входы разрядов вектора вторых операндов 20 которого соединены с выходами соответствующих разрядов вектора результатов 17 второго устройства для вычисления функций насыщения 14. Информационные выходы первого блока памяти магазинного типа 9 соединены с входами соответствующих разрядов вектора третьих операндов 21 вычислительного устройства 18, выходы разрядов вектора первых слагаемых результатов 28 которого соединены с входами соответствующих разрядов вектора первых слагаемых 31 сумматора 30, входы разрядов вектора вторых слагаемых 32 которого соединены с выходами соответствующих разрядов вектора вторых слагаемых результатов 29 вычислительного устройства 18, входы установки границ данных в векторах первых операндов и результатов 22 которого соединены с выходами соответствующих разрядов пятого регистра 5 и соответствующими входами установки границ данных в векторах слагаемых и сумм 33 сумматора 30, выходы разрядов вектора сумм 34 которого соединены с соответствующими информационными входами второго блока памяти магазинного типа 10, информационные выходы которого подключены к соответствующим разрядам выходной шины 37 нейропроцессора и соединены с третьими входами соответствующих разрядов коммутатора с трех направлений в два 11. Выходы разрядов четвертого регистра 4 соединены с информационными входами соответствующих разрядов пятого регистра 5 и соответствующими входами установки границ данных в векторах третьих операндов 24 вычислительного устройства 18, входы установки границ данных в векторах вторых операндов 23 которого соединены с выходами соответствующих разрядов шестого регистра 6, информационные входы которого соединены с выходами соответствующих разрядов сдвигового регистра 7, последовательные информационные вход и выход которого объединены и подключены к первому входу управления загрузкой векторов третьих операндов в первый блок памяти 25 вычислительного устройства 18 и первому входу элемента И 8, выход которого соединен с входом управления чтением первого блока памяти магазинного типа 9. Вход управления сдвигом сдвигового регистра 7 соединен с вторым входом элемента И 8 и вторым входом управления загрузкой векторов третьих операндов в первый блок памяти 26 вычислительного устройства 18, вход управления