RU2681702C1 - Arithmetic-logic apparatus and a method for converting data using such device - Google Patents

Arithmetic-logic apparatus and a method for converting data using such device Download PDF

Info

Publication number
RU2681702C1
RU2681702C1 RU2018121749A RU2018121749A RU2681702C1 RU 2681702 C1 RU2681702 C1 RU 2681702C1 RU 2018121749 A RU2018121749 A RU 2018121749A RU 2018121749 A RU2018121749 A RU 2018121749A RU 2681702 C1 RU2681702 C1 RU 2681702C1
Authority
RU
Russia
Prior art keywords
input
output
operand
alu
logical
Prior art date
Application number
RU2018121749A
Other languages
Russian (ru)
Inventor
Сергей Георгиевич Елизаров
Денис Сергеевич Марков
Петр Николаевич Советов
Original Assignee
Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ filed Critical Российская Федерация, от имени которой выступает ФОНД ПЕРСПЕКТИВНЫХ ИССЛЕДОВАНИЙ
Priority to RU2018121749A priority Critical patent/RU2681702C1/en
Application granted granted Critical
Publication of RU2681702C1 publication Critical patent/RU2681702C1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

FIELD: computer equipment.
SUBSTANCE: invention relates to computer engineering. Device includes three data inputs, operation code input, data output, cyclic shift unit for 8, 16, 24 bits, inversion unit, mask masking unit '0×FF', ALU 1, performing operations of adding operands, subtracting operands, logical operations AND, OR, XOR, shifting by 1–7 bits of the first operand, transmission of one of the operands to the output, ALU 2 No. 1 and ALU 2 No. 2, performing operations of addition of operands, logical operations AND, OR, XOR, transfer of the first operand to output.
EFFECT: technical result consists in increase in the device performance in solving discrete mathematics problems.
2 cl, 1 dwg

Description

Область техникиTechnical field

Настоящее устройство относится к цифровым вычислительным устройствам, а именно к элементам вычислительных машин с запоминаемой программой.The present device relates to digital computing devices, namely, elements of computers with a memorized program.

Предшествующий уровень техникиState of the art

Наиболее близким устройством того же назначения к заявленному изобретению по совокупности признаков является, принятое за прототип, арифметико-логическое устройство высокопроизводительного криптографического процессора Cryptoraptor (Gokhan Sayilar, Derek Chiou. Cryptoraptor: High Throughput Reconfigurable Cryptographic Processor ISBN: 978-1-4799-6277-8), которое состоит из блока арифметики AU, блока логических операций LOU, блока вращения и сдвига SRU, блока опроса таблиц TLU и блока перемешивания PEU. Причем, блок арифметики AU имеет четыре входных порта для передачи данных шириной четыре байта, один выходной порт для передачи данных шириной один байт, сумматор Adder, вычитатель Subtracter, четыре блока для выполнения операции XOR, три мультиплексора, два модуля для сложения и вычитания по модулю 8 и 2 модуля для сложения и вычитания по модулю 16. Блок логических операций LOU имеет 6 входных портов для передачи данных, один выходной порт для передачи данных и восемь модулей логических преобразований CLB.The closest device of the same purpose to the claimed invention in terms of features is the arithmetic logic device of the high-performance cryptographic processor Cryptoraptor (Gokhan Sayilar, Derek Chiou. Cryptoraptor: High Throughput Reconfigurable Cryptographic Processor ISBN: 978-1-4799-6277- 8), which consists of the arithmetic unit AU, the logical operation unit LOU, the rotation and shift unit SRU, the polling unit of the TLU tables, and the mixing unit PEU. Moreover, the AU arithmetic unit has four input ports for transmitting data four bytes wide, one output port for transmitting data one byte wide, an Adder adder, a Subtracter subtracter, four blocks for performing the XOR operation, three multiplexers, two modules for adding and subtracting modulo 8 and 2 modules for addition and subtraction modulo 16. The LOU logical operation unit has 6 input ports for data transfer, one output port for data transfer and eight CLB logical conversion modules.

Арифметико-логическое устройство криптографического процессора Cryptoraptor имеет древовидную структуру и позволяет реализовать большую часть алгоритмов дискретной математики, причем стоит отметить, что блок арифметики AU позволяет реализовать за такт одну операцию сложения и одну операцию вычитания по модулю 8, 16 или 32 двух операндов. Отсутствие возможности провести суммирование более чем двух операндов за один такт в арифметико-логическом устройстве замедляет работу некоторых криптографических алгоритмов, например, MD5. Также, за счет широкого покрытия возможных операций арифметико-логическое устройство криптографического процессора Cryptoraptor содержит большое количество различных функциональных узлов, требующих большое количество аппаратных ресурсов для их реализации.The arithmetic-logic device of the Cryptoraptor cryptographic processor has a tree structure and allows you to implement most of the discrete mathematics algorithms, and it is worth noting that the AU arithmetic unit allows one addition and one subtraction operation modulo 8, 16 or 32 of two operands per cycle. The inability to sum more than two operands per cycle in an arithmetic logic device slows down the operation of some cryptographic algorithms, for example, MD5. Also, due to the wide coverage of possible operations, the arithmetic-logical device of the cryptographic processor Cryptoraptor contains a large number of different functional units that require a large amount of hardware resources for their implementation.

Причиной, препятствующей достижению технического результата, является структура блока арифметики AU, позволяющая реализовать за один такт работы сложение только двух операндов, а также большое количество функциональных узлов данного арифметико-логического устройств и их архитектурная сложность.The reason that impedes the achievement of the technical result is the structure of the AU arithmetic unit, which allows the addition of only two operands, as well as the large number of functional units of this arithmetic-logical device and their architectural complexity, in one clock cycle.

Задача изобретенияObject of the invention

Задача, на решение которой направлено предлагаемое техническое решение, заключается в создании высокопроизводительного арифметико-логического устройства для решения задач дискретной математики, требующего малое количество аппаратных ресурсов для ее реализации.The problem to which the proposed technical solution is directed is to create a high-performance arithmetic-logic device for solving discrete mathematics problems, requiring a small amount of hardware resources for its implementation.

Техническим результатом изобретения является увеличение производительности устройства при решении задач дискретной математики и уменьшение количества аппаратных ресурсов, требующихся для его реализации.The technical result of the invention is to increase the productivity of the device in solving discrete mathematics problems and reduce the amount of hardware resources required for its implementation.

Сущность изобретенияSUMMARY OF THE INVENTION

Поставленная задача решается, а заявленный технический результат достигается за счет того, что арифметико-логическое устройство (АЛУ) для решения задач дискретной математики, содержит:The problem is solved, and the claimed technical result is achieved due to the fact that the arithmetic logic device (ALU) for solving discrete mathematics problems contains:

- три внешние группы входа данных,- three external data entry groups,

- внешнюю группу входа кода операций и внешнюю группу выхода данных,- an external input code group of operations and an external data output group,

- блок циклического сдвига, вход данных которого соединен с входом данных №1, вход команды блока циклического сдвига соединен с входом кода операций, а выход данных со вторым входом блока инверсии, содержащий мультиплексор MX 1, входы данных которого соединены с входом данных №1, причем на второй вход мультиплексора подан операнд с входа данных №1 циклически сдвинутый на 8 бит вправо, на третий вход операнд с входа данных №1 циклически сдвинутый на 16 бит вправо, а на четвертый вход операнд с входа данных №1, циклически сдвинутый на 24 бита вправо, причем первый, управляющий, вход мультиплексора MX 1 соединен с входом команды блока циклического сдвига, а выход с выходом блока циклического сдвига,- a cyclic shift unit, the data input of which is connected to the data input No. 1, the command input of the cyclic shift unit is connected to the input of the operation code, and the data output with the second input of the inversion unit, containing the MX 1 multiplexer, the data inputs of which are connected to the data input No. 1, moreover, the operand from the data input No. 1 is cyclically shifted 8 bits to the right to the second input of the multiplexer, the operand from the data input No. 1 is cyclically shifted 16 bits to the third input, and the operand from the data input No. 1 cyclically shifted by 24 to the fourth input bat right Wherein the first, control, input 1 of the multiplexer MX is coupled to the input of commands cyclic shift unit and the output from the cyclic shift unit output,

- блок инверсии, первый вход которого соединен с входом кода операций, а выход со вторым входом данных блока маски, содержащий модуль сложения по модулю 2, первый вход которого соединен с первым входом блока инверсии, второй вход со вторым входом блока инверсии, а выход - с выходом блока инверсии,- an inversion unit, the first input of which is connected to the input of the operation code, and the output with the second data input of the mask unit, containing an addition module modulo 2, the first input of which is connected to the first input of the inversion unit, the second input with the second input of the inversion unit, and the output is with the output of the inversion block,

- блок маски, первый вход которого соединен с входом кода операций, а выход с входом А АЛУ 1 и с входом А АЛУ 2 №2, состоящий из элемента логического И, первый вход которого соединен с первым входом блока маски, второй вход со вторым входом блока маски, а выход - с выходом блока маски,- a mask unit, the first input of which is connected to the input of the operation code, and the output with input A ALU 1 and input A ALU 2 No. 2, consisting of a logical AND element, the first input of which is connected to the first input of the mask unit, the second input with the second input mask block, and the output is with the output of the mask block,

- АЛУ 1, вход Б которого соединен с входом данных №2, вход К с входом кода операций, а выход с входом А АЛУ 2 №1, которое содержит модуль сложения по модулю два, первый вход которого соединен с входом К, второй вход с входом Б, а выход со вторым входом сумматора ADD, сумматор ADD, первый вход которого соединен с входом А, а выход - с первым входом мультиплексора MX 2, модуль сложения по модулю два, первый вход которого соединен с входом А, второй вход соединен с входом Б, а выход - со вторым входом мультиплексора MX 2, модуль логического ИЛИ, первый вход которого соединен с входом А, второй вход соединен с входом Б, а выход с третьим входом мультиплексора MX 2, модуль логического И, первый вход которого соединен с входом А, второй вход соединен с входом Б, а выход с четвертым входом мультиплексора MX 2, мультиплексор MX 2, пятый, шестой, седьмой, восьмой, девятый, десятый, одиннадцатый входной порт которого соединен с входом А, причем на входы мультиплексора подается операнд с входа А циклически сдвинутый вправо на 1, 2, 3, 4, 5, 6, 7 бит соответственно, двенадцатый вход соединен с входом А, тринадцатый вход с входом Б, управляющий вход с входом К, а выход - с выходом АЛУ 1,- ALU 1, whose input B is connected to data input No. 2, input K to the operation code input, and output to input A ALU 2 No. 1, which contains an addition module modulo two, the first input of which is connected to input K, the second input to input B, and the output with the second input of the adder ADD, the adder ADD, the first input of which is connected to input A, and the output - with the first input of the multiplexer MX 2, the module is two modulo addition, the first input of which is connected to input A, the second input is connected to input B, and the output with the second input of the MX 2 multiplexer, a logical OR module, the first input of which connected to input A, the second input is connected to input B, and the output is to the third input of the MX 2 multiplexer, the logical module is AND, the first input of which is connected to input A, the second input is connected to input B, and the output to the fourth input of multiplexer MX 2, MX 2 multiplexer, fifth, sixth, seventh, eighth, ninth, tenth, eleventh input port of which is connected to input A, and the operand from input A is supplied with an operand from input A cyclically shifted to the right by 1, 2, 3, 4, 5, 6, 7 bits respectively, the twelfth input is connected to input A, the thirteenth input to input ohm B, the control input with input K, and the output with the output of ALU 1,

- АЛУ 2 №1, вход Б которого соединен с выходом АЛУ 2 №2, вход К с входом кода операций, а выход с выходом данных, которое содержит сумматор ADD, первый вход которого соединен с входом А, второй вход с входом Б, а выход с первым входом мультиплексора MX 3, модуль сложения по модулю два, первый вход которого соединен с входом А, второй вход с входом Б, а выход со вторым входом мультиплексора MX 3, модуль логического ИЛИ, первый вход которого соединен с входом А, второй вход с входом Б, а выход с третьим входом мультиплексора MX 3, модуль логического И, первый вход которого соединен с входом А, второй вход с входом Б, а выход с четвертым входом мультиплексора MX 3, мультиплексор MX 3, пятый вход которого соединен с входом А, управляющий вход с входом К, а выход с выходом АЛУ 2 №2,- ALU 2 No. 1, input B of which is connected to the output of ALU 2 No. 2, input K with the input of the operation code, and output with data output, which contains the adder ADD, the first input of which is connected to input A, the second input with input B, and the output with the first input of the MX 3 multiplexer, an addition module modulo two, the first input of which is connected to input A, the second input with input B, and the output with the second input of the MX 3 multiplexer, logical OR module, the first input of which is connected to input A, the second input with input B, and output with the third input of the MX 3 multiplexer, logical AND module, first input One of which is connected to input A, the second input with input B, and the output with the fourth input of the MX 3 multiplexer, MX 3 multiplexer, the fifth input of which is connected to input A, the control input with input K, and the output with ALU 2 output No. 2,

- АЛУ 2 №2, внутренняя структура которого совпадает с внутренней структурой АЛУ 2 №1, а вход Б которого соединен с входом данных №3 и вход К которого соединен с входом кода операций, внутренняя структура которого совпадает со структурой АЛУ 2 №1.- ALU 2 No. 2, the internal structure of which coincides with the internal structure of ALU 2 No. 1, and the input B of which is connected to the data input No. 3 and the input of which is connected to the input of the operation code, the internal structure of which coincides with the structure of ALU 2 No. 1.

Поставленная задача решается, а заявленный технический результат достигается также за счет того, что способ обработки с использованием описанного арифметико-логического устройства для решения задач дискретной математики включает следующие этапы, на которых:The problem is solved, and the claimed technical result is also achieved due to the fact that the processing method using the described arithmetic-logic device for solving discrete mathematics includes the following steps, in which:

- на входы данных описанного устройства подают операнды, а на вход поля команд подают требуемую команду,- operands are fed to the data inputs of the described device, and the required command is fed to the input of the command field,

- соответствующие разряды команды подают на мультиплексоры и элементы сложения по модулю два в блоках описанного устройства,- the corresponding bits of the command are fed to the multiplexers and addition elements modulo two in the blocks of the described device,

- блоки описанного арифметико-логического устройства выполняют требуемый набор арифметико-логических операций над операндами, в соответствии с кодом поданной команды.- blocks of the described arithmetic-logical device perform the required set of arithmetic-logical operations on operands, in accordance with the code of the command.

Также заявленный способ может характеризоваться тем, что набор выполняемых команд связан с набором арифметико-логических операций следующим образом:Also, the claimed method can be characterized in that the set of executed commands is associated with a set of arithmetic-logical operations as follows:

- если два младших бита требуемой команды равны '00', '01', '10', '11', блок циклического сдвига будет выполнять операцию циклического сдвига вправо операнда с входа данных №1 на 0, 8, 16, 24 бита соответственно;- if the two least significant bits of the required instruction are equal to '00', '01', '10', '11', the cyclic shift unit will perform the operation of cyclic right shift of the operand from data input No. 1 to 0, 8, 16, 24 bits, respectively;

- если третий бит требуемой команды равен '1', блок инверсии будет выполнять операцию логической инверсии операнда с выхода блока вращения, в противном случае, операнд изменяться не будет;- if the third bit of the required instruction is '1', the inversion unit will perform the operation of logical inversion of the operand from the output of the rotation unit, otherwise, the operand will not change;

- если биты требуемой команды от четвертого до тридцать пятого включительно принимают значения от '0×00000000' до '0×FFFFFFF', блок маски выполнит операцию маскирования операнда с значением в соответствующих битах команды, если бит команды равен '0', то соответствующий ему бит операнда на выходе блока маски будет равен '0', а если бит команды равен '1', то бит операнда будет равен значению соответствующего бита операнда на входе блока маски;- if the bits of the desired command from the fourth to thirty-fifth inclusive take values from '0 × 00000000' to '0 × FFFFFFF', the mask block will perform the operation of masking the operand with the value in the corresponding bits of the command, if the command bit is '0', then the corresponding the operand bit at the output of the mask block will be '0', and if the command bit is '1', then the operand bit will be equal to the value of the corresponding operand bit at the input of the mask block;

- если биты требуемой команды от тридцать шестого до тридцать девятого включительно принимают значения от '0000' до '1110', то соответственно АЛУ 1 будет выполнять операции - передача операнда А, передача операнда Б, логический сдвиг на 1-7 бит операнда А, операция сложения операндов по модулю 2, логическая операция ИЛИ над операндами, логическая операция И над операндами, вычитание из операнда А операнда Б, сложение операндов;- if the bits of the required command from the thirty-sixth to the thirty-ninth inclusive take values from '0000' to '1110', then accordingly ALU 1 will perform the operations - transfer of operand A, transfer of operand B, logical shift by 1-7 bits of operand A, operation addition of operands modulo 2, logical OR operation on operands, logical AND operation on operands, subtracting operand B from operand A, adding operands;

- если биты требуемой команды от сорокового до сорок второго включительно принимают значение от '000' до '101', соответственно малый АЛУ 2 №1 будет выполнять операции - передача операнда А на выход, операция сложения операндов по модулю два, логическая операция ИЛИ над операндами, логическая операция И над операндами, сложение операндов.- if the bits of the required command from the fortieth to forty-second inclusive take a value from '000' to '101', respectively, the small ALU 2 No. 1 will perform operations - transfer operand A to the output, the operation of adding operands modulo two, a logical OR operation on operands , logical operation AND on operands, addition of operands.

Сущность изобретения заключается в том, что арифметико-логическое устройство включает в себя три входа данных, вход кода операций, выход данных, блок циклического сдвига на 8,16, 24 бита, блок инверсии, блок наложения маски '0×FF', АЛУ 1, выполняющий операции сложения операндов, вычитания операндов, логические операции AND, OR, XOR, сдвиг на 1-7 битов первого операнда, передача одного из операндов на выход, АЛУ 2 №1 и АЛУ 2 №2, выполняющие операции сложения операндов, логические операции AND, OR, XOR, передача первого операнда на выход.The essence of the invention lies in the fact that the arithmetic logic device includes three data inputs, an operation code input, a data output, a 8.16, 24-bit cyclic shift block, an inversion block, a mask overlay block '0 × FF', ALU 1 performing operations of addition of operands, subtraction of operands, logical operations AND, OR, XOR, shift of 1-7 bits of the first operand, transfer of one of the operands to the output, ALU 2 No. 1 and ALU 2 No. 2, performing operations of addition of operands, logical operations AND, OR, XOR, passing the first operand to the output.

Способа преобразования данных с использованием такого устройства содержит этапы подачи команды и данных на входы устройства, передачи соответствующих разрядов команды на каждый из блоков устройства и выполнения блоками устройства соответствующей операции над операндами.A method of converting data using such a device comprises the steps of submitting a command and data to the inputs of the device, transmitting the corresponding bits of the command to each of the blocks of the device, and performing the corresponding blocks on the operands by the blocks of the device.

Краткое описание чертежейBrief Description of the Drawings

Устройство поясняется фиг. 1, на которой представлена структурная схема арифметико-логического устройства.The device is illustrated in FIG. 1, which shows a block diagram of an arithmetic logic device.

На фиг. 1 приняты следующие обозначения:In FIG. 1 adopted the following notation:

Figure 00000001
- элемент логического И,
Figure 00000001
- an element of logical AND,

Figure 00000002
- модуль сложения по модулю 2,
Figure 00000002
- addition module modulo 2,

Figure 00000003
- модуль логического ИЛИ,
Figure 00000003
- logical OR module,

ADD - сумматор,ADD - adder,

>>N - циклический сдвиг на N бит вправо,>> N is a cyclic shift of N bits to the right,

MX 1, 2, 3 - мультиплексоры,MX 1, 2, 3 - multiplexers,

Арифметико-логическое устройство состоит из блока циклического сдвига, состоящего из мультиплексора MX 1, блока инверсии, состоящего из модуля сложения по модулю два, блока маски, состоящего из модуля логического И, АЛУ 1, состоящего из модуля сложения по модулю 2, сумматора ADD, модуля сложения по модулю 2 операндов, модуля логического ИЛИ, модуля логического И и мультиплексора MX 2, АЛУ 2 №1 и АЛУ 2 №2, состоящих из сумматора ADD, модуля сложения по модулю два операндов, модуля логического ИЛИ, модуля логического И и мультиплексора MX 3.The arithmetic logic device consists of a cyclic shift unit, consisting of an MX 1 multiplexer, an inversion unit, consisting of an addition module modulo two, a mask unit, consisting of a logical AND module, ALU 1, consisting of an addition module modulo 2, an adder ADD, an addition module modulo 2 operands, a logical OR module, a logical AND module and an MX 2 multiplexer, ALU 2 No. 1 and ALU 2 No. 2, consisting of an ADD adder, an addition module modulo two operands, a logical OR module, a logical AND module, and a multiplexer MX 3.

Подробное описание сущности изобретенияDetailed Description of the Invention

Арифметико-логическое устройство работает следующим образом. Первый, второй и третий операнды подаются на соответствующие входы данных. При этом на вход кода операции подается команда, задающая операции над операндами, которые должны быть выполнены блоками арифметико-логического устройства. Соответствующие разряды команды подаются на управляющие входы мультиплексоров и на вход некоторых модулей логических преобразований.Arithmetic logic device operates as follows. The first, second and third operands are fed to the corresponding data inputs. At the same time, a command is given to the input of the operation code that defines operations on operands that must be performed by units of the arithmetic-logical device. Corresponding bits of the command are fed to the control inputs of the multiplexers and to the input of some modules of logical transformations.

Если два младших бита команды равны '00', '01', '10', '11', блок циклического сдвига будет выполнять операцию циклического сдвига вправо операнда с входа данных №1 на 0, 8, 16, 24 бита соответственно.If the two least significant bits of the instruction are equal to '00', '01', '10', '11', the cyclic shift unit will perform the operation of cyclic right shift of the operand from data input No. 1 to 0, 8, 16, 24 bits, respectively.

Если третий бит команды равен '1', блок инверсии будет выполнять операцию логической инверсии операнда с выхода блока вращения, в противном случае, операнд изменяться не будет.If the third bit of the instruction is '1', the inversion block will perform the operation of logical inversion of the operand from the output of the rotation block, otherwise, the operand will not change.

Если биты команды от четвертого до тридцать пятого включительно принимают значения от '0×00000000' до '0×FFFFFFF', блок маски выполнит операцию маскирования операнда с значением в соответствующих битах команды, если бит команды равен '0', то соответствующий ему бит операнда на выходе блока маски будет равен '0', а если бит команды равен '1', то бит операнда будет равен значению соответствующего бита операнда на входе блока маски.If the command bits from the fourth to thirty-fifth inclusive take values from '0 × 00000000' to '0 × FFFFFFF', the mask block will perform the operation of masking the operand with the value in the corresponding bits of the command, if the command bit is '0', then the corresponding operand bit at the output of the mask block will be equal to '0', and if the bit of the command is equal to '1', then the operand bit will be equal to the value of the corresponding bit of the operand at the input of the mask block.

Если биты команды от тридцать шестого до тридцать девятого включительно принимают значения от '0000' до '1110', то соответственно АЛУ 1 будет выполнять операции - передача операнда А, передача операнда Б, логический сдвиг на 1-7 бит операнда А, операция сложения операндов по модулю 2, логическая операция ИЛИ над операндами, логическая операция И над операндами, вычитание из операнда А операнда Б, сложение операндов.If the instruction bits from the thirty-sixth to the thirty-ninth inclusive take values from '0000' to '1110', then accordingly ALU 1 will perform operations - transfer of operand A, transfer of operand B, logical shift by 1-7 bits of operand A, operation of addition of operands modulo 2, logical OR operation on operands, logical AND operation on operands, subtracting operand B from operand A, adding operands.

Если биты команды от сорокового до сорок второго включительно принимают значение от '000' до '101', соответственно малый АЛУ 2 №1 будет выполнять операции - передача операнда А на выход, операция сложения операндов по модулю два, логическая операция ИЛИ над операндами, логическая операция И над операндами, сложение операндов.If the bits of the command from the fortieth to forty-second inclusive take a value from '000' to '101', respectively, the small ALU 2 No. 1 will perform operations - transfer operand A to the output, the operation of adding operands modulo two, a logical OR operation on the operands, logical And operation on operands, addition of operands.

Примеры осуществления изобретенияExamples of carrying out the invention

Предлагаемое арифметико-логическое устройство для решения задач дискретной математики может быть реализовано на базе ПЛИС Xilinx XC7V585 вычислительного устройства из 512-ти процессорных элементов. Ширина шины данных входов и выходов устройства составляет 4 байта, а частота работы тактового сигнала работы арифметико-логического устройства составляет 250 МГц.The proposed arithmetic logic device for solving discrete mathematics problems can be implemented on the basis of the FPGA Xilinx XC7V585 computing device of 512 processor elements. The width of the data bus of the inputs and outputs of the device is 4 bytes, and the frequency of the clock signal of the arithmetic logic device is 250 MHz.

Для оценки количества занимаемых ресурсов необходимых для реализации арифметико-логического устройства на СБИС была проведена оценка с использованием библиотечных элементов 28 нм технологического процесса в САПР Cadence RTL Compiler системы из 512-ти процессорных элементов. Одно арифметико-логическое устройство в данном устройстве занимает около 1250 кв. мкм, что в более чем 20 раз меньше, чем суммарная площадь блоков AU, LOU, SRU арифметико-логического устройства в рассмотренном прототипе около 28000 кв. мкм (Table III).To estimate the amount of resources required for the implementation of the arithmetic-logical device on the VLSI, an assessment was carried out using library elements of 28 nm technological process in CAD Cadence RTL Compiler systems of 512 processor elements. One arithmetic-logic device in this device occupies about 1250 square meters. microns, which is more than 20 times less than the total area of the blocks AU, LOU, SRU arithmetic logic device in the considered prototype of about 28,000 square meters. μm (Table III).

Одной из задач дискретной математики является алгоритм вычисления криптографической хэш-функции MD5. Графическая схема, в которой показаны этапы расчета одного раунда MD5 в прототипе представлена на Figure 7.17 диссертации (Gokhan Sayilar, Cryptoraptor: High Throughput Reconfigurable Cryptographic Processor for Symmetric Key Encryption and Cryptographic Hash Functions. PhD dissertation. The University of Texas. Austin. 2014). Из раздела 7.3.2 данной диссертации следует, что реализация одного раунда MD5 на двух процессорных элементах требует 4 такта, причем второй процессорный элемент используется для суммирования операндов A, Mi, Ki и позволяет сократить требуемое для реализации количество тактов на один. Таким образом, выполнение одного раунда MD5 на одном арифметико-логическом устройстве криптографического процессора Cryptoraptor (прототип) занимает 5 тактов.One of the tasks of discrete mathematics is the MD5 cryptographic hash function calculation algorithm. A graphic diagram showing the steps involved in calculating one round of MD5 in a prototype is presented in Figure 7.17 of the dissertation (Gokhan Sayilar, Cryptoraptor: High Throughput Reconfigurable Cryptographic Processor for Symmetric Key Encryption and Cryptographic Hash Functions. PhD dissertation. The University of Texas. Austin. 2014) . It follows from section 7.3.2 of this dissertation that the implementation of one MD5 round on two processor elements requires 4 clock cycles, and the second processor element is used to sum the operands A, Mi, Ki and can reduce the number of clock cycles required for implementation by one. Thus, the execution of one round of MD5 on one arithmetic-logical device of the cryptographic processor Cryptoraptor (prototype) takes 5 clock cycles.

Реализация раунда MD5 в предлагаемом устройстве занимает 4 такта, причем выигрыш в производительности обусловлен наличием в малом арифметико-логическом блоке №2 сумматора, что позволяет выполнять суммирование трех операндов A, Mi и Ki за один такт.The implementation of the MD5 round in the proposed device takes 4 cycles, and the performance gain is due to the presence of an adder in the small arithmetic-logic unit No. 2, which allows the summation of three operands A, Mi and Ki in one cycle.

Таким образом, в предлагаемом арифметико-логическом устройстве, в сравнении с прототипом - арифметико-логическим устройством криптографического процессора Cryptoraptor, при работе на одной тактовой частоте, достигается повышение производительности на задачах дискретной математики, в которых возможно ускорение работы за счет реализации суммирования трех операндов. Повышение производительности в предлагаемом арифметико-логическом устройстве достигается за счет наличия второго модуля сумматора в малом арифметико-логическом блоке №2.Thus, in the proposed arithmetic-logical device, in comparison with the prototype - the arithmetic-logical device of the Cryptoraptor cryptographic processor, when working at the same clock frequency, productivity is improved on discrete mathematics tasks in which it is possible to speed up the work by implementing the summation of three operands. The increase in performance in the proposed arithmetic-logical device is achieved due to the presence of the second adder module in the small arithmetic-logical unit No. 2.

Вышеизложенные сведения позволяют сделать вывод о том, что предлагаемое арифметико-логическое устройство и способ преобразования решают поставленную задачу - создание высокопроизводительного арифметико-логического устройства для решения задач дискретной математики, требующего малое количество аппаратных ресурсов для его реализации, и соответствует заявляемому техническому результату - повышению производительности устройства при решении задач дискретной математики и уменьшению количества аппаратных ресурсов, требующихся для его реализации.The above information allows us to conclude that the proposed arithmetic-logical device and the conversion method solve the problem - the creation of a high-performance arithmetic-logical device for solving discrete mathematics tasks that require a small amount of hardware resources for its implementation, and corresponds to the claimed technical result - increased productivity devices for solving discrete mathematics problems and reducing the amount of hardware resources required for it implementation.

Claims (16)

1. Арифметико-логическое устройство для решения задач дискретной математики, содержащее:1. Arithmetic-logical device for solving problems of discrete mathematics, containing: - три внешние группы входа данных;- three external data entry groups; - внешнюю группу входа кода операций и внешнюю группу выхода данных;- an external group of entry of the operation code and an external group of data output; - блок циклического сдвига, вход данных которого соединен с входом данных №1, вход команды блока циклического сдвига соединен с входом кода операций, а выход данных со вторым входом блока инверсии, содержащий мультиплексор MX 1, входы данных которого соединены с входом данных №1, причем на второй вход мультиплексора подан операнд с входа данных №1, циклически сдвинутый на 8 бит вправо, на третий вход - операнд с входа данных №1, циклически сдвинутый на 16 бит вправо, а на четвертый вход - операнд с входа данных №1, циклически сдвинутый на 24 бита вправо, причем первый, управляющий, вход мультиплексора MX 1 соединен с входом команды блока циклического сдвига, а выход - с выходом блока циклического сдвига;- a cyclic shift unit, the data input of which is connected to the data input No. 1, the command input of the cyclic shift unit is connected to the input of the operation code, and the data output with the second input of the inversion unit, containing the MX 1 multiplexer, the data inputs of which are connected to the data input No. 1, moreover, the operand from data input No. 1 cyclically shifted 8 bits to the right is fed to the second input of the multiplexer, the operand from data input No. 1 cyclically shifted 16 bits to the right to the third input, and the operand from data input No. 1 to the fourth input, 24-bit cyclically shifted ABO, wherein the first, control, MX 1 multiplexer input connected to the input circular shift command unit and output - with a yield of cyclic shift unit; - блок инверсии, первый вход которого соединен с входом кода операций, а выход со вторым входом данных блока маски, содержащий модуль сложения по модулю 2, первый вход которого соединен с первым входом блока инверсии, второй вход - со вторым входом блока инверсии, а выход - с выходом блока инверсии;- an inversion unit, the first input of which is connected to the input of the operation code, and the output with the second data input of the mask unit, containing an addition module modulo 2, the first input of which is connected to the first input of the inversion unit, the second input - with the second input of the inversion unit, and the output - with the output of the inversion block; - блок маски, первый вход которого соединен с входом кода операций, а выход - с входом А АЛУ 1 и с входом А АЛУ 2 №2, состоящий из элемента логического И, первый вход которого соединен с первым входом блока маски, второй вход - со вторым входом блока маски, а выход - с выходом блока маски;- a mask block, the first input of which is connected to the input of the operation code, and the output - with the input A ALU 1 and with the input A ALU 2 No. 2, consisting of a logical AND element, the first input of which is connected to the first input of the mask block, the second input - with the second input of the mask block, and the output with the output of the mask block; - АЛУ 1, вход Б которого соединен с входом данных №2, вход К с входом кода операций, а выход с входом А АЛУ 2 №1, которое содержит модуль сложения по модулю два, первый вход которого соединен с входом К, второй вход с входом Б, а выход со вторым входом сумматора ADD, сумматор ADD, первый вход которого соединен с входом А, а выход - с первым входом мультиплексора MX 2, модуль сложения по модулю два, первый вход которого соединен с входом А, второй вход соединен с входом Б, а выход - со вторым входом мультиплексора MX 2, модуль логического ИЛИ, первый вход которого соединен с входом А, второй вход соединен с входом Б, а выход с третьим входом мультиплексора MX 2, модуль логического И, первый вход которого соединен с входом А, второй вход соединен с входом Б, а выход с четвертым входом мультиплексора MX 2, мультиплексор MX 2, пятый, шестой, седьмой, восьмой, девятый, десятый, одиннадцатый входной порт которого соединен с входом А, причем на входы мультиплексора подается операнд с входа А, циклически сдвинутый вправо на 1, 2, 3, 4, 5, 6, 7 бит соответственно, двенадцатый вход соединен с входом А, тринадцатый вход с входом Б, управляющий вход с входом К, а выход - с выходом АЛУ 1;- ALU 1, whose input B is connected to data input No. 2, input K to the operation code input, and output to input A ALU 2 No. 1, which contains an addition module modulo two, the first input of which is connected to input K, the second input to input B, and the output with the second input of the adder ADD, the adder ADD, the first input of which is connected to input A, and the output - with the first input of the multiplexer MX 2, the module is two modulo addition, the first input of which is connected to input A, the second input is connected to input B, and the output with the second input of the MX 2 multiplexer, a logical OR module, the first input of which connected to input A, the second input is connected to input B, and the output is to the third input of the MX 2 multiplexer, the logical module is AND, the first input of which is connected to input A, the second input is connected to input B, and the output to the fourth input of multiplexer MX 2, MX 2 multiplexer, fifth, sixth, seventh, eighth, ninth, tenth, eleventh input port which is connected to input A, and the operand from input A is fed to the multiplexer inputs, cyclically shifted to the right by 1, 2, 3, 4, 5, 6 , 7 bits respectively, twelfth input connected to input A, thirteenth input with input ohm B, the control input to the input R, and output - with output of the ALU 1; - АЛУ 2 №1, вход Б которого соединен с выходом второго АЛУ 2 №2, вход К с входом кода операций, а выход с выходом данных, которое содержит сумматор ADD, первый вход которого соединен с входом А, второй вход с входом Б, а выход с первым входом мультиплексора MX 3, модуль сложения по модулю два, первый вход которого соединен с входом А, второй вход с входом Б, а выход со вторым входом мультиплексора MX 3, модуль логического ИЛИ, первый вход которого соединен с входом А, второй вход с входом Б, а выход с третьим входом мультиплексора MX 3, модуль логического И, первый вход которого соединен с входом А, второй вход с входом Б, а выход с четвертым входом мультиплексора MX 3, мультиплексор MX 3, пятый вход которого соединен с входом А, управляющий вход с входом К, а выход с выходом АЛУ 2 №2;- ALU 2 No. 1, input B of which is connected to the output of the second ALU 2 No. 2, input K with the input of the operation code, and output with data output, which contains the adder ADD, the first input of which is connected to input A, the second input with input B, and the output with the first input of the MX 3 multiplexer, the modulus of addition two, the first input of which is connected to input A, the second input with input B, and the output with the second input of the MX 3 multiplexer, logical OR module, the first input of which is connected to input A, the second input with input B, and the output with the third input of the MX 3 multiplexer, logical AND module, p the first input of which is connected to input A, the second input with input B, and the output with the fourth input of the MX 3 multiplexer, MX 3 multiplexer, the fifth input of which is connected to input A, the control input with input K, and the output with the output of ALU 2 No. 2; - АЛУ 2 №2, внутренняя структура которого совпадает с внутренней структурой АЛУ 2 №1, а вход Б которого соединен с входом данных №3 и вход К которого соединен с входом кода операций, внутренняя структура которого совпадает со структурой АЛУ 2 №1.- ALU 2 No. 2, the internal structure of which coincides with the internal structure of ALU 2 No. 1, and the input B of which is connected to the data input No. 3 and the input of which is connected to the input of the operation code, the internal structure of which coincides with the structure of ALU 2 No. 1. 2. Способ обработки с использованием арифметико-логического устройства по п. 1 для решения задач дискретной математики, включающий следующие этапы, на которых:2. A processing method using an arithmetic logic device according to claim 1 for solving discrete mathematics problems, comprising the following steps, in which: - на входы данных устройства по п. 1 подают операнды, а на вход поля команд подают требуемую команду;- operands are fed to the device data inputs according to claim 1, and the required command is supplied to the input of the command field; - если два младших бита требуемой команды равны '00', '01', '10', '11', блок циклического сдвига будет выполнять операцию циклического сдвига вправо операнда с входа данных №1 на 0, 8, 16, 24 бита соответственно;- if the two least significant bits of the required instruction are equal to '00', '01', '10', '11', the cyclic shift unit will perform the operation of cyclic right shift of the operand from data input No. 1 to 0, 8, 16, 24 bits, respectively; - если третий бит требуемой команды равен '1', блок инверсии будет выполнять операцию логической инверсии операнда с выхода блока вращения, в противном случае, операнд изменяться не будет;- if the third bit of the required instruction is '1', the inversion unit will perform the operation of logical inversion of the operand from the output of the rotation unit, otherwise, the operand will not change; - если биты требуемой команды от четвертого до тридцать пятого включительно принимают значения от '0x00000000' до '0xFFFFFFF', блок маски выполнит операцию маскирования операнда со значением в соответствующих битах команды, если бит команды равен '0', то соответствующий ему бит операнда на выходе блока маски будет равен '0', а если бит команды равен '1', то бит операнда будет равен значению соответствующего бита операнда на входе блока маски;- if the bits of the required command from the fourth to thirty-fifth inclusive take values from '0x00000000' to '0xFFFFFFF', the mask block will perform the operation of masking the operand with the value in the corresponding bits of the command, if the command bit is '0', then the corresponding operand bit at the output the mask block will be equal to '0', and if the command bit is equal to '1', then the operand bit will be equal to the value of the corresponding operand bit at the input of the mask block; - если биты требуемой команды от тридцать шестого до тридцать девятого включительно принимают значения от '0000' до '1110', то соответственно АЛУ 1 будет выполнять операции - передача операнда А, передача операнда Б, логический сдвиг на 1-7 бит операнда А, операция сложения операндов по модулю 2, логическая операция ИЛИ над операндами, логическая операция И над операндами, вычитание из операнда А операнда Б, сложение операндов;- if the bits of the required command from the thirty-sixth to the thirty-ninth inclusive take values from '0000' to '1110', then accordingly ALU 1 will perform the operations - transfer of operand A, transfer of operand B, logical shift by 1-7 bits of operand A, operation addition of operands modulo 2, logical OR operation on operands, logical AND operation on operands, subtracting operand B from operand A, adding operands; - если биты требуемой команды от сорокового до сорок второго включительно принимают значение от '000' до '101', соответственно малый АЛУ 2 №1 будет выполнять операции - передача операнда А на выход, операция сложения операндов по модулю два, логическая операция ИЛИ над операндами, логическая операция И над операндами, сложение операндов.- if the bits of the required command from the fortieth to forty-second inclusive take a value from '000' to '101', respectively, the small ALU 2 No. 1 will perform operations - transfer operand A to the output, the operation of adding operands modulo two, a logical OR operation on operands , logical operation AND on operands, addition of operands.
RU2018121749A 2018-06-14 2018-06-14 Arithmetic-logic apparatus and a method for converting data using such device RU2681702C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2018121749A RU2681702C1 (en) 2018-06-14 2018-06-14 Arithmetic-logic apparatus and a method for converting data using such device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2018121749A RU2681702C1 (en) 2018-06-14 2018-06-14 Arithmetic-logic apparatus and a method for converting data using such device

Publications (1)

Publication Number Publication Date
RU2681702C1 true RU2681702C1 (en) 2019-03-12

Family

ID=65806079

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2018121749A RU2681702C1 (en) 2018-06-14 2018-06-14 Arithmetic-logic apparatus and a method for converting data using such device

Country Status (1)

Country Link
RU (1) RU2681702C1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU203294U1 (en) * 2020-08-04 2021-03-30 Федеральное государственное автономное учреждение "Военный инновационный технополис "ЭРА" BIT STREAM PROCESSING DEVICE IN COMPRESSION / RECOVERY SYSTEMS OF DIGITAL INFORMATION

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU868768A1 (en) * 1979-03-21 1981-09-30 Рижский Ордена Трудового Красного Знамени Политехнический Институт System for solving mathematical physics problems
RU148925U1 (en) * 2014-03-20 2014-12-20 Федеральное государственное бюджетное учреждение науки Институт проблем проектирования в микроэлектронике Российской академии наук (ИППМ РАН) COMPUTING ELEMENT OF BIMODULAR MODULAR ARITHMETICS
CN105335128A (en) * 2015-10-29 2016-02-17 中国人民解放军国防科学技术大学 64-bit fixed-point ALU (arithmetic logical unit) circuit based on three-stage carry lookahead adder in GPDSP
WO2016199157A1 (en) * 2015-06-11 2016-12-15 Ingole Vijay Tulshiram Ternary arithmetic and logic unit (alu) and ternary logic circuits
RU2639645C1 (en) * 2017-02-21 2017-12-21 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Arithmetic-logical device for summing numbers by module

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SU868768A1 (en) * 1979-03-21 1981-09-30 Рижский Ордена Трудового Красного Знамени Политехнический Институт System for solving mathematical physics problems
RU148925U1 (en) * 2014-03-20 2014-12-20 Федеральное государственное бюджетное учреждение науки Институт проблем проектирования в микроэлектронике Российской академии наук (ИППМ РАН) COMPUTING ELEMENT OF BIMODULAR MODULAR ARITHMETICS
WO2016199157A1 (en) * 2015-06-11 2016-12-15 Ingole Vijay Tulshiram Ternary arithmetic and logic unit (alu) and ternary logic circuits
CN105335128A (en) * 2015-10-29 2016-02-17 中国人民解放军国防科学技术大学 64-bit fixed-point ALU (arithmetic logical unit) circuit based on three-stage carry lookahead adder in GPDSP
RU2639645C1 (en) * 2017-02-21 2017-12-21 федеральное государственное автономное образовательное учреждение высшего образования "Северо-Кавказский федеральный университет" Arithmetic-logical device for summing numbers by module

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU203294U1 (en) * 2020-08-04 2021-03-30 Федеральное государственное автономное учреждение "Военный инновационный технополис "ЭРА" BIT STREAM PROCESSING DEVICE IN COMPRESSION / RECOVERY SYSTEMS OF DIGITAL INFORMATION

Similar Documents

Publication Publication Date Title
US20180196698A1 (en) Modular offloading for computationally intensive tasks
Sklyarov et al. High-performance implementation of regular and easily scalable sorting networks on an FPGA
JP2022545414A (en) Coprocessor for cryptographic operations
US11507531B2 (en) Apparatus and method to switch configurable logic units
Heyse et al. Efficient implementation of virtual coarse grained reconfigurable arrays on FPGAs
Shi et al. Efficient FPGA implementation of digit parallel online arithmetic operators
RU2681702C1 (en) Arithmetic-logic apparatus and a method for converting data using such device
Verdoscia et al. A Data‐Flow Soft‐Core Processor for Accelerating Scientific Calculation on FPGAs
Surekha et al. Design and Implementation of Arithmetic and Logic Unit (ALU)
EP2735963B1 (en) Galois field inversion device
Maroufi et al. A novel three-input approximate XOR gate design based on quantum-dot cellular automata
Nibouche et al. Fast architectures for FPGA-based implementation of RSA encryption algorithm
Deepthi et al. Design and Implementation of High-Speed Low-Power Carry Select Adder
Liang et al. ALU Architecture with Dynamic Precision Support
Kumar et al. Design and FPGA Implementation of Matrix Multiplier Using DEMUX-RCA-Based Vedic Multiplier
Puneeth et al. Design and Implementation of High Frequency 16-bit full adder on FPGA Families
RU2792603C1 (en) Device for implementing the operation "cubic exclusive or"
RU2819403C1 (en) Vector computing core
Pandeeti et al. Preliminary Implementation of Toeplitz Hashing on Processor, Co-Processor and SoC
RU2779754C1 (en) Apparatus for implementing a cubic operation or
Poshtatska et al. RECONFIGURABLE MATH COPROCESSOR ON FPGA
CN112380799B (en) Micro bus type DSP circuit architecture based on SIOU
CN101685386A (en) Arithmetic logic unit for processing data with any width and processing method thereof
Banerjee et al. High Speed Reconfigurable ALU Design for Radix (2n±m)
Mondal et al. A flexible-length-arithmetic processor using embedded dsp slices and block rams in fpgas

Legal Events

Date Code Title Description
PD4A Correction of name of patent owner