RU2028664C1 - Concurrent data processing device - Google Patents
Concurrent data processing device Download PDFInfo
- 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
Links
Images
Landscapes
- Complex Calculations (AREA)
Abstract
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/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
В операционный блок 3 по сравнению с прототипом введены незначительные схемные (коммутационные) изменения в связи с подключением к нему подблоков 4 и 5, но в функциональном отношении соответствует прототипу. In comparison with the prototype, the
Подблок 4 анализатора многократных совпадений функционально совпадает с одноименным устройством, приведенным в кн.Т.Кохонен, Ассоциативные запоминающие устройства (М.: Мир, 1982, с.167, рис. 3.8). Он логически связан с блоком 3 (фиг.2 и 3).
Подблок 5 вертикального сумматора функционально соответствует суммирующему групповому счетчику, описание и схема которого приведены в кн. Справочник по интегральным микросхемам/Под ред. Тарабрина Б.В. М.: Энергия, 1981, с.701, 704, рис. 5-190.
Наличие подблоков 4 и 5 определило две новые команды, которые подаются из блока управления в блок 3 (см.фиг. 2) на вход 66. Первая из них осуществляет быструю реализацию циклов по маркированным строкам памяти логических векторов. Обозначим эту команду БРЦ. Она инициализирует работу подблока 4.The presence of
Вторая команда осуществляет подсчет количества единиц в векторе столбца, обозначим ее 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
Анализатор многократных совпадений, реализованный в подблоке 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
- register-
- a
- an
Следует отметить, что подблок 4 включен в разрядные цепи векторов-столбцов блока 2. It should be noted that
Вертикальный сумматор, реализованный в подблоке 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-
- counting
-
Режим "Запись" соответствует алгоритму, приведенному в прототипе. 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
Предположим, необходимо считать произвольный вектор-столбец. По наличию единиц в его разрядах выбрать соответствующие вектор-строки. Произвести с элементами этих векторов строк операции, определяемые операционным блоком 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
Тогда устройство выполняет эту операцию следующим образом: на вход 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
Производится подсчет числа единиц в произвольном векторе-столбце. Происходит это следующим образом. 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
Временная диаграмма сигналов задания режима приведена в прототипе на фиг. 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 .
элементарные логические операции с R-словами, находящимися в регистрах определенного процессорного модуля: .NOT. - НЕ, OR. - ИЛИ, .AND. - И,. XOR. - ИСКЛ.ИЛИ. 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
В ряде случаев возникает необходимость в процессе вычисления векторной суммы оставлять без изменения подпоследовательность каких-либо элементов множества чисел, например, добавлять заданное число только к отрицательным числам колонки. Для решения этой задачи можно, в частности, воспользоваться алгоритмом
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
{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: =S[i]×2m-i-1
{2} TS: =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: = S [i] × 2 mi-1
{2} TS: = 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)
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) |
-
1991
- 1991-02-19 RU SU4911994 patent/RU2028664C1/en active
Non-Patent Citations (2)
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 |