Изобретение относится к техническим средствам информатики и вычислительной техники и может быть использовано для синтеза арифметико-логических устройств, для создания быстродействующих и высокопроизводительных цифровых устройств умножения чисел в прямых кодах.
Известно "Устройство для умножения в конечных полях" (патент №5064139/09), позволяющее выполнять умножения полиномов.
Известно "Множительное устройство" (патент №93031693/09), позволяющее умножать двоичные числа.
Известен "Ассоциативный умножитель чисел" (патент №95104047/09), позволяющий производить умножение произвольных чисел.
Кроме того, известно "Устройство для умножения чисел в позиционном коде" (патент №94001646/09), которое выполняет операцию умножения двоичных чисел.
В качестве прототипа выбран "Умножитель на нейронах" (патент №2249845), выполняющий операцию умножение двоичных чисел в прямых кодах.
Задача заключается в следующем:
упростить алгоритм блока управления,
повысить скорость операции суммирования-вычитания чисел в прямых кодах,
повысить надежность работы ускоренного умножителя.
В представленном умножителе происходит умножение двоичных чисел в прямых кодах. Предлагаемый умножитель позволит значительно повысить быстродействие устройства, снизить аппаратные средства, что ведет к упрощению комбинационной схемы, а также упростит алгоритм работы устройства.
Решение задачи осуществляется тем, что ускоренный умножитель на нейронах, содержащий блок ввода данных, блок суммирования, блок хранения результата, блок управления, отличающийся тем, что дополнительно введены: блок регистра множимого, блок регистра множителя блок дешифратора, причем управляющий выход блока ввода данных соединен с третьим управляющим входом блока управления, первый информационный выход которого соединен со вторым информационным входом блока регистра множителя, первый информационный вход которого соединен с информационным выходом блока ввода данных, информационный выход которого соединен с первым информационным входом блока регистра множимого, второй информационный вход которого соединен со вторым информационным выходом блока управления, со второго по шестой управляющие выходы которого соединены соответственно с первым по пятый управляющими входами блока регистра множимого, управляющий выход которого соединен с девятым управляющим входом блока управления, первый управляющий выход которого соединен с управляющим входом блока регистра множителя, первый управляющий выход которого соединен с четвертым управляющим входом блока управления, с пятого по восьмой управляющие входы которого соединены соответственно с первым по четвертый управляющими выходами блока дешифратора, первый и второй управляющие входы которого соединены соответственно со вторым и третьим управляющими выходами блока регистра множителя, информационный выход блока регистра множимого соединен с информационным входом блока сумматора, информационный выход которого соединен с первым информационным входом блока хранения результата, второй информационный вход которого соединен с третьим информационным выходом блока управления, с седьмого по четырнадцатый управляющие выходы которого соединены соответственно с первым по восьмой управляющими входами блока хранения результата, первый и второй управляющие входы блока управления "СБРОС" и "ПУСК" являются внешними входами устройства.
Умножение, выполняемое методом накопления частичных произведений. Операция умножения в современных ЭВМ чаще всего выполняется суммированием сдвинутых на один или несколько разрядов частичных произведении, каждое из которых является результатом умножения множимого на соответствующий разряд (разряды) множителя. При точном умножении двух чисел количество значащих цифр произведения может в пределе достичь двойного количества значащих цифр сомножителей. Наиболее просто операция умножения в ЭВМ выполняется в прямом коде. При этом на первом этапе определяется знак произведения путем сложения знаковых цифр сомножителей по модулю 2. Произведение вычисляется как сумма частичных произведений, из которых каждое получается последовательными сдвигами и умножением множимого на соответствующий разряд множителя. Произведение двух n-разрядных чисел является 2n-разрядным числом. Перемножение модулей сомножителей производится по правилам арифметики согласно двоичной таблице умножения. Результату присваивается полученный знак. Так как умножение производится в двоичной системе счисления, частные произведения либо равны 0 (при умножении на 0), либо самому сомножителю (при умножении на 1), сдвинутому на соответствующее количество разрядов. Количество циклов можно сократить, если в каждом цикле анализировать не один, а два или более разрядов множителя. Для организации ускоренного умножения анализируют два последних разряда множителя. Возможные двоичные комбинации двух разрядов при умножении с младших разрядов множителя записываются следующем образом: 00, 01, 10, 11. Для набора 00 в блоке суммирования не производится сложения. Двоичные разряды множимого сдвигаются влево на два разряда. При наборе 01 необходимо произвести суммирование ранее полученной суммы частичных произведений и двоичным кодом множимого, затем осуществляется сдвиг влево множимого на один разряд. Для набора 10 выполняется сдвиг влево множимого, затем осуществляется операция суммирование преобразованного множимого и ранее полученной суммы частичных произведений в блоке суммирования. В случае комбинации 11 в блоке суммирования выполняются операции сложения ранее полученной суммы частичных произведения, множимого и преобразованного множимого. Операция умножения выполняется значительно быстрее при применении алгоритма, в котором анализируются два разряда множителя. При анализе более двух разрядов множителя, блок управления, алгоритм работы ускоренного умножителя имеет более сложную структуру. Возрастает сложность в реализации блоков дешифрации и регистра множимого.
БВД - блок ввода данных служит для ввода операндов и определения знака произведения.
БРгМН - блок регистра множимого служит для хранения множимого при выполнении операции умножения в двоичном коде.
БРгМЖ - блок регистра множителя служит для хранения множителя при выполнении операции умножения в двоичном коде и определения окончания операции умножения.
БСУМ - блок суммирования служит для выполнения операции сложения частичных произведений.
БДШ - блок дешифратора служит для анализа двух разрядов множителя.
БХР - блок хранения результата служит для хранения произведения.
БУ - блок управления служит для управления устройством.
На фиг.1 изображена структурная схема ускоренного умножителя на нейронах.
На фиг.2 представлен вариант технической реализации блока ввода данных.
На фиг.3 представлен вариант технической реализации блока регистра множимого первого и второго разрядов множимого.
На фиг.4 представлен вариант технической реализации блока регистра множимого с третьего по n разряды множимого.
На фиг.5 представлен вариант технической реализации блока суммирования.
На фиг.6 изображена принципиальная схема одноразрядного сумматора на нейронах.
На фиг.7 представлен вариант технической реализации блока регистра множителя и схемы определения нулевого значения двоичного кода множителя.
На фиг.8 представлен вариант технической реализации блока дешифратора, выполняющего функцию декодирования разрядов множителя и функциональной схемы электронного ключа.
На фиг.9 представлен вариант технической реализации блока хранения результата.
На фиг.10 содержательная граф-схема алгоритма работы блока управления ускоренного умножителя на нейронах.
На фиг.11 - размеченная граф-схема алгоритма ГСА работы ускоренного умножителя на нейронах.
Ускоренный умножитель на нейронах (фиг.1) содержит: блок ввода данных 1, блок регистра множимого 2, блок регистра множителя 4, блок суммирования 3, блок дешифратора 5, блок хранения результата 6, блок управления 7, пороговые элементы, нейроны.
Для описания алгоритма работы блока 7 управления используются следующие идентификаторы.
СБРОС - сигнал сброса (обнуления) всех элементов памяти устройства.
ПУСК - сигнал начало работы ускоренного умножителя.
СЗЧ - суммирование по модулю два знаковых разрядов двоичных чисел.
ВХЧ - входные числа, двоичный код входных операндов.
УПР - информационный сигнал, состоящий из управляющих сигналов:
сброса в нулевое состояние, сигнал синхронизации, сигнал разрешения записи информации в триггера блока регистра множителя.
СДП - сигнал сдвига вправо двоичного кода блока регистра множителя.
АН0 - сигнал анализа на нулевое состояние двоичного кода блока регистра множителя.
ПРРМЖ - предпоследний двоичный разряд множителя.
ПРМЖ - последний двоичный разряд множителя.
F1 - первый управляющий выход блока дешифратора устройства.
F2 - второй управляющий выход блока дешифратора устройства.
F3 - третий управляющий выход блока дешифратора устройства.
F4 - четвертый управляющий выход блока дешифратора устройства.
СУП - информационный сигнал управления, состоящий из управляющих сигналов: установки в нулевое состояние, сигнал синхронизации, сигнал разрешения записи информации в триггера блока регистра множимого.
УП1 - управляющий сигнал первый, формирующий режим работы регистра блока регистра множимого.
УП2 - управляющий сигнал второй, формирующий режим работы регистра блока регистра множимого.
УП3 - управляющий сигнал третий, формирующий режим работы регистра блока регистра множимого.
УП4 - управляющий сигнал четвертый, формирующий режим работы регистра блока регистра множимого.
СДЛ - сигнал сдвига влево регистра блока регистра двоичного кода множимого.
АНН - сигнал анализа на нулевое состояние двоичного кода множимого.
ДР1, ДР2, ..., ДРn - двоичные разряды множимого, поступающие на вход блока суммирования.
ДЗР1, ДЗР2, ..., ДЗРn - двоичные разряды множимого, поступающие на вход блока суммирования.
ЧАПРО - информационный сигнал частных произведений множимого.
НИН - информационный сигнал, равный нулевому значению 00...0.
ЗНП - знаковый разряд произведения, поступающий на вход ОЗУ блока хранения результата.
УПЭК - управляющий сигнал, поступающий на вход электронного ключа.
ГИ - генераторные импульсы, поступающие на вход двоичного счетчика СЧСТ блока хранения результата.
ТИ - тактовые импульсы, поступающие на вход двоичного счетчика СЧСТР блока хранения результата.
ОБ - сигнал обнуления двоичного счетчика СЧСТ блока хранения результата.
УС - сигнал обнуления двоичного счетчика СЧСТР блока хранения результата.
ВК - сигнал выбора кристалла ОЗУ блока хранения результата.
Сч/Зп - сигнал разрешения режима чтения/записи данных в ОЗУ блока хранения результата.
ПРО - окончательный результат, произведение чисел.
ЗРМН - знаковый разряд множимого.
ЗРМЖ - знаковый разряд множителя.
МН1, МН2, МН3, МН4, ..., MHn - двоичные разряды множимого.
S1, S2, S3, ..., Sk - выходные двоичные разряды сумматоров.
ПРН - двоичный разряд переноса при суммировании старших разрядов чисел.
Si - двоичный разряд суммы входных чисел.
Pi+1 - двоичный разряд переноса при суммировании двоичных разрядов чисел.
РЕЗ - окончательный результат произведения двоичных чисел, поступающий на вход ОЗУ блока хранения результата.
АДСТ - адреса столбцов ОЗУ блока хранения результата.
АДСТР - адреса строк ОЗУ блока хранения результата.
ВЫХ - выходные данные ОЗУ блока хранения результата.
Работа алгоритма управления устройства.
Содержательная граф-схема алгоритма управления приведена на фиг.10 и отражает работу блока 7 управления (фиг.1).
Блок 1 является начальным блоком алгоритма.
По команде "СБРОС=1" (блок 2) и сигналу "ПУСК" (блок 3) происходит установка в нуль всех элементов памяти устройства.
В блоке 4 алгоритма по команде БРгМН:=МН в регистрблока регистра множимого записывается двоичный код множимого МН для выполнения операции умножения чисел. По команде БРгМЖ:=МЖ в регистрблока регистра множителя записывается множитель в двоичном коде.
В блоке 5 анализируется признак равенства нулевому значению двоичного кода регистра блока регистра множимого БРгМН=0. Если в регистре блока регистра записана нулевая информация - выход блока ДА, то осуществляется переход на блок 25 алгоритма. Если в регистре ненулевая информация - выход блока НЕТ, то осуществляется переход на блок 6 алгоритма.
В блоке 6 анализируется признак равенства нулевому значению двоичного кода регистра блока регистра множителя БРгМЖ=0. Если в регистре блока регистра определена нулевая информация - выход блока ДА, то осуществляется переход на блок 26 алгоритма. Если в регистре ненулевая информация - выход блока НЕТ, то осуществляется переход на блок 7 алгоритма.
В блоке 7 алгоритма по команде БДШ:=ПРРМЖ блок дешифратора принимает значение предпоследнего ПРР разряда множителя МЖ в регистре блока регистра множителя. По команде БДШ:=ПРМЖ на вход блока дешифратора умножителя поступает последний ПР двоичный разряд множителя МЖ регистра блока регистра множителя (фиг.1, 8). В блоке дешифратора БДТТТ устройства анализируются два последних, младших двоичных разряда множителя. Операция умножения чисел выполняется с анализа двух младших разрядов множителя. В зависимости от двоичной комбинации этих разрядов 00, 01, 10, 11, блок управления ускоренным умножителем генерирует управляющие сигналы, поступающие на вход регистра блока регистра множимого. Затем блок управления устройством формирует сигнал сдвига вправо на два разряда двоичного кода множителя. Процесс анализа последних двух разрядов множителя и сдвига на два разряда вправо заканчивается тогда, когда в регистре блока регистра множителя не будут определены только нулевые значения двоичного кода множителя.
В блоке 8 алгоритма анализируется комбинация двух последних разрядов множителя. Это состояние равное 00. Если значение двоичных разрядов множителя отличается от этой комбинации - выход НЕТ блока, то осуществляется переход на блок 12 алгоритма. Если два последних разряда множителя равны значению 00 - выход ДА блока, то осуществляется переход на блок 9 алгоритма.
В блоках 9, 10, 11 алгоритма выполняется операция сдвига множимого на два разряда влево, если определена двоичная комбинация 00 в двух последних разрядах регистра множителя.
В блоке 9 алгоритма по командам УП1:=1 и УП2:=0 из блока 7 управления в регистре блока регистра множимого осуществляется сдвиг двоичного кода множимого на два разряда влево. Эти управляющие сигналы будут сформированы после дешифрации разрядов множителя.
В блоке 10 алгоритма по команде БРгМН:=СДЛ на вход регистра блока регистра множимого подается сигнал сдвига влево. В результате выполнения этой операции двоичный код множимого в регистре сдвигается влево на два разряда.
В блоке 11 алгоритма по команде Tpi+2:=Tpi каждый i+2-й триггер регистра блока регистра множимого принимает значение i-го триггера регистра этого блока. В результате этой операции выполняется сдвиг двоичного кода множимого влево на два разряда. С выхода этого блока осуществляется переход на блок 26 алгоритма.
В блоке 12 алгоритма анализируется комбинация двух последних разрядов множителя. Это состояние равное 01. Если значение двоичных разрядов множителя отличается от этой комбинации - выход НЕТ блока, то осуществляется переход на блок 17 алгоритма. Если два последних разряда множителя равны двоичному набору 01 - выход ДА блока, то осуществляется переход на блок 13 алгоритма.
В блоках 13, 14, 15, 16 алгоритма выполняется операция сложения частичного произведения блока суммирования и множимого, а также осуществляется сдвиг влево на один разряд регистра множимого, если определена двоичная комбинация 01 в двух последних разрядах множителя.
В блоке 13 алгоритма по командам УП3:=1 и УП2:=0 из блока 7 управления на вход регистра блока регистра множимого подаются управляющие сигналы УП3 и УП2. Эти сигналы формируют операции суммирования в блоке суммирования и сдвига влево на один разряд множимого. При управляющем сигнале УПЗ, равном единице, данные регистра множимого поступают на вход блока суммирования, где выполняется операция суммирования ранее полученной суммы и двоичного кода множимого. При управляющем сигнале УП2, равном нулевому значению, происходит блокирование передачи с i-го триггера регистра множимого на вход i+1-го триггера, при этом не происходит операция сдвига регистра множимого влево на один разряд (фиг.3, 4).
В блоке 14 алгоритма по команде БСУМ:=БРгМН блок суммирования принимает значение двоичного кода регистра блока регистра множимого. Эта операция, которая позволяет подать значение регистра множимого на вход сумматора, для получения очередного частичного произведения.
В блоке 15 алгоритма по командам УП3:=0 и УП2:=1 из блока 7 управления на вход регистра блока регистра множимого подаются управляющие сигналы УПЗ и УП2. При управляющем сигнале УПЗ равного нулевому значению, данные регистра множимого не поступают на вход блока суммирования, т.е блокируются. При управляющем сигнале УП2, равном единице, происходит передача с i-го триггера регистра множимого на вход i+1-го триггера, при этом выполняется операция сдвига регистра множимого влево на один разряд (фиг.3, 4).
В блоке 16 алгоритма по команде Tpi+1:=Tpi каждый i+1-й триггер регистра блока регистра множимого принимает значение i-го триггера регистра этого блока. В результате этой операции выполняется сдвиг двоичного кода множимого влево на один разряда. С выхода этого блока осуществляется переход на блок 26 алгоритма.
В блоке 17 алгоритма анализируется комбинация двух последних разрядов множителя. Это состояние, равное 10. Если значение двоичных разрядов множителя отличается от этой комбинации - выход НЕТ блока, то осуществляется переход на блок 22 алгоритма. Если два последних разряда множителя равны двоичному набору 10 - выход ДА блока, то осуществляется переход на блок 18 алгоритма.
В блоках 18, 19, 20, 21 алгоритма выполняется операция сдвига влево на один разряд регистра множимого и сложения частичного произведения блока суммирования и преобразованного множимого, если определена двоичная комбинация 10 в двух последних разрядах множителя.
В блоке 18 алгоритма по командам УП2:=1 и УП3:=0 из блока 7 управления на вход регистра блока регистра множимого подаются управляющие сигналы УП2 и УП3. Эти сигналы формируют операции сдвига влево на один разряд множимого и сложение в блоке суммирования частичного произведения и преобразованного множимого. При управляющем сигнале УП2, равном единичному значению, происходит передача с i-го триггера регистра множимого на вход i+1-го триггера, при этом происходит операция сдвига регистра множимого влево на один разряд. При управляющем сигнале УП3, равном нулю, данные регистра множимого не поступают на вход блока суммирования, в этом случае происходит блокировка передачи данных (фиг.3, 4). Состояния управляющих сигналов УП2:=1 и УП3:=0 соответствуют операции сдвига множимого влево на один разряд.
В блоке 19 алгоритма по команде Tpi+1:=Tpi каждый i+1-й триггер регистра блока регистра множимого принимает значение i-го триггера регистра этого блока. В результате этой операции выполняется сдвиг двоичного кода множимого влево на один разряда.
В блоке 20 алгоритма по командам УП2:=0 и УП3:=1 из блока 7 управления на вход регистра блока регистра множимого подаются управляющие сигналы УП2 и УП3. При управляющем сигнале УП2, равном нулю, не происходит передача с i-го триггера регистра множимого на вход i+1-го триггера, при этом не выполняется операция сдвига регистра множимого влево на один разряд. При управляющем сигнале УП3, равном единичному значению, данные регистра множимого поступают на вход блока суммирования, где вычисляется очередное частичное произведение (фиг.3, 4).
В блоке 21 алгоритма по команде БСУМ:=БРгМН блок суммирования принимает значение двоичного кода регистра блока регистра множимого. Эта операция, которая позволяет подать значение регистра множимого на вход блока суммирования, для получения очередного частичного произведения. С выхода этого блока осуществляется переход на блок 26 алгоритма.
В блоке 22 алгоритма по командам УП4:=1 и УП3:=0 из блока 7 управления на вход регистра блока регистра множимого подаются управляющие сигналы УП4 и УП3. Эти сигналы формируют подачу ДЗР i-х двоичных разрядов множимого на вход i+1-й схемы ИЛИ блока суммирования. При этом выполняется операция сдвига влево на один разряд множимого, а затем сложение в блоке суммирования преобразованного множимого и частичного произведения. При комбинации двоичных последних разрядов множителя - 11 необходимо выполнить операции: суммирования очередного частичного произведения и множимого, сдвига множимого влево на один разряд, затем суммирования полученного частичного произведения и преобразованного множимого.
В блоке 23 алгоритма по команде БСУМ:=БРгМН блок суммирования принимает значение двоичного кода регистра блока регистра множимого. После выполнения этой операции формируется очередное частичное произведение в блоке суммирования.
В блоке 24 алгоритма по командам УП3:=1 и УП4:=0 из блока 7 управления на вход регистра блока регистра множимого подаются управляющие сигналы УП3 и УП4. Эти сигналы формируют операцию суммирование двоичных ДРi разрядов множимого и полученного частичного произведения.
В блоке 25 алгоритма по команде БСУМ:=БРгМН блок суммирования принимает значение двоичного кода регистра блока регистра множимого. После выполнения этой операции формируется очередное частичное произведение в блоке суммирования. С выхода этого блока осуществляется переход на блок 26 алгоритма.
В блоке 26 по команде БРгМЖ:=СДП происходит подача из блока 7 управления сигнала сдвига вправо СДП множителя на два разряда. На вход регистра блока регистра множителя подается управляющий сигнал сдвига. Соединение триггеров в блоке регистра множителя позволяет за один сигнал сдвига вправо осуществить сдвиг двоичных разрядов множителя на два разряда вправо. Выход Tpm-го триггера поступает на вход Tpm-2-го триггера (фиг.7).
В блоке 27 по команде БХР:=НИН выполняется операция записи нулевой информации 0...00 в блок хранения результата, в случае если регистр блока регистра множителя равен нулевому значению.
В блоке 28 алгоритма по команде БХР:=БСУМ в блок хранения результата записывается значение блока суммирования. В оперативное запоминающее устройство блока хранения результата будет записано произведение двоичных чисел по сформированным двоичными счетчиками адресам (фиг.9).
Блок 29 является конечным блоком алгоритма.
Работа умножителя на нейронах заключается в следующем.
Внешние управляющие сигналы "Пуск" и "Сброс" поступают в блок 7 управления.
Блок 1 ввода данных БВД содержит шифратор (обычная стандартная клавиатура) ШФ DD8, сумматор по модулю два DD9, выполненный не нейроне (фиг.2). С помощью этого блока двоичные числа вводятся в блоки регистров множимого и множителя. С выхода шифратора формируется двоичный код множимого и множителя со своими знаками: МН, МЖ, ЗРМН, ЗРМЖ. Знаковые разряды с выхода шифратора поступают на вход сумматора по модулю два. Сигнал СЗЧ суммирование знаковых чисел формируется на выходе элемента DD9. Сумматор по модулю два реализован на формальном нейроне ФН [1, 2]. Выходной сигнал вычисляется по формуле (I):
где w1, w2, w3 - коэффициенты усиления, а Т - пороговое напряжение.
Выходными сигналами блока 1 ввода данных являются двоичные коды множимого МН и множителя МЖ, а также сумма по модулю два знаковых разрядов СЗЧ.
Блок 2 регистра множимого БРгМН представляет собой набор D-триггеров DD10, DD12, DD20, DD22, DD24, логическую схему 2И-2ИЛИ DD13, логических схем 2И-3ИЛИ DD11, DD21, DD23, DD25, схем И, выполненных на пороговых элементах DD15, DD16, DD17, DD18, DD19, DD26, DD27, DD28, DD29, DD30, DD31, схему ИЛИ, выполненную на пороговом элементе DD14 (фиг.3, 4). Этот блок регистра предназначен для хранения разрядов множимого, а также для организации операций сдвига: на один разряд влево, на два разряда влево, выдачу разрядов множимого на вход блока сумматора. Выходная информация D-триггера Tpi является входной для следующего D-триггера Tpi+1 при сдвиге на один разряд влево, тем самым организован сдвиг информации влево на один разряд. При сдвиге на два разряда влево выходная информация D-триггера Tpi является входной для D-триггера Tpi+2. Информационный сигнал управления СУП из блока 7 управления поступает на вход блока 2 регистра множимого. Сигнал СУП состоит из управляющих сигналов: УС0 установка в нуль триггеров регистра, СИН сигнал синхронизации элементов памяти, ЗАП сигнал записи информации в триггера регистра. Сигнал УС0 установки в нуль триггеров поступает параллельно на все входы R обнуления триггеров регистра. Сигнал СИН синхронизации поступает параллельно на синхронизирующие входы С всех триггеров регистра. Сигнал записи ЗАП поступает на управляющие входы схем 2И-2ИЛИ DD13 и 2И-3ИЛИ DD11, DD21, DD23, DD25. Сигнал ЗАП записи осуществляет операцию загрузки двоичного кода МН1, МН2, ..., MHn множимого в D-триггера блока 2 регистра множимого (фиг.1, 3, 4). Перед загрузкой множимого в регистр блока все D-триггера будут установлены в нулевое состояние сигналом УС0 установки в нуль. По приходу сигнала записи ЗАП на управляющие входы секций схем И, двоичный код МН1, МН2, ..., MHn множимого будет записан в D-триггера блока 2 регистра множимого. На входы секций схем И блока 2 регистра множимого двоичные разряды МН1, МН2, ..., MHn множимого поступают из блока 1 ввода данных. Младший разряд записывается в D-триггер Тр1, старшие разряды в D-триггера Tpi+1 регистра блока 2 множимого (фиг.3, 4). Схема ИЛИ DD14 анализирует значение двоичного кода множимого. На входы схемы ИЛИ DD14 поступают разряды множимого. Выходным управляющим сигналом схемы ИЛИ DD14 является сигнал АНН - анализ нулевой информации множимого, поступающий на вход блока 7 управления. Если сигнал АНН равен нулю, то множимое равно нулю нулевому значению. В этом случае в блок 6 хранения результата записывается информационный сигнал НИН - нулевая информация, поступающий из блока 7 управления. Если управляющий сигнал АНН равен единице, то множимое не равно нулевому значению. В этом случае выполняется операция умножения, при условии, что множитель также не равен нулевому значению. После выполнения операции умножения произведение двоичных чисел записывается по сформированным адресам в оперативное запоминающее устройство блока 6 хранения результата. Входным управляющим сигналом блока 2 регистра множимого является сигнал сдвига влево СДЛ, поступающий на второй управляющий вход схемы И порогового элемента DD15 и второй управляющий вход первой секции (верхней на фигуре 3) схемы 2И-2ИЛИ элемента DD13. Сигнал сдвига влево СДЛ поступает с выхода блока 7 управления (фиг.1). При формировании операции сдвига влево информации регистра множимого на один разряд управляющий сигнал СДЛ принимает значение равного единице. Этот сигнал открывает схему И порогового элемента DD15 и первую секцию схемы 2И-2ИЛИ. На первый вход схемы И порогового элемента DD15 поступает сигнал, равный нулевому значению "0". Выход схемы И порогового элемента DD15 является первым входным сигналом первой секции схемы 2И-2ИЛИ элемента DD15 (фиг.3). При выполнении операции сдвига влево информации в регистре множимого на один разряд D-триггер Tpi+1 принимает значение D-триггера Tpi. Слева в младший разряд D-триггера Tp1 DD12 регистра множимого записывается значение нуль. Входные управляющие сигналы УП1, УШ, УПЗ, УП4, поступающие с выхода блока 7 управления, формируют режимы работы схем И, 2И-2ИЛИ, 2И-3ИЛИ. Управляющий сигнал УП1 поступает на вторые управляющие входы первых секций схем 2И-3ИЛИ элементов DD11, DD21, DD23, DD25 (фиг.3, 4). Если управляющий сигнал УП1 принимает значение единице при комбинации предпоследнего и последнего разрядов множителя, равных 00, то эти секции будут открыты. При этом выполняется операция сдвига двоичного кода множимого на два разряда влево, D-триггер Tpi+2 принимает значение D-триггера Tpi блока 2 регистра множимого. Ели сигнал УП1 равен нулю, то первые секции схем 2И-3ИЛИ будут закрыты, операция сдвига на два разряда влево множимого не будет осуществлена. Управляющий сигнал УП2 поступает на вторые управляющие входы вторых секций схем 2И-3ИЛИ элементов DD11, DD21, DD23, DD25 (фиг.3, 4). Информационными сигналами этих секций являются выходы D-триггеров. Информационные сигналы триггеров поступают на первые входы вторых секций схем 2И-3ИЛИ элементов DD11, DD21, DD23, DD25. Если управляющий сигнал УП2 принимает значение единице при комбинации предпоследнего и последнего разрядов множителя, равных 01, 10, 11, то эти секции будут открыты. При этом выполняется операция сдвига двоичного кода множимого на один разряд влево, D-триггер Tpi+1 принимает значение D-триггера Tpi блока 2 регистра множимого. Если сигнал УП2 равен нулю, то вторые секции схем 2И-3ИЛИ будут закрыты, операция сдвига на один разряд влево множимого не будет выполнена. Сигнал УПЗ является управляющим входом схем И элементов DD17 DD19, DD27, DD29, DD31. Эти элементы выполняют функцию электронных ключей. Информационными сигналами схем И являются выходы D-триггеров регистра. В случае равенства сигнала УПЗ единичному значению, электронные ключи элементов DD17 DD19, DD27, DD29, DD31 будут открыты. Значения D-триггеров регистра через открытые схемы И поступают на блок суммирования для выполнения операции сложения (фиг.3, 4, 5). Ели сигнал УПЗ равен нулю, то схем И будут закрыты, операция передачи разрядов множимого в блок суммирования не будет осуществлена. Управляющий сигнал УПЗ принимает значение единицы при комбинации предпоследнего и последнего разрядов множителя, равных 01, 10, 11. Сигнал УП4 является управляющим входом схем И элементов DD16 DD18, DD26, DD28, DD30. Эти элементы работают как электронные ключи. Информационными сигналами схем И являются выходы D-триггеров регистра. В случае равенства сигнала УП4 единице, электронные ключи элементов DD16 DD18, DD26, DD28, DD30 будут открыты. Значения D-триггеров регистра через открытые схемы И поступают на блок суммирования для выполнения операции сложения (фиг.3, 4, 5). Ели сигнал УП4 равен нулю, то схем И будут закрыты, операция передачи разрядов множимого в блок суммирования не будет выполнена. Управляющий сигнал УП4 принимает значение единицы при комбинации предпоследнего и последнего разрядов множителя, равных 01, 10, 11. Выходные сигналы блока 2 регистра множимого ДР1 схемы И элемента DD19, ДР31 схемы И элемента DD18, ДР2 схемы И элемента DD17, ДР32 схемы И элемента DD16, ДР3 схемы И элемента DD31, ДР33 схемы И элемента DD30, ДР4 схемы И элемента DD29, ДР34 схемы И элемента DD28, ..., ДРn схемы И элемента DD27, ДР3n схемы И элемента DD26 - двоичные разряды D-триггеров блока поступают на схемы ИЛИ блока суммирования (фиг.3, 4, 5).
Блок 3 суммирования БСВ состоит из системы n-элементов ИЛИ, выполненных на пороговых элементах DD32, DD33, DD34, DD35, n-сумматоров на нейронах, выполненных на элементах: DD36, DD37, DD38, DD39. Блок предназначен для выполнения операции суммирования с целью получения частичных сумм на промежуточных шагах вычисления, а также разрядов произведения при окончании операции умножения (фиг.5). Входной информацией блока являются разряды множимого ЧАПРО - частичные разряды произведения. Элементы ИЛИ выполняют собирательную функцию. На входы этих элементов поступают двоичные разряды ДР1, ДР2, ДР3, ..., ДРn, ДЗР1, ДЗР2, ДЗР3, ..., ДЗРn, из блока регистра множителя (фиг.1, 3, 4, 5). На вход сумматора СУМ1 поступает сигнал ai - результат выполнения операции ИЛИ входных величин (ДЗРi-1) ИЛИ (ДРi). Такая связь необходима при комбинации разрядов множителя, равных 11. Сложение предыдущего и последующего двоичных разрядов множимого. Операция сложение выполняется между разрядами множимого и сдвинутыми разрядами множимого на один разряд влево. На вход сумматора СУМ1 поступает сигнал a1 - результат выполнения операции ИЛИ входных величин "0" ИЛИ (ДР1). Выходной информацией каждого сумматора блока является сумма Si разрядов множимого и суммой, полученной на предыдущем шаге и перенос Pi+1 в старшие разряды. Выход каждого блока суммирования является его вторым входом, организована обратная связь, для того чтобы складывать промежуточную сумму с преобразованным множимом. На третий вход каждого блока сумматора поступает перенос из младших разрядов Pi. Каждый блок суммирования представляет собой одноразрядный сумматор, на входы которого поступают разряды преобразованного множимого, сумма чисел от предыдущего этапа сложения и перенос из младших разрядов. Выходом является полученная сумма Si и перенос Pi+1 в старший разряд. Произведение чисел ПРО записывается в оперативное запоминающее устройство ОЗУ блока хранения результата (фиг.1, 5).
Одноразрядный сумматор блока состоит из пороговых элементов, на фиг.6 показана принципиальная схема одноразрядного сумматора, реализованного на пороговых элементах DD40 и DD41 (фиг.6). Элемент DD40 предназначен для получения разряда переноса в старший разряд. На вход элемента поступают аi i-й разряд множимого, Рi перенос из младшего разряда с выхода предыдущего сумматора. Si-й разряд суммы. На выходе блока формируется сигнал суммы Si и Рi+1 перенос в старший разряд. Работа данного элемента описывается с помощью формулы (3)
где w1, w2, w3 - коэффициенты усиления, а Т - пороговое напряжение.
Элемент DD41 предназначен для получения разряда суммы. На вход элемента поступают ai, где i-й разряд множимого, Р; перенос в старший разряд с выхода предыдущего сумматора, Si i-й разряд суммы, Pi+1 - перенос в старший разряд. На выходе блока формируется сигнал Si+1 разряд суммы. Работа данного элемента описывается с помощью формулы (4)
где w1, w2, w3, w4 - коэффициенты усиления, а Т - пороговое напряжение.
Блок 4 регистра множителя БРгМЖ представляет собой набор D-триггеров DD43, DD44, DD45, DD46 и логический элемент ИЛИ DD42 (фиг.7). Блок регистра множителя предназначен для хранения разрядов множителя, организации операции сдвига вправо разрядов множителя на два разряда, с целью получения и анализа текущих младших разрядов множителя. Запись информации осуществляется следующем образом: старшие разряды множителя записываются в регистр в левую часть. Старший разряд записывается в Tpm DD43, младший в Tp1 DD46 (фиг.7). При сдвиге вправо на два разряда происходит анализ двоичных разрядов блока регистра множителя на наличие единичных разрядов множителя. Если есть хотя бы один разряд, равный единице в двоичном коде множителя, то сигнал АН0 - анализа нулевой информации блока регистра равен единице, иначе сигнал АН0 принимает значение, равное нулю. Если сигнал анализа двоичных разрядов множителя АН0 равен единичному значению, то операция умножения чисел продолжается. Если сигнал АН0 равен нулевому значению, то осуществляется операция записи полученного произведения в блок хранения результата. Сигнал АН0 поступает на вход блока 7 управления. На вход блока регистра множителя поступает информационный сигнал ВХЧ - входные числа, двоичные разряды множителя из блока 1 ввода данных. Блок регистра множителя управляется из блока 7 управления при поступлении информационного сигнала управления - УПР.
Этот сигнал состоит из трех управляющих сигналов: ССБ - сигнал сброса, СЗ - сигнал записи, ССН - сигнал синхронизации. Эти сигналы поступают параллельно на все соответствующие управляющие входы триггеров блока регистра множителя. По сигналу ССБ - сигнал сброса, триггера блока регистра множителя устанавливаются в нулевое состояние, осуществляется сброс D-триггеров регистра блока в нулевое состояние. По сигналу СЗ - сигнал записи информации, происходит запись двоичных разрядов множителя в блок регистра множителя. По сигналу ССН - синхронизации осуществляется общее управление работой триггеров блока регистра множителя. По сигналу СДП - сдвига множителя, поступающего параллельно на все входы триггеров блока регистра, происходит сдвиг двоичного кода множителя на два разряд вправо для анализа и дешифрации этих разрядов. При сдвиге вправо на два разряда выход с третьего триггера Тр3 DD44 поступает на вход первого триггера Тр1 DD46, выход Tpm DD43 поступает на вход Tpm-2 триггера блока регистра множителя. Такое соединение триггеров позволяет за один такт сигнала сдвига СДП осуществить сдвиг на два разряда вправо двоичного кода множителя. Последний младший разряд множителя - ПРМЖ является выходом триггера Тр1 DD46. Предпоследний разряд множителя - ПРРМЖ является выходом триггера Тр2 DD45. Эти сигналы поступают на вход блока дешифратора (фиг.1, 7).
Блок 5 дешифратора БШД выполнен на пороговых элементах ПЭ1 DD47, ПЭ2 DD48, ПЭ3 DD49, ПЭ4 DD50 (фиг.8). Блок предназначен для дешифрации входных сигналов - предпоследнего ПРРМЖ и последнего ПРМЖ двоичных разрядов множителя МЖ. Входные сигналы ПРРМЖ предпоследний и ПРМЖ последний двоичные разряды множителя поступают соответственно на вход блока дешифратора с выходов триггеров Тр2 DD45 и Тр1 DD46 блока регистра множителя (фиг.7). Выходными сигналами блока 5 дешифратора являются управляющие сигналы F1, F2, F3, F4. Эти сигналы поступают на вход блока 7 управления. На выходе блока 5 формируется только один высокий уровень, равный единице. Остальные выходы принимают значения равными нулю. Работу блока 5 дешифратора можно описать с помощью аналитических формул: если ПРРМЖ=0, ПРМЖ=0, то F1=1, F2=0, F3=0, F4=0; если ПРРМЖ=0, ПРМЖ=1, то F1=0, F2=1, F3=0, F4=0; если ПРРМЖ=1, ПРМЖ=0, то F1=0, F2=0, F3=1, F4=0; если ПРРМЖ=1, ПРМЖ=1, то F1=0, F2=0, F3=0, F4=1.
Работа порогового элемента ПЭ1 DD47 описывается с помощью формулы (5)
где w1, w2 - коэффициенты усиления, а Т - пороговое напряжение.
Работа порогового элемента ПЭ2 DD48 описывается с помощью формулы (6)
где w1, w2 - коэффициенты усиления, а Т - пороговое напряжение.
Работа порогового элемента ПЭЗ DD49 описывается с помощью формулы (7)
где w1, w2 - коэффициенты усиления, а Т - пороговое напряжение.
Работа порогового элемента ПЭ4 DD50 описывается с помощью формулы (8)
где w1, w2 - коэффициенты усиления, а Т - пороговое напряжение [4].
В зависимости от двоичной комбинации предпоследнего ПРРМЖ и последнего ПРМЖ двоичных разрядов множителя МЖ вычисляются выходные сигналы F1, F2, F3, F4, которые формируют различные режимы работы блока регистра множимого (фиг.8).
Электронный ключ ЭлКл DD58 выполнен на пороговых элементах DD51, DD52, DD53, DD54, DD55, выполняющих логическую функцию И, DD56, DD57, выполняющих логическую функцию ИЛИ (фиг.8). Управляющим входом на схемы И является сигнал УПЭК - управление электронным ключом, поступающий из блока 7 управления. Сигнал управления электронным ключом УПЭК поступает на прямые управляющие входы схем И элементов DD51, DD52, DD53, и на инверсные управляющие входы схем И элементов DD54, DD55. На информационный вход схемы И элемента DD51 поступает из блока 7 управления знаковый разряд произведения ЗНП. На информационные входы схем И элементов DD52 и DD53 поступают двоичные разряды произведения чисел ПРО из блока 3 суммирования. На информационные входы схем И элементов DD54 и DD55 поступают двоичные разряды, равные нулю НИН из блока 7 управления. Если управляющий сигнал УПЭК управление работой электронного ключа равен единичному значению, то схемы И элементов DD51, DD52 и DD53 будут открыты, схемы И элементов DD54 и DD55 будут закрыты. Через открытые элементы схем И информационный сигнал ПРО - произведение двоичных чисел и управляющий сигнал знак произведения ЗНП с выходов элементов DD51, DD52 и DD53 поступают на входы схем ИЛИ DD56 и DD57, выполняющих собирательную функцию. Выходной информационный сигнал электронного ключа ЭлКл РЕЗ равен произведению чисел ПРО и знаковому разряду произведения ЗНП. С выхода схем ИЛИ элементов DD56 и DD57 информационный сигнал результата -РЕЗ поступает на вход оперативного запоминающего устройства блока 6 хранения результата. В случае равенства управляющего сигнала работой электронного ключа - УПЭК нулевому значению, схемы И элементов DD51, DD52 и DD53 будут закрыты, а схемы И элементов DD54 и DD55 будут открыты. Тогда информационный сигнал нулевая информация НИН через открытые схемы И элементов DD54 и DD55 поступает на вход схем ИЛИ DD56 и DD57. Знаковый разряд произведения ЗНП в этом случае принимает нулевое значение. Выходной информационный сигнал результата РЕЗ будет равен нулевому значению НИН. В оперативное запоминающее устройство блока 6 хранения результата запишется нулевая информация (фиг.8, 9).
Блок 6 хранения результата БХР состоит из электронного ключа ЭлКл DD58, двоичного счетчика столбцов СЧСТ DD59, двоичного счетчика строк СЧСТР DD60, оперативного запоминающего устройства ОЗУ DD61, служит для хранения двоичных разрядов результата при выполнении операции умножения или нулевой информации, в случае равенства нулю двоичного кода множимого или множителя (фиг.9). На вход блока поступают: знаковый разряд произведения ЗНП, двоичные разряды произведения ПРО, нулевая информация НИН, управляющий сигнал УПЭК - управление работой электронного ключа. Блок 6 хранения результата БХР управляется блоком 7 управления посредством управляющих сигналов. Сигнал ГИ генератор импульсов поступает на вход счетчика столбцов DD59 для выполнения записи произведения на новой строке. Сигнал ТИ тактовые импульсы поступают на вход счетчика строк DD60, для осуществления записи разрядов произведения в столбцы оперативного запоминающего устройства ОЗУ. Сигнал ОБ обнуление столбцов поступает на вход счетчика столбцов СЧСТ DD59 и предназначен для обнуления двоичного счетчика. Сигнал УС обнуления строк поступает на вход двоичного счетчика строк СЧСТР DD60 и устанавливает его в нулевое значение. Сигнал Сч/Зп чтения/записи устанавливает оперативное запоминающее устройство в режим чтения/записи. Сигнал ВК выбор кристалла поступает на вход ОЗУ, он предназначен для выбора кристалла оперативного запоминающего ОЗУ DD61. На входную шину оперативного запоминающего устройства блока хранения результата поступает информационный сигнал РЕЗ - результат. Результат РЕЗ равен произведению чисел или нулевой информации. По сформированным двоичными счетчиками адресам АД СТ - адреса столбцов и АД СТР - адреса строк результат операции умножения записывается в оперативное запоминающее устройство ОЗУ DD61 (фиг.9).
ИСТОЧНИКИ ИНФОРМАЦИИ
1. Мкртчян С.О. Проектирование логических устройств ЭВМ на нейронных элементах. - М.: Энергия, 1977 г.
2. Дертоузос М. Пороговая логика. - М.: Мир, 1967 г.
3. Вавилов Е.И. и др. Синтез схем на пороговых элементах. - М.: Сов. радио. 1970 г.
4. Галушкин А.И. Синтез многослойных схем распознавания образов. - М.: Энергия, 1974 г.
5. Позин И.В. Моделирование нейронных структур. - М.: Наука, 1970 г.
6. Патент №2249845 (прототип).
7. Патент №94001646/09 (аналог).
8. Патент №93031693/09 (аналог).
9. Патент №5064139/09 (аналог).
10. Патент №95104047/09 (аналог).
название | год | авторы | номер документа |
---|---|---|---|
ВЫЧИСЛИТЕЛЬНАЯ ОТКРЫТАЯ РАЗВИВАЕМАЯ АСИНХРОННАЯ МОДУЛЬНАЯ СИСТЕМА | 2009 |
|
RU2453910C2 |
УМНОЖИТЕЛЬ НА НЕЙРОНАХ | 2003 |
|
RU2249845C1 |
АРИФМЕТИЧЕСКИЙ ВЫЧИСЛИТЕЛЬ | 2004 |
|
RU2292580C2 |
Устройство для умножения чисел с плавающей запятой | 1985 |
|
SU1280624A1 |
Устройство для умножения двоичных чисел | 1980 |
|
SU981996A1 |
Устройство для выполнения операций умножения и деления | 1980 |
|
SU955038A1 |
Вычислительное устройство | 1988 |
|
SU1545215A1 |
Устройство для умножения двоичных чисел | 1973 |
|
SU482741A1 |
Устройство для умножения | 1990 |
|
SU1753471A1 |
Арифметическое устройство | 1984 |
|
SU1236473A1 |
Изобретение относится к техническим средствам информатики и вычислительной техники и может быть использовано для синтеза арифметико-логических устройств, для создания быстродействующих и высокопроизводительных цифровых устройств, выполняющих операцию умножения в прямых кодах. Техническим результатом является повышение быстродействия, надежности работы, упрощение алгоритма работы блока управления устройства. Указанный результат достигается за счет того, что умножитель содержит блок ввода данных, блок регистра множимого, блок регистра множителя, блок суммирования, блок дешифратора, блок хранения результата, блок управления. В умножителе происходит умножение двоичных чисел. Знак произведения определяется путем суммирования по модулю два знаков множимого и множителя. Операция умножения осуществляется путем анализа младших разрядов множителя, сдвига на два разряда множителя вправо, сдвига множимого влево. Произведение чисел получается как сумма частичных произведений. 11 ил.
Ускоренный умножитель на нейронах, содержащий блок ввода данных, блок суммирования, блок хранения результата, блок управления, отличающийся тем, что дополнительно введены блок регистра множимого, блок регистра множителя, блок дешифратора, причем управляющий выход блока ввода данных, предназначенный для формирования результата знакового разряда произведения, соединен с третьим управляющим входом блока управления, первый информационный выход которого, предназначенный для формирования сигнала сброса регистра в нулевое состояние, сигнала синхронизации, сигнала разрешения записи информации в регистр блока регистров множителя, соединен со вторым информационным входом блока регистра множителя, первый информационный вход которого, предназначенный для приема двоичных кодов чисел, соединен с информационным выходом блока ввода данных, информационный выход которого, предназначенный для ввода двоичных разрядов операндов, соединен с первым информационным входом блока регистра множимого, второй информационный вход которого, предназначенный для формирования сигнала сброса регистра в нулевое состояние, сигнала синхронизации, сигнала разрешения записи информации в регистр блока регистров множимого, соединен со вторым информационным выходом блока управления, со второго по шестой управляющие выходы которого, предназначенные для формирования режимов работы блока регистра множимого, соединены соответственно с первым по пятый управляющими входами блока регистра множимого, управляющий выход которого, предназначенный для формирования сигнала, равного нулевому значению двоичного кода множимого, соединен с девятым управляющим входом блока управления, первый управляющий выход которого, формирующий сигнал сдвига вправо двоичного кода множителя, соединен с управляющим входом блока регистра множителя, первый управляющий выход которого, предназначенный для формирования нулевого сигнала двоичных разрядов множителя, соединен с четвертым управляющим входом блока управления, с пятого по восьмой управляющие входы которого, предназначенные для дешифрации двух - предпоследнего и последнего разрядов множителя, соединены соответственно с первым по четвертый управляющими выходами блока дешифратора, первый и второй управляющие входы которого, предназначенные для анализа двух младших разрядов множителя, соединены соответственно со вторым и третьим управляющими выходами блока регистра множителя, информационный выход блока регистра множимого, предназначенный для передачи двоичных разрядов множимого, соединен с информационным входом блока суммирования, информационный выход которого, представляющий собой сумму частичных произведений, соединен с первым информационным входом блока хранения результата, второй информационный вход которого, представляющий собой нулевую двоичную информацию, соединен с третьим информационным выходом блока управления, с седьмого по четырнадцатый управляющие выходы которого, предназначенные для формирования сигнала обнуления строк, сигнала обнуления столбцов, сигнала генератора импульсов, тактового сигнала, сигнала выбора кристалла, сигнала чтения/записи, знакового разряда произведения, сигнала управления работой электронного ключа соответственно соединены соответственно с первым по восьмой управляющими входами блока хранения результата, первый и второй управляющие входы блока управления «СБРОС» и «ПУСК», предназначенные для формирования сигналов сброса в нулевое состояние элементов памяти и пуска работы устройства, являются внешними входами устройства.
УМНОЖИТЕЛЬ НА НЕЙРОНАХ | 2003 |
|
RU2249845C1 |
RU 94001646 A1, 20.03.1996 | |||
RU 93031693 A1, 10.12.1996 | |||
WO 9201266 A1, 23.01.1992. |
Авторы
Даты
2008-04-20—Публикация
2006-04-03—Подача