RU2028664C1 - Concurrent data processing device - Google Patents

Concurrent data processing device Download PDF

Info

Publication number
RU2028664C1
RU2028664C1 SU4911994A RU2028664C1 RU 2028664 C1 RU2028664 C1 RU 2028664C1 SU 4911994 A SU4911994 A SU 4911994A RU 2028664 C1 RU2028664 C1 RU 2028664C1
Authority
RU
Russia
Prior art keywords
unit
input
inputs
logical
vector
Prior art date
Application number
Other languages
Russian (ru)
Inventor
Борис Александрович Кулик
Лия Ефимовна Кулик
Виктор Федорович Федоров
Original Assignee
Борис Александрович Кулик
Лия Ефимовна Кулик
Виктор Федорович Федоров
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Борис Александрович Кулик, Лия Ефимовна Кулик, Виктор Федорович Федоров filed Critical Борис Александрович Кулик
Priority to SU4911994 priority Critical patent/RU2028664C1/en
Application granted granted Critical
Publication of RU2028664C1 publication Critical patent/RU2028664C1/en

Links

Images

Landscapes

  • Complex Calculations (AREA)

Abstract

FIELD: automatic control and computer engineering. SUBSTANCE: device has first and second storage and comparison units for associative flags, logic vector storage unit, operational unit, multiple coincidence analyzing unit, number-of-ones counting unit. EFFECT: enlarged functional capabilities due to search for logical vector-lines by distinctive attributes through cyclic search for logical vector-columns and counting of number of ones in arbitrarily specified vector-column. 5 dwg

Description

Изобретение относится к автоматике и вычислительной технике и может быть использовано, например, для параллельной обработки данных при решении задач информационного поиска, управления базами данных и базами знаний, задач на графах, задач, возникающих при разработке и ведении экспертных систем, и задач цифровой обработки данных произвольной размерности. The invention relates to automation and computer technology and can be used, for example, for parallel data processing in solving information retrieval problems, managing databases and knowledge bases, tasks on graphs, problems arising in the development and management of expert systems, and digital data processing tasks arbitrary dimension.

Известные способы и устройства параллельной обработки частично или полностью сохранили одну из основных особенностей обработки данных на машинах фоннеймановского типа - взаимодействие с оперативной памятью осуществляется с помощью ячеек ограниченной длины (как правило, до 32 бит). Поразрядная (или вертикальная) обработка применяется либо в ограниченном объеме, либо как, например, в ассоциативных ЗУ только для решения узкого класса задач. Known methods and devices for parallel processing partially or fully retained one of the main features of data processing on machines of the Fonneimann type - interaction with RAM is carried out using cells of a limited length (usually up to 32 bits). Bitwise (or vertical) processing is applied either in a limited volume, or as, for example, in associative memory only for solving a narrow class of problems.

К недостаткам этих способов относятся:
- сложность технической реализации;
- сложность структуры вычислительных устройств, затрудняющих анализ всевозможных вычислительных ситуаций и ситуаций управления процессом вычисления;
- необходимость в разработке отдельных устройств для решения узкого класса задач;
- сложность и большая трудоемкость программно-математического обеспечения.
The disadvantages of these methods include:
- the complexity of technical implementation;
- the complexity of the structure of computing devices that make it difficult to analyze all kinds of computing situations and situations that control the calculation process;
- the need to develop separate devices for solving a narrow class of problems;
- the complexity and high complexity of the software and mathematics.

В статье Кулика Б.А. Быстродействующие ИПС на основе операций с логическими векторами//УС и М, 1989, N 4, с.14-19 предложен способ обработки данных, при котором основные вычислительные операции осуществляются со строками в (0,1) - алфавите (логическими векторами) произвольной размерности, ограниченной размерами прямоугольного пространства ассоциативных признаков (битовой матричной памяти). При этом в качестве основных операций с этими векторами используются элементарные логические операции: И, ИЛИ, НЕ, ИСКЛЮЧАЮЩЕЕ ИЛИ, проверка логического вектора на наличие или отсутствие единиц. Используя алгоритмы, предложенные в этой статье, с помощью данного способа можно осуществить быстрый поиск информации в произвольных списковых, матричных и табличных структурах данных. In the article Kulik B.A. High-speed IPS based on operations with logical vectors // US and M, 1989, N 4, pp. 14-19. A data processing method is proposed in which the main computational operations are carried out with strings in (0,1) - alphabet (logical vectors) of arbitrary dimension limited by the size of the rectangular space of associative features (bit matrix memory). Moreover, as the main operations with these vectors, elementary logical operations are used: AND, OR, NOT, EXCLUSIVE OR, checking the logical vector for the presence or absence of units. Using the algorithms proposed in this article, using this method, you can quickly search for information in arbitrary list, matrix and tabular data structures.

Данный способ обработки может быть реализован с помощью специально для этого разработанного устройства для адресации по содержанию блока памяти, что позволяет решать, используя параллельный способ обработки, многие поисковые задачи, задачи на графах, задачи обработки изображений и т.п. При этом коэффициент увеличения быстродействия по сравнению с быстродействием решения аналогичных задач на тадиционные ЭВМ составляет n/m, где m - размерность обрабатываемых слов, n - вертикальная размерность структуры данных (списка, матрицы, таблицы и т.д.). Архитектура устройства предполагает порязрядную обработку матричной памяти по двум координатам. В соответствии с этим данное устройство в совокупности с блоком управления предложено называть биассоциативной машиной (БМ). This processing method can be implemented using a specially designed device for addressing by the contents of the memory block, which allows solving, using the parallel processing method, many search tasks, graph tasks, image processing tasks, etc. In this case, the coefficient of increase in speed in comparison with the speed of solving similar problems on traditional computers is n / m, where m is the dimension of the processed words, n is the vertical dimension of the data structure (list, matrix, table, etc.). The architecture of the device involves bitwise processing of matrix memory in two coordinates. In accordance with this, this device in conjunction with the control unit is proposed to be called a biassociative machine (BM).

Недостатком данного способа и устройства является то, что с его помощью трудно реализовать циклы по подпоследовательности (т.е. циклы, в которых обработке подлежат только маркированные строки), а также такие алгоритмы цифровой обработки данных, в которых требуется подсчет сумм элементов числовых векторов. Кроме того, при реализации некоторых видов задач искусственного интеллекта (экспертные системы, базы знаний и т.д.) в данном устройстве медленно реализуется подсчет весовых коэффициентов (или вероятностных характеристик), заданных или вычисляемых ассоциативных признаков системы. The disadvantage of this method and device is that it is difficult to implement cycles of subsequence (i.e., cycles in which only marked lines are to be processed), as well as such digital data processing algorithms that require the calculation of the sums of elements of numerical vectors. In addition, when implementing certain types of tasks of artificial intelligence (expert systems, knowledge bases, etc.), this device slowly implements the calculation of weighting coefficients (or probabilistic characteristics), given or calculated associative features of the system.

Целью предлагаемого технического решения является расширение класса решаемых задач параллельной обработки, осуществляемой с помощью однократных параллельных логических операций над логическими векторами произвольной размерности. The aim of the proposed technical solution is to expand the class of solved problems of parallel processing carried out using single parallel logical operations on logical vectors of arbitrary dimension.

Цель достигается тем, что в устройство, содержащее первый и второй блоки хранения и сравнения ассоциативных признаков, блок памяти логических векторов, операционный блок, дополнительно введены подблок анализатора многократных совпадений и подблок вертикального сумматора. При этом информационные входы первого и второго блоков хранения и сравнения ассоциативных признаков являются соответственно первым и вторым входами аргумента поиска устройства, а выходы - соответственно первым и вторым адресными входами блока памяти логических векторов, входы задания режимов первого и второго блоков хранения и сравнения ассоциативных признаков и блока памяти логических векторов являются соответственно первым, вторым и третьим входами задания режимов устройства, входы начальной установки первого и второго блоков хранения и сравнения ассоциативных признаков соединены с первым входом начальной установки устройства, второй вход начальной установки которого соединен с одноименным входом операционного блока, первый и второй выходы блока памяти логических векторов соединены соответственно с первым и вторым информационными входами операционного блока, выход и вход кода операции которого являются соответственно информационным выходом и четвертым входом задания режима работы устройства, введены подблок анализатора многократных совпадений и подблок вертикального сумматора, причем один из входов задания режима работы анализатора является пятым входом задания режима работы устройства, а другой соединен с соответствующим выходом операционного блока, третий информационный вход которого соединен с первым информационным выходом анализатора, второй выход которого соединен с первым адресным входом блока памяти, а входы задания режимов работы, информационный вход и вход начальной установки вертикального сумматора соединены с соответствующими выходами операционного блока, при этом информационный выход вертикального сумматора является четвертым информационным входом операционного блока, а первый информационный выход анализатора многократных совпадений - вторым информационным выходом устройства. The goal is achieved by the fact that in the device containing the first and second blocks for storing and comparing associative signs, a memory block of logical vectors, an operation block, a subunit of a multiple coincidence analyzer and a subunit of a vertical adder are additionally introduced. Moreover, the information inputs of the first and second blocks of storage and comparison of associative signs are the first and second inputs of the device search argument, respectively, and the outputs are the first and second address inputs of the logical vector memory block, the inputs of the job modes of the first and second blocks of storage and comparison of associative signs and memory blocks of logical vectors are respectively the first, second and third inputs of setting device modes, inputs of the initial installation of the first and second blocks relations and comparisons of associative features are connected to the first input of the initial installation of the device, the second input of the initial installation of which is connected to the input of the operational unit of the same name, the first and second outputs of the logical vector memory block are connected respectively to the first and second information inputs of the operational unit, the output and input of the operation code of which are respectively the information output and the fourth input of setting the operation mode of the device; a subunit of the multiple coincidence analyzer and a subunit are introduced an vertical adder, one of the inputs of the analyzer operating mode setting being the fifth input of the device operating mode setting, and the other connected to the corresponding output of the operating unit, the third information input of which is connected to the first information output of the analyzer, the second output of which is connected to the first address input of the memory unit, and the inputs of the job operating modes, the information input and the input of the initial installation of the vertical adder are connected to the corresponding outputs of the operating unit, while the info The vertical output of the vertical adder is the fourth information input of the operation unit, and the first information output of the multiple coincidence analyzer is the second information output of the device.

Таким образом, удается осуществить быструю реализацию циклов по маркированным строкам блока матричной памяти логических векторов за счет использования анализатора многократных совпадений, а также быструю реализацию ряда алгоритмов цифровой обработки, расчета весовых коэффициентов или вероятностных характеристик ассоциативных признаков за счет введения вертикального сумматора. Thus, it is possible to carry out fast implementation of loops along the marked lines of a block of matrix memory of logical vectors through the use of a multiple-coincidence analyzer, as well as the quick implementation of a number of digital processing algorithms, calculation of weighting coefficients or probabilistic characteristics of associative features by introducing a vertical adder.

Выявленные отличительные признаки в данной совокупности не встречались в ранее известных источниках, обеспечивают достижение поставленной цели и могут быть квалифицированы как "существенные отличия". Identified distinguishing features in this combination were not found in previously known sources, ensure the achievement of the goal and can be qualified as "significant differences".

На фиг. 1 показана функциональная схема устройства параллельной обработки данных; на фиг.2 - функциональная схема операционного блока; на фиг. 3 - функциональная схема анализатора многократных совпадений; на фиг. 4 - функциональная схема блока вертикального сумматора; на фиг. 5 - временная диаграмма сигналов задания режима "Операция". In FIG. 1 shows a functional diagram of a parallel data processing device; figure 2 is a functional diagram of an operating unit; in FIG. 3 is a functional diagram of a multiple coincidence analyzer; in FIG. 4 is a functional block diagram of a vertical adder; in FIG. 5 is a timing chart of the operation mode setting signals.

Устройство для параллельной обработки данных содержит блоки 11 и 12хранения и сравнения ассоциативных признаков, блок 2 памяти логических векторов, операционный блок 3, подблок 4 анализатора многократных совпадений, подблок 5 вертикального сумматора, выход 51, входы 64-66задания режима работы, вход 71 начальной установки. Блоки 11, 12, 2 полностью соответствуют прототипу как в схемном, так и в функциональном отношении.A device for parallel data processing contains blocks 1 1 and 1 2 for storing and comparing associative signs, a block 2 for logical vector memory, an operation block 3, a subunit 4 of the analyzer of multiple matches, a subunit 5 of the vertical adder, output 5 1 , inputs 6 4 -6 6 of the job operating mode, input 7 1 initial installation. Blocks 1 1 , 1 2 , 2 fully correspond to the prototype both in circuit and in functional terms.

В операционный блок 3 по сравнению с прототипом введены незначительные схемные (коммутационные) изменения в связи с подключением к нему подблоков 4 и 5, но в функциональном отношении соответствует прототипу. In comparison with the prototype, the operational unit 3 introduced minor circuit (switching) changes due to the connection of subunits 4 and 5 to it, but functionally corresponds to the prototype.

Подблок 4 анализатора многократных совпадений функционально совпадает с одноименным устройством, приведенным в кн.Т.Кохонен, Ассоциативные запоминающие устройства (М.: Мир, 1982, с.167, рис. 3.8). Он логически связан с блоком 3 (фиг.2 и 3). Subunit 4 of the multiple coincidence analyzer functionally coincides with the device of the same name listed in the book by T. Kohonen, Associative storage devices (M .: Mir, 1982, p.167, Fig. 3.8). It is logically connected with block 3 (figure 2 and 3).

Подблок 5 вертикального сумматора функционально соответствует суммирующему групповому счетчику, описание и схема которого приведены в кн. Справочник по интегральным микросхемам/Под ред. Тарабрина Б.В. М.: Энергия, 1981, с.701, 704, рис. 5-190. Sub-block 5 of the vertical adder functionally corresponds to the summing group counter, the description and diagram of which are given in the book. Handbook of Integrated Circuits / Ed. Tarabrina B.V. M .: Energy, 1981, p. 701, 704, fig. 5-190.

Наличие подблоков 4 и 5 определило две новые команды, которые подаются из блока управления в блок 3 (см.фиг. 2) на вход 66. Первая из них осуществляет быструю реализацию циклов по маркированным строкам памяти логических векторов. Обозначим эту команду БРЦ. Она инициализирует работу подблока 4.The presence of subunits 4 and 5 determined two new commands that are sent from the control unit to block 3 (see Fig. 2) to input 6 6 . The first of them provides fast implementation of loops along marked lines of memory of logical vectors. We denote this command by the RDC. It initializes the operation of subunit 4.

Вторая команда осуществляет подсчет количества единиц в векторе столбца, обозначим ее Cl. Она инициализирует работу подблока 5. В связи с появлением двух новых команд расширяется по выходу и дешифратор команд 23, один из его выводов идет на вход подблока 5, а другой - на вход 4 подблока 4 (фиг.2). The second command counts the number of units in the column vector, we denote it by Cl. It initializes the work of subunit 5. In connection with the appearance of two new commands, the decoder 23 also expands in output, one of its outputs goes to the input of subunit 5, and the other to input 4 of subunit 4 (Fig. 2).

Анализатор многократных совпадений, реализованный в подблоке 4 (фиг.1) и представленный схемой на фиг. 3, содержит:
- инвертор 31, на вход которого поступает сигнал БРЦ и тем самым направляет вектор информации, считанный из какого-либо столбца памяти 2 логических векторов, либо через двухвходовую сборку элементов И-ИЛИ 32 и выполняется операции БРЦ, либо через двухвходовую сборку элементов И-ИЛИ 33 и с ее выхода непосредственно в операционный блок 3:
- регистр-сдвигатель 35, в котором информация, сдвигаясь в сторону старших разрядов, сравнивается в схеме сравнения 38;
- схема сравнения 38 производит сравнение информации, поступающей из регистра-сдвигателя 35, с информацией, поступающей со входа 11;
- счетчик адреса 37, который при несовпадении информации в схеме сравнения 38 при каждом такте работы увеличивает содержимое адреса на единицу и, обращаясь к регистру адреса 36 и дешифратору адреса 34, выбирает следующий вектор-строку и т.д.
The multiple coincidence analyzer implemented in sub-block 4 (FIG. 1) and represented by the circuit in FIG. 3 contains:
- an inverter 31, to the input of which a BRC signal is received and thereby directs an information vector read from any column of the memory of 2 logical vectors, either through a two-input assembly of AND-OR 32 elements and BRC operations are performed, or through a two-input assembly of AND-OR elements 33 and from its exit directly to the operation unit 3:
- register-shifter 35, in which information, shifting towards the higher bits, is compared in the comparison circuit 38;
- a comparison circuit 38 compares information from the shift register 35 with information from the input 11;
- an address counter 37, which, when the information in the comparison circuit 38 does not match, increases the contents of the address by one at each clock cycle and, referring to address register 36 and address decoder 34, selects the next row vector, etc.

Следует отметить, что подблок 4 включен в разрядные цепи векторов-столбцов блока 2. It should be noted that subunit 4 is included in the discharge chains of column vectors of block 2.

Вертикальный сумматор, реализованный в подблоке 5 (фиг.1), и представленный функционально схемой (фиг. 4), содержит:
- приемный регистр 40 для приема логического вектора;
- регистр-сдвигатель 41, который осуществляет сдвиг в сторону старших разрядов;
- счетный триггер 42;
- двоичный счетчик 43.
The vertical adder implemented in subunit 5 (Fig. 1), and represented functionally by a circuit (Fig. 4), contains:
a receive register 40 for receiving a logical vector;
- register-shifter 41, which performs a shift in the direction of the higher digits;
- counting trigger 42;
- binary counter 43.

Режим "Запись" соответствует алгоритму, приведенному в прототипе. The "Record" mode corresponds to the algorithm given in the prototype.

В алгоритме режима "Операция" с учетом появления подблоков 4 и 5 и расширения функциональных возможностей устройства вносятся по сравнению с прототипом некоторые дополнения. In the algorithm of the "Operation" mode, taking into account the appearance of subunits 4 and 5 and the expansion of the functionality of the device, some additions are made in comparison with the prototype.

Предположим, необходимо считать произвольный вектор-столбец. По наличию единиц в его разрядах выбрать соответствующие вектор-строки. Произвести с элементами этих векторов строк операции, определяемые операционным блоком 3. Далее подсчитать сумму единиц произвольно выбранного вектор-столбца, используя подблок 5. Suppose you want to read an arbitrary column vector. By the presence of units in its digits, select the corresponding row vectors. Perform operations with elements of these row vectors defined by operation block 3. Next, calculate the sum of units of an arbitrarily selected column vector using subblock 5.

Тогда устройство выполняет эту операцию следующим образом: на вход 71 "Начальная установка" операционного блока 3 подается импульсный сигнал начальной установки. Помимо начальной установки всех схем устройства параллельной обработки данных происходит занесение единицы в схему совпадения 38 через вход 11 блока 4. После окончания действия сигнала начальной установки УУ считывает вектор-столбец по произвольному адресу и подает его на вход двухвходовой сборки элементов И19 блока 3. Одновременно на вход 66 блока 3 подается сигнал БРЦ, а на вход 64 - сигнал "Чтение столбца", который разрешает прохождение считанного вектор-столбца через сборки элементов И19 блока 3 на вход 6 подблока 4. Сигнал БРЦ, дешифруясь в дешифраторе команд 23 блока 3, поступает на вход 4 подблока 4 и далее на вход 1 сборки элементов ИЛИ 32, разрешая прохождение вектор-столбца на регистр-сдвигатель 35 подблока 4 и в инвертируемом виде - на вход 2 сборки элементов ИЛИ 33, запрещая прохождение вектор-столбца на выход 5 подблока 4. Далее вектор-столбец сдвигается в сторону старших разрядов регистра-сдвигателя 35 подблока 4. Таким образом, все разряды вектора-столбца проходят через старший разряд регистра-сдвигателя 35. При каждом сдвиге на один разряд заряжается на единицу счетчик адреса строк 37 подблока 4. Когда в старшем разряде регистра-сдвигателя 35 появляется единица, происходит срабатывание схемы совпадения 38 подблока 4, информационный вход которой соединен со старшим разрядом регистра-сдвигателя 35. При этом сигнал совпадения с выхода схемы совпадения 38, поступая на установочный вход счетчика адреса строк 37, разрешает занесение значения счетчика 37 на регистр адреса строк 36 подблока 4, дешифратор адреса строк 34 подблока 4 и через выход 3 подблока 4 на разрядные координаты векторов-строк блока 2, выбирая вектор-строку по определенному адресу. Одновременно УУ посылает сигнал "Чтение строки" на вход 65 блока 3 и один из кодов операций, например, "Логическое сложение" на вход 66 блока 3. Происходит подача вектора-строки на вход 2 блока 3, который проходит открытую сигналом "Чтение строки" сборку элементов 20, 21 и поступает в узел логических операций 26 блока 3. Далее выполняется логическая операция "Логическое сложение" в полном соответствии с прототипом. По окончании выполнения операции "Логическое сложение" возобновляется сдвиг вектора-столбца в регистре-сдвигателе 35 до появления в его старшем разряде следующей единицы, и весь процесс повторяется. Этот цикл повторяется до тех пор, пока младший разряд вектора-столбца, сдвигаясь, не окажется в старшем разряде регистра-сдвигателя 35 подблока 4. После этого вновь на вход 71"Начальная установка" операционного блока 3 подается импульсный сигнал начальной установки. На этом первая часть режима "Операция" заканчивается.Then the device performs this operation as follows: to the input 7 1 "Initial installation" of the operation unit 3, a pulse signal of the initial installation. In addition to the initial installation of all the circuits of the device for parallel data processing, the unit is entered into the coincidence circuit 38 through the input 11 of block 4. After the end of the signal of the initial installation, the control unit reads the column vector at an arbitrary address and feeds it to the input of the two-input assembly of elements I19 of block 3. input 6 6 of block 3 is fed by the BRC signal, and input 6 4 is the “Read Column” signal, which allows the read vector column through the assembly of elements I19 of block 3 to input 6 of subunit 4. The signal of the BRC, decrypted in command encoder 23 of block 3, is fed to input 4 of subunit 4 and then to input 1 of the assembly of OR 32 elements, allowing the column vector to pass to the shift register 35 of subunit 4 and in inverted form to input 2 of the assembly of OR 33 elements, prohibiting the passage of the vector -column to the output 5 of subunit 4. Next, the column vector is shifted to the higher bits of the shift register 35 of subunit 4. Thus, all the bits of the column vector pass through the highest bit of the shift register 35. At each shift, one bit is charged per unit page counter to 37 of subunit 4. When one appears in the high order of register-shifter 35, matching circuit 38 of subunit 4 is triggered, the information input of which is connected to the highest level of register-shifter 35. In this case, the coincidence signal from the output of coincidence circuit 38 arrives at the installation input line address counter 37, allows the entry of the value of counter 37 on the line address register 36 of subunit 4, line address decoder 34 of subunit 4 and through output 3 of subunit 4 to the bit coordinates of row vector vectors of block 2, choosing a row vector by definition green address. At the same time, the control unit sends a “Read line” signal to input 6 of block 3 and one of the operation codes, for example, “Logical addition” to input 6 of block 3. A row vector is fed to input 2 of block 3, which passes through the “Read” signal line "assembly of elements 20, 21 and enters the logical operation node 26 of block 3. Next, the logical operation" Logical addition "is performed in full accordance with the prototype. Upon completion of the operation "Logical addition", the column-vector shift in the shift register 35 is resumed until the next unit appears in its highest order, and the whole process is repeated. This cycle is repeated until the least significant bit of the column vector, shifting, is in the highest bit of the shift register 35 of subunit 4. After that, the pulse of the initial setting signal is again input 7 1 "Initial setting" of the operation unit 3. On this, the first part of the Operation mode ends.

Производится подсчет числа единиц в произвольном векторе-столбце. Происходит это следующим образом. The number of units in an arbitrary column vector is calculated. It happens as follows.

После подачи на вход 71 "Начальная установка" сигнала начальной установки он по входу 10 проходит на триггер 42 и счетчик 43 подблока 5 и сбрасывает их в исходное состояние. По команде СI и команде "Чтение столбца" из дешифратора команд 23 через вход 7 подблока 5 на приемный регистр поступает сигнал, разрешающий подачу вектора-столбца из приемного регистра 40 в регистр-сдвигатель 41. Триггер 42 соединен со старшим разрядом регистра-сдвигателя 41. По мере сдвига вектора-столбца через регистр-сдвигатель 41 триггер реагирует только на наличие в этом разряде единицы. При наличии единицы в старшем разряде регистра-сдвигателя 41 триггер 42 срабатывает и заряжает счетчик 43 на единицу. При наличии в старшем разряде регистра сдвигателя нуля триггер остается в предыдущем состоянии, счетчик не заряжается. Таким образом, счетчик подсчитывает количество числа единиц в векторе-столбце и передает это в УУ.After applying to the input 7 1 "Initial installation" of the initial installation signal, it passes through input 10 to trigger 42 and counter 43 of subunit 5 and resets them to their initial state. At the CI command and the Read Column command, a signal is received from the instruction decoder 23 through the input 7 of the subunit 5 to the reception register, which allows the column vector from the reception register 40 to be shifted to the shift register 41. The trigger 42 is connected to the highest bit of the shift register 41. As the column vector is shifted through the shift register 41, the trigger only responds to the presence of unity in this category. If there is a unit in the high order of the shift register 41, the trigger 42 fires and charges the counter 43 per unit. If there is a zero shifter register in the high order, the trigger remains in the previous state, the counter does not charge. Thus, the counter counts the number of units in the column vector and passes this to the control unit.

Временная диаграмма сигналов задания режима приведена в прототипе на фиг. 5 и соответствует данной заявке на изобретение, а временная диаграмма сигналов задания режима "Операция", приведена на фиг. 5. The timing diagram of the mode setting signals is shown in the prototype of FIG. 5 and corresponds to this application for an invention, and the timing diagram of the operation mode setting signals is shown in FIG. 5.

Чтобы объяснить вычислительные возможности устройства, необходимо привести основные положения программно-математического обеспечения биассоциативной машины. To explain the computing capabilities of the device, it is necessary to give the basic provisions of the mathematical software of the biassociative machine.

Основными структурными единицами в существующих системах накопления, поиска и сортировки нечисловой и смешанной информации являются аналоги речевых структур, т. е. литеры, сочетания литер, слова, идентификаторы, представления чисел и т.д. При вводе и выводе информации эти структурные единицы бузусловно необходимы, но целесообразность их использования в качестве основных промежуточных элементов в процессе машинной реализации параллельных операций вызывает сомнение. Эффективное применение поразрядной обработки матричных структур и использование естественного параллелизма данных, очевидно, во многом зависит от выбора основных структурных единиц при обработке данных и от такой организации вычислений, при которой аналоги речевых структур по возможности не используются в качестве промежуточных результатов. С учетом этого целесообразно ввести в качестве основных структурных единиц элементы, соответствующие архитектуре БМ. К ним, в частности, относятся:
- последовательности М (строковых) и N (столбцовых) адресов;
- R - слова, слова и подслова;
- подпоследовательности.
The main structural units in the existing systems of accumulation, search and sorting of non-numeric and mixed information are analogues of speech structures, i.e. letters, combinations of letters, words, identifiers, representations of numbers, etc. When entering and outputting information, these structural units are literally necessary, but the appropriateness of using them as the main intermediate elements in the process of machine implementation of parallel operations is doubtful. The effective use of bitwise processing of matrix structures and the use of natural parallelism of data, obviously, largely depends on the choice of the basic structural units in data processing and on the organization of calculations in which analogues of speech structures are not used as intermediate results, if possible. With this in mind, it is advisable to introduce as the main structural units the elements corresponding to the architecture of the BM. These include, but are not limited to:
- a sequence of M (string) and N (column) addresses;
- R - words, words and subwords;
- subsequences.

Последовательности M и N являются множествами последовательных адресов соответствующих "битовых срезов" матричной памяти. По составу элементов (целых чисел) они могут пересекаться и даже совпадать. The sequences M and N are sets of consecutive addresses of the corresponding "bit slices" of the matrix memory. By the composition of the elements (integers) they can intersect and even coincide.

R-слово - строка или столбец из нулей и единиц, размерность которых равна размерности соответствующей координаты матричной памяти. Слово или подслово - непрерывная часть R-слова. R-word - a row or column of zeros and ones whose dimension is equal to the dimension of the corresponding coordinate of the matrix memory. A word or subword is a continuous part of an R-word.

В слове могут быть закодированы в (0,1) - алфавите числа, литеры, их последовательности или их части. The word can be encoded in (0,1) - the alphabet of numbers, letters, their sequences or parts thereof.

Подпоследовательности Р (Ri) определяются произвольным R-словом Riи представляют подмножество адресов или связанных с ними идентификаторов, соответствующих единицам R-слова Ri. Другими словами, при определении подпоследовательности считают, что произвольные R-слова являются характеристическими векторами каких-либо подмножеств М или N, или связанных с ними идентификаторов.Subsequences P (R i ) are defined by an arbitrary R-word R i and represent a subset of addresses or associated identifiers corresponding to units of the R-word R i . In other words, when determining a subsequence, it is believed that arbitrary R-words are characteristic vectors of any subsets of M or N, or associated identifiers.

Вводят обозначения: R-слова будут обозначаться Ri, RNi (если они находятся в i-м регистре соответствующего процессорного модуля) и СМi, CNi (если они находятся в соответствующих адресам Mi и Ni строках или столбцах матричной памяти). Для обозначения слов вводятся дополнительно еще два индекса (j, k), которые обозначают начальные и конечные разряды слова в данном R-слове, т.е. Ri(j,k), CMi(j,k), CNi(j,k) являются словами в соответствующих R-словах.The following notation is introduced: R-words will be denoted by R i , RNi (if they are in the i-th register of the corresponding processor module) and SM i , CN i (if they are in the rows or columns of the matrix memory corresponding to the addresses M i and N i ). To designate the words, two more indices (j, k) are introduced, which denote the initial and final digits of the word in the given R-word, i.e. R i (j, k), CM i (j, k), CN i (j, k) are words in the corresponding R-words.

Если данные в матричной памяти представлены в виде таблицы и для каждого элемента заголовка таблицы определены начальные и конечные разряды, т.е. слово в произвольном R-слове определяется идентификатором элемента заголовка, например Ri(B), CNi(GP) и т.д. В дальнейшем считают, что СКi- R-слово произвольной координаты.If the data in the matrix memory is presented in the form of a table, and for each element of the table header, the initial and final digits are determined, i.e. a word in an arbitrary R-word is determined by the identifier of the header element, for example, R i (B), CN i (GP), etc. In the future, it is believed that SK i is an R-word of arbitrary coordinate.

Рассмотрим основные элементарные операции в БМ. Consider the basic elementary operations in BM.

1) Ri ==CKi - пересылка строки или столбца матричной памяти с адресом Kj в регистр соответствующего процессорного модуля.1) R i == CK i - transfer of a row or column of matrix memory with address K j to the register of the corresponding processor module.

2) CKj= =Ri - запись R-слова, содержащегося в регистре, в столбец (или строку) матричной памяти с адресом Kj.2) CK j = Ri - write the R-word contained in the register in the column (or row) of the matrix memory with the address K j .

Figure 00000001
Figure 00000002
элементарные логические операции с R-словами, находящимися в регистрах определенного процессорного модуля: .NOT. - НЕ, OR. - ИЛИ, .AND. - И,. XOR. - ИСКЛ.ИЛИ.
Figure 00000001
Figure 00000002
elementary logical operations with R-words located in the registers of a particular processor module: .NOT. - NOT, OR. - OR, .AND. - And ,. XOR. - EXCLUSIVE OR.

4) Ri==Rj - пересылка R-cлова из регистра в регистр.4) R i == R j - transfer of the R-word from register to register.

5) Ri==0 - "чистка" регистра, т.е. запись нуля во все разряды регистра.5) R i == 0 - "cleaning" of the register, i.e. write zero to all bits of the register.

6) Ri==0: - проверка нуля. Эта операция осуществляет проверку условия; во всех ли разрядах регистра нули или имеется хотя бы один разряд с единицей.6) R i == 0: - zero check. This operation checks the condition; whether all bits in the register are zeros or is there at least one bit with a unit.

Помимо перечисленных операций в БМ целесообразно реализовать два вида циклов:
1) цикл по слову, в котором загрузка R-слова в процессорный модуль и реализация однотипных операций над ними производится последовательно по заданному подслову адресов M(j,k) или N(j,k), где j и k - соответственно начальный и конечный адреса подслов;
2) цикл по подпоследовательности, в котором загрузка R-слов и операции над ними производятся по подпоследовательности P(Ri).
In addition to the above operations in BM, it is advisable to implement two types of cycles:
1) a word cycle in which the R-word is loaded into the processor module and operations of the same type are performed on them sequentially at a given subword of addresses M (j, k) or N (j, k), where j and k are the initial and final, respectively subwords addresses;
2) a subsequence cycle in which the loading of R-words and operations on them are carried out according to the subsequence P (R i ).

Для быстрой реализации циклов по подпоследовательности в процессорный модуль вводится последовательный анализатор многократных совпадений, в котором последовательно по возрастанию адресов вводятся в действие активные разряды одного из регистров процессорного модуля, содержащего R-слово Ri.For the quick implementation of loops in a subsequence, a sequential multiple-coincidence analyzer is introduced into the processor module, in which active bits of one of the registers of the processor module containing the R-word R i are activated sequentially by increasing addresses.

Управляющее устройство (УУ) представляет собой обычную мини- или микроЭВМ, в которой предусмотрена возможность использования проблемно ориентированного языка (в данной работе используется часто встречающееся подмножество языка ПАСКАЛЬ с некоторым расширением для обозначения вышеописанных операций с R-словами). The control device (UE) is a regular mini- or microcomputer, in which the possibility of using a problem-oriented language is provided (in this paper we use a frequently encountered subset of the PASKAL language with some extension to denote the above operations with R-words).

В ст. Кулика Б.А. "Быстродействующие ИПС на основе операций с логическими векторами" приведен ряд алгоритмов, позволяющих организовать поиск в произвольной таблице. Список этих алгоритмов и оценка их вычислительной сложности приведены в таблице. При оценке сложности алгоритмов используются следующие обозначения:
0 - обозначение функции сложности;
m - число разрядов битового представления элемента массива;
k - число полей в таблице данных.
In Art. Kulika B.A. "High-speed IPSs based on operations with logical vectors" a number of algorithms are given that allow you to organize a search in an arbitrary table. A list of these algorithms and an assessment of their computational complexity are given in the table. When evaluating the complexity of algorithms, the following notation is used:
0 - designation of the complexity function;
m is the number of bits of the bit representation of the array element;
k is the number of fields in the data table.

Для приведенных в таблице алгоритмов, вычислительная сложность не зависит от числа элементов массива или числа записей в таблиц данных при условии, что это число не превышает соответствующей размерности матричной памяти. For the algorithms shown in the table, the computational complexity does not depend on the number of array elements or the number of entries in the data tables, provided that this number does not exceed the corresponding dimension of the matrix memory.

Рассмотрим некоторые неопубликованные алгоритмы и способы их реализации на предлагаемом устройстве, позволяющие использовать его для решения задач быстрой цифровой обработки данных векторного и матричного типов. Одним из основных алгоритмов цифровой обработки является алгоритм расчета векторной суммы. Рассмотрим вначале эту операцию для множества чисел без знака, представленных в формате с фиксированной точкой. Consider some unpublished algorithms and methods for their implementation on the proposed device, allowing you to use it to solve problems of fast digital processing of vector and matrix data types. One of the main digital processing algorithms is the vector sum algorithm. We first consider this operation for a multitude of unsigned numbers presented in a fixed-point format.

Алгоритм N(i,j)==N(p,q) + d
Данные: множество m-разрядных двоичных чисел без знака, расположенных в колонке N(p, q) и m-разрядное двоичное число d, значения разрядов которого равны соответственно
dm-1, dm-2,...,d0.
Algorithm N (i, j) == N (p, q) + d
Data: the set of m-bit unsigned binary numbers located in the N (p, q) column and the m-bit binary number d, whose bit values are respectively
d m-1 , d m-2 , ..., d 0 .

Результат: множество m+1-разрядных двоичных чисел без знака, расположенных в колонке N(i,j) и представляющих сумму каждого элемента исходного вектора с числом d. Result: a set of m + 1-bit unsigned binary numbers located in the N (i, j) column and representing the sum of each element of the original vector with the number d.

{1} R1==0;
{2} R2==0;
{3} k:==0;
{4} while k<m+1 d0
{5} begin
{6} R3==CN(q-k);
{7} if dk=0 then R4==R1 else R4==.NOT.R1;
{8} R5==R2.XOR.R3.XOR.R4;
{9} R2==(R2. AND.R3). OR. (R2.AND.R4). .OR.(R3.AND.R4);
{10} CN(j-k)==R5;
{11} k:=k+1
{12} end;
{13} CN(i)==R2.
{1} R 1 == 0;
{2} R 2 == 0;
{3} k: == 0;
{4} while k <m + 1 d 0
{5} begin
{6} R 3 == CN (qk);
{7} if d k = 0 then R 4 == R 1 else R 4 ==. NOT.R 1 ;
{8} R 5 == R 2 .XOR.R 3 .XOR.R 4 ;
{9} R 2 == (R 2. AND.R 3 ). OR. (R 2 .AND.R 4 ). .OR. (R 3 .AND.R 4 );
{10} CN (jk) == R 5 ;
{11} k: = k + 1
{12} end;
{13} CN (i) == R 2 .

В представленном алгоритме в строке 8 вычисляется значение текущего разряда суммы, а в строке 9 реализуется вычисление функции переноса. In the presented algorithm, in line 8, the value of the current discharge of the sum is calculated, and in line 9, the transfer function is calculated.

В ряде случаев возникает необходимость в процессе вычисления векторной суммы оставлять без изменения подпоследовательность каких-либо элементов множества чисел, например, добавлять заданное число только к отрицательным числам колонки. Для решения этой задачи можно, в частности, воспользоваться алгоритмом
N(i, j)= = N(p,q)+d.AND.P(ri), в котором изменяется величина только тех чисел, которые маркированы вектором P(n), находящемся в одном из разрядов матричной памяти. Для решения этой задачи можно воспользоваться предыдущим алгоритмом, добавив в него после строк 2 и 7 следующие строки:
{2а} R6==P(n);
{7a} R4==R4.AND.R6.
In some cases, it becomes necessary to leave the subsequence of any elements of the set of numbers unchanged in the process of computing the vector sum, for example, add a given number only to negative numbers in a column. To solve this problem, in particular, you can use the algorithm
N (i, j) = N (p, q) + d.AND.P (r i ), in which the magnitude of only those numbers that are marked by the vector P (n) located in one of the digits of the matrix memory changes. To solve this problem, you can use the previous algorithm by adding the following lines to it after lines 2 and 7:
{2a} R 6 == P (n);
{7a} R 4 == R4.AND.R 6 .

Для учета знаков чисел, расположенных в колонках матричной памяти, целесообразно ввести знаковый разряд, расположенный как и в традиционных АЛУ, левее старшего значащего разряда. Кроме того, числа могут представляться в дополнительном и обратном кодах. Покажем, как в устройстве выполняется операция преобразования прямого кода со знаком в старшем разряде в дополнительный код. To account for the signs of numbers located in the columns of the matrix memory, it is advisable to introduce a sign digit located, as in traditional ALU, to the left of the most significant digit. In addition, numbers can be represented in additional and reverse codes. Let us show how the device performs the operation of converting a direct code with a sign in the high order to an additional code.

Алгоритм СС N(i,j)
Данные: множество чисел с фиксированной точкой, представленных в прямом коде в колонке N(i,j), и m-разрядное положительное число d, представляющее наименьшее положительное число в данном формате.
SS algorithm N (i, j)
Data: the set of fixed-point numbers represented in the direct code in the column N (i, j), and the m-bit positive number d, representing the smallest positive number in this format.

Результат: исходное множество чисел, представленное в дополнительном коде в той же колонке. Result: the original set of numbers represented in the additional code in the same column.

{1} Ri==CN(i);
{2} for k:=i+1 t0 j d0
{3} begin
{4} R2==CN(k);
{5} R2==R2.XOR.R1;
{6} CN(k)==R2;
{7} end;
{8} N(i,j)==N(i,j)+d.AND.R1.
{1} R i == CN (i);
{2} for k: = i + 1 t 0 jd 0
{3} begin
{4} R 2 == CN (k);
{5} R 2 == R 2 .XOR.R 1 ;
{6} CN (k) == R 2 ;
{7} end;
{8} N (i, j) == N (i, j) + d.AND.R 1 .

В данном алгоритме в зависимости от значения знакового разряда остаются неизменными или инвертируются значения текущих разрядов чисел, после чего к отрица- тельным числам прибавляется число d. In this algorithm, depending on the value of the sign digit, the values of the current bits of numbers remain unchanged or are inverted, after which the number d is added to the negative numbers.

Алгоритм перевода чисел из дополнительного кода в прямой реализуется аналогично с вышеописанным, но в обратном порядке: вначале к множеству отрицательных чисел прибавляется наименьшее отрицательное число, представленное в дополнительном коде, после чего инвертируются значащие разряды отрицательных чисел. The algorithm for converting numbers from an additional code to a straight line is implemented similarly to the above, but in the reverse order: first, the smallest negative number, presented in the additional code, is added to the set of negative numbers, after which the significant digits of negative numbers are inverted.

Для векторного сложения двух множеств чисел можно использовать следующий алгоритм. For vector addition of two sets of numbers, you can use the following algorithm.

Алгоритм N(i,j)==N(p,q)+N(s,t)
Данные: два числовых вектора, представленные в дополнительном коде в m-разрядных колонках N(p,q) и N(s,t).
Algorithm N (i, j) == N (p, q) + N (s, t)
Data: two numerical vectors represented in the additional code in m-bit columns N (p, q) and N (s, t).

Результат: множество m+1-разрядных чисел, представленных в дополнительном коде, каждое из которых равно сумме двух чисел, расположенных на соответствующей строке в колонках N(p,q) И N(s,t). Result: a set of m + 1-bit numbers represented in an additional code, each of which is equal to the sum of two numbers located on the corresponding line in the columns N (p, q) and N (s, t).

{1} R1==0;
{2} k:=0;
{3} while k<m+1 d0
{4} begin
{5} R2==CN(t-k);
{6} R3==CN(q-k);
{7} R4==R1. XOR.R2.XOR.R3;
{8} R1==(R1.AND.R2).OR.(R1.AND.R3). .OR.(R2.AND.R3);
{9} CN(j,k)==R4;
{10} k:=k+1;
{11} end;
{12} R4==R1.XOR.R2.XOR.R3;
{13} CN(i)==R4.
{1} R 1 == 0;
{2} k: = 0;
{3} while k <m + 1 d 0
{4} begin
{5} R 2 == CN (tk);
{6} R 3 == CN (qk);
{7} R 4 == R 1 . XOR.R 2 .XOR.R 3 ;
{8} R 1 == (R 1 .AND.R 2 ) .OR. (R 1 .AND.R 3 ). .OR. (R 2 .AND.R 3 );
{9} CN (j, k) == R 4 ;
{10} k: = k + 1;
{11} end;
{12} R 4 == R 1 .XOR.R 2 .XOR.R 3 ;
{13} CN (i) == R 4 .

В данном алгоритме предусматривается добавление разряда в колонку результатов для того, чтобы избежать возможных случаев переполнения при подсчете суммы двух чисел. This algorithm provides for the addition of a discharge to the column of results in order to avoid possible cases of overflow when calculating the sum of two numbers.

Зная алгоритм вычисления векторной суммы, нетрудно составить алгоритм вычисления векторного произведения. В этом случае также, как и при выполненни операций с числами, представленными в формате с плавающей точкой, необходимо осуществлять сдвиг маркированных чисел колонки. В качестве примера рассмотрим алгоритм, с помощью которого реализуется сдвиг вправо на один разряд маркированных чисел колонки. Knowing the algorithm for calculating the vector sum, it is easy to compose an algorithm for calculating the vector product. In this case, as well as when performing operations with numbers presented in floating point format, it is necessary to shift the marked numbers of the column. As an example, consider an algorithm that implements a right shift by one bit of marked column numbers.

Алгоритм RS N(i,j).ABD.P(n)
Данные: m-разрядные слова или числа, записанные в колонне N(i,j), и вектор Р(n), маркирующий строки, подлежащие сдвигу.
Algorithm RS N (i, j) .ABD.P (n)
Data: m-bit words or numbers written in column N (i, j), and vector P (n) marking the lines to be shifted.

Результат: сдвиг на один разряд маркированных слов колонки N(i,j). Result: a shift by one digit in the marked words of column N (i, j).

{1} R1==P(n);
{2} R2==CN(i);
{3} R3== .NOT. R1. AND. R2;
{4} CN(i)==R3;
{5} R3==CN(i+1);
{6} for k:=1 t0 m-1 do
{7} begin
{8} R2==(R1. AND.R2).OR. (.NOT. R1.AND. R3);
{9} CN(i+k)==R2;
{10} R2==R3;
{11} R3==CN(i+k+1)
{12} end.
{1} R 1 == P (n);
{2} R 2 == CN (i);
{3} R 3 == .NOT. R 1 . AND. R 2 ;
{4} CN (i) == R 3 ;
{5} R 3 == CN (i + 1);
{6} for k: = 1 t 0 m-1 d o
{7} begin
{8} R 2 == (R 1. AND.R 2 ) .OR. (.NOT. R 1 .AND. R 3 );
{9} CN (i + k) == R 2 ;
{10} R 2 == R 3 ;
{11} R 3 == CN (i + k + 1)
{12} end.

Нетрудно убедиться, что вычислительная сложность приведенных алгоритмов не зависит от размерности вектора, если она не превышает соответствующей размерности матричной памяти. It is easy to verify that the computational complexity of the above algorithms does not depend on the dimension of the vector if it does not exceed the corresponding dimension of the matrix memory.

Вычисление суммы произвольного вектора в трацидионных ЭВМ осуществляется со сложностью O(N), где N - количество элементов вектора. Введение в устройство вертикального сумматора позволяет для векторов большой размерности значительно ускорить эту операцию. Обозначим SUM(Ri) операцию суммирования единиц в регистре Ri. Если m-разрядные элементы числового вектора представлены в прямом коде в колонке N(i,j), то суммирование всех элементов этого вектора можно осуществить с помощью следующей последовательности операций (S[1. . m-1] , T[1..m-1] - промежуточные массивы целых положительных чисел):
{1} R1==CN(i); {загрузка в регистр знакового разряда}
{2} R2== .NOT .R1;
{3} for k:=i+1 t0 j d0
{4} begin
{5} R3==CN(k);
{6} R4==R1. AND. R3;
{7} S[k-1]:=SUM(R4);
{8} R4==R2. AND .R3;
{9} T[k-1]:=SUM(R4)
{10} end.
The calculation of the sum of an arbitrary vector in a traction computer is carried out with complexity O (N), where N is the number of elements in the vector. Introduction to the device of a vertical adder allows vectors of large dimension to significantly accelerate this operation. Denote by SUM (R i ) the operation of summing the units in the register R i . If m-bit elements of a numerical vector are represented in direct code in the column N (i, j), then the summation of all elements of this vector can be carried out using the following sequence of operations (S [1.. M-1], T [1..m -1] - intermediate arrays of positive integers):
{1} R 1 == CN (i); {loading into the register of a sign discharge}
{2} R 2 == .NOT .R 1 ;
{3} for k: = i + 1 t 0 jd 0
{4} begin
{5} R 3 == CN (k);
{6} R 4 == R 1 . AND. R 3 ;
{7} S [k-1]: = SUM (R 4 );
{8} R 4 == R 2 . AND .R 3 ;
{9} T [k-1]: = SUM (R 4 )
{10} end.

Для вычисления суммы достаточно в УУ произвести следующие вычисления:
{1} SS: =

Figure 00000003
S[i]×2m-i-1
{2} TS: =
Figure 00000004
T[i]×2m-i-1
{3} RES:=TS-SS.To calculate the amount, it is enough in UU to make the following calculations:
{1} SS: =
Figure 00000003
S [i] × 2 mi-1
{2} TS: =
Figure 00000004
T [i] × 2 mi-1
{3} RES: = TS-SS.

Очевидно, что при использовании вертикального сумматора вычислительная сложность операции суммирования вектора равна O(sm), где s-вычислительная сложность операции суммирования единиц в произвольном разряде, m-число разрядов элементов вектора. Obviously, when using a vertical adder, the computational complexity of the operation of summing a vector is O (sm), where s is the computational complexity of the operation of summing units in an arbitrary bit, and m is the number of bits of the vector elements.

Таким образом, предлагаемое техническое решение позволяет расширить класс задач параллельной обработки, осуществляемых с помощью параллельных логических операций над логическими векторами произвольной размерности. Thus, the proposed technical solution allows you to expand the class of parallel processing tasks carried out using parallel logical operations on logical vectors of arbitrary dimension.

Claims (1)

УСТРОЙСТВО ДЛЯ ПАРАЛЛЕЛЬНОЙ ОБРАБОТКИ ДАННЫХ, содержащее первый и второй блоки хранения и сравнения ассоциативных признаков, блок памяти логических векторов и операционный блок, причем информационные входы первого и второго блоков хранения и сравнения ассоциативных признаков являются соответственно первым и вторым входами аргумента поиска устройства, а их выходы соединены соответственно с первым и вторым адресными входами блока памяти логических векторов, входы режима первого и второго блоков хранения и сравнения ассоциативных признаков и вход записи-считывания блока памяти логических векторов являются соответственно первым, вторым и третьим входами режима устройства, первый вход начальной установки устройства подключен к входам начальной установки первого и второго блоков хранения и сравнения ассоциативных признаков, второй вход начальной установки - к входу начальной установки операционного блока, первый и второй выходы блока памяти логических векторов подключены соответственно к первому и второму информационным входам операционного блока, вход кода операции устройства подключен к входу кода операции операционного блока, отличающееся тем, что, с целью расширения функциональных возможностей за счет поиска логических векторов-строк по отличительным атрибутам через циклический перебор логических векторов-столбцов, а также подсчета числа единиц в произвольно заданном векторе-столбце, оно содержит блок анализа многократных совпадений, блок подсчета числа единиц, причем второй вход начальной установки устройства подключен к входам начальной установки блока подсчета числа единиц и блока анализа многократных совпадений, первый и второй выходы которого подключены соответственно к третьему адресному входу блока памяти логических векторов и к третьему информационному входу операционного блока, первый и второй информационные выходы, выход признака операции анализа многократных совпадений и выход признака операции определения числа единиц операционного блока подключены соответственно к информационным входам блока анализа многократных совпадений и блока подсчета числа единиц, к входам синхронизации блока анализа многократных совпадений и блока подсчета числа единиц, выход которого подключен к информационному выходу устройства и к четвертому информационному входу операционного блока. A device for PARALLEL DATA PROCESSING, containing the first and second blocks for storing and comparing associative signs, a logical vector memory block and an operation block, the information inputs of the first and second blocks for storing and comparing associative signs are the first and second inputs of the device search argument, respectively, and their outputs connected respectively to the first and second address inputs of the logical vector memory block, the mode inputs of the first and second storage blocks and associative comparisons the nak and the write-read input of the logical vector memory block are respectively the first, second, and third inputs of the device mode, the first input of the initial installation of the device is connected to the inputs of the initial installation of the first and second blocks of storage and comparison of associative signs, the second input of the initial installation is to the input of the initial installation operating unit, the first and second outputs of the logical vector memory block are connected respectively to the first and second information inputs of the operating unit, the input of the operating code the device’s AI is connected to the input of the operation unit operation code, characterized in that, in order to expand the functionality by searching for logical row vectors by distinguishing attributes through cyclic enumeration of logical column vectors, as well as counting the number of units in an arbitrarily specified column vector, it contains a multiple coincidence analysis unit, a unit number counting unit, the second input of the initial installation of the device being connected to the initial settings of the unit numbering unit and the unit liz of multiple matches, the first and second outputs of which are connected respectively to the third address input of the logical vector memory block and the third information input of the operation unit, the first and second information outputs, the output of the operation attribute of the analysis of multiple matches and the output of the operation sign of determining the number of units of the operation unit are connected respectively to the information inputs of the multiple coincidence analysis unit and the unit number counting unit, to the synchronization inputs of the multiple coincidence analysis unit tnyh coincidence and counting the number of block units, whose output is connected to the data output device and the fourth data input operation unit.
SU4911994 1991-02-19 1991-02-19 Concurrent data processing device RU2028664C1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SU4911994 RU2028664C1 (en) 1991-02-19 1991-02-19 Concurrent data processing device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SU4911994 RU2028664C1 (en) 1991-02-19 1991-02-19 Concurrent data processing device

Publications (1)

Publication Number Publication Date
RU2028664C1 true RU2028664C1 (en) 1995-02-09

Family

ID=21560910

Family Applications (1)

Application Number Title Priority Date Filing Date
SU4911994 RU2028664C1 (en) 1991-02-19 1991-02-19 Concurrent data processing device

Country Status (1)

Country Link
RU (1) RU2028664C1 (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Авторское свидетельство СССР N 1485254, кл. G 06F 12/00, 1987. *
Высокоскоростные вычисления. Архитектура, производительность, прикладные алгоритмы и программы супер ЭВМ / Я.Ковалика, М.: Радио и связь, 1988, с.432. *

Similar Documents

Publication Publication Date Title
US4270181A (en) Data processing system having a high speed pipeline processing architecture
US4053871A (en) Method and system for the iterative and simultaneous comparison of data with a group of reference data items
EP0180239A2 (en) Content-addressable memory
CN110826719A (en) Quantum program processing method and device, storage medium and electronic device
US20070027867A1 (en) Pattern matching apparatus and method
US5122979A (en) Method and a digital electronic device for the evaluation of an extremum of a set of binary encoded data words
US20180113951A1 (en) Graph traversal using automata processor
US3391390A (en) Information storage and processing system utilizing associative memory
US3660823A (en) Serial bit comparator with selectable bases of comparison
US3389377A (en) Content addressable memories
Cull et al. Towers of Hanoi and analysis of algorithms
JPH07177005A (en) Bit pattern detector circuit and bit pattern detecting method
US4891782A (en) Parallel neural network for a full binary adder
RU2028664C1 (en) Concurrent data processing device
JPS6142031A (en) Sorting processor
JP2745710B2 (en) String search method and apparatus therefor
Nagumo et al. Parallel algorithms for the static dictionary compression
RU72771U1 (en) DEVICE FOR PARALLEL SEARCH AND DATA PROCESSING
Lee ALTEP—A cellular processor for high-speed pattern matching
RU223472U1 (en) DEVICE FOR PROCESSING DESCRIPTORS AND PARALLEL SEARCHING FOR INTERNETWORK INTERACTION CANDIDATES
JPH0315221B2 (en)
RU2469425C2 (en) Associative memory matrix for masked inclusion search
RU2789997C1 (en) Method and matrix device for parallel-pipeline pattern match search
RU2549525C2 (en) Method and apparatus for searching for composite sample in sequence
RU2787742C1 (en) Matrix device for fast occurrence search and data processing