RU2474871C1 - Highly parallel special-purpose processor for solving boolean formula satisfiability problem - Google Patents

Highly parallel special-purpose processor for solving boolean formula satisfiability problem Download PDF

Info

Publication number
RU2474871C1
RU2474871C1 RU2011151770/08A RU2011151770A RU2474871C1 RU 2474871 C1 RU2474871 C1 RU 2474871C1 RU 2011151770/08 A RU2011151770/08 A RU 2011151770/08A RU 2011151770 A RU2011151770 A RU 2011151770A RU 2474871 C1 RU2474871 C1 RU 2474871C1
Authority
RU
Russia
Prior art keywords
output
input
hierarchical level
bit
inputs
Prior art date
Application number
RU2011151770/08A
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 RU2011151770/08A priority Critical patent/RU2474871C1/en
Application granted granted Critical
Publication of RU2474871C1 publication Critical patent/RU2474871C1/en

Links

Images

Landscapes

  • Logic Circuits (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: special-purpose processor has a clock signal amplifier, an N-bit shift register, a hierarchical layer N processor module consisting of hierarchical layer J (J=1,…N) units, each consisting of identical first and second hierarchical layer J-1 units, a first OR element and a first multiplexer, and a hierarchical layer 0 base unit, having first and second RS flip-flops, second, third and fourth OR elements, first, second and third AND elements, an XOR element and a second multiplexer.
EFFECT: reduced complexity of the special-purpose processor owing to a simpler design of the processor module, broader functional capabilities by eliminating limitations on the number of disjunction operations in the Boolean function and high speed of solving satisfiability of Boolean functions by eliminating the step for pre-set up of the special-purpose processor.
5 dwg

Description

Изобретение относится к вычислительной технике, в частности к специализированным процессорам с высокой степенью параллелизма. Спецпроцессор предназначен для решения задачи о выполнимости булевых функций, заданных в конъюнктивной нормальной форме, имеющих N=2K переменных и М дизъюнкций, в которых использовано L литералов переменных.The invention relates to computing, in particular to specialized processors with a high degree of parallelism. The special processor is designed to solve the problem of the feasibility of Boolean functions defined in conjunctive normal form, having N = 2 K variables and M disjunctions in which L literal variables are used.

Известен спецпроцессор, на основе ассоциативной матрицы, обладающий высокой степенью параллелизма выполнения операций ассоциативного опроса содержимого всех строк матрицы с последующей ассоциативной записью в строки, выделенные по результатам предшествующих ассоциативных опросов (US 3863232, 28.01.1975).A special processor is known, based on an associative matrix, which has a high degree of parallelism for performing operations of associative polling of the contents of all rows of the matrix, followed by associative recording in the lines selected according to the results of previous associative polls (US 3863232, 01/28/1975).

Совокупность операций над битами в строках ассоциативной матрицы позволяет решать задачи выполнимости булевых функций в режиме высокого параллелизма.The set of operations on bits in the rows of the associative matrix allows us to solve the feasibility of Boolean functions in high parallelism mode.

Недостатком ассоциативной матрицы является избыточная (при решении задачи выполнимости булевых функций) сложность строк, выраженная в большом количестве элементов памяти и элементов, выполняющих операции сравнения.The disadvantage of the associative matrix is the excessive (in solving the feasibility of Boolean functions) string complexity, expressed in a large number of memory elements and elements that perform comparison operations.

Известен процессор, специализированный на решении задачи выполнимости булевых функций. Структура спецпроцессора включает цепи обработки дизъюнкций и цепи обработки переменных. Спецпроцессор обладает высокой степенью параллелизма и одновременно оперирует со всеми переменными и всеми дизъюнкциями булевой функции, загруженными в его матрицу (US 7565634, 21.07.2009).Known processor specialized in solving the feasibility problem of Boolean functions. The structure of the special processor includes disjunction processing chains and variable processing chains. The special processor has a high degree of parallelism and simultaneously operates with all variables and all disjunctions of the Boolean function loaded into its matrix (US 7565634, July 21, 2009).

Недостатком спецпроцессора является существенное снижение его эффективности при обработке булевых функций, число дизъюнкций в которых превышает число цепей обработки дизъюнкций, заложенных в его структуру.The disadvantage of the special processor is a significant decrease in its efficiency in processing Boolean functions, the number of clauses in which exceeds the number of clutch processing circuits embedded in its structure.

Известен высокопараллельный спецпроцессор для решения задач о выполнимости булевых формул, наиболее близкий по своей технической сущности к предлагаемому изобретению и выбранный в качестве прототипа. Данный спецпроцессор содержит устройство управления и процессорный блок, выполненный в виде матрицы. Процессорный блок является устройством параллельной записи и считывания с многоразрядным (2N) адресным входом, входом сброса и одним выходом (RU 2074415 С1 27.02.1997).Known highly parallel special processor for solving problems of the feasibility of Boolean formulas, the closest in its technical essence to the proposed invention and selected as a prototype. This special processor contains a control device and a processor unit made in the form of a matrix. The processor unit is a parallel device for writing and reading with multi-bit (2N) address input, reset input and one output (RU 2074415 C1 02.27.1997).

В спецпроцессоре реализуется алгоритм, основанный на нахождении и объединении невыполняющих наборов булевой функции, заданной в конъюнктивной нормальной форме.The special processor implements an algorithm based on finding and combining non-performing sets of Boolean functions given in conjunctive normal form.

Недостаток спецпроцессора, выбранного в качестве прототипа, - его избыточная сложность, обусловленная большой разрядностью информационного входа процессорной матрицы и сложной структурой устройства управления, а также замедление решения задачи за счет времени, затрачиваемого на предварительную обработку и загрузку информации, необходимой для подготовки устройства управления к работе в основном режиме. Кроме того, недостатком спецпроцессора является ограниченное его структурой количество дизъюнкций в эффективно обрабатываемых булевых функциях.The disadvantage of the special processor selected as a prototype is its excessive complexity, due to the large bit depth of the information input of the processor matrix and the complex structure of the control device, as well as the slowdown in solving the problem due to the time spent on pre-processing and loading the information necessary to prepare the control device for operation in main mode. In addition, the disadvantage of the special processor is the limited number of disjunctions in its efficiently processed Boolean functions.

Технический результат изобретения - снижение сложности спецпроцессора, расширение его функциональных возможностей и повышение скорости решения задачи о выполнимости булевых функций. Технический результат достигается за счет упрощения структуры процессорного блока, последовавшего за изменением функциональной схемы базового блока, в который добавлен двухразрядный управляющий вход, позволивший сократить разрядность информационного входа процессорного блока до величины K+1. Повышение скорости работы спецпроцессора достигается за счет отказа от этапа предварительной настройки спецпроцессора, при этом время решения задачи определяется временем передачи ее условия из входного буфера в спецпроцессор и временем выдачи решения - выполняющего набора. Расширение функциональных возможностей заключается в снятии ограничений на число дизъюнкций в булевой функции.The technical result of the invention is to reduce the complexity of the special processor, expand its functionality and increase the speed of solving the problem of the feasibility of Boolean functions. The technical result is achieved by simplifying the structure of the processor unit, which followed the change in the functional diagram of the base unit, into which a two-bit control input was added, which allowed to reduce the bit depth of the information input of the processor unit to K + 1. An increase in the speed of the special processor is achieved by abandoning the stage of preliminary configuration of the special processor, while the time for solving the problem is determined by the time of transferring its conditions from the input buffer to the special processor and the time of issuing the solution - a set. The expansion of functionality consists in removing restrictions on the number of disjunctions in a Boolean function.

Технический результат достигается тем, что предлагаемый спецпроцессор содержит усилитель синхросигнала, вход которого является входом синхронизации спецпроцессора, процессорный блок иерархического уровня N, K+1-разрядный информационный вход которого является информационным входом спецпроцессора, а первый выход является первым выходом спецпроцессора, при этом в спецпроцессор дополнительно введен N-разрядный регистр сдвига, информационный вход которого подключен ко второму выходу процессорного блока иерархического уровня N, вход разрешения записи регистра сдвига является стробирующим входом спецпроцессора, a N-разрядный выход регистра сдвига является вторым выходом спецпроцессора, двухразрядный управляющий вход процессорного блока иерархического уровня N является управляющим входом спецпроцессора, каждый блок иерархического уровня J (J=1, …N) состоит из идентичных первого и второго блоков иерархического уровня J-1, первого элемента «ИЛИ», входы которого подключены к первым выходам первого и второго блоков иерархического уровня J-1, а выход является первым выходом блока иерархического уровня J, первого мультиплексора, первый информационный вход которого подключен ко второму выходу второго блока иерархического уровня J-1, второй информационный вход первого мультиплексора 14 подключен ко второму выходу первого блока иерархического уровня J-1, а управляющий вход первого мультиплексора подключен к первому выходу первого блока иерархического уровня J-1, при этом выход первого мультиплексора является вторым выходом блока иерархического уровня J, управляющий и информационный входы первого и второго блоков иерархического уровня J-1 одновременно являются одноименными входами и блоков иерархического уровня J, младший разряд N-J+1-разрядных входов задания физического адреса первого и второго блоков иерархического уровня J-1 подключен соответственно к потенциалам логического нуля и логической единицы, остальные N-J разрядов первого и второго блоков иерархического уровня J-1 являются N-J-разрядным входом задания физического адреса блока иерархического уровня J, базовый блок иерархического уровня 0 содержит первый RS триггер, выход которого является первым выходом базового блока, вход синхронной установки первого RS триггера подключен к инверсному выходу второго элемента «ИЛИ», входы которого подключены к двухразрядному управляющему входу базового блока, вход синхронного сброса первого RS триггера подключен к выходу первого элемента «И», входы которого подключены к старшему разряду управляющего входа базового блока и выходу второго RS триггера, инверсный выход которого является вторым выходом базового блока, при этом инверсные входы элемента «И» подключены к младшему разряду управляющего входа и к выходу элемента «исключающее ИЛИ», вход синхронного сброса второго RS триггера подключен к выходу второго элемента «И», входы которого подключены к младшему разряду управляющего входа базового блока и выходу элемента «исключающее ИЛИ», входы которого подключены к старшему разряду информационного входа базового блока и к выходу второго мультиплексора, N-разрядный информационный вход которого является входом задания физического адреса базового блока, управляющий вход второго мультиплексора подключен к K младшим разрядам информационного входа базового блока, вход синхронной установки второго RS триггера подключен к выходу третьего элемента «ИЛИ», инверсные входы которого подключены к выходу четвертого элемента «ИЛИ» и к младшему разряду управляющего входа базового блока, входы четвертого элемента «ИЛИ» подключены к выходу второго мультиплексора и к инверсному выходу третьего элемента «И», входы которого подключены к управляющему входу базового блока, входы синхронизации регистра сдвига и всех RS триггеров подключены к выходу усилителя синхросигнала.The technical result is achieved by the fact that the proposed special processor contains a clock amplifier, the input of which is the synchronization input of the special processor, the hierarchical processor unit N, K + 1-bit information input of which is the information input of the special processor, and the first output is the first output of the special processor, with the special processor additionally introduced an N-bit shift register, the information input of which is connected to the second output of the processor unit of the hierarchical level N, the input is bit Solutions of the shift register record is the gate input of the special processor, and the N-bit output of the shift register is the second output of the special processor, the two-bit control input of the processor unit of the hierarchical level N is the control input of the special processor, each block of the hierarchical level J (J = 1, ... N) consists of identical the first and second blocks of the hierarchical level J-1, the first OR element, the inputs of which are connected to the first outputs of the first and second blocks of the hierarchical level J-1, and the output is the first output of the block and the hierarchical level J, the first multiplexer, the first information input of which is connected to the second output of the second block of the hierarchical level J-1, the second information input of the first multiplexer 14 is connected to the second output of the first block of the hierarchical level J-1, and the control input of the first multiplexer is connected to the first the output of the first block of the hierarchical level J-1, while the output of the first multiplexer is the second output of the block of the hierarchical level J, the control and information inputs of the first and second blocks of the archival level J-1 are simultaneously inputs of the same hierarchical level blocks J, the least significant bit of N-J + 1-bit inputs of the physical address of the first and second blocks of the hierarchical level J-1 are connected respectively to the potentials of logical zero and logical units, the remaining NJ bits the first and second blocks of the hierarchical level J-1 are the NJ-bit input for setting the physical address of the block of the hierarchical level J, the basic block of the hierarchical level 0 contains the first RS trigger, the output of which is by the output of the base unit, the synchronous installation input of the first RS trigger is connected to the inverse output of the second OR element, the inputs of which are connected to the two-bit control input of the base unit, the synchronous reset input of the first RS trigger is connected to the output of the first AND element, the inputs of which are connected to the high-order bit of the control input of the base unit and the output of the second RS trigger, the inverse output of which is the second output of the base unit, while the inverse inputs of the “And” element are connected to the low-order bit its input and to the output of the exclusive OR element, the synchronous reset input of the second RS trigger is connected to the output of the second AND element, the inputs of which are connected to the low-order bit of the control input of the base unit and the output of the exclusive OR element, the inputs of which are connected to the high order the information input of the base unit and to the output of the second multiplexer, the N-bit information input of which is the input of the physical address of the base unit, the control input of the second multiplexer is connected to the K least significant bits the formation input of the base unit, the synchronous installation input of the second RS trigger is connected to the output of the third OR element, the inverse inputs of which are connected to the output of the fourth OR element and to the low-order bit of the control input of the base unit, the inputs of the fourth OR element are connected to the output of the second the multiplexer and to the inverse output of the third AND element, the inputs of which are connected to the control input of the base unit, the synchronization inputs of the shift register and all RS triggers are connected to the output of the clock amplifier.

На фиг.1 приведена схема базового блока предлагаемого спецпроцессора.Figure 1 shows a diagram of the base unit of the proposed special processor.

На фиг.2 раскрыта рекурсивная схема построения блока иерархического уровня J (J=1, …, N) из двух блоков иерархического уровня J-1.Figure 2 discloses a recursive diagram for constructing a block of a hierarchical level J (J = 1, ..., N) from two blocks of a hierarchical level J-1.

На фиг.3 приведена схема спецпроцессора.Figure 3 shows a diagram of a special processor.

На фиг.4 представлен вариант схемы управления спецпроцессором.Figure 4 presents a variant of the control circuit of the special processor.

На фиг.5 приведена временная диаграмма, иллюстрирующая функционирование спецпроцессора в совокупности с представленным на фиг.4 вариантом устройства управления.Fig. 5 is a timing chart illustrating the operation of the special processor in conjunction with the embodiment of the control device shown in Fig. 4.

Предлагаемый спецпроцессор содержит усилитель синхросигнала 1, вход которого является входом 2 синхронизации спецпроцессора, процессорный блок 3 иерархического уровня N, K+1-разрядный информационный вход которого является информационным входом 4 спецпроцессора, а первый выход является первым выходом 5 спецпроцессора, при этом в спецпроцессор дополнительно введен N-разрядный регистр 6 сдвига, информационный вход которого подключен ко второму выходу процессорного блока 3 иерархического уровня N, вход разрешения записи регистра 6 сдвига является стробирующим входом 7 спецпроцессора, а N-разрядный выход регистра 6 сдвига является вторым выходом 8 спецпроцессора, двухразрядный управляющий вход процессорного блока 3 иерархического уровня N является управляющим входом 9 спецпроцессора, каждый блок иерархического уровня J(J=1, …N) состоит из идентичных первого 10 и второго 11 блоков иерархического уровня J-1, первого элемента «ИЛИ» 12, входы которого подключены к первым выходам первого 10 и второго 11 блоков иерархического уровня J-1, а выход является первым выходом 13 блока иерархического уровня J, первого мультиплексора 14, первый информационный вход которого подключен ко второму выходу второго блока 11 иерархического уровня J-1, второй информационный вход первого мультиплексора 14 подключен ко второму выходу первого блока 10 иерархического уровня J-1, а управляющий вход первого мультиплексора 14 подключен к первому выходу первого блока 10 иерархического уровня J-1, при этом выход первого мультиплексора 14 является вторым выходом 15 блока иерархического уровня J, управляющий и информационный входы первого 10 и второго 11 блоков иерархического уровня J-1 одновременно являются одноименными входами 16 и 17 блоков иерархического уровня J, младший разряд N-J+1-разрядных входов задания физического адреса первого 10 и второго 11 блоков иерархического уровня J-1 подключен соответственно к потенциалам логического нуля и логической единицы, остальные N-J разрядов первого 10 и второго 11 блоков иерархического уровня J-1 являются N-J-разрядным входом 18 задания физического адреса блока иерархического уровня J, базовый блок иерархического уровня 0 содержит первый RS триггер 19, выход которого является первым выходом 20 базового блока, вход синхронной установки первого RS триггера 19 подключен к инверсному выходу второго элемента «ИЛИ» 21, входы которого подключены к двухразрядному управляющему входу 22 базового блока, вход синхронного сброса первого RS триггера 19 подключен к выходу первого элемента «И» 23, входы которого подключены к старшему разряду управляющего входа 22 базового блока и выходу второго RS триггера 24, инверсный выход которого является вторым выходом 25 базового блока, при этом инверсные входы элемента 23 «И» подключены к младшему разряду управляющего входа 22 и к выходу элемента «исключающее ИЛИ» 26, вход синхронного сброса второго RS триггера 24 подключен к выходу второго элемента «И» 27, входы которого подключены к младшему разряду управляющего входа 22 базового блока и выходу элемента 26 «исключающее ИЛИ», входы которого подключены к старшему разряду информационного входа 28 базового блока и к выходу второго мультиплексора 29, N-разрядный информационный вход которого является входом 30 задания физического адреса базового блока, управляющий вход второго мультиплексора 29 подключен к K младшим разрядам информационного входа 28 базового блока, вход синхронной установки второго RS триггера 24 подключен к выходу третьего элемента «ИЛИ» 31, инверсные входы которого подключены к выходу четвертого элемента «ИЛИ» 32 и к младшему разряду управляющего входа 22 базового блока, входы четвертого элемента «ИЛИ» 32 подключены к выходу второго мультиплексора 29 и к инверсному выходу третьего элемента «И» 33, входы которого подключены к управляющему входу 22 базового блока, входы синхронизации регистра 6 сдвига и всех RS триггеров подключены к выходу 34 усилителя синхросигнала 1.The proposed special processor contains a clock amplifier 1, the input of which is the synchronization input 2 of the special processor, the processor unit 3 of the hierarchical level N, K + 1-bit information input of which is the information input 4 of the special processor, and the first output is the first output 5 of the special processor, with the additional processor introduced an N-bit shift register 6, the information input of which is connected to the second output of the processor unit 3 of the hierarchical level N, the write enable input of the shift register 6 is is the gate input 7 of the special processor, and the N-bit output of the shift register 6 is the second output of the 8 special processor, the two-bit control input of the processor unit 3 of the hierarchical level N is the control input 9 of the special processor, each block of the hierarchical level J (J = 1, ... N) consists of identical to the first 10 and second 11 blocks of the hierarchical level J-1, the first OR element 12, the inputs of which are connected to the first outputs of the first 10 and second 11 blocks of the hierarchical level J-1, and the output is the first output 13 of the hierarchical block ur ram J, the first multiplexer 14, the first information input of which is connected to the second output of the second block 11 of the hierarchical level J-1, the second information input of the first multiplexer 14 is connected to the second output of the first block 10 of the hierarchical level J-1, and the control input of the first multiplexer 14 is connected to the first output of the first block 10 of the hierarchical level J-1, while the output of the first multiplexer 14 is the second output 15 of the block of the hierarchical level J, the control and information inputs of the first 10 and second 11 blocks of the hierarchy at the J-1 level are simultaneously inputs of 16 and 17 blocks of the hierarchical level J with the same name, the low-order bit of N-J + 1-bit inputs for setting the physical address of the first 10 and second 11 blocks of the hierarchical level J-1 are connected respectively to the potentials of logical zero and logical unit , the remaining NJ bits of the first 10 and second 11 blocks of the hierarchical level J-1 are NJ-bit input 18 for setting the physical address of the block of the hierarchical level J, the base block of the hierarchical level 0 contains the first RS trigger 19, the output of which is is the first output 20 of the base unit, the synchronous input of the first RS trigger 19 is connected to the inverse output of the second OR element 21, the inputs of which are connected to the two-bit control input 22 of the base unit, the synchronous reset input of the first RS trigger 19 is connected to the output of the first element AND "23, the inputs of which are connected to the high-order bit of the control input 22 of the base unit and the output of the second RS trigger 24, the inverse output of which is the second output 25 of the base unit, while the inverse inputs of the element 23" AND "are connected to ml the next bit of the control input 22 and to the output of the exclusive OR element 26, the synchronous reset input of the second RS trigger 24 is connected to the output of the second AND element 27, the inputs of which are connected to the low-order bit of the control input 22 of the base unit and the output of the exclusive-OR element 26 ", The inputs of which are connected to the senior bit of the information input 28 of the base unit and to the output of the second multiplexer 29, the N-bit information input of which is the input 30 of the physical address of the base unit, the control input of the second multipl Xor 29 is connected to the K least bits of the information input 28 of the base unit, the synchronous installation input of the second RS trigger 24 is connected to the output of the third OR element 31, the inverse inputs of which are connected to the output of the fourth OR element 32 and to the least significant bit of the control input 22 of the base unit, the inputs of the fourth element "OR" 32 are connected to the output of the second multiplexer 29 and to the inverse output of the third element "AND" 33, the inputs of which are connected to the control input 22 of the base unit, synchronization inputs of shift register 6 and all RS tr ggerov connected to the output 34 of the amplifier 1 clock.

Работу спецпроцессора рассмотрим совместно с одним из возможных вариантов реализации устройства управления, представленного на фиг.4.The work of the special processor will be considered together with one of the possible embodiments of the control device shown in Fig.4.

В процессе работы предлагаемого спецпроцессора непосредственно используется естественная кодировка булевой функции, представленной в конъюнктивной нормальной форме. Запись функции начинается с маркера, в качестве которого использован восклицательный знак «!». За маркером начала следуют записанные через запятую «,» литералы - номера переменных без знака или со знаком «-», входящих в одну дизъюнкцию. Использование знака «-» означает, что в дизъюнкции используется инверсное значение переменной. Запись переменных, принадлежащих дизъюнкции, заканчивается маркером точка с запятой «;» в случае, если дизъюнкция не является последней, и маркером точка «.», если дизъюнкция является последней в записи функции.In the process of the proposed special processor, the natural encoding of the Boolean function, presented in conjunctive normal form, is directly used. Function recording begins with a marker, which is used as an exclamation point "!". The start marker is followed by literals, separated by commas “,” —numbers of variables without an sign or with a “-” sign, which are part of the same clause. The use of the “-” sign means that the inverse of the variable is used in the disjunction. Writing variables belonging to a clause ends with a semicolon marker “;” if the clause is not the last, and a dot “.” Mark if the clause is the last in the function entry.

Например, функцияFor example, the function

F=(¬X0+¬X2+¬X1+X3+X4+¬X5+X7)(X0+X1+X2)(X6+¬X4+X5+¬X3+¬X7), записывается в эквивалентном видеF = (¬X 0 + ¬X 2 + ¬X 1 + X 3 + X 4 + ¬X 5 + X 7 ) (X 0 + X 1 + X 2 ) (X 6 + ¬X 4 + X 5 + ¬ X 3 + ¬X 7 ), is written in the equivalent form

!-0,-2,-1,3,4,-5,7;0,1,2;6,-4,5,-3,-7.! -0, -2, -1,3,4, -5,7; 0,1,2; 6, -4,5, -3, -7.

Для рассматриваемой булевой функции N=8 (K=3), М=3, L=14.For the considered Boolean function, N = 8 (K = 3), M = 3, L = 14.

Спецпроцессор и его устройство управления оперируют со следующей последовательностью K+3-разрядных информационных слов в буферном ОЗУ:The special processor and its control device operate with the following sequence of K + 3-bit information words in the buffer RAM:

/0!/-0,/-2,/-1,/3,/4,/-5,/7;/0,/1,/2;/6,/-4,/5,/-3/-7.// 0! / - 0, / - 2, / - 1, / 3, / 4, / - 5, / 7; / 0, / 1, / 2; / 6, / - 4, / 5, / - 3 /-7./

Информационные слова, имеющие последовательные адреса, разделены маркером «/».Information words with consecutive addresses are separated by a “/”.

Используемые при записи формулы знаки препинания кодируются следующим образом «!»=>00, «,»=>01, «;»=>10, «.»=>11. Эти двухразрядные коды являются кодами операций базовых блоков спецпроцессора. Коды управления передаются из буферного ОЗУ в базовые блоки. Буферирование осуществляется на двух D триггерах 35, 36. Заметим, что представленный на фиг.4 вариант устройства управления преобразует код 11 в последовательность из двух кодов 10 и 11, эта операция осуществляется с использованием RS триггера 37 и ассоциированных с ним логических элементов.Punctuation marks used when writing formulas are encoded as follows: “!” => 00, “,” => 01, “;” => 10, “.” => 11. These two-digit codes are the operation codes of the base units of the special processor. Control codes are transferred from the buffer RAM to the base units. Buffering is carried out on two D flip-flops 35, 36. Note that the control device variant shown in Fig. 4 converts code 11 into a sequence of two codes 10 and 11, this operation is performed using the RS flip-flop 37 and its associated logic elements.

Значения кодов СОР_М, nX_M, INV_M, выбираемых из буферного ОЗУ по последовательным адресам adr, представлены на временной диаграмме фиг.5. СОР_М является двухразрядным кодом маркеров, использованных при записи булевой функции. nX_M - номера кодированных K разрядами переменных, использованных в дизъюнкциях. Значение INV_M кодируется единицей, если при записи дизъюнкции используется инверсия переменной.The values of the COD_M, nX_M, INV_M codes selected from the buffer RAM at consecutive adr addresses are shown in the time diagram of FIG. 5. COP_M is a two-digit code of markers used when writing a Boolean function. nX_M - numbers of variables encoded by K bits used in disjunctions. The value INV_M is encoded by one if the inverse of the variable is used to record the disjunction.

Спецпроцессор имеет 2N базовых блоков, каждый из которых имеет индивидуальный N-разрядный физический номер на информационном входе второго мультиплексора 29.The special processor has 2 N base units, each of which has an individual N-bit physical number at the information input of the second multiplexer 29.

Младшие K разрядов K+1-разрядного кода на информационном входе 28 базового блока адресуют один из разрядов N-разрядного физического номера. В основном режиме работы спецпроцессора содержимое выбранного разряда nX физического номера сравнивается с INV содержимым старшего разряда K+1-разрядного кода на информационном входе 28 базового блока. Сравнение осуществляется элементом 26 суммирования по модулю два. Если во время действия кода операции «01» на входе 22 базового блока в обрабатываемой дизъюнкции зафиксировано хотя бы одно неравенство, это приводит к сбросу второго RS триггера 24, что запрещает последующий сброс первого RS триггера 19. Если во время действия кода операции «10» второй RS триггер 24 остается установленным и на выходе элемента 26 сравнения присутствует потенциал логического нуля, соответствующий равенству, происходит сброс первого RS триггера 19, и это означает, что кодировка физического номера данного базового блока соответствует невыполняющему набору переменных. Фронт синхросигнала, по которому осуществляется сброс первого RS триггера 19 в базовом блоке с номером 0, на диаграмме фиг.5 отмечен первым курсором. Каждая «правильная» дизъюнкция, в которой переменная может присутствовать либо с инверсией, либо без инверсии, порождает хотя бы один невыполняющий набор. Если в «правильной» дизъюнкции отсутствуют литералы, соответствующие R переменным, такой набор может привести к сбросу первых RS триггеров 19 в 2R базовых блоках. Булевая функция выполнима, если после ее обработки хотя бы в одном базовом блоке первый RS триггер 19 останется в установленном состоянии.The lower K bits of the K + 1-bit code at the information input 28 of the base unit address one of the bits of the N-bit physical number. In the main mode of the special processor, the contents of the selected bit nX of the physical number are compared with the INV contents of the highest bit K + 1-bit code at the information input 28 of the base unit. The comparison is carried out by the element 26 summation modulo two. If at least one inequality is recorded at the input 22 of the base unit in the processed disjunction during the operation code “01”, this results in the reset of the second RS trigger 24, which prohibits the subsequent reset of the first RS trigger 19. If during the operation code “10” the second RS trigger 24 remains installed and the logical zero potential corresponding to equality is present at the output of the comparison element 26, the first RS trigger 19 is reset, and this means that the encoding of the physical number of this base unit corresponds to evypolnyayuschemu set of variables. The front of the clock signal, through which the first RS flip-flop 19 is reset in the base unit with the number 0, is marked with the first cursor in the diagram of Fig. 5. Each “correct” disjunction in which a variable can be present either with or without inversion generates at least one non-performing set. If there are no literals corresponding to R variables in the “correct” disjunction, such a set can lead to the reset of the first RS triggers 19 in 2 R base blocks. A Boolean function is feasible if, after processing it, in at least one base unit, the first RS trigger 19 remains in the installed state.

В каждом из базовых блоков установка второго RS триггера 24 выполняется кодами операции «00» и «10» перед началом обработки каждой дизъюнкции. Установка первого RS триггера 19 инициируется кодом операции «00», который вызывает появление единичного потенциала на инверсном выходе второго элемента «ИЛИ» 21. Код операции «11» переводит второй RS триггер 24 и ассоциированные с ним логические элементы 26, 27, 31, 32 в режим эмуляции D триггера. Этот D триггер осуществляет буферирование информации, поступающей с выхода второго мультиплексора 29 на второй выход 25 базового блока.In each of the base units, the installation of the second RS trigger 24 is performed by the operation codes “00” and “10” before processing each disjunction. The installation of the first RS trigger 19 is initiated by the operation code “00”, which causes the appearance of a unit potential at the inverse output of the second OR element 21. The operation code “11” translates the second RS trigger 24 and its associated logic elements 26, 27, 31, 32 to emulation mode of D trigger. This D trigger carries out the buffering of information coming from the output of the second multiplexer 29 to the second output 25 of the base unit.

В рассматриваемом варианте устройства управления код операции «11» переводит загружаемый счетчик в режим счета. Это приводит к подаче последовательности кодов от 0 до N-1 на информационный вход 4 спецпроцессора, что позволяет передать физический номер базового блока на его второй выход 25. Момент начала считывания выполняющего набора функции в регистр 6 сдвига отмечен на временной диаграмме фиг.5 вторым курсором. Высокий уровень сигнала STROB разрешает запись информации в регистр 6 сдвига.In the considered embodiment of the control device, the operation code “11” puts the downloadable counter into the counting mode. This leads to the supply of a sequence of codes from 0 to N-1 to the information input 4 of the special processor, which allows you to transfer the physical number of the base unit to its second output 25. The moment of the start of reading the performing set of functions in the shift register 6 is marked on the timing diagram of figure 5 by the second cursor . A high signal level STROB allows writing information to register 6 shift.

Первые элементы «ИЛИ» 12 и первые мультиплексоры 14 блоков всех уровней иерархии образуют самонастраивающийся коммутатор-мультиплексор, который осуществляет побитную передачу на информационный вход регистра 6 сдвига выполняющего набора булевой функции. Этим набором является младший физический номер базового блока, среди всех базовых блоков первые RS триггеры 19 которых находятся в установленном состоянии. По завершении работы спецпроцессора код SET на выходе 8 регистра 6 сдвига соответствует выполняющему набору для обработанной булевой функции при условии, что на выходе 5 спецпроцессора установлен уровень логической единицы. В рассмотренном примере выполняющим набором является: X0=1, X1=0, X2=0, X3=0, Х4=0, Х5=0, Х6=0, Х7=0. Момент окончания обработки спецпроцессором рассматриваемой булевой функции на временной диаграмме фиг.5 отмечен третьим курсором.The first elements of “OR” 12 and the first multiplexers 14 of blocks of all levels of the hierarchy form a self-adjusting switch-multiplexer, which carries out a bit-by-bit transmission to the information input of the shift register 6 performing a set of Boolean functions. This set is the lowest physical number of the base unit, among all the base units the first RS triggers 19 of which are in the installed state. Upon completion of the operation of the special processor, the SET code at the output 8 of the shift register 6 corresponds to the execution set for the processed Boolean function, provided that the logical unit level is set at the output of the 5 special processor. In the considered example, the execution set is: X 0 = 1, X 1 = 0, X 2 = 0, X 3 = 0, X 4 = 0, X 5 = 0, X 6 = 0, X 7 = 0. The moment the processing by the special processor of the considered Boolean function in the time diagram of figure 5 is marked by the third cursor.

За счет высокой степени параллелизма обработка булевой функции занимает L+N+4 такта.Due to the high degree of parallelism, processing a Boolean function takes L + N + 4 clock cycles.

Claims (1)

Высокопараллельный спецпроцессор для решения задачи о выполнимости булевых формул, характеризующийся тем, что содержит усилитель синхросигнала, вход которого является входом синхронизации спецпроцессора, процессорный блок иерархического уровня N, K+1-разрядный информационный вход которого является информационным входом спецпроцессора, а первый выход является первым выходом спецпроцессора, при этом в спецпроцессор дополнительно введен N-разрядный регистр сдвига, информационный вход которого подключен ко второму выходу процессорного блока иерархического уровня N, вход разрешения записи регистра сдвига является стробирующим входом спецпроцессора, а N-разрядный выход регистра сдвига является вторым выходом спецпроцессора, двухразрядный управляющий вход процессорного блока иерархического уровня N является управляющим входом спецпроцессора, каждый блок иерархического уровня J (J=1, …N) состоит из идентичных первого и второго блоков иерархического уровня J-1, первого элемента ИЛИ, входы которого подключены к первым выходам первого и второго блоков иерархического уровня J-1, а выход является первым выходом блока иерархического уровня J, первого мультиплексора, первый информационный вход которого подключен ко второму выходу второго блока иерархического уровня J-1, второй информационный вход первого мультиплексора 14 подключен ко второму выходу первого блока иерархического уровня J-1, а управляющий вход первого мультиплексора подключен к первому выходу первого блока иерархического уровня J-1, при этом выход первого мультиплексора является вторым выходом блока иерархического уровня J, управляющий и информационный входы первого и второго блоков иерархического уровня J-1 одновременно являются одноименными входами и блоков иерархического уровня J, младший разряд N-J+1-разрядных входов задания физического адреса первого и второго блоков иерархического уровня J-1 подключен соответственно к потенциалам логического нуля и логической единицы, остальные N-J разрядов первого и второго блоков иерархического уровня J-1 являются N-J-разрядным входом задания физического адреса блока иерархического уровня J, базовый блок иерархического уровня 0 содержит первый RS триггер, выход которого является первым выходом базового блока, вход синхронной установки первого RS триггера подключен к инверсному выходу второго элемента «ИЛИ», входы которого подключены к двухразрядному управляющему входу базового блока, вход синхронного сброса первого RS триггера подключен к выходу первого элемента «И», входы которого подключены к старшему разряду управляющего входа базового блока и выходу второго RS триггера, инверсный выход которого является вторым выходом базового блока, при этом инверсные входы элемента «И» подключены к младшему разряду управляющего входа и к выходу элемента «Исключающее ИЛИ», вход синхронного сброса второго RS триггера подключен к выходу второго элемента «И», входы которого подключены к младшему разряду управляющего входа базового блока и выходу элемента «Исключающее ИЛИ», входы которого подключены к старшему разряду информационного входа базового блока и к выходу второго мультиплексора, N-разрядный информационный вход которого является входом задания физического адреса базового блока, управляющий вход второго мультиплексора подключен к K младшим разрядам информационного входа базового блока, вход синхронной установки второго RS триггера подключен к выходу третьего элемента «ИЛИ», инверсные входы которого подключены к выходу четвертого элемента «ИЛИ» и к младшему разряду управляющего входа базового блока, входы четвертого элемента «ИЛИ» подключены к выходу второго мультиплексора и к инверсному выходу третьего элемента «И», входы которого подключены к управляющему входу базового блока, входы синхронизации регистра сдвига и всех RS триггеров подключены к выходу усилителя синхросигнала. A highly parallel special processor for solving the problem of the feasibility of Boolean formulas, characterized in that it contains a clock amplifier, the input of which is a synchronization input of a special processor, a hierarchical processor block N, K + 1-bit information input of which is an information input of a special processor, and the first output is the first output a special processor, in addition, an N-bit shift register is added to the special processor, the information input of which is connected to the second output of the processor block of the hierarchical level N, the shift register write enable input is the gate input of the special processor, and the N-bit output of the shift register is the second output of the special processor, the two-bit control input of the processor block of the hierarchical level N is the control input of the special processor, each block of the hierarchical level is J (J = 1, ... N) consists of identical first and second blocks of the hierarchical level J-1, the first OR element, the inputs of which are connected to the first outputs of the first and second blocks of the hierarchical level J -1, and the output is the first output of the hierarchical level block J, the first multiplexer, the first information input of which is connected to the second output of the second hierarchical level block J-1, the second information input of the first multiplexer 14 is connected to the second output of the first hierarchical level block J-1, and the control input of the first multiplexer is connected to the first output of the first block of the hierarchical level J-1, while the output of the first multiplexer is the second output of the block of the hierarchical level J, the control and information the inputs of the first and second blocks of the hierarchical level J-1 are simultaneously the same inputs and blocks of the hierarchical level J, the least significant bit of N-J + 1-bit inputs of the physical address of the first and second blocks of the hierarchical level J-1 are connected respectively to the potentials of logical zero and logical unit, the remaining NJ bits of the first and second blocks of the hierarchical level J-1 are the NJ-bit input of the physical address of the block of the hierarchical level J, the base block of the hierarchical level 0 contains the first RS trigger, the output of which is the first output of the base unit, the synchronous installation input of the first RS trigger is connected to the inverse output of the second OR element, the inputs of which are connected to the two-bit control input of the base unit, the synchronous reset input of the first RS trigger is connected to the output of the first element AND ", The inputs of which are connected to the high-order bit of the control input of the base unit and the output of the second RS trigger, the inverse output of which is the second output of the base unit, while the inverse inputs of the" AND "element are connected to the low-order bit of the control input and to the output of the “Exclusive OR” element, the synchronous reset input of the second RS trigger is connected to the output of the second “And” element, whose inputs are connected to the low-order bit of the control input of the base unit and the output of the “Exclusive OR” element, whose inputs connected to the senior bit of the information input of the base unit and to the output of the second multiplexer, the N-bit information input of which is the input of the physical address of the base unit, the control input of the second multiplexer Xor is connected to the K least bits of the information input of the base unit, the synchronous input of the second RS trigger is connected to the output of the third OR element, the inverse inputs of which are connected to the output of the fourth OR element and to the least significant bit of the control input of the base unit, the inputs of the fourth element OR ”are connected to the output of the second multiplexer and to the inverse output of the third element“ AND ”, the inputs of which are connected to the control input of the base unit, the synchronization inputs of the shift register and all RS triggers are connected to the output clock signal amplifier.
RU2011151770/08A 2011-12-20 2011-12-20 Highly parallel special-purpose processor for solving boolean formula satisfiability problem RU2474871C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
RU2011151770/08A RU2474871C1 (en) 2011-12-20 2011-12-20 Highly parallel special-purpose processor for solving boolean formula satisfiability problem

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
RU2011151770/08A RU2474871C1 (en) 2011-12-20 2011-12-20 Highly parallel special-purpose processor for solving boolean formula satisfiability problem

Publications (1)

Publication Number Publication Date
RU2474871C1 true RU2474871C1 (en) 2013-02-10

Family

ID=49120553

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2011151770/08A RU2474871C1 (en) 2011-12-20 2011-12-20 Highly parallel special-purpose processor for solving boolean formula satisfiability problem

Country Status (1)

Country Link
RU (1) RU2474871C1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2515206C1 (en) * 2013-03-01 2014-05-10 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Special-purpose processor for boolean satisfiability problem
RU2644505C1 (en) * 2017-03-03 2018-02-12 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Special processor for boolean satisfiability task

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3863232A (en) * 1973-12-26 1975-01-28 Ibm Associative array
SU1310801A1 (en) * 1986-01-06 1987-05-15 Предприятие П/Я Р-6623 Device for implementing boolean functions
RU2074415C1 (en) * 1993-11-25 1997-02-27 Всеволод Всеволодович Черныш Parallel co-processor which solves boolean equations
US7565634B1 (en) * 2004-10-20 2009-07-21 The Regents Of The University Of California, Santa Cruz Massively parallel boolean satisfiability implication circuit

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3863232A (en) * 1973-12-26 1975-01-28 Ibm Associative array
SU1310801A1 (en) * 1986-01-06 1987-05-15 Предприятие П/Я Р-6623 Device for implementing boolean functions
RU2074415C1 (en) * 1993-11-25 1997-02-27 Всеволод Всеволодович Черныш Parallel co-processor which solves boolean equations
US7565634B1 (en) * 2004-10-20 2009-07-21 The Regents Of The University Of California, Santa Cruz Massively parallel boolean satisfiability implication circuit

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2515206C1 (en) * 2013-03-01 2014-05-10 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Special-purpose processor for boolean satisfiability problem
RU2644505C1 (en) * 2017-03-03 2018-02-12 Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук Special processor for boolean satisfiability task

Similar Documents

Publication Publication Date Title
US20140218067A1 (en) Grouping of physically unclonable functions
TWI459290B (en) State machine, system and methods for generating pseudo-random word stream, generator and method for generating a description of a state machine feedback function, and non-transitory computer readable medium
Roshan et al. 4-Bit serial shift register with reset ability and 4-bit LFSR in QCA technology using minimum number of cells and delay
US20080288901A1 (en) Formally deriving a minimal clock-gating scheme
JP2005535965A5 (en)
US10536264B2 (en) Efficient cryptographically secure control flow integrity protection
US8693615B2 (en) RAM-based event counters using transposition
RU2474871C1 (en) Highly parallel special-purpose processor for solving boolean formula satisfiability problem
JP5926655B2 (en) Central processing unit and arithmetic unit
JP2005539292A (en) Programmable pipeline fabric having a mechanism for terminating signal propagation
US10719387B2 (en) Memory interface with tamper-evident features to enhance software security
US11907684B2 (en) High clock-efficiency random number generation system and method
Agrawal et al. Quantum dot cellular automata memories
RU2515206C1 (en) Special-purpose processor for boolean satisfiability problem
CN110474647B (en) Decoding method, device, decoder and storage medium for LDPC code with finite field structure
RU2644505C1 (en) Special processor for boolean satisfiability task
CN113741972A (en) Parallel processing method of SM3 algorithm and electronic equipment
RU2395834C1 (en) Random permutation generator
Malliyoor et al. Comparison of hardware implementation and power consumption of low-power multiple output linear feedback shift register
US9378782B1 (en) Apparatus with write-back buffer and associated methods
RU2390052C2 (en) Decoder for controlled rearrangement of information stored on personal computer
US11237800B2 (en) Time-shifted seed for random number generator
JP2011234312A (en) Operation device and central processing unit
Ciletti cuu duong than cong. com
US20230195621A1 (en) Architecture and method for binary and unary in-memory sorting

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20181221