RU2074415C1 - Parallel co-processor which solves boolean equations - Google Patents
Parallel co-processor which solves boolean equations Download PDFInfo
- Publication number
- RU2074415C1 RU2074415C1 RU93053633A RU93053633A RU2074415C1 RU 2074415 C1 RU2074415 C1 RU 2074415C1 RU 93053633 A RU93053633 A RU 93053633A RU 93053633 A RU93053633 A RU 93053633A RU 2074415 C1 RU2074415 C1 RU 2074415C1
- Authority
- RU
- Russia
- Prior art keywords
- input
- output
- block
- inputs
- elements
- Prior art date
Links
Images
Landscapes
- Logic Circuits (AREA)
Abstract
Description
Изобретение относится к вычислительной технике, в частности к высокопараллельным специализированным процессорам. The invention relates to computer technology, in particular to highly parallel specialized processors.
Как известно, большинство практически важных дискретных и комбинаторных задач допускает решение с помощью некоторого процесса перебора. As you know, most practically important discrete and combinatorial problems can be solved using some sorting process.
Считается, что найти эффективное решение для большинства переборных задач (они называются NP-задачами) принципиально невозможно (Гэри М. Джонсон Д. Вычислительные машины и труднорешаемые задачи, М. Мир, 1982). It is believed that finding an effective solution for most exhaustive problems (they are called NP-problems) is fundamentally impossible (Gary M. Johnson D. Computing machines and hard-to-solve problems, M. Mir, 1982).
Среди NP-задач выделяется подкласс так называемых NP-полных задач. Все NP-задачи за полиномиальное время сводимы друг к другу. Таким образом, научившись эффективно решать какую-нибудь NP-полную задачу, можно эффективно решать все NP-задачи. Среди всех NP-полных задач выделяется задача о выполнимости булевых формул. Фундаментальная теорема Кука (Кук С.А. Сложность процедур вывода теорем, Кибернетический сборник, овая серия, Выпуск 12, М. Мир, 1975) устанавливают NP-полноту этой задачи, а NP-полнота всех остальных задач доказывается полиномиальным сведением к задаче о выполнимости булевых формул. Можно сказать, что эта задача естественным образом содержит в себе все NP-задачи. Among NP-problems, a subclass of the so-called NP-complete problems is distinguished. All NP-problems in polynomial time are reducible to each other. Thus, having learned how to efficiently solve an NP-complete problem, one can effectively solve all NP-problems. Among all NP-complete problems, the problem of satisfiability of Boolean formulas stands out. Cook's fundamental theorem (S.A. Cook, Complexity of theorem derivation procedures, Cybernetic collection, New Series,
Задача о выполнимости булевых формул формулируется следующим образом:
Дано: n булевых переменных x1, x2, xn и С - множество мощности К дизъюнкций от этих переменных.The feasibility problem for Boolean formulas is formulated as follows:
Given: n Boolean variables x 1 , x 2 , x n and C is the set of cardinality K of disjunctions from these variables.
СD1(x1, x2,xn), D2(x1, x2,xn), Dк(x1, x2,xn)}
Заметим, что некоторые дизъюнкции фактически могут зависеть от меньшего, чем n числа переменных. Каждая дизъюнкция имеет вид: e1+e2+.+en, где ei либо тождественно равна 0 (если рассматриваемая дизъюнкция фактически не зависит от переменной хi), либо является литералом от xi. Каждый литерал от хi имеет вид либо xi, либо ^xi. Здесь и далее 0 логический нуль, "+" знак логического сложения, "^" знак логического отрицания.CD 1 (x 1 , x 2 , x n ), D 2 (x 1 , x 2 , x n ), D to (x 1 , x 2 , x n )}
Note that some disjunctions may actually depend on fewer than n numbers of variables. Each disjunction has the form: e 1 + e 2 +. + E n , where e i is either identically equal to 0 (if the disjunction in question is actually independent of the variable x i ), or it is a literal of x i . Each literal of x i has the form either x i or ^ x i . Hereinafter, 0 is a logical zero, a "+" sign of logical addition, a "^" sign of logical negation.
Требуется определить, существуют ли выполняющие множество С наборы значений переменных x1, x2,xn, т.е. такие наборы а1, a2,an значений этих переменных, что для любого j:
Dj(a1, a2,an) 1 aj∈{0,1}. Здесь и далее 1 - логическая единица. Если такие наборы существуют, требуется найти хотя бы один из них.It is required to determine whether there exist sets of values of the variables x 1 , x 2 , x n that fulfill the set C, i.e. such sets a 1 , a 2 , a n values of these variables such that for any j:
D j (a 1 , a 2 , a n ) 1 a j ∈ {0,1}. Hereinafter, 1 is a logical unit. If such sets exist, you need to find at least one of them.
Известен процессор, состоящий из арифметико-логического устройства (АЛУ), устройства управления (УУ), оперативной памяти (ОП), устройства ввода-вывода (УВВ) и постоянной памяти (ПП) (Каган Б.М. Электронные вычислительные машины и системы, М. Энергоатомиздат, 1985). A known processor consisting of an arithmetic logic device (ALU), control device (UE), random access memory (OP), input-output device (I / O) and read-only memory (PP) (Kagan B.M. Electronic computers and systems, M. Energoatomizdat, 1985).
Данная структура является универсальной, которую можно использовать, в том числе, и для решения задачи о выполнимости булевых формул. This structure is universal, which can be used, inter alia, to solve the problem of the feasibility of Boolean formulas.
едостатком рассмотренной универсальной структуры процессора является невозможность ее использования при большой размерности задачи, т.к. число М машинных тактов, необходимых для решения задачи о выполнимости булевых формул от n булевых переменных, в общем случае равно К*2n, где К некоторое (достаточно большое) число. При n порядка нескольких десятков М становится неприемлемо большим.a lack of the considered universal processor structure is the impossibility of its use with a large dimension of the task, because the number M of machine clocks necessary to solve the problem of the feasibility of Boolean formulas of n Boolean variables is generally equal to K * 2 n , where K is a (sufficiently large) number. For n of the order of several tens, M becomes unacceptably large.
Частично указанные недостатки устранены в высокопараллельном процессоре МРР (Massively Parallel Processor) фирмы Goodyear Aerospace (США), состоящем из: процессорной матрицы (ПМ), представляющей собой массив из 16384 процессорных элементов (ПЭ), каждый из которых является последовательно-поразрядным процессором, снабженным собственной локальной памятью объемом 1024 бита; устройства управления процессорной матрицей (УУПМ); переходной памяти (ПП) для буферизации и перекомпоновки данных; интерфейсной системы (ИС) для управления потоками данных, к которой подключается ведущая машина (HOST-машина) (СуперЭВМ. Аппаратная и программная реализация. Под. ред. С.Фернбаха, М. Радио и связь, 1991, гл.10, разделы 10.1 10.3, с. 215 - 246). Partially indicated disadvantages were eliminated in the high-parallel MPP processor (Massively Parallel Processor) of Goodyear Aerospace (USA), consisting of: a processor matrix (PM), which is an array of 16384 processor elements (PE), each of which is a sequential-bit processor equipped with own local memory of 1024 bits; processor matrix control devices (UPM); transition memory (PP) for buffering and re-arranging data; interface system (IS) for controlling the data flows to which the host machine (HOST machine) is connected (Supercomputer. Hardware and software implementation. Ed. by S. Fernbach, M. Radio and Communications, 1991, chap. 10, sections 10.1 10.3, p. 215 - 246).
Высокая степень параллелизма данного процессора позволяет повысить скорость решения задачи о выполнимости булевых формул, изначально обладающей высокой степенью параллелизма, в 16384 раза, однако в случае большого числа переменных и этого оказывается недостаточно. Кроме того, одному процессорному элементу для рассмотрения одного набора значений переменных требуется большое количество машинных тактов. A high degree of parallelism of this processor makes it possible to increase the speed of solving the problem of the feasibility of Boolean formulas, which initially has a high degree of parallelism, by 16384 times, but this is not enough in the case of a large number of variables. In addition, a single processor element to consider a single set of variable values requires a large number of machine clocks.
Задачей предлагаемого технического решения является упрощение устройства путем сведения процессорного элемента до уровня одной ячейки памяти и увеличение его быстродействия путем уменьшения количества машинных тактов, требующихся процессорному элементу для рассмотрения одного варианта до одного. The objective of the proposed technical solution is to simplify the device by reducing the processor element to the level of one memory cell and increase its speed by reducing the number of machine clocks required by the processor element to consider one option to one.
Технический результат поставленной задачи достигается тем, что в высокопараллельном спецпроцессоре для решения задачи о выполнимости булевых формул, состоящем из процессорной матрицы, устройства управления и интерфейса предлагается i-й (i 1,2n) адресный вход процессорной матрицы соединить с i-м управляющим выходом устройства управления, вход сброса процессорной матрицы соединить с выходом сброса устройства управления, выход процессорной матрицы соединить с сигнальным входом устройства управления, вход запуска которого соединить с выходом запуска интерфейса, j-й (j=1,m) выход чтения устройства управления соединить с j-м входом чтения интерфейса, p-й (p 1,2+2(log2(L)} +2{ log2(m)} +{log2(n)}x} обозначает наименьшее целое, большее или равное х) вход загрузки устройства управления соединить с p-м выходом загрузки интерфейса, вход сброса устройства управления соединить с выходом сброса интерфейса, вход записи устройства управления соединить с выходом записи интерфейса, первый второй и третий выходы решения устройства управления соединены с первым, вторым и третьим входами решения интерфейса, соответственно, в состав процессорной матрицы включить идентичных блока записи и считывания, дешифратор адреса блока, входовой каскад элементов И, причем i1-й (i1 1, 2n1) вход дешифратора адреса блока сделать i1-м адресным входом процессорной матрицы, k1-й (k1 1,) выход дешифратора адреса блока соединить с разрешающим входом k1-го блока записи и считывания, i2-й (i2 1,2n2) вход адреса строки каждого блока записи и считывания соединить с i2+2n1-м адресным входом процессорной матрицы, i3-й (i3 1,2n3) вход адреса столбца каждого блока записи и считывания соединить с i3 + 2n1+2n2-м адресным входом процессорной матрицы, вход сброса каждого блока записи и считывания соединить с входом сброса процессорной матрицы, выход k1-го (k1 1,) блока записи и считывания соединить с k1-м входом входового каскада элементов И, выход которого соединить выходом процессорной матрицы, при этом каждый блок записи и считывания содержит матрицу запоминающих ячеек, дешифратор адреса строки, дешифратор адреса столбца, n2 -входовых каскадов элементов И, входовый главный каскад элементов И, 2n2 ключей, выполненных в виде элементов И с двумя входами, причем k2-й (k2 1,) выход дешифратора адреса строки соединить с первыми входами выборки всех запоминающих ячеек k2-й строки матрицы запоминающих ячеек, k3-й (k3 1,) выход дешифратора адреса столбца соединить с вторыми входами выборки всех запоминающих ячеек k3-го столбца матрицы запоминающих ячеек, первый вход i2-го (i2 1,2n2) ключа соединить i2-м входом адреса строки блока записи и считывания, второй вход каждого ключа соединить с разрешающим входом блока записи и считывания, i2-й (i2 1,2n2) вход дешифратора адреса строки соединить с выходом i2-го ключа, i3-й (i3 1,2n3) вход дешифратора адреса столбца соединить с i3-м входом адреса столбца блока записи и считывания, вход сброса каждой из запоминающих ячеек соединить с входом сброса блока записи и считывания, выход k3-й запоминающей ячейки k2-го ряда матрицы запоминающих ячеек соединить с k3 входом k2-го каскада элементов И, выход k2-го каскада элементов И соединить с k2-м входом входового главного каскада элементов И, выход которого соединить выходом блока записи и считывания, в состав каждой запоминающей ячейки включить запоминающий элемент и логический элемент И с двумя входами, причем первый и второй входы логического элемента И соединить с первым и вторым входами выборки запоминающей ячейки, выход элемента И соединить с входом записи единицы запоминающего элемента, вход записи нуля запоминающего элемента соединить с входом сброса запоминающей ячейки, прямой выход запоминающего элемента соединить выходом запоминающей ячейки; дешифраторы адресов блока, строк и столбцов выполнить в виде параллельных адресных дешифраторов, имеющих 2N выходов и 2N адресных входов (N=n1, n2, n3 для дешифраторов блока, адреса строки и адреса столбца соответственно), по одному независимому входу для нулевого и для единичного значения каждого двоичного разряда адреса, в состав 2N-входового (N n1, n2, n3) каскада элементов И включить 2N-1 элементов И с двумя входами, расположенных на N уровнях, при этом на I-м (I 1, N) уровне расположить 2N-I элементов, входы каскада с номерами 2k1-1 и 2k1 (k1 1,2N-1) соединить с входами элемента И с номером k1 первого уровня, выходы элементов И с номерами 2kI-1 и 2kI (k 1,2N-I) I-го уровня соединить с входами элемента И номер kI I+1-го уровня, выход одного элемента И N-го уровня сделать выходом всего каскада; в состав устройства управления включить блок выбора дизъюнкций, блок адресации, m+1 разрядный счетчик циклов по модулю 2m+1, блок элементов И, m+1 разрядный регистр номера последнего цикла, блок ИЛИ-Е, блок переключателей, первый и второй определители порядка дизъюнкций, блок элементов ИЛИ, блок синхронизации, элемент ИЛИ с двумя входами, причем выход j-го (j 1,m+1) разряда регистра номера последнего цикла соединить с 2j-1-м входом блока элементов И, выход j-го разряда счетчика циклов соединить с 2j-входом блока элементов И с 2(m+1) входами, выход блока элементов И с 2(m+1) входами соединить с первым выходом решения устройства управления и с первым входом элемента ИЛИ, выход j-го (j 1,m) разряда счетчика циклов соединить с j-м управляющим входом блока выбора дизъюнкций, l-й (l 1,L), выход которого соединить с l-м входом блока переключателей и с l-м входом блока ИЛИ-Е, выход блока ИЛИ-Е соединить с вторым выходом решения устройства управления и с вторым входом элемента ИЛИ, l-й выход блока переключателей соединить с l-м входом первого определителя порядка дизъюнкций, L+l+1-й выход блока переключателей соединить с l-м, входом второго определителя порядка дизъюнкций, L+1-й выход блока переключателей соединить с L+1-м входом первого определителя порядка дизъюнкций, 2L+2-й выход блока переключателей соединить с L+1-м входом второго определителя порядка дизъюнкций, l-е выходы первого и второго определителей порядка дизъюнкций соединить, соответственно, с 2l+1-м и 2l-м входами блока элементов ИЛИ, l-й выход которого соединить с 1-м управляющим входом блока адресации, i-й (i 1,2n, n n1 + n2 + n3), управляющий выход которого соединить с i-м управляющим выходом устройства управления, сигнальный выход первого определителя порядка дизъюнкций соединить с первым входом блока синхронизации, сигнальный выход второго определителя порядка дизъюнкций соединить с вторым входом блока синхронизации, третий вход блока синхронизации соединить с сигнальным входом устройства управления, четвертый вход блока синхронизации соединить с входом запуска устройства управления, пятый вход блока синхронизации соединить с выходом логического элемента ИЛИ, первый выход блока синхронизации соединить с третьим выходом решения устройства управления, второй выход блока синхронизации соединить с L+1-м входом блока переключателей, третий выход блока синхронизации соединить с L+2-м входом блока переключателей, четвертый выход блока синхронизации соединить со счетным входом счетчика циклов и с выходом сброса устройства управления, p1-й вход (p1 1,log2(m)}) загрузки регистра номера последнего цикла соединить с p1-м входом загрузки устройства управления, q2 1,log2(m)} +log2(L)}+1) вход загрузки блока выбора дизъюнкций соединить с p2-м (p2 q2+{log2(m)}) входом загрузки устройства управления, q3-й (q3 1,log2(n)} +log2(L)}+1), вход загрузки блока адресации соединить с p3-м (p3 q3 + 2*{log2(m)} +log2(L)}+1) входом загрузки устройства управления, входы сброса блока выбора дизъюнкций, блока адресации, счетчика циклов и регистра номера последнего цикла соединить с входом сброса устройства управления, входы записи блока выбора дизъюнкций, блока адресации и регистра номера последнего цикла соединить с входом записи устройства управления, в состав блока выбора дизъюнкций включить m инверторов, дешифратор адреса схемы, дешифратор адреса ячейки и L схем выбора, причем j-й (j 1,m) управляющий вход блока выбора дизъюнкций соединить с 2j-1-ми управляющими входами всех схем выбора и с входом j-го и инвертора, выход которого соединить с 2j-ми управляющими входами всех схем выбора, выход l-й (l=1,L) схемы выбора соединить с l-м выходом блока выбора дизъюнкций, q4-й (q4 1,log2(L)}) вход загрузки блока выбора дизъюнкций соединить с q4-м входом дешифратора адреса схемы, 1-й выход которого соединить с разрешающим входом 1-й схемы выбора, q5-й (q5log2(L)}+1,log2(m)}+{log2(L)}+1), вход загрузки блока выбора дизъюнкций соединить с q5-{log2(L)}-м входом дешифратора адреса ячейки, j1-й (j1 1,2m) выход которого соединить с j1-ми входами выборки всех схем выбора, входы сброса и записи каждой схемы выбора соединить с входами сброса и записи блока выбора дизъюнкций, в состав каждой схемы выбора включить 2m запоминающих элементов, 2m элементов И с двумя входами, 2m элементов И с тремя входами, m элементов ИЛИ с тремя входами, элемент И-Е, блок элементов И, причем в каждой схеме выбора прямой выход 2j-1-го (j=1,m) запоминающего элемента соединить с первым входом j-го элемента ИЛИ, прямой выход 2j-го запоминающего элемента соединить с первым входом 2j-1-го элемента И с двумя входами, инверсный выход 2j-го запоминающего элемента соединить с первым входом 2j-го элемента и с двумя входами, второй вход 2j-1-го элемента И с двумя входами соединить с 2j-1-м управляющим входом схемы выбора, второй вход 2j-го элемента И с двумя входами соединить с 2j-м управляющим входом схемы выбора, выходы 2j-1-го и 2j-го элементов И с двумя входами соединить с вторым и третьим входами j-го элемента ИЛИ, выход j-го элемента ИЛИ соединить с j-м входом блока элементов И, выход которого соединить с выходом схемы выбора, прямые выходы первого и второго запоминающих элементов соединить с первым и вторым входами элемента И-Е, выход которого соединить с m+1-м входом блока элементов И, вход записи единицы j1-го (j1 1,2m) запоминающего элемента соединить с выходом j1-го элемента И с тремя входами, входы записи нуля всех запоминающих элементов соединены с входом сброса схемы выбора, первый вход j1-го элемента И с тремя входами соединить с j1-м входом выборки схемы выбора, вторые входы всех элементов И с тремя входами соединить с разрешающим входом схемы выбора, третьи входы всех элементов И с тремя входами соединить с входом записи схемы выбора; в состав блока адресации включить дешифратор адреса схемы, дешифратор адреса ячейки, n n1 + n2 + n3 схем адресации, причем l-e (l 1,L) управляющие входы всех схем адресации соединить с l-м управляющим входом блока адресации, первый и второй выходы i-й (i 1,n) схемы адресации соединить с 2i-1-м и 2i-м выходами блока, q6-й (q6 1,log2(n)}) вход загрузки блока адресации соединен с q6-м входом дешифратора адреса схемы, i-й выход которого соединить с разрешающим входом i-й схемы выбора, q7-й (q7log2(n)}+1,log2(n)}+log2(L)}+1), вход загрузки блока адресации соединить с q7-{log2(n)}-м входом дешифратора адреса ячейки, l1-й (l1 1,2L), выход которого соединить с l1-ми входами выборки всех схем адресации, входы сброса и записи каждой схемы адресации соединить с входами сброса и записи блока адресации, в состав каждой схемы адресации включить 2L запоминающих элементов, два блока элементов ИЛИ с L входами каждый, 2L ключей, выполненных в виде элементов И с двумя входами, 2L элементов И с тремя входами, причем прямые выходы 2l-1-го и 2l-го (l=1,L) запоминающих элементов, соединить с первыми входами 2l-1-го и 2l-го ключей, вторые входы 2l-1-го и 2l-го ключей соединить с l-м управляющим входом схемы адресации, выходы всех нечетных ключей соединить с входами первого блока элементов ИЛИ, выходы всех четных ключей соединить с входами второго логического блока ИЛИ, выходы первого и второго логических блоков ИЛИ соединить с первым и вторым выходами схемы адресации, вход записи единицы l1-го (l1 1, 2L) запоминающего элемента соединить с выходом l1-го элемента И с тремя входами, входы записи нуля всех запоминающих элементов соединить с входом сброса схемы адресации, первый вход l1-го элемента И с тремя входами соединить с l1-м входом выборки схемы адресации, вторые входы всех элементов И с тремя входами соединены с разрешающим входом схемы адресации, третьи входы всех элементов И с тремя входами соединить с входом записи схемы адресации.The technical result of the task is achieved by the fact that in a highly parallel special processor to solve the problem of the feasibility of Boolean formulas, consisting of a processor matrix, control device and interface, it is proposed that the ith (i 1,2n) address input of the processor matrix be connected to the ith control output of the device control, the reset input of the processor matrix is connected to the reset output of the control device, the output of the processor matrix is connected to the signal input of the control device, the start input of which is connected to the output ohm trigger interface, j-th (j = 1, m) reading output control device connected to the j-th input interface read, p-th (
В состав блока синхронизации предлагается включить инвертор, два логических элемента И с двумя входами, RS-триггер, три логических элемента ИЛИ с двумя входами, генератор тактовых импульсов, Т-триггер, две линии задержки, причем первый и второй входы блока соединить с первым и вторым входами первого элемента ИЛИ, третий вход блока соединить с вторым входом второго элемента И, первый вход которого соединить с выходом Q RS-триггера, выход первого элемента ИЛИ через первую линию задержки соединить с первым входом первого элемента И, третий вход блока через инвертор соединить с вторым входом первого элемента И, выход первого элемента И соединить с первым выходом блока и с первым входом третьего элемента ИЛИ, выход второго элемента И соединить с вторым входом второго элемента ИЛИ, первый вход которого соединить с четвертым входом блока синхронизации, выход второго элемента ИЛИ соединить с четвертым выходом блока, со счетным входом Т-триггера, с входом R RS-триггера и через вторую линию задержки на половину такта с входом S RS-триггера, выход Т-триггера соединить с третьим выходом блока, четвертый вход блока соединить с входом запуска генератора, выход генератора соединить с вторым выходом блока, пятый вход блока соединить с вторым входом третьего элемента ИЛИ, выход которого соединить с входом остановки генератора. It is proposed to include an inverter, two AND logic elements with two inputs, an RS-trigger, three OR logical elements with two inputs, a clock generator, a T-trigger, two delay lines, and connect the first and second inputs of the block to the first and the second inputs of the first OR element, connect the third input of the block to the second input of the second And element, the first input of which is connected to the output Q of the RS trigger, the output of the first OR element through the first delay line connect to the first input of the first And element, the third input b lock through an inverter to connect to the second input of the first AND element, the output of the first AND element to connect to the first output of the block and to the first input of the third OR element, the output of the second AND element to the second input of the second OR element, the first input of which to connect to the fourth input of the synchronization block, the output of the second OR element is connected to the fourth output of the block, with the counting input of the T-trigger, with the input R of the RS-trigger and through the second half-cycle delay line with the input S of the RS-trigger, the output of the T-trigger is connected to the third output of the block, connect the fourth block input to the generator start input, connect the generator output to the second block output, connect the fifth block input to the second input of the third OR element, the output of which is connected to the generator stop input.
В состав определителя порядка дизъюнкций предлагается включить L ключей с одним управляющим входом, управляющим выходом, тактовым входом и тактовым выходом, при этом управляющий вход l-го (l 1,L) ключа соединить с l-м входом определителя, управляющий выход l-го ключа соединить с управляющим выходом определителя, тактовый вход первого ключа соединить с L+1-м входом определителя, тактовый вход l-го ключа (l 2,L) соединить с тактовым выходом l+1-го ключа, тактовый выход L-го ключа соединить с сигнальным выходом определителя, в состав каждого из ключей включить RS-триггер, два элемента И с двумя входами каждый, линию задержки на половину машинного такта, при этом управляющий вход ключа соединить с входом S RS-триггера, выход Q RS-триггера соединить с вторым входом второго элемента И, выход RS-триггера соединить с вторым входом первого элемента И, первые входы элементов И соединить с тактовым входом ключа, выход первого элемента И соединить с тактовым выходом ключа, выход второго элемента И соединить с управляющим выходом ключа и через линию задержки с входом R RS-триггера.It is proposed to include L keys with one control input, a control output, a clock input and a clock output in the determinant of the order of disjunctions, while the control input of the lth (
В состав блока переключателей с L+2 входами и 2(L+1) выходами предлагается включить инвертор и 2(L+1) ключ, выполненный в виде логического элемента И с двумя входами, причем L+2-й вход блока соединить с первыми входами всех ключей с номерами большими L+1 и с входом инвертора, выход которого соединить с первыми входами всех ключей с номерами, меньшими или равными L+1, l-й (l 1,L, L+1), вход блока соединить с вторыми входами l-го и L+l+l-го ключей, выход l-го ключа (l=1,2L+1, l1≠L+1)) соединить с l-м выходом блока, выход 2L+1-го ключа соединить с L+2-м выходом блока, выход 2L+2-го ключа соединить с L+1-м выходом блока.The structure of the switch block with L + 2 inputs and 2 (L + 1) outputs is proposed to include an inverter and 2 (L + 1) key, made in the form of a logical element And with two inputs, and connect the L + 2-nd input of the block with the first the inputs of all keys with numbers greater than L + 1 and with the input of the inverter, the output of which is connected to the first inputs of all keys with numbers less than or equal to L + 1, l-th (
В состав блока элементов ИЛИ с 2L входами и L выходами предлагается включить L элементов ИЛИ с двумя входами, причем 2l-1-й (l 1,L) вход блока соединить с первым входом l-го элемента ИЛИ, 2l-й (l 1,L) вход блока соединить с вторым входом l-го элемента ИЛИ, выход которого соединить с l-м выходом блока. It is proposed to include L OR elements with two inputs in the OR block with 2L inputs and L outputs, and connect the 2l-1st (
Логический блок ИЛИ с L входами предлагается выполнить в виде p-уровневого (p [log2L]) каскада элементов ИЛИ, причем, на первом уровне расположить [L/2] элементов ([] обозначает целую часть числа), на q-м (q 1,p) уровне расположить s(q) элементов ИЛИ, при этом s(q+1)=[s(q)/2] все кроме последних элементы ИЛИ всех уровней должны иметь по два входа, последний элемент первого уровня должен иметь два входа, если L четное, и три входа, если L нечетное, последний элемент q + 1-го уровня должен иметь два входа, если s(q) четное, и три входа, если s(q) нечетное, 2l1-й и 2l1-1-й (l1 1,[L/2]) входы блока соединить с входами L1-го элемента ИЛИ первого уровня, если L нечетно, то последний вход блока соединить с третьим входом последнего элемента ИЛИ первого уровня, выходы 2lq и 2lq-1-го (lq 1,[s(q)/2] элементов ИЛИ q-го уровня соединить с входами lq-го элемента q+1-го уровня, если s(q) нечетно, то выход последнего элемента q-го уровня соединить с третьим входом последнего элемента q+1-го уровня, выход элемента последнего уровня соединить с выходом блока.It is proposed to perform an OR logical block with L inputs in the form of a p-level (p [log 2 L]) cascade of OR elements, and, on the first level, arrange [L / 2] elements ([] denotes the integer part of the number), on the qth (
Логический блок И с N входами (N L+1) предлагается выполнить в виде p-уровневого (p [log2 N] каскада элементов И, причем, на первом уровне расположить [N/2] элементов ([ обозначает целую часть числа), на q-м (q 1,p) уровне расположить s(q) элементов И, при этом s(q+1)=[s(q)/2] все кроме последних элементы И всех уровней должны иметь по два входа, последний элемент первого уровня должен иметь два входа, если N четное, и три входа, если N нечетное, последний элемент q + 1-го уровня должен иметь два входа, если s(q) четное, и три входа, если s(q) нечетное, 2l1-й и 2l1-1-й (l 1,[N/2] входы блока соединить с входами 11-го элемента И первого уровня, если N нечетно, то последний вход блока соединить с третьим входом последнего элемента И первого уровня, выходы 2lq-го и 2lq-1-го (l 1,[s(q)/2]) элементов ИЛИ q-го уровня соединить с входами lq-го элемента q+1-го уровня, если s(q) нечетно, то выход последнего элемента q-го уровня соединить с третьим входом последнего элемента q+1-го уровня, выход элемента последнего уровня соединить с выходом блока.The logical block AND with N inputs (N L + 1) is proposed to be performed in the form of a p-level (p [log 2 N] cascade of AND elements, and, on the first level, arrange [N / 2] elements ([denotes the integer part of the number), at the qth (
В состав логического блока ИЛИ-Е с L входами предлагается включить логический блок ИЛИ c L входами и инвертор, при этом выход логического блока ИЛИ с L входами соединить с входом инвертора, выход которого соединить с выходом блока ИЛИ-Е. It is proposed to include an OR logic block with L inputs and an inverter in the OR-E logic block with L inputs, and connect the output of the OR logical block with L inputs to the inverter input, the output of which should be connected to the output of the OR-E block.
а фиг.1 изображена функциональная схема спецпроцессора для решения задач о выполнимости булевых формул; на фиг.2 функциональная схема процессорной матрицы; на фиг.3 функциональная схема блока параллельной записи и считывания; на фиг.4 функциональная схема запоминающей ячейки; на фиг.5 - функциональная схема параллельного адресного дешифратора с 2n входами и 2n выходами (n= 2); на фиг.6 функциональная схема 2N-входового каскада элементов И; на фиг. 7 функциональная схема устройства управления; на фиг.8 - функциональная схема блока выбора дизъюнкций; на фиг.9 функциональная схема схемы выбора; на фиг. 10 функциональная схема блока адресации; на фиг.11 - функциональная схема схемы адресации; на фиг.12 функциональная схема блока синхронизации; на фиг. 13 функциональная схема определителя порядка дизъюнкций; на фиг.14 функциональная схема ключа определителя порядка дизъюнкций; на фиг.15 функциональная схема блока переключателей; на фиг.16 - функциональная схема блока элементов ИЛИ устройства управления; на фиг.17 - функциональная схема логического блока элементов ИЛИ; на фиг.18 - функциональная схема логического блока элементов И; на фиг. 19 функциональная схема логического блока ИЛИ-Е.and figure 1 shows a functional diagram of a special processor for solving problems on the feasibility of Boolean formulas; figure 2 functional diagram of the processor matrix; figure 3 is a functional diagram of a parallel write and read unit; figure 4 is a functional diagram of a storage cell; figure 5 is a functional diagram of a parallel address decoder with 2n inputs and 2n outputs (n = 2); Fig.6 functional diagram 2 of the N- input cascade of elements And; in FIG. 7 is a functional diagram of a control device; on Fig - functional block diagram of the choice of clauses; Fig.9 is a functional diagram of a selection circuit; in FIG. 10 functional diagram of the addressing unit; figure 11 is a functional diagram of an addressing scheme; 12 is a functional diagram of a synchronization unit; in FIG. 13 functional diagram of the determinant of the order of disjunctions; on Fig functional diagram of the key determinant of the order of disjunctions; on Fig functional block diagram of the switches; on Fig is a functional diagram of a block of elements OR control device; on Fig is a functional diagram of a logical block of elements OR; Fig. 18 is a functional diagram of a logical block of AND elements; in FIG. 19 is a functional diagram of a logical block OR-E.
Высокопараллельный спецпроцессор для решения задачи о выполнимости булевых формул состоит (фиг.1) из процессорной матрицы 1, устройства 2 управления и интерфейса 3. A highly parallel special processor for solving the problem of the feasibility of Boolean formulas (Fig. 1) consists of a
Процессорная матрица 1 имеет 2n адресных входов 4, вход 5 сброса и один выход 6. The
Устройство управления имеет вход запуска 7, сигнальный вход 8, 2+2{ log2(L)}+2{log2(m)} +{log2(n)}входов 9 загрузки (гдеx} обозначает наименьшее целое большее или равное х), вход 10 сброса, вход 11 записи, 2n управляющих выходов 12, три выхода решения 13, 14, 15, m выходов чтения 16 и выход сброса 17.The control device has a
При этом i-й (i 1,2n) адресный вход 4i процессорной матрицы 1 соединен с i-м управляющим выходом 12i устройства 2 управления, вход 5 сброса процессорной матрицы 1 соединен с выходом 17 сброса устройства 2 управления, выход 6 процессорной матрицы 1 соединен с сигнальным входом 8 устройства 2 управления.In this case, the i-th (i 1,2n)
Вход 7 запуска устройства 2 управления соединен с выходом 18 запуска интерфейса 3, j-й (j 1,m) выход 16j чтения устройства 2 управления соединен с j-м входом 19j чтения интерфейса 3, p-й (p 1,2+2{log2(L)}+2{log2(m)}+{ log2(n)} ), вход 9p загрузки устройства 2 управления соединен с p-м выходом 20p загрузки интерфейса 3. Вход 10 сброса устройства 2 управления соединен с выходом 21 сброса интерфейса 3, вход 11 записи устройства 2 управления соединен с выходом 22 записи интерфейса 3, первый 13, второй 14 и третий 15 выходы решения устройства 2 управления соединены с первым 23, вторым 24 и третьим 25 входами решения интерфейса, соответственно.The
Процессорная матрица 1 (фиг.2) содержит:
идентичных блоков 26 записи и считывания с входами 27 адреса строки, входами 28 адреса столбца, разрешающим входом 29, входом сброса и одним выходом 30;
дешифратор 31 адреса блока с 2n1 входами и выходами 32;
-входовый каскад 33 элементов И.The processor matrix 1 (figure 2) contains:
a
При этом i1-й (i1 1,2n1) вход дешифратора 31 адреса блока является i1-м адресным входом устройства 1 параллельной записи и считывания, k1-й (k1 1,) выход дешифратора 31 адреса блока соединен с разрешающим входом 29 k1-го блока .Moreover, the i 1st (i 1 1,2n 1 ) input of the
i2-й (i2 1,2n2) вход адреса строки каждого блока 26 записи и считывания соединен с i2+2n1-м адресным входом устройства 1 параллельной записи и считывания.i 2nd (i 2 1,2n 2 ) input the address of the line of each
i3-й (i3 1,2n3) вход адреса столбца каждого блока 26 соединен с i3+2n1+2n2-м адресным входом устройства параллельной записи и считывания 1.i 3rd (i 3 1,2n 3 ) column address input each
Вход сброса каждого блока 26 соединен с входом сброса 5 процессорной матрицы 1. The reset input of each
Выход 30 k1-го (k1 1,) блока 26 соединен с k1-м входом - входового каскада 33 элементов И, выход которого является выходом 6 процессорной матрицы 1.Exit 30 k 1st (
Каждый блок 26 записи и считывания (фиг.3) содержит:
матрицу запоминающих ячеек 35;
дешифратор 36 адреса строки с 2n2 входами 37 и выходами 38;
дешифратор 39 адреса столбца с 2n3 входами 40 и выходами 41;
n2 -входовых каскадов 42 элементов И
-входовый главный каскад 43 элементов И;
2n2 ключей 44, выполненных в виде элементов И с двумя входами.Each
the matrix storage cells 35;
n 2 -input stages 42 elements AND
-input main cascade of 43 And elements;
2n 2 keys 44, made in the form of elements AND with two inputs.
При этом k2-й (k2 1,) выход дешифратора 36 адреса строки соединен с первыми входами 45 выборки всех запоминающих ячеек k2-й строки матрицы запоминающих ячеек, k3-й (k3 1,) выход дешифратора 39 адреса столбца соединен с вторыми входами 46 выборки всех запоминающих ячеек k3-го столбца матрицы запоминающих ячеек.Moreover, k 2- th (
Первый вход i2-го (i2 1,2n2) ключа соединен с i2-м входом адреса строки блока, второй вход каждого ключа 44 соединен с разрешающим входом 29 блока.The first input i 2- th (i 2 1,2n 2 ) key connected to i 2nd input block line address, the second input of each key 44 is connected to the enable
i2-й (i2= 1,2n2) вход дешифратора 36 адреса строки соединен с выходом i2-го ключа , i3-й (i3 1,2n3) вход дешифратора 39 адреса столбца соединен с i3-м входом адреса столбца блока.i 2nd (i 2 = 1,2n 2 )
Вход 47 сброса каждой из запоминающих ячеек соединен с входом 34 сброса блока 26 записи и считывания, выход k3-й запоминающей ячейки k2-го ряда матрицы запоминающих ячеек соединен с k3-м входом k2-го каскада элементов И, выход k2-го каскада элементов И соединен с k2-м входом -входового главного каскада 43 элементов И, выход которого является выходом блока 26 записи и считывания.The
Каждая запоминающая ячейка 35 (фиг.4) содержит:
запоминающий элемент 50;
логический элемент И 51 с двумя входами.Each storage cell 35 (figure 4) contains:
logic element AND 51 with two inputs.
При этом первый и второй входы логического элемента И 51 соединены с первым 45 и вторым 46 входами выборки запоминающей ячейки 35, выход элемента И соединен с входом записи единицы запоминающего элемента 50, вход записи нуля запоминающего элемента 50 соединен с входом 47 сброса запоминающей ячейки 35. Прямой выход запоминающего элемента является выходом запоминающей ячейки 35. In this case, the first and second inputs of the logic element And 51 are connected to the first 45 and second 46 inputs of the sample of the memory cell 35, the output of the element And is connected to the recording input of the unit of the
Дешифраторы адресов блока, строк и столбцов (фиг.5) выполнены в виде параллельных адресных дешифраторов, имеющих 2N выходов 52 и 2N адресных входов 53 (N n1, n2, n3 для дешифраторов блока, адреса строки и адреса столбца соответственно), по одному независимому входу для нулевого и для единичного значения каждого двоичного разряда адреса.The decoders of the addresses of the block, rows and columns (Fig. 5) are made in the form of parallel address decoders having 2 N
2N-входовый (фиг. 6) (N n1, n2, n3) каскад элементов И содержит 2N-1 элементов И 54 с двумя входами, расположенных на N уровнях, при этом на I-м (I= 1,N) уровне имеется 2N-I элементов, входы каскада (k1 1, 2N-1) соединены с входами элемента И первого уровня, выходы элементов И (k1 1,2N-I) I-го уровня соединены с входами элемента И I+1-го уровня, выход одного элемента И 54N,1 N-го уровня является выходом 56 всего каскада.2 N- input (Fig. 6) (N n 1 , n 2 , n 3 ) cascade of elements And contains 2 N -1 elements And 54 with two inputs located at N levels, while on the I-th (I = 1 , N) level there are 2 NI elements, inputs cascade (
Устройство 2 управления содержит (фиг.7):
блок 57 выбора дизъюнкций с m управляющими входами 58, входом 59 сброса, входом 60 записи,log2(m)}+{log2(L)}+1 входом 61 загрузки и L выходами 62;
блок 63 адресации с m управляющими входами 64, входом 65 сброса, входом 66 записи,log(L)}+{log(n)}+1 входом 67 загрузки и 2n выходами 68;
m+1-разрядный счетчик 69 циклов по модулю 2m+1 c m+1 выходом 70 и счетным входом 71;
блок элементов И 72 с 2(m+1) входами 73 и выходом 74;
m+1-разрядный регистр 75 номера последнего цикла с m+1 выходом 76, log2(m)} входами 77 загрузки, входом записи и входом сброса;
блок ИЛИ-Е 78 с L входами 79 и выходом 80;
блок 81 переключателей с L+2 входами 82 (l=1,L), 83, 84 и 2(L+1) выходом 85;
первый 86 и второй 87 определители порядка дизъюнкций c L+1 входом 88, L управляющими выходами 89, сигнальным выходом 90;
блок 91 элементов ИЛИ с 2L входами 92 и L выходами 93;
блок 94 синхронизации с пятью входами 95-99 и четырьмя выходами 100-103;
элемент ИЛИ 104 с двумя входами.The
addressing
m + 1-
block of elements And 72 with 2 (m + 1)
m + 1-
block OR-
the first 86 and second 87 determinants of the order of disjunctions with L + 1
a block of 91 OR elements with
OR
При этом выход 76j j-го (j 1,m+1) разряда регистра 75 номера последнего цикла соединен с 2j-1-м входом 732j-1 блока элементов И 72. Выход 70j j-го разряда счетчика 69 циклов соединен с 2j-м входом 732j блока элементов И 72.In this case, the output of the 76th jth (
Выход 74 логического блока И 72 соединен с первым выходом 13 решения устройства 2 управления и с первым входом элемента ИЛИ 104. The output of the logical unit AND 72 is connected to the
Выход 70j j-го (j 1,m) разряда счетчика циклов 69 соединен с j-м управляющим входом 58j блока 57 выбора дизъюнкций, l-й (l 1,L) выход 62l которого соединен с l-м входом 82 блока 81 переключателей и с l-м входом 79l блока ИЛИ-Е 78.The
Выход 80 блока ИЛИ-Е 78 соединен со вторым выходом 14 решения устройства 2 и со вторым входом элемента ИЛИ 104. The
l-й (l 1.L) выход 85l блока 81 переключателей соединен с l-м входом 88l первого определителя 86 порядка дизъюнкций. L+l+1-й выход 85L+l+1 блока 81 переключателей соединен с l-м входом 88l второго определителя 87 переключателей соединен с L+1-м входом 88L+1 первого определителя 87 порядка дизъюнкций. 2L+2-й выход 852L+2 блока 81 переключателей соединен с L+1-м входом 88 второго определителя 86 порядка дизъюнкций.the l-th (l 1.L)
l-е выходы 89l первого 86 и второго 87 определителей порядка дизъюнкций соединены соответственно с входами 922l-1 и 922l блока 91 элементов ИЛИ, l-й выход 93l которого соединен с l-м управляющим входом 64l блока 63 адресации 63, i-й (i 1,2n n n1 + n2 + n3) выход 68i которого соединен i-м управляющим выходом 12i устройства 2 управления.the lth outputs 89 l of the first 86 and second 87 determinants of the order of disjunctions are connected respectively to the
Сигнальный выход 90 первого определителя 86 порядка дизъюнкций соединен с первым входом 95 блока 94 синхронизации, сигнальный выход 90 второго определителя 87 порядка дизъюнкций соединен со вторым входом 96 блока 94 синхронизации. The
Третий вход 97 блока 94 синхронизации соединен с сигнальным входом 8 устройства 2 управления. The
Четвертый вход 98 блока 94 синхронизации соединен с входом 7 запуска устройства 2 управления. The
Пятый вход 99 блока 94 синхронизации соединен с выходом логического элемента ИЛИ 104. The
Первый выход 100 блока 94 синхронизации соединен с третьим выходом 15 решения устройства 2 выбора адресов ячеек. The
Второй выход 101 блока 94 синхронизации соединен с L+1-м входом 83 блока 81 переключателей. The
Третий выход 102 блока 94 синхронизации соединен с L+2-м входом 84 блока 81 переключателей. The
Четвертый выход 103 блока синхронизации 94 соединен со счетным входом 71 счетчика 69 циклов и с выходом 17 сброса устройства 2 управления. The
p1-й вход (p1 1,log2(m)}) загрузки регистра 75 номера последнего цикла соединен с p1-м входом загрузки устройства 2 выбора адресов ячеек. q2-й (q2 1,log2(m)}+{log2(L)+1) вход загрузки блока 57 выбора дизъюнкций соединен с p2-м (p2 q2 +log2(m)}) входом загрузки устройства 2 управления, q3-й (q3 1,log2(n)}+{log2(L)}+1) вход загрузки блока 63 адресации соединен с p3-м (p3 q3+2*{log2(m)}+{log2(L)}+1) входом загрузки устройства 2 выбора адресов ячеек.p 1st entry (
Входы сброса блока 57 выбора дизъюнкций, блока 63 адресации, счетчика 69 циклов и регистра 75 номера последнего цикла соединены со входом 10 сброса устройства 2 управления. The reset inputs of the
Вход 60 записи блока 57 выбора дизъюнкций, вход 66 записи блока 63 адресации и вход записи регистра 75 номера последнего цикла соединены со входом 11 записи устройства 2 управления. The
Блок 57 выбора дизъюнкций (фиг.8) содержит:
m инверторов 105;
дешифратор 106 адреса схемы сlog2(L)} входами 107 и L выходами 108;
дешифратор 109 адреса ячейки сlog2(m)}+1 входом 110 и 2m выходами 111;
L схем 112 выбора с 2m управляющими входами 113, 2m входами 114 выборки, разрешающим входом 115, входом 116 сброса, входом 117 записи и одним выходом.The disjunction selection block 57 (Fig. 8) contains:
the
a
При этом j-й (j 1,m) управляющий вход 58j блока 57 выбора дизъюнкций соединен с 2j-1-ми управляющими входами 1132j-1 всех схем 112 выбора и с входом j-го инвертора 105j, выход которого соединен с 2j-ми управляющими входами 1132j всех схем 112 выбора.Moreover, the jth (
Выход l-й (l 1,L) схемы 112l выбора соединен с l-м выходом 62l блока 57 выбора дизъюнкций.The output of the l-th (
q4-й (q4 1,log2(L)}) вход загрузки блока 57 выбора дизъюнкций соединен с q4-м входом дешифратора 106 адреса схемы, l-й выход 108l которого соединен с разрешающим входом 115 l-й схемы 112l выбора, q5-й (q5 log2(L)} +1,log2(m)}+{log2(L)}+1) вход загрузки блока 57 выбора дизъюнкций соединен с q5-{log2(L)}-м входом дешифратора 109 адреса ячейки, j-й (j 1,2m) выход 111 которого соединен с j-ми входами 114j выборки всех схем 112 выбора. Входы сброса 116 и записи 117 каждой схемы 112 выбора соединены с входами сброса 59 и записи 60 блока.q 4th (
Каждая схема выбора 112 (фиг.9) содержит:
2m запоминающих элементов 118;
2m элементов И 119 с двумя входами 120, 121;
2m элементов И 122 с тремя входами 123, 124, 125;
m элементов ИЛИ 126 с тремя входами 127, 128, 129;
один элемент И-Е 130 с двумя входами 131, 132;
блок элементов И 133 с m+1 входом 134.Each selection circuit 112 (FIG. 9) contains:
2m elements And 119 with two
2m elements And 122 with three
m elements OR 126 with three
one
block of elements And 133 with m + 1
При этом прямой выход 135 2j-1-го (j= 1,m) запоминающего элемента 1182j-1 соединен с первым входом 127 j-го элемента ИЛИ 126j, прямой выход 135 2j-го запоминающего элемента 1182j соединен с первым входом 120 2j-1-го элемента И 1192j. Инверсный выход 136 2j-го запоминающего элемента 1182j соединен с первым входом 120 2j-го элемента И 1192j.In this case, the
Второй вход 121 2j-1-го элемента И 1192j-1 соединен с 2j-1-м управляющим входом 1132j-1 схемы 112 выбора. Второй вход 121 2j-го элемента И 1192j соединен с 2j-м управляющим входом 1132j схемы 112 выбора.The
Выходы 2j-1-го 1192j-1 и 2j-го 1192j элементов И соединены со вторым 128 и третьим 129 входами j-го элемента ИЛИ 126.The outputs of the 2j-
Выход j-го элемента ИЛИ 126j соединен с j-м входом 134j логического блока И 133, выход которого соединен с выходом схемы 112 выбора.The output of the j-th OR element 126 j is connected to the j-
Прямые выходы 135 первого 1181 и второго 1182 запоминающих элементов соединены с первым 131 и вторым 132 входами элемента И-Е 130, выход которого соединен с m+1-м входом логического блока И 133.
Вход записи единицы 137 j1-го (j1 1,2m) запоминающего элемента 118j1 соединен с выходом j1-го элемента И 122j1. Входы записи нуля 138 всех запоминающих элементов 118 соединены с входом сброса 116 схемы 112 выбора.The entry entry of the unit 137 j 1 st (
Первый вход 123 j1-го элемента И 122j1 соединен с j1-м входом выборки 114j1 схемы 112 выбора, вторые входы 124 всех элементов И 122 соединены с разрешающим входом 115 схемы 112 выбора, третьи входы 125 всех элементов И 122 соединены с входом записи 117 схемы 112 выбора.The first input 123 j of the 1st element AND 122 j1 is connected to the j 1st input of the
Блок 63 адресации (фиг.10) содержит:
дешифратор 139 адреса схемы сlog2(n)} входами 140 и n n1 + n2 + n3 выходами 141;
дешифратор 142 адреса ячейки сlog2(L)}+1 входом 143 и 2L выходами 144;
n схем 145 адресации с L управляющими входами 146, 2L входами 147 выборки, разрешающим входом 148, входом сброса 149, входом записи 150 и двумя выходами 151, 152.
a
a
n addressing circuits 145 with
При этом l-е (l 1,L) управляющие входы 146l всех схем 145 адресации соединены с l-м управляющим входом 64l блока 63 адресации.Moreover, the l-th (
Первый 151 и второй 152 выходы i-й (i 1,n) схемы 145 адресации соединены с 2i-1-м и 2i-м выходами 682i-1 и 682i блока 63, q6-й (q6 1,log2(n)}) вход загрузки блока 63 адресации соединен с q6-м входом дешифратора 139 адреса схемы, i-й выход 141i которого соединен с разрешающим входом 148 i-й схемы 145i адресации. qq7-й (q7log2(n)}+1,log2(L)}+1) вход загрузки блока 63 адресации соединен с q7-{log2(n)}-м входом дешифратора 142 адреса ячейки, l1-й (l1 1,21) выход которого соединен с l1-ми входами выборки всех схем 145 адресации. Входы сброса 149 и записи 150 каждой схемы 145 адресации соединены с входами сброса 65 и записи 66 блока 63.The first 151 and second 152 outputs of the ith (
Каждая схема 145 адресации (фиг.11) содержит:
2L запоминающих элементов 153;
два логических блока ИЛИ 154 с L входами 155 каждый;
2L ключей 156, выполненных в виде элементов И с двумя входами 157, 158;
2L элементов И 159 с тремя входами 160, 161, 162.Each addressing circuit 145 (FIG. 11) comprises:
2L of
two logical blocks OR 154 with
2L elements And 159 with three
При этом прямые выходы 163 2l-1-го 1532l-1 и 2l-го 1532l (l 1,L) запоминающих элементов соединены с первыми входами 157 2l-1-го 1562l-1 и 2l-го 1562l ключей соответственно. Вторые входы 158 2l-1-го 1562l-1 и 2l-го 1562l ключей соединены с l-м управляющим входом 146l схемы 145 адресации.In this case, the direct outputs of 163 2l-
Выходы всех нечетных ключей 156 соединены с входами 155 первого логического блока ИЛИ 154, выходы всех четных ключей 156 соединены с входами 155 второго логического блока ИЛИ 154. Выходы первого 154 и второго 154 логических блоков ИЛИ соединены с первым 151 и вторым 152 выходами схемы 145 адресации. The outputs of all the
Вход 164 записи единицы l1-го (l 1,2L) запоминающего элемента соединен с выходом i-го элемента И с тремя входами, входы 165 записи нуля всех запоминающих элементов 153 соединены с входом сброса 149 схемы 145 адресации.Input 164 recording unit l 1- th (
Второй вход 161 l1-го элемента И соединен с l1-м входом выборки схемы 145 адресации, первые входы 160 всех элементов И 159 соединены с разрешающим входом 148 схемы 145 адресации, третьи входы 162 всех элементов И 159 соединены с входом 150 записи схемы 145 адресации.The second input 161 l of the 1st element AND connected to l 1st sampling input addressing circuit 145,
Блок 94 синхронизации содержит (фиг.12):
инвертор 166;
два логических элемента И 167, 168 с двумя входами 169, 170 и 171, 172 каждый;
RS-триггер 173;
три логических элемента ИЛИ 174, 175, 176 с двумя входами 177, 178; 179, 180 и 181, 182 каждый;
генератор тактовых импульсов 183 с входом запуска 184 и входом остановки 185;
Т-триггер 186 со счетным входом 187;
две линии задержки 188 и 189.
two logical elements And 167, 168 with two
three logical elements OR 174, 175, 176 with two
a
T-
two
При этом, первый 95 и второй 96 входы блока 94 соединены с первым 177 и вторым 178 входами первого элемента ИЛИ 174, третий вход 97 соединен со вторым входом 172 второго элемента И 168, первый вход 171 которого соединен с выходом Q RS-триггера 173. Moreover, the first 95 and second 96 inputs of
Выход первого элемента ИЛИ 174 через первую линию задержки 188 соединен с первым входом 169 первого элемента И 167. The output of the first element OR 174 through the
Третий вход 97 блока 94 через инвертор 166 соединен с вторым входом 170 первого элемента И 167. Выход первого элемента И 167 соединен с первым выходом 100 блока 94 и с первым входом 181 третьего элемента ИЛИ 176. The
Выход второго элемента И 168 соединен со вторым входом 180 второго элемента ИЛИ 175, первый вход 179 которого соединен с четвертым входом 98 блока синхронизации 94. The output of the second AND
Выход второго элемента ИЛИ 175 соединен с четвертым выходом 103 блока 94, со счетным входом 187 Т-триггера 186, с входом R RS-триггера 173 и через вторую линию задержки 189 с входом S RS-триггера 173. The output of the second OR
Выход Т-триггера 186 соединен с третьим выходом 102 блока 94. The output of the T-
Четвертый вход 98 блока 94 соединен с входом 184 запуска генератора 183. Выход генератора 183 соединен с вторым выходом 101 блока 94. The
Пятый вход 99 блока 94 соединен с вторым входом 182 третьего элемента ИЛИ 176, выход которого соединен с входом 185 остановки генератора 183. The
Каждый из двух определителей порядка дизъюнкций 86, 87 (фиг.13) содержит L ключей 190 с управляющим входом 191, управляющим выходом 192, тактовым входом 193 и тактовым выходом 194. Each of the two determinants of the order of
При этом, управляющий вход 191 l-го (l 1,L) ключа 190l соединен с l-м входом 88l определителя. Управляющий выход 192 l-го ключа 190l соединен с l-м управляющим выходом 89l определителя. Тактовый вход 193 первого ключа 190 соединен с L+1-м входом 88L+1 определителя. Тактовый вход 193 l1-го ключа (l1 2,L) соединен с тактовым выходом 194 l1-1-го ключа . Тактовый выход 194 L-го ключа 190 соединен с сигнальным выходом 90 определителя.Moreover, the
Каждый из ключей 190 содержит (фиг.14):
RS-триггер 195;
два элемента И 196, 197 с двумя входами 198, 199 и 200, 201 соответственно;
линию 202 задержки на половину машинного такта.Each of the
RS flip-
two elements And 196, 197 with two
a
При этом, управляющий вход 191 ключа соединен с входом S RS-триггера 195. Выход Q RS-триггера 195 соединен с вторым входом 201 второго элемента И 197. Выход RS-триггера 195 соединен с вторым входом 199 первого элемента И 196. Первые входы 198 и 200 элементов И 196 и 197 соединены с тактовым входом 193 ключа.Moreover, the
Выход первого элемента И 196 соединен с тактовым выходом 194 ключа. Выход второго элемента И 197 соединен с управляющим выходом 192 ключа и через линию задержки 202 с входом R RS-триггера 195. The output of the first element And 196 is connected to the
Блок переключателей 81 (фиг.15) содержит:
инвертор 203;
2(L+1) ключ 204, выполненный в виде логического элемента И с двумя входами 205, 206.The switch block 81 (Fig.15) contains:
2 (L + 1)
При этом L+2-й вход 84 блока 81 соединен с первыми входами 205 всех ключей (l L+2,2L+2) и с входом инвеpтора 203, выход которого соединен с первыми входами 205 всех ключей 204l (l 1,L+1).In this case, the L +
l-й вход 82l (l 1.L) блока 81 соединен с вторыми входами 206 l-го и L+1+l-го ключей 204l и 204L+l+1.The l-th input 82 l (l 1.L) of
L+1-й вход 83 блока 81 соединен с вторыми входами 206 L+1-го и 2L+2-го ключей 204L+1 и 2042L+2.L +
Выход l-го ключа (l2 ≠ 1,2L+1, l L + 1) соединен с l2 выходом блока 81.L key output (l 2 ≠ 1,2L + 1, l L + 1) connected to l 2 output block 81.
Выход L+1-го ключа 204L+1 соединен с 2L+2-м выходом 852L+2 блока 81.The output of L + 1st key 204 L + 1 is connected to 2L +
Выход 2L+2-го ключа 2042L+2 соединен с L+1-м выходом 85L+1 блока 81.The output of 2L + 2nd key 204 2L + 2 is connected to the L +
Блок 91 элементов ИЛИ (фиг. 16) содержит L элементов ИЛИ 207 с двумя входами 208, 209.
При этом, 2l-1-й (l 1,L) вход 922l-1 блока 91 соединен с первым входом 208 l-го элемента ИЛИ 207l, 2l-й (l 1,L) вход 922l блока 91 соединен с вторым входом 209 l-го элемента ИЛИ 2072l, выход которого соединен с l-м выходом 93 блока 91.In this case, the 2l-1st (
Логический блок ИЛИ 154 с L входами (фиг.17) выполнен в виде p-уровневого (plog2L} гдеx} обозначает наименьшее целое большее или равное х) каскада элементов ИЛИ, причем, на первом уровне расположено [L/2} элементов ИЛИ ([ обозначает целую часть числа), на q-м (q 1,p) уровне расположено s(q) элементов ИЛИ.The OR
При этом, s(q + 1) [s(q)/2] Все, кроме последних, элементы ИЛИ всех уровней имеют по два входа, последний элемент первого уровня имеет два входа, если L четное, и три входа, если L нечетное. Последний элемент q + 1-го уровня имеет два входа, если s(q) четное, и три входа, если s(q) нечетное, 2l-й и 2l-1-й (l 1,[L/2]) входы блока являются входами l-го элемента ИЛИ первого уровня. Если L нечетно, последний вход блока является третьим входом последнего элемента ИЛИ первого уровня. Moreover, s (q + 1) [s (q) / 2] All but the last, OR elements of all levels have two inputs, the last element of the first level has two inputs if L is even, and three inputs if L is odd . The last element of q +
Выходы 2l-го и 2l-1-го (l 1,[s(q)/2]) элементов ИЛИ q-го уровня являются входами l-го элемента q+1-го уровня. Если s(q) нечетно, выход последнего элемента q-го уровня является третьим входом последнего элемента q+1-го уровня. Выход элемента последнего уровня является выходом блока. The outputs of the 2nd lth and 2ndlth (
Логический блок И 133 с N L + 1 входами (фиг.18) выполнен в виде уровневого (plog2N} гдеx} обозначает наименьшее целое большее или равное х) каскада элементов И, причем, на первом уровне расположено [N/2] элементов И ([ обозначает целую часть числа), на q-м (q 1,p) уровне расположено s(q) элементов И.The logical block And 133 with NL + 1 inputs (Fig. 18) is made in the form of a level (plog 2 N} where x} denotes the smallest integer greater than or equal to x) the cascade of elements And, moreover, [N / 2] elements And are located on the first level ([denotes the integer part of the number), at the qth (
При этом, s(q+1) [s(q)/2] Все, кроме последних, элементы И всех уровней имеют по два входа, последний элемент первого уровня имеет два входа, если N четное, и три входа, если N нечетное. Последний элемент q+1-го уровня имеет два входа, если s(q) четное, и три входа, если s(q) нечетное, 2l-й и 2l-1-й (l 1,[N/2]) входы блока являются входами l-го элемента ИЛИ первого уровня. Если N нечетно, последний вход блока является третьим входом последнего элемента ИЛИ первого уровня. Moreover, s (q + 1) [s (q) / 2] All but the last elements of And at all levels have two inputs, the last element of the first level has two inputs if N is even, and three inputs if N is odd . The last element of q +
Выходы 2l-го и 2l-1-го (l 1,[s(q)/2]) элементов И q-го уровня являются входами l-го элемента q+1-го уровня. Если s(q) нечетно, выход последнего элемента q-го уровня является третьим входом последнего элемента q+1-го уровня. Выход элемента последнего уровня является выходом блока. The outputs of the 2nd lth and 2ndlth (
Блок ИЛИ-Е 78 с L входами (фиг.19) содержит блок элементов ИЛИ 154 с L входами и инвертор. При этом, выход логического блока ИЛИ с L входами соединен с входом инвертора, выход которого является выходом блока 78. Block OR-
Работа спецпроцессора. Последовательность решения задачи. The work of a special processor. The sequence of solving the problem.
Если дизъюнкция D фактически не зависит от переменной z, будем говорить, что переменная z является безразличной для дизъюнкций D. If the disjunction D is actually independent of the variable z, we say that the variable z is indifferent to the disjunction D.
абор a1, a2,an значений переменных будем называть невыполняющим для некоторой дизъюнкции D, если
D(a1, a2,an) 0.the collection of a 1 , a 2 , a n values of variables will be called non-fulfilling for some disjunction D if
D (a 1 , a 2 , a n ) 0.
Очевидно, что для каждой дизъюнкции ее невыполняющий набор определен с точностью до безразличных для данной дизъюнкции переменных. Кроме того, невыполняющий набор для множества дизъюнкций равен объединению невыполняющих наборов для отдельных дизъюнкций этого множества. По этой причине проще находить невыполняющие наборы, чем выполняющие. Obviously, for each disjunction its non-performing set is defined up to the variables indifferent for the given disjunction. In addition, a non-performing set for a set of clauses is equal to a union of non-performing sets for individual clauses of this set. For this reason, it is easier to find non-performing sets than performing ones.
Для каждой дизъюнкции Dj и каждой переменной zi определим функцию St(Dj, zi), которую назовем статусом переменной x в дизъюнкции D:
St(Dj, zi) 0, если zi входит в D в виде литерала zi.For each disjunction D j and each variable z i, we define the function St (D j , z i ), which we call the status of the variable x in the disjunction D:
St (D j , z i ) 0 if z i enters D in the form of the literal z i .
St(Dj, zi) 1, если zi входит в D в виде литералаzi.St (D j , z i ) 1 if z i enters D in the form of the literal z i .
St(Dj, zi)= *, если zi безразличная переменная для D.St (D j , z i ) = * if z i is an indifferent variable for D.
Здесь и далее * специальный символ, знак логического отрицания. Hereinafter * a special symbol, a sign of logical negation.
Очевидно, что если в качестве значения каждой переменной брать ее статус в дизъюнкции D (при этом символ * означает, что можно брать любое значение данной переменной, как 0 так и 1), то получится один из невыполняющих данную функцию наборов. Т.е. Obviously, if we take its status in the disjunction D as the value of each variable (the symbol * means that you can take any value of this variable, either 0 or 1), we get one of the sets that do not perform this function. Those.
D(St(D, zi), St(D, z2),St(D, zn)) 0
апример, если имеются 4 переменные z1, z2, z3, z4 и дизъюнкция D имеет вид: z2 +z4, то переменные z1 и z3 являются безразличными для D.D (St (D, z i ), St (D, z 2 ), St (D, z n )) 0
For example, if there are 4 variables z 1 , z 2 , z 3 , z 4 and the disjunction D has the form: z 2 + z 4 , then the variables z 1 and z 3 are indifferent to D.
St(D, z1) *, St(D, z2) 0, St(D, z3) *, St(D, z4) 1
евыполняющими являются следующие наборы переменных:
z1 0, z2 0, z3 0, z4 1;
z1 0, z2 0, z3 1; z4 1;
z1 1, z2 0, z3 0, z1 1;
z1 1, z2 0, z3 1, z4 1;
Легко видеть, что количество невыполняющих наборов равно 2n-r, где r количество безразличных для рассматриваемой дизъюнкции переменных.St (D, z 1 ) *, St (D, z 2 ) 0, St (D, z 3 ) *, St (D, z 4 ) 1
The following sets of variables are executing:
It is easy to see that the number of non-performing sets is 2 nr , where r is the number of variables indifferent to the disjunction under consideration.
С целью оптимизации работы спецпроцессора различные наборы значений переменных рассматривают параллельно-последовательно. Все логические переменные, фигурирующие в задаче, разделяют на два типа. Поднаборы переменных второго типа рассматриваются последовательно. In order to optimize the operation of the special processor, various sets of variable values are considered in parallel-sequential fashion. All logical variables appearing in the problem are divided into two types. Subsets of variables of the second type are considered sequentially.
Будем называть работу спецпроцессора при данном фиксированном поднаборе bj} циклом, соответствующим поднаборуbj} При этом, цикл с двоичным номером b1b2.bm+1 соответствует поднабору b1, b2,bm значений переменных у1, y2,ym. евыполняющим на данном цикле поднабором переменных первого типа называется такой поднабор, который вместе с текущим поднабором значений переменных второго типа дает невыполняющий набор значений переменных.We shall call the work special processor subset at a given fixed cycle b j}, j} corresponding podnaborub Thus, the cycle with a binary number b 2 b 1 .b m +1 corresponds to subset b 1, b 2, b m values of the variables y 1, y 2 , y m . A subset of variables of the first type that is performing on a given cycle is a subset that, together with the current subset of values of variables of the second type, gives a non-performing set of variables.
Для каждого фиксированного поднабора b1.bm значений переменных второго типа и для каждой из рассматриваемых дизъюнкций D1, Dl все поднаборы а1,an значений переменных x1,xn первого типа рассматривают параллельно, среди них выделяют и запоминают невыполняющие на данном цикле поднаборы.For each fixed subset b 1 .b m of values of variables of the second type and for each of the disjunctions under consideration D 1 , D l, all subsets of 1 , a n of the values of variables x 1 , x n of the first type are considered in parallel, among them non-performing given subset cycle.
евыполняющим поднабором переменных второго типа называется такой поднабор, который вместе с хотя бы одним поднабором значений переменных первого типа дает невыполняющий набор значений переменных. An executing subset of variables of the second type is a subset that, together with at least one subset of the values of variables of the first type, provides a non-performing set of values of variables.
Очевидно, что поднабор b1, b2,bm значений переменных y1, y2, ym будет невыполняющим для дизъюнкцийD} в том и только том случае, когда для любого j выполняется одно из двух условий:
St(Dl, yj) * или St(Dl, yj) bj.Obviously, a subset of b 1 , b 2 , b m of values of the variables y 1 , y 2 , y m will be non-fulfilling for clauses D} if and only if for any j one of two conditions is satisfied:
St (D l , y j ) * or St (D l , y j ) b j .
При данном фиксированном поднабореbj} значений переменных yj, на решение задачи о нахождении невыполняющих все множество дизъюнкций поднаборовai} переменных xi могут влиять только те дизъюнкции Dl, для которых поднаборbj} является невыполняющим. Будем называть такие дизъюнкции действующими для данного поднабораbj} Соответственно, можно говорить о действующих на данном цикле дизъюнкциях.For a given fixed subset b j } of values of the variables y j , only those disjunctions D l for which the subset b j } is non-fulfilling can influence the solution of the problem of finding non-fulfilling the whole set of clauses of a subset of i } variables x i . We will call such clauses valid for a given subset b j } Accordingly, we can talk about clauses acting on a given cycle.
В ходе решения задачи для каждого цикла определяют действующие на нем дизъюнкции. Если ни одна из дизъюнкций не является действующей, делают вывод, что текущий поднабор значений переменных второго типа вместе с любым поднабором значений переменных первого типа дает решение задачи. В противном случае для каждой действующей дизъюнкции последовательно находят невыполняющие ее наборы значений переменных первого типа. In the course of solving the problem for each cycle, the disjunctions acting on it are determined. If none of the clauses is valid, conclude that the current subset of the values of the variables of the second type together with any subset of the values of the variables of the first type gives a solution to the problem. Otherwise, for each active disjunction, successive sets of values of variables of the first type are found.
Объединяя невыполняющие поднаборы переменных первого типа для всех действующих на данном цикле дизъюнкций рассматриваемого множества, получают невыполняющие поднаборы переменных первого типа для всего множества дизъюнкций. Если все поднаборы переменных первого типа оказываются невыполняющими, переходят к рассмотрению следующего поднабора переменных второго типа, т.е. к следующему циклу. В противном случае выбирают один из поднаборов переменных первого типа, не являющийся невыполняющим. Combining non-performing subsets of variables of the first type for all disjunctions acting on a given cycle of the set under consideration, we obtain non-performing subsets of variables of the first type for the entire set of disjunctions. If all subsets of variables of the first type turn out to be non-fulfilling, we proceed to consider the next subset of variables of the second type, i.e. to the next cycle. Otherwise, one of the subsets of variables of the first type is selected that is not non-performing.
Для этого фиксируют текущий поднабор значений переменных второго типа и разделяют переменные первого типа на два подтипа. Переменные первого подтипа рассматривают параллельно, второго последовательно. При этом учитывают только действовавшие на последнем цикле дизъюнкции. Т.е. снова решают задачу о выполнимости булевых формул, но с меньшим числом дизъюнкций и переменных. Процедура повторяется до тех пор пока выполняющий набор не будет определен однозначно. To do this, the current subset of the values of the variables of the second type is fixed and the variables of the first type are divided into two subtypes. Variables of the first subtype are considered in parallel, the second in series. In this case, only disjunctions acting on the last cycle are taken into account. Those. again solve the problem of the feasibility of Boolean formulas, but with fewer disjunctions and variables. The procedure is repeated until the executing set is uniquely determined.
Если после рассмотрения всех поднаборов второго типа решение не найдено, делают вывод об отсутствии решения. If after consideration of all subsets of the second type a solution is not found, a conclusion is made that there is no solution.
Спецпроцессор работает в двух режимах:
1. Режим загрузки (подготовительный) (см. ниже работу устройства управления).The special processor works in two modes:
1. Download mode (preparatory) (see the operation of the control device below).
2. Основной режим. 2. The main mode.
В начале работы основного режима Host-машина через выход 18 интерфейса 3 выдает на вход 7 запуска устройства 2 управления единичный импульс запуска основного режима, после чего процессорная матрица начинает работу в первом цикле основного режима. (Режим загрузки при этом удобно рассматривать как нулевой цикл основного режима). At the beginning of the main mode operation, the Host machine, through the output 18 of the interface 3, provides a single main mode start pulse to the start
Процессорная матрица работает только в основном режиме. Она предназначена для:
1. Выбора всех поднаборов значений переменных первого типа, которые являются невыполняющими на данном цикле. Т.е. вместе с текущим поднабором значений переменных второго типа дают невыполняющий множество дизъюнкций набор.The processor matrix works only in the main mode. It is intended for:
1. The selection of all subsets of variables of the first type that are non-performing on this cycle. Those. together with the current subset of values of variables of the second type, they give a non-performing set of clauses.
2. Выдачи управляющего сигнала в случае, если все поднаборы значений переменных первого типа оказались на данном цикле невыполняющими. 2. Issuance of a control signal in the event that all subsets of values of variables of the first type turned out to be non-fulfilling on this cycle.
Адрес каждой запоминающей ячейки процессорной матрицы имеет вид где aj (j 1,n1+n2+n3), принимают значения 0 или 1. При этом, двоичное число a1,, называемое первой частью адреса, соответствует номеру блока, в котором находится запоминающая ячейка, двоичное число , называемое второй частью адреса, соответствует номеру ряда, в котором находится запоминающая ячейка, двоичное число , называемое третьей частью адреса, соответствует номеру запоминающей ячейки в ряду. Ячейке с адресом
ставят в соответствие поднабор
значений переменных x1,xn первого типа. Если Dr дизъюнкция, чей порядковый номер среди действующих на данном цикле дизъюнкций равен l, то на l-м тексте цикла записывают единицы в те ячейки, адреса которых соответствуют невыполняющим дизъюнкцию Dr поднаборам. Разряды адресов этих ячеек соответствуют статусам переменных в дизъюнкции Dr. Если St(xi, Dr) 1, то i-е разряды адресов ячеек, соответствующих невыполняющим поднаборам, содержат единицы. Если St(xi, Dr) 0, то i-е разряды адресов ячеек, соответствующих невыполняющим поднаборам, содержат нули. Если St(xi, Dr) * то i-е разряды адресов ячеек, соответствующих невыполняющим поднаборам, содержат как нули, так и единицы.The address of each storage cell of the processor matrix has the form where a j (
match a subset
values of variables x 1 , x n of the first type. If D r is a disjunction whose sequence number among the disjunctions acting on a given cycle is l, then on the l-th text of the cycle, units are written in those cells whose addresses correspond to non-performing disjunction D r subsets. The address bits of these cells correspond to the statuses of the variables in the disjunction D r . If St (x i , D r ) 1, then the ith bits of the addresses of the cells corresponding to non-performing subsets contain units. If St (x i , D r ) 0, then the ith bits of the addresses of the cells corresponding to non-performing subsets contain zeros. If St (x i , D r ) * then the ith bits of the addresses of the cells corresponding to non-performing subsets contain both zeros and ones.
Доступ к запоминающим ячейкам устройства процессорной матрицы 1 обеспечивается параллельными адресными дешифраторами адресов блока, строки и столбца, что позволяет записывать единицы одновременно во все ячейки, соответствующие невыполняющим поднаборам. Для этого требуется подавать управляющие сигналы на те входы параллельных дешифраторов, которые соответствуют нужным значениям разрядов адресов. (Значение 0 i-го разряда адреса соответствует 2i-1-му управляющему входу дешифратора. Значение 1 i-го разряда адреса соответствует 2i-у управляющему входу дешифратора). Access to the storage cells of the
В начале очередного цикла на вход 5 сброса процессорной матрицы 1 поступает сигнал сброса, который устанавливает в нуль все запоминающие ячейки 35 всех блоков 26 записи и считывания. а l-м такте рассматриваемого цикла (где l порядковый номер дизъюнкции Dr среди действующих на данном цикле дизъюнкций) на адресные входы устройства 1 сигналы поступают по следующему правилу:
если St(Dr, xi) 1, на вход 42i устройства 1 поступает единица, а на адресный вход 42i-1 поступает нуль;
если St(D, x) 0, на адресный вход 42i поступает нуль, а на адресный вход 42i-1 поступает единица;
если St(D, x) *, на оба адресные входа 42i и 42i-1 поступают единицы.At the beginning of the next cycle, a reset signal is received at the
if St (D r , x i ) 1, one goes to the
if St (D, x) 0, the
if St (D, x) *, one arrives at both
Сигналы поступают на все входы (io 1,2n) одновременно. Сигналы с входов (i1 1.2n1), соответствующих первой части адреса, поступают на входы дешифратора 31 адреса блока.Signals arrive at all inputs. (
Параллельный дешифратор 31 адреса блока производит параллельную дешифровку адресов всех тех блоков , которые содержат ячейки, соответствующие невыполняющим дизъюнкцию Dr поднаборам значений переменных первого типа. С выходов дешифратора 31, соответствующих этим блокам, на разрешающие входы 29 блоков 26 поступают единицы.Parallel
Сигналы с входов (i2 1,2n2) устройства 1, соответствующих второй части адреса, поступают параллельно на входы адреса строки всех блоков 26.Input Signals (
Рассмотрим работу блока с номером k1 (k1 1,) (фиг.3). Если существует хотя бы один невыполняющий поднабор, первая часть адреса которого равна k1, на разрешающий вход 29 блока поступает единица, отпирающая все ключи 44. Вследствие этого разряды вторых частей адресов невыполняющих поднаборов поступают на входы (i2 1,2n2) параллельного дешифратора 36 адреса строки.Consider the operation of the block with the number k 1 (
После срабатывания дешифратора 36 с его выходов , соответствующих вторым частям адресов невыполняющих поднаборов, единицы поступают на входы 45 тех ячеек 35, которые находятся в рядах, соответствующих невыполняющим поднаборам (фиг.3).After the operation of the
Сигналы с входов (i3 1,2n3) устройства 1 параллельно поступают на входы адреса столбца всех блоков 26 параллельной записи и считывания.Input Signals (
Внутри каждого блока сигналы поступают на входы параллельного дешифратора 39 адреса столбца.Inside each block, the signals go to the inputs.
После срабатывания дешифратора 39 с его выходов 41, соответствующих третьим частям адресов невыполняющих поднаборов, единицы поступают на входы 46 запоминающих ячеек, соответствующих невыполняющим поднаборам (фиг.4). After the operation of the
В результате в те запоминающие ячейки 35, у которых на оба входа 46, 45 поданы единицы, будет записана единица. As a result, a unit will be recorded in those memory cells 35 in which units are supplied to both
Таким образом, на l-м такте ко всем запоминающим ячейкам, в которые были записаны единицы на предыдущих тактах, добавляются ячейки, соответствующие невыполняющим дизъюнкцию Dr наборам.Thus, on the l-th measure, to all memory cells in which units were recorded on the previous measures, cells corresponding to non-performing disjunction D r sets are added.
Содержимое запоминающего элемента 50 каждой запоминающей ячейки (k2 1,) непрерывно подается на вход каскада элементов И 42, на выходе которого единица появляется только в том случае, если на все входы 48 подаются единицы.The contents of the
С выхода каскада элементов И сигнал поступает на k2-й вход каскада 43 (фиг.3). Если на все входы 49 подаются единицы, на выходе 30 каскада элементов И 43 появляется 1. С выхода 30 блока (k1 1,) сигнал поступает на вход каскада элементов И 33 (фиг.2), на выходе 6 которого единица появляется в случае, если все поднаборы значений переменных первого типа оказались невыполняющими на данном цикле.From the output of the cascade of elements AND the signal goes to the k 2nd input cascade 43 (figure 3). If units are supplied to all inputs 49,
Устройство управления предназначено для:
1. Определения в ходе выполнения очередного цикла действующих на следующем цикле дизъюнкций.The control device is intended for:
1. Definitions in the course of the next cycle of disjunctions acting on the next cycle.
2. Выдачи на каждом такте текущего цикла единиц на те адресные входы процессорной матрицы 1, которые соответствуют значениям разрядов адресов ячеек, соответствующих невыполняющим на данном такте поднаборам значений переменных первого типа. 2. Issuance at each clock cycle of the current cycle of units to those address inputs of the
Интерфейс 3 предназначен для связи HOST-машины с устройством 2 выбора адресов ячеек. Interface 3 is intended for communication of the HOST machine with
Работа устройства управления в режиме загрузки. The operation of the control device in boot mode.
Перед началом загрузки устройства 2 на его вход 10 сброса через выход 21 сброса интерфейса 3 подается сигнал сброса, который затем поступает на входы сброса блока 57 выбора дизъюнкций, блока 63 адресации, регистра 75 номера последнего цикла и счетчика 69 циклов. Вследствие этого во все запоминающие ячейки блока 57 выбора дизъюнкций, блока 63 адресации и регистра 75 номера последнего цикла заносятся нули, во все запоминающие ячейки счетчика 69 циклов заносятся единицы. Таким образом в счетчике 69 оказывается записанным число 11.1, представляющее из себя -1 в дополнительном коде. Before starting the loading of
После этого в запоминающие ячейки блока 57 выбора дизъюнкций заносятся значения статуса переменных второго типа в каждой из дизъюнкций. В запоминающие ячейки блока 63 адресации заносят разряды адресов ячеек, соответствующих невыполняющим наборам переменных первого типа, для всех дизъюнкций. В регистр 75 номера последнего цикла заносят номер последнего рабочего цикла, равный 2m, где m количество переменных второго типа, рассматриваемых в задаче.After that, the status cells of the variables of the second type in each of the disjunctions are entered into the memory cells of the
Запись данных в блоки 57 и 63 происходит по следующим правилам:
Пусть L число рассматриваемых в задаче дизъюнкций.Data is written to
Let L be the number of disjunctions considered in the problem.
Для всех 1<= Lo:
Если j-ая переменная второго типа Yj не входит в дизъюнкцию Dl, в 2j-1-й запоминающий элемент 1182j-1 1-й схемы 112l выбора блока 57 выбора дизъюнкций записывают 1, в 2j-й запоминающий элемент 1182j 1-й схемы 112l выбора блока 57 выбора дизъюнкций ничего не записывают.For all 1 <= L o :
If the j-th variable of the second type Y j is not included in the clause D l , in the 2j-
Если j-тая переменная второго типа Yj входит в дизъюнкцию Dl в виде литерала Yj (без отрицания), в 2j-1-й запоминающий элемент 1182j-1 1-й схемы 112l выбора блока 57 выбора дизъюнкций и в 2j-й запоминающий элемент 1182j 1-й схемы 112l выбора блока 57 ничего не записывают.If the j-th variable of the second type Y j is included in the disjunction D l in the form of the literal Y j (without negation), in the 2j-
Если j-я переменная второго типа у входит в дизъюнкцию D в виде литерала yj (с отрицанием), в 2j-1-й запоминающий элемент 1182j-1 1-й схемы 112l выбора блока 57 выбора дизъюнкций ничего не записывают, в 2j-й запоминающий элемент 1182j 1-й схемы 112l выбора блока 57 записывают 1.If the jth variable of the second type y enters the disjunction D in the form of the literal y j (with negation), nothing is written to the 2j-
Для всех 1>Lo:
В первый и второй запоминающие элементы 1181 и 1182 1-й схемы выбора 112l блока 57 выбора дизъюнкций записывают 1.For all 1> L o :
In the first and
Работа устройства управления в основном режиме. The operation of the control device in the main mode.
Регистр 75 номера последнего цикла хранит номер последнего цикла (число 2m).The last cycle number register 75 stores the number of the last cycle (number 2 m ).
Счетчик 69 циклов содержит номер текущего цикла, уменьшенный на единицу. The
а r-м цикле происходит обработка поднабора значений переменных y1, y2, yj, соответствующего числу r-2 и подготовка к обработке поднабора значений переменных y1, y2,yj, соответствующего числу r-1. улевым циклом считается режим загрузки. Так как последние m разрядов числа -1 в дополнительном коде совпадают с разрядами числа 2m-1, на первом цикле обрабатывается поднабор значений переменных y1, y2,yj, соответствующий числу 2m-1.and the rth cycle processes the subset of the values of the variables y 1 , y 2 , y j corresponding to the number r-2 and prepares for the processing of the subset of the values of the variables y 1 , y 2 , y j corresponding to the number r-1. The hive cycle is considered the boot mode. Since the last m digits of the number -1 in the additional code coincide with the digits of the number 2 m -1, the first cycle processes the subset of the values of the variables y 1 , y 2 , y j corresponding to the number 2 m -1.
аходящееся в счетчике циклов число r-1 поразрядно поступает на нечетные входы логического блока И 72 и на управляющие входы 58 блока 57 выбора дизъюнкций. а четные входы логического блока 72 поступают значения разрядов регистра номера последнего цикла. В случае совпадения значения счетчика циклов с номером последнего цикла на выходе блока И, который соединен с первым выходом 13 решения устройства 2 управления, появляется единица, означающая, что задача не имеет решения. Через элемент ИЛИ 104 единица поступает также на вход 99 блока 94 синхронизации и останавливает его работу. the number r-1 in the loop counter is bitwise fed to the odd inputs of the AND 72 logic block and to the
а управляющих входах 62 блока 57, соответствующих действующим на r+1-м цикле дизъюнкциям, появляются единицы, на остальных управляющих выходах 62 - нули. Эти значения поступают на входы 79 блока 78 ИЛИ-Е и на входы 82l (l 1, L) блока 81 переключателей. Если ни одна из дизъюнкций не является действующей на r+1-м цикле, на выходе 80 блока ИЛИ-Е, который соединен с вторым выходом 14 решения устройства 2 выбора адресов ячеек, появляется единица, означающая, что поднабор значений переменных второго типа, соответствующий содержимому счетчика циклов, вместе с любым поднабором значений переменных первого типа дает решение задачи.and
В этом случае через элемент ИЛИ 104 единица поступает также на вход 99 блока 94 синхронизации и останавливает его работу. In this case, through the
Блок 81 переключателей может находиться в двух состояниях нулевом и первом, номера которых определяются значениями сигнала, поступающего на вход 84 блока 81 с выхода 102 блока 94 синхронизации. The
В нулевом состоянии l-й (l 1,L) вход 82l блока 81 соединяется с l-м выходом 85l, а через него с l-м входом 88l определителя 86. Вход 83 блока соединяется с 2L+2-м выходом 852L+2, а через него с L+1-м входом 88L+1 определителя 87.In the zero state, the l-th (
В единичном состоянии l-й вход 82l блока 81 соединяется с 1+L+1-м выходом 85l+L+1, а через него с l-м входом 88l определителя 87. Вход 83 блока соединяется с L+1-м выходом 85L+1, а через него с L+1-м входом 88L+1 определителя 86.In a single state, the l-
Положим для определенности, что на рассматриваемом цикле блок переключателей находится в нулевом состоянии. For definiteness, we assume that on the cycle under consideration the block of switches is in the zero state.
Тогда первый определитель 86 порядка дизъюнкций действует в режиме загрузки, а второй определитель 87 порядка дизъюнкций действует в режиме работы. Then, the first determinant of the order of
а управляющие входы 88l (l 1,L) определителя 86, соответствующие действующим на r+1-м цикле дизъюнкциям, с выходов 85 блока 81 поступают единицы, после чего в триггеры 195 ключей 190 (фиг.13, 14) определителя 86. соответствующих действующим на r+1-м цикле дизъюнкциям, заносятся единицы.and the control inputs 88 l (
Работа устройств 57, 78, 81 и 86 происходит асинхронно.
Работа устройства 87 происходит синхронно тактовым импульсам, поступающим от блока 94. Тактовые импульсы с выхода 101 блока 94 синхронизации поступают на L+1-й вход 83 блока 81 переключателей, а оттуда на тактовый вход 88 определителя 87. Каждый тактовый импульс беспрепятственно проходит через те ключи 190, в триггер 195 которых (фиг.14, 13) не занесены единицы, т.е. через те ключи, которые не соответствуют действующим на данном цикле дизъюнкциям. Как только тактовый импульс доходит до ключа 190, соответствующего очередной действующей на данном цикле дизъюнкции, он не проходит на вход следующего ключа, а поступает на выход 192 данного ключа и на вход линии 202 задержки. С входа 192 ключа 190 единица поступает на выход 89 определителя 87, соответствующий очередной действующей на данном цикле дизъюнкции. The
С выхода линии задержки 202 задержанный на половину такта импульс поступает на вход R триггера 195 и записывает в него нуль. Следующий тактовый импульс беспрепятственно проходит через ключ 190 и движется до следующего ключа, соответствующего действующей дизъюнкции. From the output of the
После того, как все ключи 190, соответствующие действующим дизъюнкциям, пройдены, тактовые импульсы поступают на выход 90 определителя 87, а оттуда
на вход 96 устройства 94, сигнализируя о том, что определитель 87 закончил работу.After all the
to the
Таким образом, если на r-м цикле действует lr дизъюнкция, то r-й цикл включает в себя lr машинных тактов. Если дизъюнкция Ds является действующей на r-м цикле и порядок ее действия равен ls(ls∈1,....L),, то на ls такте r-го цикла на k-й выход 89k определителя 87 поступает единица, которая через блок 91 элементов ИЛИ попадает на k-й управляющий вход 64k блока 63 адресации, вследствие чего блок 63 выдает единицы с выходов 68, соответствующих разрядам адресов ячеек, соответствующих невыполняющим дизъюнкцию Ds поднаборам значений переменных x1, x2,xn.Thus, if l r disjunction acts on the rth cycle, then the rth cycle includes l r machine clocks. If the disjunction D s is valid on the rth cycle and the order of its action is l s (l s ∈1, .... L), then on the l s tact of the rth cycle on the
До тех пор, пока хотя бы в одной из запоминающих ячеек устройства 2 параллельной записи и считывания записан нуль, с выхода 6 устройства 1 на сигнальный вход 8 устройства 2 и далее на вход 97 блока 94 сигнализации продолжает поступать нуль. Until zero is recorded in at least one of the memory cells of the
Если во всех запоминающих ячейках устройства 2 оказываются записаны единицы (т.е. если все поднаборы значений переменных первого типа оказались на данном цикле невыполняющими и дальнейшая работа в данном цикле не имеет смысла), с выхода 6 устройства 1 на сигнальный вход 8 устройства 2 и далее на вход 97 блока 94 поступает единица. Если с момента начала цикла прошло время, достаточное для того, чтобы в триггеры 195 ключей 190 определителя 86, соответствующих действующим на r+1-м цикле дизъюнкциям, записались единицы, блок 94 инициирует выполнение следующего цикла. Для этого он:
1. Выдает с выхода 103 единичный сигнал на счетный вход 71 счетчика 69 циклов (после чего счетчик увеличивает свое значение на единицу) и на выход 17 сброса устройства 2. С выхода 17 единица попадает на вход 5 сброса устройства 1, что приводит к обнулению всех его запоминающих ячеек.If there are units recorded in all storage cells of device 2 (i.e., if all subsets of values of variables of the first type turned out to be non-fulfilling on this cycle and further work in this cycle does not make sense), from
1. Issues a single signal from
2. Меняет свое значение сигнала на выходе 102 на противоположное, что приводит к изменению на противоположное состояние блока 81 переключателей. 2. Changes its value of the signal at the
Если после поступления на вход 96 единицы, сигнализирующей, что определитель 87 закончил работу, на вход 97 блока 94 в течение времени, необходимого для завершения срабатывания устройства 1, продолжает поступать нуль, это означает что среди поднаборов значений переменных первого типа есть хоть один выполняющий. Блок 94 выдает на выход 100 единичный сигнал, поступающий затем на выход 15 устройства 2, и прекращает работу. If after entering 96, the unit signaling that the
Остановка блока 94 происходит также в случае поступления единицы на вход 99.
Работа блока 94 синхронизации. The operation of
При поступлении единицы на вход 98 блока 94 происходит запуск генератора 183 тактовых импульсов, срабатывает элемент ИЛИ 175 и блок 94 приступает к синхронизации выполнения первого цикла:
Генератор 183 выдает на выход 101 блока 94 тактовые импульсы.Upon receipt of a unit at the
The
С выхода элемента ИЛИ 175 единица поступает на вход Т-триггера 186, переводя его в противоположное состояние, на вход R RS-триггера 173, на вход линии задержки 189 и через выход 103 блока 94 на счетный вход счетчика 69, увеличивая его значение на 1, и на выход 17 устройства 2, а оттуда на вход 5 очистки устройства 1. From the output of the
При поступлении сигнала на вход R RS-триггера 173 в триггер заносится нуль, поступающий затем на вход 171 элемента И 168 и запирающий его. When a signal is received at the input R of the RS-flip-
Линия задержки 189 задерживает сигнал на время, необходимое для загрузки определителя дизъюнкций. После этого единица поступает на вход S RS-триггера 173. В триггер заносится единица, поступающая затем на вход 171 элемента И 168 и отпирающая его.
При поступлении единицы на первый 95 или второй 96 входы блока срабатывает элемент ИЛИ 174 и выдает единицу на вход линии задержки 188. По прошествии времени, необходимого для записи единиц в ячейки устройства 1 и для срабатывания каскадов элементов И этого устройства, единица с выхода линии задержки 188 поступает на вход 169 элемента И 167. Если в это время на вход 97 блока 94 продолжает поступать нуль, с выхода инвертора 166 на второй вход 170 элемента И 167 поступает единица, элемент 167 срабатывает и выдает единицы на выход 100 устройства 94 и на вход 181 элемента ИЛИ 176. С выхода элемента ИЛИ 176 сигнал поступает на вход 185 остановки генератора 183. Остановка генератора 183 происходит также и при поступлении единицы на вход 99 блока 94. When a unit arrives at the first 95 or second 96 block inputs, the
Если элемент И 168 открыт, то при поступлении единицы на вход 97 блока 94 он срабатывает, единица поступает на вход 180 элемента ИЛИ 175, в результате чего блок 94 приступает к синхронизации выполнения очередного цикла. If the And 168 element is open, then when the unit arrives at the
Работа блока 57 выбора дизъюнкций. The operation of the
С j-того входа 58j блока 57 значение j-го разряда содержимого счетчика поступает на 2j-i-е входы 1132j-1 всех схем выбора 112 и через инвертор 105m на 2j-е входы 1132j всех схем выбора 112.From the j-
Если j-тая переменная Yj не входит в l-ю дизъюнкцию Dl, единица, записанная в триггер 1182j-1 схемы выбора 112l поступает на вход элемента ИЛИ 126, на выходе которого единица появляется независимо от того, какое значение поступило на входы 1132j-1 и 1132j.If the j-th variable Y j is not included in the l-th disjunction D l , the unit recorded in the
Если j-я переменная Yj входит в l-ую дизъюнкцию Dl, и, следовательно, в триггере 1182j-1 содержится нуль, то единица появляется на выходе элемента ИЛИ 126j только в случае, если она появляется на выходе элемента И 1192j-1 или элемента И 1192j, что имеет место, когда содержимое триггера 1182j совпадает со значением, поступившим на вход 58j блока 57. (Если значение, поступившее на вход 58j, равно 1 и содержимое триггера 1182j равно 1, срабатывает элемент 1192j-1. Если значение, поступившее на вход 58j, равно 0 и содержимое триггера 1182j равно 0, срабатывает элемент 1192j).If the j-th variable Y j enters the l-th disjunction D l , and therefore, the
Единица на выходе элемента И 133 схемы выбора 112l (а, следовательно, и на l-м выходе 62l блока 57 выбора дизъюнкций) появляется в том и только том случае, когда для всех j на выходах элементов И 126j появляются единицы. Т. е. переменная Yj либо не входит в дизъюнкцию D, либо ее значение bj, рассматриваемое на данном цикле, входит в невыполняющий дизъюнкции Dl набор, иными словами, когда дизъюнкция Dl является действующей на данном цикле.A unit at the output of the element And 133 of the selection circuit 112 l (and, therefore, at the l-
Если дизъюнкция Dl вообще не рассматривается, то (и только в этом случае) в оба триггера 1181 и 1182 записывается единица. Элемент И-Е 130 выдает нуль на вход 134 элемента И 133, и единица на k-м выходе 62l блока 57 выбора дизъюнкций не появляется ни в каком случае.If the disjunction D l is not considered at all, then (and only in this case) one is written in both
Работа блока 63 адресации. The operation of
а очередном такте работы спецпроцессора единица поступает на вход 64l блока 63 адресации, соответствующий рассматриваемой на данном такте дизъюнкции Dl, а оттуда на входы 146l всех схем адресации 145. При этом, открываются все 2l-ые и 2l-1-е ключи 1562l-1 и 1562l всех схем адресации 145, и содержимое 2l-х и 2l-1-х запоминающих элементов 1532l-1 и 1532l всех схем адресации через блоки 154 элементов ИЛИ параллельно поступает на выходы 151, 152 всех схем адресации и через них на выходы 68 блока 63 адресации. Иand at the next step of operation of the special processor, the unit goes to the
Claims (10)
(p=1,2+2{log2(L)}+2{log2(m)}+{log2(n)} x} обозначает наименьшее целое, большее или равное х), вход загрузки устройства управления соединен с р-м выходом загрузки интерфейса, вход сброса устройства управления соединен с выходом сброса интерфейса, вход записи устройства управления соединен с выходом записи интерфейса, первый, второй и третий выходы решения устройства управления соединены с первым, вторым и третьим входами решения интерфейса соответственно, при этом процессорная матрица содержит идентичных блока записи и считывания, дешифратор адреса блока, входовой каскад элементов И, причем i1-й (i1 1, 2n1) вход дешифратора адреса блока является i1-м адресным входом процессорной матрицы, k1-й выход дешифратора адреса блока соединен с разрешающим входом k1-го блока записи и считывания, i2-й (i2 1, 2n2) вход адреса строки каждого блока записи и считывания соединен с i2 + 2n1-м адресным входом процессорной матрицы, i3-й (i3 1, 2n3) вход адреса столбца каждого блока записи и считывания соединен с i3 + 2n1 + 2n2-м адресным входом процессорной матрицы, вход сброса каждого блока записи и считывания соединен с входом сброса процессорной матрицы, выход k1-го блока записи и считывания соединен с k1-м входом -входового каскада элементов И, выход которого является выходом процессорной матрицы, при этом каждый блок записи и считывания содержит матрицу запоминающих ячеек, дешифратор адреса строки, дешифратор адреса столбца, -входовых каскадов элементов И, -входовый главный каскад элементов И, 2n2 ключей, выполненных в виде элементов И с двумя входами, причем k2-й выход дешифратора адреса строки соединен с первыми входами выборки всех запоминающих ячеек k2-й строки матрицы запоминающих ячеек, k3-й выход дешифратора адреса столбца соединен с вторыми входами выборки всех запоминающих ячеек k3-го столбца матрицы запоминающих ячеек, первый вход i2-го (i2 1, 2n2) ключа является i2-м входом адреса строки блока записи и считывания, второй вход каждого ключа соединен с разрешающим входом блока записи и считывания, i2-й (i2 1, 2n2) вход дешифратора адреса строки соединен с выходом i2-го ключа, i3-й (i3 1, 2n3) вход дешифратора адреса столбца соединен с i3-м входом адреса столбца блока записи и считывания, вход сброса каждой из запоминающих ячеек соединен с входом сброса блока записи и считывания, выход k3-й запоминающей ячейки k2-го ряда матрицы запоминающих ячеек соединен с k3-м входом k2-го каскада элементов И, выход k2-го каскада элементов И соединен с k2-м входом -входового главного каскада элементов И, выход которого является выходом блока записи и считывания, при этом каждая запоминающая ячейка содержит запоминающий элемент и элемент И с двумя входами, причем первый и второй входы элемента И соединены с первым и вторым входами выборки запоминающей ячейки, выход элемента И соединен с входом записи единицы запоминающего элемента, вход записи нуля запоминающего элемента соединен с входом сброса запоминающей ячейки, прямой выход запоминающего элемента является выходом запоминающей ячейки, дешифраторы адресов блока, строк и столбцов выполнены в виде параллельных адресных дешифраторов, имеющих 2N выходов и 2N адресных входов (N n1, n2, n3) для дешифраторов блока, адреса строки и адреса столбца соответственно), по одному независимому входу для нулевого и для единичного значения каждого двоичного разряда адреса, 2N-входовый (N n1, n2, n3) каскад элементов И содержит 2N 1 элементов И с двумя входами, расположенных на N уровнях, при этом на I-м (I 1, N) уровне имеется 2N - 1 элемента, входы каскада с номерами 2k1 1 и 2k1 (k1 1, 2N - 1) соединены с входами элемента И с номером к1 первого уровня, выходы элементов И с номерами 2k1 1 и 2k1 (k1 1, 2N - 1) I-го уровня соединены с входами элемента И номер k1 I + 1-го уровня, выход элемента И N-го уровня является выходом всего каскада, устройство управления содержит блок выбора дизъюнкций, блок адресации, m + 1-разрядный счетчик циклов по модулю 2m + 1, блок элементов И, m + 1-разрядный регистр номера последнего цикла, блок ИЛИ-НЕ, блок переключателей, первый и второй определители порядка дизъюнкций, блок элементов ИЛИ, блок синхронизации, элемент ИЛИ с двумя входами, причем выход j-го (j 1, m + 1) разряда регистра номера последнего цикла соединен с (2j 1)-м входом блока элементов И, выход j-го разряда счетчика циклов соединен с 2j-м входом блока элементов И, выход блока элементов И соединен с первым выходом решения устройства управления и с первым входом элемента ИЛИ, выход j-го (j 1, m)разряда счетчика циклов соединен с j-м управляющим входом блока выбора дизъюнкций, l-й (l=1,L) выход которого соединен с l-м входом блока переключателей и с l-м входом блока ИЛИ-НЕ, выход блока ИЛИ-НЕ соединен с вторым выходом решения устройства управления и с вторым входом элемента ИЛИ, l-й выход блока переключателей соединен с l-м входом первого определителя порядка дизъюнкций, L+l+1-й выход блока переключателей соединен с l-м входом второго определителя порядка дизъюнкций, L+1-й выход блока переключателей соединен с L+1-м входом первого определителя порядка дизъюнкций, 2L+2-й выход блока переключателей соединен с L+1-м входом второго определителя порядка дизъюнкций, l-е выходы первого и второго определителей порядка дизъюнкций соединены соответственно с (2l-1)-м и 2l-м входами блока элементов ИЛИ, l-й выход которого соединен с l-м управляющим входом блока адресации, i-й (i 1, 2n, n n1 + n2 + n3) управляющий выход которого соединен с i-м управляющим выходом устройства управления, сигнальный выход первого определителя порядка дизъюнкций соединен с первым входом блока синхронизации, сигнальный выход второго определителя порядка дизъюнкций соединен с вторым входом блока синхронизации, третий вход блока синхронизации соединен с сигнальным входом устройства управления, четвертый вход блока синхронизации соединен с входом запуска устройства управления, пятый вход блока синхронизации соединен с выходом элемента ИЛИ, первый выход блока синхронизации соединен с третьим выходом решения устройства управления, второй выход блока синхронизации соединен с L+1-м входом блока переключателей, третий выход блока синхронизации соединен с L+2-м входом блока переключателей, четвертый выход блока синхронизации соединен со счетным входом счетчика циклов и с выходом сброса устройства управления, р1-й вход (р1 1, log2(m)} ) загрузки регистра номера последнего цикла соединен с р1-м входом загрузки устройства управления, q2-й (q2=1,log2(m)}+{log2(L)}+1) вход загрузки блока выбора дизъюнкций соединен с р2-м (р2=q2+{log2(m)}) входом загрузки устройства управления q3-й (q3=1,log2(n)}+{log2(L)}+1 вход загрузки блока адресации соединен с p3-м (p3=q3+2•{log2(m)}+{log2(L)}+1) входом загрузки устройства управления, входы сброса блока выбора дизъюнкций, блока адресации, счетчика циклов и регистра номера последнего цикла соединены с входом сброса устройства управления, входы записи блока выбора дизъюнкций, блока адресации и регистра номера последнего цикла соединены с входом записи устройства управления, при этом блок выбора дизъюнкций содержит m инверторов, дешифратор адреса схемы, дешифратор адреса ячейки и L схем выбора, причем j-й (j 1, m) управляющий вход блока выбора дизъюнкций соединен с 2j 1-ми управляющими входами всех схем выбора и с входом j-го инвертора, выход которого соединен с 2j-ми управляющими входами всех схем выбора, выход l-й (l=1, L)схемы выбора соединен с l-м выходом блока выбора дизъюнкций, q4-й (q4=1, log2(L)}) вход загрузки блока выбора дизъюнкций соединен с q4-м входом дешифратора адреса схемы, l-й выход которого соединен с разрешающим входом l-й схемы выбора, q5-й (q5=log2(L)}+1log2(m)}+{log2(L)}+1) вход загрузки блока выбора дизъюнкций соединен с q5-/log2(L)/-м входом дешифратора адреса ячейки, j1-й (j1 1, 2m) выход которого соединен с j1-ми входами выборки всех схем выбора, входы сброса и записи каждой схемы выбора соединены со входами сброса и записи блока выбора дизъюнкций, при этом каждая схема выбора содержит 2m запоминающих элементов, 2m элементов И с двумя входами, 2m элементов И с тремя входами, m элементов ИЛИ с тремя входами, элемент И-НЕ, блок элементов И, причем в каждой схеме выбора прямой выход 2j 1-го (j 1, m) запоминающего элемента соединен с первым входом j-го элемента ИЛИ, прямой выход 2j-го запоминающего элемента соединен с первым входом (2j 1)-го элемента И с двумя входами, инверсный выход 2j-го запоминающего элемента соединен с первым входом 2j-го элемента И с двумя входами, второй вход 2j 1-го элемента И с двумя входами соединен с (2j 1)-м управляющим входом схемы выбора, второй вход 2j-го элемента И с двумя входами соединен с 2j-м управляющим входом схемы выбора, выходы (2j 1)-го и 2j-го элементов И с двумя входами соединены с вторым и третьим входами j-го элемента ИЛИ, выход j-го элемента ИЛИ соединен с j-м входом блока элементов И, выход которого соединен с выходом схемы выбора, прямые выходы первого и второго запоминающих элементов соединены с первым и вторым входами элемента И-НЕ, выход которого соединен с (m + 1)-м входом блока элементов И, вход записи единицы j1-го (j1 1, 2m) запоминающего элемента соединен с выходом j1-го элемента И с тремя входами, входы записи нуля всех запоминающих элементов соединены с входом сброса схемы выбора, первый вход j1-го элемента И с тремя входами соединен с j1-м входом выборки схемы выбора, вторые входы всех элементов И с тремя входами соединены с разрешающим входом схемы выбора, третьи входы всех элементов И с тремя входами соединены с входом записи схемы выбора, блок адресации содержит дешифратор адреса схемы, дешифратор адреса ячейки, n n1 + n2 + n3 схем адресации, причем l-е (l=1,L) управляющие входы всех схем адресации соединены с l-м управляющим входом блока адресации, первый и второй выходы i-й (i 1, n) схемы адресации соединены с (2i 1)-м и 2i-м выходами блока, q6-й (q6 1,log2(n)}) вход загрузки блока адресации соединен с q6-м входом дешифратора адреса схемы, i-й выход которого соединен с разрешающим входом i-й схемы выбора, q7-й (q7=log2(n)}+1log2(n)}+{log2(L)}+1) вход загрузки блока адресации соединен с q7-/log2(n)/-м входом дешифратора адреса ячейки, l1-й (l1=1,2L) выход которого соединен с l1-ми входами выборки всех схем адресации, входы сброса и записи каждой схемы адресации соединены с входами сброса и записи блока адресации, при этом каждая схема адресации содержит 2L запоминающих элементов, две группы элементов ИЛИ с L входами каждый, 2L ключей, выполненных в виде элементов И с двумя входами, 2L элементов И с тремя входами, причем прямые выходы 2l-1-го и 2l-го (l=1,L) запоминающих элементов соединены с первыми входами (2l-1)-го и 2l-го ключей, вторые входы (2l-1)-го и 2l-го ключей соединены с l-м управляющим входом схемы адресации, выходы всех нечетных ключей соединены с входами первого блока элементов ИЛИ, выходы всех четных ключей соединены с входами второго блока элементов ИЛИ, выходы первого и второго блоков элементов ИЛИ соединены с первым и вторым выходами схемы адресации, вход записи единицы l1-го (l1=1,2L) запоминающего элемента соединен с выходом l1-го элемента И с тремя входами, входы записи нуля всех запоминающих элементов соединены с входом сброса схемы адресации, первый вход l1-го элемента И с тремя входами соединен с l1-м входом выборки схемы адресации, вторые входы всех элементов И с тремя входами соединены с разрешающим входом схемы адресации, третьи входы всех элементов И с тремя входами соединены с входом записи схемы адресации.1. High-parallel special processor for solving Boolean formula feasibility problems, consisting of a processor matrix, a control device and an interface, characterized in that the ith (i 1, 2n) address input of the processor matrix is connected to the i-th control output of the control device, input the reset of the processor matrix is connected to the reset output of the control device, the output of the processor matrix is connected to the signal input of the control device, the trigger input of which is connected to the trigger output of the interface, the jth (j 1, m) read output of the control device eniya connected to the j-th reading interface input, the p-th
(p = 1,2 + 2 {log 2 (L)} + 2 {log 2 (m)} + {log 2 (n)} x} indicates the smallest integer greater than or equal to x), the boot input of the control device is connected to pth output of the interface load, the reset input of the control device is connected to the reset output of the interface, the recording input of the control device is connected to the output of the interface record, the first, second and third outputs of the control device solution are connected to the first, second and third inputs of the interface solution, respectively, processor matrix contains identical write and read blocks, block address decoder, input cascade of AND elements, with the i 1st (i 1 1, 2n 1 ) input of the block address decoder being the i 1st address input of the processor matrix, k 1st the output of the block address decoder is connected to the enable input k of the 1st write and read block, the 2nd (i 2 1, 2n 2 ) line address input of each write and read block is connected to the i 2 + 2n 1st address of the processor matrix , i 3rd (i 3 1, 2n 3 ) the column address input of each write and read block is connected to the i 3 + 2n 1 + 2n 2nd address input of the processor matrix, the reset input of each write and read block is connected to the reset input of the processor matrices, output k 1st the write and read unit is connected to the k 1- th input -in the input cascade of elements And, the output of which is the output of the processor matrix, with each recording and reading unit contains a matrix storage cells, row address decoder, column address decoder, - input cascades of elements AND, -input main cascade of AND elements, 2n 2 keys made in the form of AND elements with two inputs, with k 2 the output of the address decoder of the row is connected to the first inputs of the sample of all storage cells k the 2nd row of the matrix of storage cells, k the 3rd output a column address decoder connected to the second inputs of all the sample storage cells 3 k -th column of memory cells, a first input 2 i -th (i February 1, 2n 2) key is 2 i-th input line write and read address block, the second the input of each key is connected to the enable input of the write and read unit, i 2nd (i 2 1, 2n 2 ) input of the line address decoder is connected to the output of i 2nd key, i 3rd (i 3 1, 2n 3 ) input the column address decoder is connected to the i 3rd input of the column address of the write and read unit, the reset input of each of the memory cells of the connection is connected with the reset input of the write and read unit, the output of the k 3rd storage cell of the k 2nd row of the matrix of storage cells is connected to the k 3rd input of the k 2nd cascade of elements AND, the output of the k 2nd cascade of elements AND is connected to k 2nd entrance input main cascade of elements AND, the output of which is the output of the recording and reading unit, each memory cell contains a memory element and element And with two inputs, the first and second inputs of the element And connected to the first and second inputs of the sample memory cell, the output of the element And connected to the recording input of the unit of the storage element, the input of recording the zero of the storage element is connected to the reset input of the storage cell, the direct output of the storage element is the output of the storage cell, the decoding the block address, row and column addressators are made in the form of parallel address decoders having 2 N outputs and 2N address inputs (N n 1 , n 2 , n 3 ) for block decoders, row addresses and column addresses, respectively), one independent input for zero and for a single value of each binary digit of the address, 2 N- input (N n 1 , n 2 , n 3 ) cascade of elements And contains 2 N 1 elements And with two inputs located at N levels, while on the I-th I 1, N) level there are 2 N - 1 elements, the inputs of the cascade with numbers 2k 1 1 and 2k 1 (k 1 1, 2 N - 1 ) are connected to the inputs of the element that And with the number k 1 of the first level, the outputs of the elements And with the numbers 2k 1 1 and 2k 1 (k 1 1, 2 N - 1 ) of the 1st level are connected to the inputs of the element And the number k 1 I + 1 of the level, output element And the N-th level is the output of the whole cascade, the control device contains a block for selecting disjunctions, an addressing block, m + 1-bit cycle counter modulo 2 m + 1 , a block of elements And, m + 1-bit register of the last cycle number, block OR NOT, switch block, first and second clause order determinants, OR element block, synchronization block, OR element with two inputs, and you the jth (j 1, m + 1) discharge stroke of the register of the last cycle number is connected to the (2j 1) th input of the And block of elements, the output of the jth bit of the cycle counter is connected to the 2jth input of the And block of elements, the output of the block of elements And it is connected to the first output of the solution of the control device and to the first input of the OR element, the output of the jth (j 1, m) discharge of the cycle counter is connected to the jth control input of the disjunction selection block, the lth (l = 1, L) output which is connected to the lth input of the switch block and to the lth input of the OR-NOT block, the output of the OR-NOT block is connected to the second output of the control device and with the second input of the OR element, the lth output of the switch block is connected to the lth input of the first clause order determinant, L + l + the 1st output of the switch block is connected to the lth input of the second clause order determinant, L + 1- the 1st output of the switch block is connected to the L + 1st input of the first clause order determinant, 2L + the 2nd output of the switch block is connected to the L + 1st input of the second clause order determinant, the lth outputs of the first and second clause order determinant with (2l-1) -m and 2l-m inputs of the block of elements OR, l- whose output is connected to the l-th control input of the addressing unit, the i-th (i 1, 2n, nn 1 + n 2 + n 3 ) control output of which is connected to the i-th control output of the control device, the signal output of the first disjunction order determinant connected to the first input of the synchronization unit, the signal output of the second determinant of the order of disjunctions is connected to the second input of the synchronization unit, the third input of the synchronization unit is connected to the signal input of the control device, the fourth input of the synchronization unit is connected to the start input of the control unit phenomena, the fifth input of the synchronization block is connected to the output of the OR element, the first output of the synchronization block is connected to the third output of the control device solution, the second output of the synchronization block is connected to the L + 1-m input of the switch block, the third output of the synchronization block is connected to L + 2-m the input of the switch block, the fourth output of the synchronization block is connected to the counting input of the cycle counter and to the reset output of the control device, p 1st input (p 1 1, log 2 (m)}) loading register of the last cycle number is connected to p 1 device downloads Control-keeping, q 2 th (q = 1, 2, log 2 (m)} + {log 2 (L)} + 1) load input selection unit disjunctions connected to a p th 2 (p 2 = q 2 + {log 2 (m)}) the boot input of the control device q 3rd (q 3 = 1, log 2 (n)} + {log 2 (L)} + 1 the boot input of the addressing unit is connected to p 3 (p 3 = q 3 + 2 • {log 2 (m)} + {log 2 (L)} + 1) the boot input of the control device, the reset inputs of the disjunction selection block, addressing unit, cycle counter and register of the last cycle number are connected to the reset input of the control device , the recording inputs of the clause selection block, the addressing block and the register of the last cycle number are connected to the input records of the control device, while the disjunction selection block contains m inverters, a circuit address decoder, a cell address decoder and L selection circuits, and the j-th (j 1, m) control input of the disjunction selection block is connected to 2j 1-control inputs of all circuits selection and with the input of the j-th inverter, the output of which is connected to the 2j-th control inputs of all the selection circuits, the output of the l-th (l = 1, L) selection circuit is connected to the l-th output of the disjunction selection block, q 4th ( 4, q = 1, log 2 (L)}) boot block selection input connected to disjunctions q 4 th input address decoder circuit, l-th output to orogo connected to the enabling input l-th selection circuit, q is 5-th (q 5 = log 2 (L)} + 1log 2 (m)} + {log 2 (L)} + 1) boot block selection input connected to disjunctions q 5 - / log 2 (L) / - th input cell address decoder, j 1 th (j 1, 1, 2m) whose output is connected to 1 j -th sample inputs of all the selection circuits, and the reset inputs of each entry selection circuit connected with reset and record inputs of a disjunction selection block, each selection circuit contains 2m memory elements, 2m AND elements with two inputs, 2m AND elements with three inputs, m OR elements with three inputs, AND-NOT element, block of AND elements, n why in each selection circuit, the direct output of the 2j 1st (j 1, m) storage element is connected to the first input of the jth OR element, the direct output of the 2j 1st storage element is connected to the first input of the (2j 1) th AND element with two inputs, the inverse output of the 2j-th storage element is connected to the first input of the 2j-th element And with two inputs, the second input 2j of the 1st element And with two inputs is connected to the (2j 1) -th control input of the selection circuit, the second input 2j- of the And element with two inputs is connected to the 2j-th control input of the selection circuit, the outputs of the (2j 1) and 2j-th And element with two inputs are connected to the second and third inputs of the jth OR element, the output of the jth OR element is connected to the jth input of the AND block, the output of which is connected to the output of the selection circuit, the direct outputs of the first and second storage elements are connected to the first and second inputs element AND NOT, the output of which is connected to the (m + 1) -th input of the block of AND elements, the input of the recording unit j 1 of the 1st (j 1 1, 2m) storage element is connected to the output j of the 1st element AND with three inputs, recording all zero inputs of storage elements coupled to the reset input selection circuit, the first input 1 -r j AND gate with three inputs connected to a j 1 th input sample selection circuit, the second inputs of AND gates with three inputs are connected to the enabling input selection circuit, the third inputs of AND gates with three inputs are connected to the input record selection circuit, the addressing unit comprises a decoder address of the circuit, decoder of the cell address, nn 1 + n 2 + n 3 addressing schemes, and the l-th (l = 1, L) control inputs of all addressing schemes are connected to the l-th control input of the addressing block, the first and second outputs i- the th (i 1, n) addressing schemes are connected to the (2i 1) -th and 2i-th outputs of the block, q 6th (q 6 1, log 2 (n)}) the load input of the addressing unit is connected to the q 6th input of the circuit address decoder, the i-th output of which is connected to the enable input of the i-th selection circuit, q 7th (q 7 = log 2 ( n)} + 1log 2 (n)} + {log 2 (L)} + 1) the load input of the addressing unit is connected to q 7 - / log 2 (n) / - m input of the cell address decoder, l 1st (l 1 = 1,2L) whose output is connected with 1 l -th input sample all addressing schemes, the reset inputs of each recording and addressing circuit coupled to the reset inputs of the addressing block and writing, each addressing scheme includes a 2L storage elements, two elements of the group OR with L input each, 2L keys made in the form of AND elements with two inputs, 2L elements AND with three inputs, and the direct outputs of the 2l-1st and 2l (l = 1, L) storage elements are connected to the first inputs (2l- 1) of the 2nd and 2nd keys, the second inputs of the (2l-1) and 2nd keys are connected to the l-th control input of the addressing circuit, the outputs of all odd keys are connected to the inputs of the first block of OR elements, the outputs of all even keys connected to the inputs of the second block of OR elements, the outputs of the first and second blocks of OR elements connected to the first and second outputs of the addressing circuit, recording unit stroke l 1 -th (l 1 = 1,2L) storage element connected to the output l -th element 1 and with three inputs, the inputs of zero entries all storage elements are connected to the reset input of the addressing circuit, a first input of 1 l th element And with three inputs it is connected to the l 1st input of the addressing circuit sample, the second inputs of all elements And with three inputs are connected to the allowing input of the addressing circuit, the third inputs of all elements And with three inputs are connected to the recording input of the addressing circuit.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU93053633A RU2074415C1 (en) | 1993-11-25 | 1993-11-25 | Parallel co-processor which solves boolean equations |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU93053633A RU2074415C1 (en) | 1993-11-25 | 1993-11-25 | Parallel co-processor which solves boolean equations |
Publications (2)
Publication Number | Publication Date |
---|---|
RU93053633A RU93053633A (en) | 1996-12-10 |
RU2074415C1 true RU2074415C1 (en) | 1997-02-27 |
Family
ID=20149758
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU93053633A RU2074415C1 (en) | 1993-11-25 | 1993-11-25 | Parallel co-processor which solves boolean equations |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2074415C1 (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2474871C1 (en) * | 2011-12-20 | 2013-02-10 | Учреждение Российской академии наук Институт проблем управления им. В.А. Трапезникова РАН | Highly parallel special-purpose processor for solving boolean formula satisfiability problem |
RU2515206C1 (en) * | 2013-03-01 | 2014-05-10 | Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук | Special-purpose processor for boolean satisfiability problem |
-
1993
- 1993-11-25 RU RU93053633A patent/RU2074415C1/en active
Non-Patent Citations (1)
Title |
---|
1. Каган Б.М. Электронные вычислительные машины и системы. - М.: Энергоатомиздат, 1985, с.59. 2. СуперЭВМ. Аппаратная и программная реализация под ред. С.Фернбхаха. - М.: Радио и связь, 1991, с. 215 - 246. * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2474871C1 (en) * | 2011-12-20 | 2013-02-10 | Учреждение Российской академии наук Институт проблем управления им. В.А. Трапезникова РАН | Highly parallel special-purpose processor for solving boolean formula satisfiability problem |
RU2515206C1 (en) * | 2013-03-01 | 2014-05-10 | Федеральное государственное бюджетное учреждение науки Институт проблем управления им. В.А. Трапезникова Российской академии наук | Special-purpose processor for boolean satisfiability problem |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US4553203A (en) | Easily schedulable horizontal computer | |
US4831573A (en) | Programmable integrated circuit micro-sequencer device | |
US5394031A (en) | Apparatus and method to improve programming speed of field programmable gate arrays | |
US3296426A (en) | Computing device | |
US7818538B2 (en) | Hashing and serial decoding techniques | |
US4369500A (en) | High speed NXM bit digital, repeated addition type multiplying circuit | |
US4521874A (en) | Random access memory device | |
US4095283A (en) | First in-first out memory array containing special bits for replacement addressing | |
US7394052B2 (en) | Parallel processing logic circuit for sensor signal processing | |
CN1104678C (en) | Circuit for controlling execution of loop in digital signal processing chip | |
US3339183A (en) | Copy memory for a digital processor | |
US2853698A (en) | Compression system | |
RU2074415C1 (en) | Parallel co-processor which solves boolean equations | |
US3309671A (en) | Input-output section | |
US4811201A (en) | Interconnect circuit | |
RU84615U1 (en) | ASSOCIATIVE MEMORIAL MATRIX | |
US5155826A (en) | Memory paging method and apparatus | |
McKeever | The associative memory structure | |
US5978295A (en) | Sequential access memories | |
JPH0256048A (en) | Data transfer method and data buffer device | |
RU2744239C1 (en) | Device for squaring binary matrix | |
CN217213701U (en) | Circuit for multi-clock switching, FPGA and electronic equipment | |
RU2319192C2 (en) | Device for building programmable digital microprocessor systems | |
RU2222822C2 (en) | Device for programmed control over electric motor drives, electron keys and signaling | |
EP0592523B1 (en) | Bookkeeping memory |