RU2220448C2 - Concurrent arbitrary-occurrence search system - Google Patents
Concurrent arbitrary-occurrence search system Download PDFInfo
- Publication number
- RU2220448C2 RU2220448C2 RU2001132281/09A RU2001132281A RU2220448C2 RU 2220448 C2 RU2220448 C2 RU 2220448C2 RU 2001132281/09 A RU2001132281/09 A RU 2001132281/09A RU 2001132281 A RU2001132281 A RU 2001132281A RU 2220448 C2 RU2220448 C2 RU 2220448C2
- Authority
- RU
- Russia
- Prior art keywords
- block
- word
- search
- information
- register
- Prior art date
Links
Images
Abstract
Description
Изобретение относится к техническим средствам информатики и вычислительной техники и может быть использовано для решения задач по определению вхождений в слово-образец. Устройство может найти применение в создании баз данных, а также по составлению словарей, справочников. The invention relates to technical means of computer science and computer technology and can be used to solve problems of determining occurrences in the word sample. The device can find application in creating databases, as well as compiling dictionaries, reference books.
Известно "Устройство для реализации подстановок с двухкомпонентными вхождениями" (а.с. N1667097, 1991 г., Бюл. 28) [9], позволяющее определить вхождения в представленном слове-образце. It is known "A device for implementing substitutions with two-component occurrences" (A.S. N1667097, 1991, Bull. 28) [9], which allows to determine the occurrences in the presented word-pattern.
Известно также "Устройство для сортировки чисел" (а.с. 1277091, 1986 г., Бюл. 46) [10] , позволяющее упорядочить числа в возрастающем и в убывающем порядке. It is also known "Device for sorting numbers" (AS 1277091, 1986, Bull. 46) [10], which allows you to arrange numbers in ascending and descending order.
Известно "Устройство для морфологического анализа слов естественных языков и языков "деловой прозы" (а.с. 1837327, 1993 г., Бюл. 32) [8], которое позволяет проводить морфологический анализ слов реальных языков на основе логических признаков принадлежности к классам словоформ. The known "Device for morphological analysis of words of natural languages and languages of" business prose "(a.s. 1837327, 1993, Bull. 32) [8], which allows morphological analysis of words of real languages based on logical signs of belonging to classes of word forms .
В качестве прототипа выбрано "Устройство поиска вхождений" (патент 2150740, 2000 г. ) [7] , которое позволяет осуществлять поиск вхождений, представленных в четырех видах. As a prototype, the “Entry Search Device” (patent 2150740, 2000) [7] was selected, which allows searching for occurrences presented in four forms.
Задача заключалась в следующем:
1) расширить функциональные возможности поисковой системы,
2) упростить алгоритм блока управления,
3) повысить надежность работы параллельной системы поиска произвольных вхождений.The task was as follows:
1) expand the functionality of the search engine,
2) simplify the control unit algorithm,
3) to increase the reliability of the parallel search system for arbitrary entries.
Предлагаемая поисковая система позволит значительно расширить функциональные возможности, что ведет к упрощению комбинационной схемы устройства, а также упростит алгоритм работы устройства. The proposed search system will significantly expand the functionality, which leads to a simplification of the combinational circuit of the device, as well as simplify the algorithm of the device.
Решение задачи осуществляется тем, что параллельная система поиска произвольных вхождений, содержащая блок памяти вхождений, блок памяти слов, блок управления, отличающаяся тем, что дополнительно введены n блоков поиска произвольных вхождений, причем с первого по третий информационные выходы блока управления соединены соответственно с первым по третий информационными входами блока памяти вхождений, управляющий выход которого соединены с первым управляющим входами блока управления, второй управляющий вход которого соединен с управляющим выходом блока памяти слов, информационный выход которого соединен со вторыми информационными входами всех n блоков поиска произвольных вхождений, первые информационные входы которых соединены с информационным выходом блока памяти вхождений, с первого по третий информационные входы блока памяти слов соединены соответственно с четвертого по шестой информационными выходами блока управления, первый и второй управляющие выходы которого соединены соответственно с первым и вторым управляющими входами первого блока поиска произвольных вхождений, третий и четвертый управляющие выходы блока управления соединены соответственно с первым и вторым управляющими входами второго блока поиска произвольных вхождений, пятый и шестой управляющие выходы блока управления соединены соответственно с первым и вторым управляющими входами n-ого блока поиска произвольных вхождений, третий и четвертый управляющие входы блока управления "СБРОС" и "ПУСК" являются внешними входами системы. The solution to the problem is that a parallel search system for arbitrary entries containing an entry memory block, a word memory block, a control unit, characterized in that n additional search entries for arbitrary entries are additionally introduced, and from the first to the third information outputs of the control unit are connected respectively to the first to the third information inputs of the memory block entries, the control output of which is connected to the first control inputs of the control unit, the second control input of which is connected to the control the output output of the word memory block, the information output of which is connected to the second information inputs of all n random search blocks, the first information inputs of which are connected to the information output of the memory block, the first to third information inputs of the word memory are connected from the fourth to sixth information outputs a control unit, the first and second control outputs of which are connected respectively with the first and second control inputs of the first search unit are arbitrary x occurrences, the third and fourth control outputs of the control unit are connected respectively to the first and second control inputs of the second random search unit, the fifth and sixth control outputs of the control unit are connected to the first and second control inputs of the nth random search unit, third and fourth the control inputs of the control unit "RESET" and "START" are external inputs of the system.
БПВ - блок служит для хранения вхождений, с которыми необходимо будет провести поисковые операции. BPV - the block is used to store entries with which it will be necessary to conduct search operations.
БПС - блок служит для хранения слов, в которых будут определяться вхождения. BPS - the block is used to store words in which occurrences will be determined.
БППВn - блоки служат для поиска вхождений произвольной структуры в словах-образцах. BPPVn - blocks are used to search for occurrences of an arbitrary structure in the sample words.
БУ - блок служит для управления устройством. BU - the unit is used to control the device.
Процессы поиска вхождений образца в обрабатываемом слове адекватно описываются в терминах языка регулярных выражений путем использования операций итерации и конъюнктивного следования (конкатенация) [1]. The search for occurrences of a pattern in the word being processed is adequately described in terms of the language of regular expressions by using iteration and conjunctive following operations (concatenation) [1].
Особый интерес представляет структура образцов, поскольку при последовательном поиске позиции вхождения образца в обрабатываемое слово может быть аварийный пропуск вхождения в случае существования повторяющегося фрагмента в начале образца и, соответственно, n-кратное повторение названного фрагмента в обрабатываемом слове при его просмотре слева направо. Кроме того, повторение начального фрагмента в структуре образца приводит к резкому снижению скорости поиска позиции вхождения образца в обрабатываемом слове из-за необходимости выполнять множественные отступы (backtraking) в пространстве обрабатываемого слова в его конструктивном линейном представлении. Of particular interest is the structure of the samples, since when sequentially searching for the position of the entry of the sample into the word to be processed, there may be an accidental entry skip in the case of a repeating fragment at the beginning of the sample and, accordingly, n-fold repetition of the named fragment in the word being processed from left to right. In addition, the repetition of the initial fragment in the structure of the sample leads to a sharp decrease in the search speed of the position of occurrence of the sample in the word being processed due to the need to perform multiple backtraking in the space of the word being processed in its constructive linear representation.
Если образец имеет повторение своих начальных фрагментов, то его форма записи будет иметь вид:
S={G}F (1)
где S - образец;
G - начальный повторяющийся фрагмент;
F - собственное окончание образца;
{} - обозначение операции "итерация".If the sample has a repetition of its initial fragments, then its recording form will look like:
S = {G} F (1)
where S is the sample;
G is the initial repeating fragment;
F - own end of the sample;
{} - designation of the operation "iteration".
Очевидно, что при существовании итерации фрагмента в середине образца при следующей форме его записи:
S=G{H}F (2)
не влечет за собой пропуска позиции вхождения образца в обрабатываемое слово. Также безопасной структурой образца является следующая его форма представления:
S=G{F} (3)
В случае общего положения структура образца может принимать вид:
S={G}H(F} (4)
Вместе с тем существует еще одна структура образца, которая порождает необходимость в выполнении отступа в пространстве обрабатываемого слова с целью предотвращения аварийного пропуска позиции вхождения. Такая структура образца имеет вид:
S=GFGP (5)
т.е. начальный фрагмент образца входит в его собственную структуру более одного раза.Obviously, if there is an iteration of the fragment in the middle of the sample with the following form of its writing:
S = G {H} F (2)
does not entail omission of the entry position of the sample in the word being processed. Also a safe structure of the sample is its following presentation form:
S = G {F} (3)
In the case of a general situation, the structure of the sample can take the form:
S = {G} H (F} (4)
At the same time, there is one more structure of the sample, which makes it necessary to indent the space of the word being processed in order to prevent an accidental skipping of the entry position. Such a sample structure has the form:
S = GFGP (5)
those. the initial fragment of the sample is included in its own structure more than once.
В выражениях (1), (2), (3), (4) и (5) S, G, F, Н и Р - произвольные непустые слова. In expressions (1), (2), (3), (4) and (5) S, G, F, H and P are arbitrary non-empty words.
При реализации технического решения необходимо так организовать поиск позиции вхождения образца, чтобы достигнуть высокой скорости поиска, а также исключить ситуации аварийного пропуска искомой позиции. Процедуру поиска, которая удовлетворяет поставленным требованиям, будем называть корректной [5]. When implementing a technical solution, it is necessary to organize the search for the entry position of the sample in such a way as to achieve a high search speed, and also to exclude situations of emergency skipping of the desired position. A search procedure that satisfies the set requirements will be called correct [5].
При осуществлении поисковых функций в словах, вхождения могут быть представлены шестью различными комбинациями букв в слове-образце (вхождении):
1) нет повтора одинаковых букв (итерации) в слове-образце, пример - "тиманел";
2) повтор одинаковых букв есть в середине слова-образца, пример - "вчсииииторг", при этом принято обозначение B{W}D;
3) итерация существует в конце слова, пример - "лдшгпсссс", обозначение B{W};
4) итерация в слове-образце существует в начале слова, примером может служить вхождение "ссссапеног", обозначение {W}D;
5) итерация в слове-образце присутствует и в начале слова, и в конце, пример - "нннапрмввв", обозначение {W}P{Y};
6) слово-образец состоит полностью из итераций, пример -"ккккк", обозначение {W}.When performing search functions in words, entries can be represented by six different combinations of letters in the sample word (entry):
1) there is no repetition of the same letters (iteration) in the sample word, an example is “tymanel”;
2) a duplicate of the same letters is in the middle of the sample word, an example is “vciiiiitorg”, and the notation B {W} D is accepted;
3) an iteration exists at the end of a word, an example is “ldshhpssss”, designation B {W};
4) an iteration in the sample word exists at the beginning of the word, an example is the occurrence of "sssapaenog", the designation {W} D;
5) an iteration in the sample word is present both at the beginning of the word and at the end, an example is “nnnaprvvv”, designation {W} P {Y};
6) the sample word consists entirely of iterations, an example is "kkkkk", the designation {W}.
С первого по третий вариант представления слова-образца, когда нет итерации, итерация есть в середине слова-образца и итерация существует в конце слова, необходимо поиск вхождений в слове производить с начала слова с первой буквы. Символы слова-образца также считываются с начала, т.е. с первой буквы. From the first to the third version of the representation of the sample word, when there is no iteration, iteration is in the middle of the sample word and iteration exists at the end of the word, it is necessary to search for occurrences in the word from the beginning of the word with the first letter. Symbols of the pattern word are also read from the beginning, i.e. with the first letter.
Четвертый случай представления слова-образца, при котором итерация находится в начале вхождения, поиск необходимо производить с конца слова, т.е. с последней буквы. Слово при этом считывается из регистра слова в обратном порядке - последняя буква - первой, предпоследняя - второй и т.д., первая буква - последней. Символы вхождения считываются в точно таком же порядке, т. е. в обратном. The fourth case of the representation of the sample word, in which the iteration is at the beginning of the entry, the search must be performed from the end of the word, i.e. with the last letter. The word is read from the word register in the reverse order - the last letter is the first, the penultimate is the second, etc., the first letter is the last. The entry characters are read in exactly the same order, i.e. in the opposite.
Пятый случай, когда итерация и в начале, и в конце слова-образца, поиск в представленном устройстве осуществляется с начала слова. Но предварительно осуществляется анализ вхождения блоком поиска итераций устройства. Вхождение разбивается на две части:
1) только итерации, т.е. часть, состоящая из одинаковых символов;
2) остальная часть вхождения, но без итераций в начале слова-образца.The fifth case, when iteration at the beginning and at the end of the sample word, the search in the presented device is carried out from the beginning of the word. But preliminary the analysis of the occurrence of the unit iterations search unit is carried out. The entry is divided into two parts:
1) only iterations, i.e. a part consisting of the same characters;
2) the rest of the entry, but without iterations at the beginning of the sample word.
Шестой случай, слово-образец полностью состоит из повторов одинаковых букв-итераций, тогда поиск в устройстве поиска универсальных вхождений осуществляется с начала слова с первой буквы [2]. The sixth case, the sample word consists entirely of repetitions of the same iteration letters, then the search in the search device for universal entries is carried out from the beginning of the word with the first letter [2].
Необходимо рассмотреть случаи, когда под итерацией понимается не только одна буква, но несколько чередующихся символов, например слово-образец имеет вид: абабабабпртоо. В начале слова записаны итерации, состоящие из разных букв аб, и таких повторов в примере будет 4. Такие итерации назовем двухбуквенные. Легко привести примеры трех, четырех, пяти и n- буквенных итераций. В конце слова-образец заканчивается также итерацией, но из одинаковых букв. В конце слово-образца тоже могут быть многобуквенные итерации. Для осуществления поиска различных видов слов-образцов, состоящих из различных вариантов итераций, необходимо очевидно разработать сложные схемы селекции, определяющие вид итераций. Затем в зависимости от вида итерации выбирается алгоритм, осуществляющий поисковую операцию. Целью предлагаемого изобретения является создание системы, осуществляющее поиск слова-образца в обрабатываемом слове с любым видом итераций без сложных схем селекции. It is necessary to consider cases where an iteration is understood not only as one letter, but several alternating characters, for example, the sample word has the form: ababababprtoo. At the beginning of the word, iterations are written, consisting of different letters ab, and there will be 4 such repetitions in the example. Such iterations are called two-letter iterations. It is easy to give examples of three, four, five, and n-letter iterations. At the end of the sample word also ends with an iteration, but from the same letters. At the end of the sample word, there may also be multi-letter iterations. To search for different types of sample words, consisting of various iteration options, it is necessary to develop complex selection schemes that determine the type of iteration. Then, depending on the type of iteration, an algorithm is selected that performs a search operation. The aim of the invention is to create a system that searches for a sample word in the processed word with any type of iteration without complex selection schemes.
Алгоритм функционирования системы заключается в следующем. В регистрах слов находятся обрабатываемые слова. В регистрах вхождений записываются слова-образцы. Задача системы заключается в определении вхождений в обрабатываемых словах. Если вхождения найдены, то их адреса записываются в память устройства. Если вхождения не найдены, то в регистрах обрабатываемых слов записываются новые слова для проведения поисковых операций. Сравнение в блоках поиска произвольных вхождений происходит побуквенно. На входы компараторов поступают по одной букве из регистров обрабатываемых слов и из регистров слов-образцов. Если результат сравнения положительный, то происходит сдвиг влево на один разряд информации регистров слов и регистров слов-образцов и на вход компаратора поступают очередные символы из регистров. Возможно возникнет ситуация, когда положительное сравнение произойдет на первой букве, на второй, на третьей и т.д., но на k букве результат сравнения будет отрицательным и при этом конца слов-образцов не будет обнаружено. Двоично-десятичные счетчики блока анализа и формирования сигналов сдвига подсчитывают количество положительных сравнений. Скажем их произошло k совпадений, а на k+1 получен отрицательный результат. В этом случае осуществляется сдвиг вправо на к-1 разрядов регистров, в которых хранятся обрабатываемые слова. Происходит "вычеркивание" первых букв из серии, где произошли положительные сравнения. Дальнейшее сравнение будет происходить, уже начиная со вторых букв обрабатываемых слов и с первых букв вхождений. Вхождения будут переписаны заново из памяти вхождений. Процедуры сдвига возможны при применении реверсивных регистров, которые осуществляют сдвиг информации как влево, так и вправо. The algorithm for the functioning of the system is as follows. Word registers contain processed words. Pattern words are recorded in the entry registers. The task of the system is to determine the occurrences in the processed words. If entries are found, then their addresses are recorded in the device memory. If no entries are found, then new words are written in the word processing registers for conducting search operations. Comparison in the blocks of the search for arbitrary occurrences occurs in letters. One letter from the registers of processed words and from the registers of sample words are received at the inputs of the comparators. If the result of the comparison is positive, then a shift to the left by one bit of information from the word registers and the register of sample words occurs, and the next characters from the registers enter the comparator input. Perhaps a situation will arise when a positive comparison occurs on the first letter, on the second, on the third, etc., but on the k letter the result of the comparison will be negative and at the same time the end of the sample words will not be detected. Binary-decimal counters of the block of analysis and formation of shift signals count the number of positive comparisons. Let's say they happened k matches, and on k + 1 a negative result was obtained. In this case, a shift to the right by k-1 bits of registers is carried out, in which the processed words are stored. The first letters are crossed out from the series where positive comparisons occurred. Further comparisons will occur, starting from the second letters of the words being processed and from the first letters of the occurrences. The entries will be rewritten from the entries memory. Shift procedures are possible with the use of reverse registers, which carry out the shift of information both to the left and to the right.
Параллельная система поиска произвольных вхождений работает в двух режимах. Первый режим работы заключается в определении вхождений, имеющих общие части. Это означает, что предыдущие вхождения и последующие имеют общие части. Например, вхождением являются символы МММ. Обрабатываемым словом-образцом является слово МММММТОР. При первом режиме работы результатом является три вхождения, в ОЗУ будут записаны три адреса. Первый адрес - с первого по третий, второй - со второго по четвертый, третий - с третьего по пятый. В случае работы системы в первом режиме при получении положительного результата, т.е. обнаружения вхождения, всегда осуществляется сдвиг информации в регистре слова на n-1 разрядов влево, где n - количество сдвигов вправо. Вхождения при этом считываются с первых букв. A parallel search system for arbitrary entries works in two modes. The first mode of operation is to identify occurrences that have common parts. This means that previous entries and subsequent ones have common parts. For example, the entry is MMM characters. The sample word to be processed is the word MMMMMTOR. In the first mode of operation, the result is three occurrences, three addresses will be written to RAM. The first address is from the first to the third, the second is from the second to the fourth, the third is from the third to the fifth. In the case of the system in the first mode when receiving a positive result, i.e. detection of occurrence, information is always shifted in the word register by n-1 bits to the left, where n is the number of shifts to the right. The entries are then read from the first letters.
Второй режим работы системы характеризуется определением вхождений, не имеющих общих частей. В этом случае после обнаружения вхождения осуществляется сдвиг влево на один разряд информации в регистрах слов-образцов. Вхождение считывается заново с первых букв. В приведенном примере при работе системы во втором режиме будет обнаружено только одно вхождение. The second mode of operation of the system is characterized by the definition of occurrences that do not have common parts. In this case, after the occurrence is detected, a shift to the left is performed by one bit of information in the registers of the sample words. The entry is re-read from the first letters. In the above example, when the system operates in the second mode, only one occurrence will be detected.
На фиг. 1 изображена структурная схема параллельной системы поиска произвольных вхождений. In FIG. 1 shows a block diagram of a parallel system for searching for arbitrary occurrences.
На фиг. 2 представлен вариант технической реализации блока памяти вхождений и блока памяти слов. In FIG. Figure 2 shows a technical implementation option for an occurrence memory block and a word memory block.
На фиг.3 показана структурная схема блока поиска произвольных вхождений. Figure 3 shows the structural diagram of the block search for arbitrary occurrences.
На фиг.4 изображена функциональная схема блока регистров сдвига и компаратора. Figure 4 shows a functional diagram of a block of shift registers and a comparator.
На фиг. 5 показана функциональна схема блока анализа и формирование сигналов сдвига. In FIG. 5 shows a functional block diagram of the analysis unit and the generation of shear signals.
На фиг. 6 изображена функциональная схема блока хранения адреса вхождений. In FIG. 6 shows a functional block diagram of the storage address entries.
На фиг.7 - содержательная ГСА работы блока управления работой блока поиска произвольных вхождений. In Fig.7 - informative GAW work of the control unit of the operation of the search unit for arbitrary occurrences.
На фиг.8 - размеченная ГСА работы блока управления работой блока поиска произвольных вхождений. On Fig - labeled GAW work of the control unit of the operation unit search for arbitrary occurrences.
На фиг.9 - содержательная ГСА работы блока управления параллельной системы поиска произвольных вхождений. In Fig.9 - informative GAW operation of the control unit of a parallel search system for arbitrary occurrences.
На фиг.10 - размеченная ГСА работы блока управления параллельной системы поиска произвольных вхождений. Figure 10 - marked GAW operation of the control unit of a parallel search system for arbitrary occurrences.
Параллельная система поиска произвольных вхождений (фиг.1) содержит блок 1 памяти вхождений, блок 2 памяти слов, n-блоков поиска произвольных вхождений, блок управления. Блок поиска произвольных вхождений (фиг.3) содержит блок 9 регистров сдвига и компаратора, блок 10 анализа и формирования сигналов сдвига, блок 11 хранения адреса вхождений, блок 12 управления работой блока поиска произвольных вхождений. A parallel search system for arbitrary entries (Fig. 1) contains a
Для описания алгоритма работы блока 6 управления используются следующие идентификаторы. To describe the operation algorithm of
1. ПРКВ - признак конца вхождения. Это может быть двоичный код, равный 11...1. 1. PRKV - a sign of the end of entry. It can be a binary code equal to 11 ... 1.
2. ПРКС - признак конца слова, равный 11..1. 2. PRKS - a sign of the end of a word, equal to 11..1.
3. КР - команда, определяющая конец работы устройства. 3. CR - a command that determines the end of the device.
4. СУ1 - сигналы управления сдвигающим регистром блока поиска произвольных вхождений (сигналы записи, приема, выдачи данных). 4. SU1 - control signals for the shifting register of the search block for arbitrary occurrences (signals for recording, receiving, outputting data).
5. СУР1 - сигналы управления сдвигающим регистром блока поиска произвольных вхождений (сигналы записи, приема, выдачи данных). 5. СУР1 - control signals for the shifting register of the search block for arbitrary occurrences (signals for recording, receiving, outputting data).
6. СДВ - команда сдвига, поступающая из блока управления на вход сдвигающего регистра вхождения блока поиска произвольных вхождений. 6. SDV - a shift command coming from the control unit to the input of the shift register of the occurrence block of the search for arbitrary entries.
7. СДС - команда сдвига, поступающая из блока управления на вход сдвигающего регистра слова блока поиска произвольных вхождений. 7. SDS - a shift command coming from the control unit to the input of the word shift register of the random entry search block.
8. СУП1 - команды управления записью, выдачей, хранения блока памяти вхождений. 8. СУП1 - commands to control recording, issuing, storing the block of memory entries.
9. СУП2 - команды управления записью, выдачей, хранения блока памяти слов. 9. SUP2 - commands for managing recording, issuing, storing a block of word memory.
10. АД1 - адреса данных выдачи, записи блока памяти вхождения. 10. AD1 - addresses of the issuing data, records of the entry memory block.
11. АД2 - адреса данных выдачи, записи блока памяти слов. 11. AD2 - addresses of data output, record block memory words.
12. ДН1 - данные (двоичные коды букв) блока памяти вхождений. 12. DN1 - data (binary letter codes) of the block of memory entries.
13. ДН2 - данные (двоичные коды букв) блока памяти слов. 13. DN2 - data (binary letter codes) of the word memory block.
14. ССР - сигнал сравнения, поступающий из компаратора. 14. SSR - comparison signal coming from the comparator.
15. СИН - команда синхронизации, поступающая на вход Сч DD.23 блока анализа и формирования сигналов сдвига из блока управления. 15. SIN - synchronization command received at the input of the midrange DD.23 of the analysis and generation of shear signals from the control unit.
16. ОБН - команда обнуления двоичного счетчика Сч DD.23 блока анализа и формирования сигналов сдвига. 16. OBN - a command to reset the binary counter MF DD.23 of the analysis and generation of shift signals block.
17. СВА - команда выдачи адреса вхождения из блока анализа и формирования сигналов сдвига в блок хранения адреса вхождений. 17. CBA - a command for issuing an entry address from an analysis unit and generating shift signals in an entry address storage unit.
18. СЗЩ - команда разрешения записи в триггер Тр DD.19 выходного сигнала из компаратора. 18. SZZCH - command enable recording in the trigger Tr DD.19 of the output signal from the comparator.
19. СДЛ - команда, поступающая из блока управления, открывающая или запирающая электронный ключ И DD.24 блока анализа и формирования сигналов сдвига. 19. SDL - a command coming from the control unit that opens or locks the electronic key AND DD.24 of the analysis and generation of shift signals block.
20. СН - команда синхронизации двоичного счетчика Сч2 DD.25 блока анализа и формирования сигналов сдвига. 20. SN - command synchronization binary counter SC2 DD.25 block analysis and generation of shift signals.
21. СО - команда обнуления двоичного счетчика Сч2 DD.25 блока анализа и формирования сигналов сдвига. 21. CO - a command to reset the binary counter SC2 DD.25 block analysis and generation of shift signals.
22. ПИМ - прямоугольные импульсы, поступающие на информационный вход электронного ключа И DD.24 блока анализа и формирования сигналов сдвига. 22. PIM - rectangular pulses received at the information input of the electronic key AND DD.24 block analysis and generation of shift signals.
23. АдСТ - адреса столбцов для записи вхождений в блок хранения адреса вхождений. 23. AdST - column addresses for recording entries in the block storage addresses of entries.
24. АдСТР - адреса строк для записи вхождений в блок хранения адреса вхождений. 24. ADSTR - address lines for recording entries in the block storage addresses of entries.
25. ДАВ - данные адресов вхождений. 25. DAV - data addresses of occurrences.
26. АВХ - адрес вхождения. 26. ABX - address of entry.
27. ВДВ - выходные данные вхождения блока памяти вхождений. 27. Airborne Forces - output data of the occurrence memory block.
28. ВДС - выходные данные слова блока памяти слов. 28. GVA - the output of the word block memory words.
29. ДС - данные слов. 29. DS - data words.
30. ДВ - данные вхождений. 30. DV - occurrence data.
31. ПРИ - прямоугольные импульсы, поступающие из блока управления блоком на информационный вход логического элемента И DD.21. 31. PRI - rectangular pulses from the control unit to the information input of the logical element AND DD.21.
32. ТАК - тактовые прямоугольные импульсы, поступающие на информационный вход логического элемента И DD.22. 32. SO - clock rectangular pulses received at the information input of the logical element AND DD.22.
33. СВП - команда, определяющая количество сдвигов вправо регистра PrC1 DD.14 блока регистров сдвига и компаратора. 33. SVP - a command that determines the number of right-shifts of the PrC1 DD.14 register of the block of shift registers and the comparator.
34. ДШЕ - команда, определяющая двоичный код 0001 (единицу) на выходе двоичного счетчика Сч1 DD.23. 34. DCLE - a command that defines the binary code 0001 (unit) at the output of the binary counter SC1 DD.23.
35. ГИ - генератор импульсов, поступающий из блока управления блоком на суммирующий вход (+) двоичного счетчика Сч ст DD.29. 35. GI - a pulse generator coming from the block control unit to the summing input (+) of the binary counter Сч ст DD.29.
36. ТИ - тактовые импульсы, поступающие из блока управления блоком на суммирующий вход (+) двоичного счетчика Сч стр DD.30. 36. TI - clock pulses from the control unit to the summing input (+) of the binary counter Midrange DD.30.
37. СБР - команда обнуления двоичного счетчика Сч ст DD.29. 37. SBR - a command to reset the binary counter SC ST DD.29.
38. СБО - команда обнуления двоичного счетчика Сч стр DD.30. 38. SBO - command to reset the binary counter Mid page DD.30.
39. Сч/Зп - команда считывания/записи оперативно-запоминающего устройства. 39. MF / ZP - read / write command of the RAM.
40. ВК - команда выбора кристалла оперативно-запоминающего устройства. 40. VK - a command for selecting a chip of a random access memory.
41. РР - команда признака режима работы системы. 41. PP - the command sign of the mode of operation of the system.
42. СР - команда разрешения работы конкретного блока поиска произвольных вхождений. 42. SR - a command to permit the operation of a specific block for the search for arbitrary occurrences.
43. ПСП - признак "пустого (отсутствие данных)" оперативно-запоминающего устройства блока памяти слов. 43. PSP - a sign of "empty (lack of data)" of the operational storage device of the word memory block.
44. СРР - команда признака работы системы в различных режимах. 44. СРР - a command sign of the system in various modes.
Содержательная ГСА управления приведена на фиг.7 и отражает работу блока поиска произвольных вхождений (БППВ) (фиг.3). Substantial GAW control is shown in Fig.7 and reflects the operation of the search unit for arbitrary occurrences (BPPV) (Fig.3).
По сигналу "СД" блок 2 граф-схемы алгоритма происходит подача разрешающего сигнала из блока управления системы для функционирования очередного блока поиска произвольных вхождений. By the signal "SD"
В блоке 3 по команде "СДi:=1" блок поиска произвольных вхождений получает сигнал разрешения на работу из блока управления системы. In
В блоке 4 алгоритма происходит запись в регистр вхождений из памяти вхождений последовательности букв (вхождение) РгВ:=ВДВ, в регистр слов записывается из памяти слов обрабатываемое слово РгС1:=ВДС. D-триггер Тр блока анализа и формирования сигналов сдвига устанавливается в "0" ТР:=0. По этим командам происходит предварительная загрузка блока поиска произвольных вхождений. In
В блоке 5 алгоритма по командам СДВ:=0 и СДС:=0 формируется сдвиги влево информации, находящейся в регистрах соответственно РгВ и РгС1 блока 9 регистров сдвига и компаратора (БРСК) (фиг.3, 4). In
В блоке 6 алгоритма происходит анализ сигнала сравнения ССР, поступившего с выхода компаратора (фиг.4, 5). Если ССР=1, то произошло совпадение буквы вхождения с буквой слова. В этом случае осуществляется переход на блок 7 алгоритма. Если ССР=0, то совпадения не произошло и переход произошел на блок 10 алгоритма. In
В блоке 7 алгоритма на вход D-триггера Тр блока 10 анализа и формирование сигналов сдвига поступает сигнал ССР из компаратора КОМ блока регистров сдвигов и компаратора ТР:=ССР. Триггер устанавливается в единичное состояние. Это означает, что входные символы на входе компаратора равны между собой. In
В блоке 8 алгоритма по команде СЗЩ:=1 из блока 12 управления работой блока (БУРБ) происходит разрешение на запись в D-триггер информации с выхода компаратора. По команде ТР:=1 D-триггер блока 10 анализа и формирование сигналов сдвига устанавливается в единицу. На суммирующий вход двоичного счетчика СЧ1 этого же блока поступают тактовые импульсы СЧ1:=ТАК. Счетчик подсчитывает количество совпадений в компараторе. In
В блоке 9 алгоритма по командам СДВ:=0 и СДС:=0 формируются сдвиги влево информации, находящейся в регистрах соответственно РгВ и РгС1 блока 9 регистров сдвига и компаратора (БРСК) (фиг.3, 4). При этом осуществляется переход на блок 18 алгоритма. In
В блоке 10 алгоритма анализируется содержимое триггера Тр (фиг 5). Если Тр= 0, то это означает, что совпадения на предыдущем шаге не было, в этом случае формируется сигнал сдвига влево информации на один разряд в блоке 9 регистров сдвига и компаратора регистра РгС1. Если Тр=1, то осуществляется переход на блок 12 алгоритма, где анализируется состояние счетчика СЧ1 блока 10 анализа и формирование сигналов сдвига. In
В блоке 11 алгоритма формируется командой СДС:=0 сдвиг влево на один разряд информации из регистра РгС1 в регистр РгС2 блока 9 регистров сдвига и компаратора. При этом РгС2: =РгС1. На освободившиеся место в регистр РгС1 записывается очередной символ обрабатываемого слова из блока 2 памяти слов РгС1:=ДС. По выходу из блока формируется переход на блок 18 алгоритма. In
В блоке 12 анализируется состояние двоичного счетчика СЧ1 блока 10 анализа и формирование сигналов сдвига. Если состояние счетчика меньше или равно единице, то осуществляется переход на блок 13 алгоритма. Если условие выполняется, т. е. значение счетчика СЧ1 больше единицы, то происходит переход на блок 16 алгоритма. In
В блоке 13 алгоритма на вход регистра вхождения РгВ блока 9 регистров сдвига и компаратора из блока 12 управления работой блока поступают управляющие сигналы РгВ:=СУ1. В результате этого в регистр вхождений записывается информация из памяти вхождений РгВ:=ДВ. In
В блоке 14 алгоритма регистр слов РгС1 принимает информацию из регистра слов РгС2 РгС1:=РгС2. Обрабатываемое слово сдвигается вправо на п-1 разрядов, где n - количество сдвигов влево этого же слова. In
В блоке 15 алгоритма по команде ОБН:=1 происходит обнуление счетчика СЧ1 блока 10 анализа и формирование сигналов сдвига. Двоичный счетчик СЧ1 принимает нулевое значение СЧ1:=0. По выходу из блока формируется переход на блок 18 алгоритма. In
В блоке 16 алгоритма формируется подача прямоугольных импульсов из блока 12 управления работой блока ПРИ на вычитающий вход двоичного счетчика СЧ1 блока 10 анализа и формирования сигналов сдвига. По команде СВП:=1 в счетчике происходит арифметическое вычитание единицы до тех пор, пока состояние этого счетчика не будет равно единичному значению СЧ1:=ПРИ. In
В блоке 17 алгоритма формируется сдвиг вправо. Командой СДС:=1 информация из регистра РгС2 сдвигается на один разряд в регистр РгС1, РгС1:=РгС2. По команде СУ2:=1 происходит разрешение осуществления операций сдвига в блоке 9 регистров сдвига и компаратора. Информация из регистра РгС2 сдвигается в регистр РгС1 до тех пор, пока состояние счетчика СЧ1 не будет равно единице. Блоки 12, 16, 17 алгоритма формируют цикл. Выходом из цикла является условие, при котором значение счетчика будет не больше единицы. По выходу из блока осуществляется переход на блок 13 алгоритма. In
В блоке 18 алгоритма происходит анализ признака конца вхождения ПРКВ (фиг. 4). Если ПРКВ=1, то в регистре вхождения обнаружен двоичный код 11..1. В этом случае вхождение обнаружено в обрабатываемом слове и в блок 11 хранения адреса вхождений записывается адрес вхождения (фиг.6). Если ПРКВ=0, то это означает что процесс сравнения идет побуквенно, но не все буквы вхождения еще просмотрены, при этом осуществляется переход на 19 блок алгоритма. In
В блоке 19 алгоритма происходит анализ признака конца слова ПРКС (признаком является двоичный код, равный всем единицам 11...1). Если ПРКС=0, то процесс поиска будет продолжен и при этом осуществляется переход на блок 6 алгоритма. Если обнаружен признак конца слова ПРКС=1, то осуществляется переход на конечный блок 27 алгоритма. In
В блоке 20 алгоритма происходит запись адреса в блок хранения адреса вхождений. На управляющий вход электронного ключа Кл блока 10 анализа и формирования сигналов сдвига поступает разрешающий сигнал из блока 12 управления работой блока СВА, Кл:=СВА. Информация с выхода двоичного счетчика СЧ2 через открытый ключ Кл поступает на вход оперативно-запоминающего устройства ОЗУ (фиг. 5, фиг. 6). Сигнал разрешения для записи информации поступает из блока 12 управления работой блока Сч/Зп:=0, ВК:=0. На управляющие входы поступают нулевые значения, что соответствует режиму записи в ОЗУ устройства входной информации, т.е. адреса вхождения АВХ ОЗУ:=АВХ. In
В блоке 21 алгоритма происходит анализ режима работы i-ого блока поиска произвольных вхождений системы команды PP. Если команда РР равна нулю, то это означает, что данный блок работает в режиме поиска вхождений с общими частями. В этом случае осуществляется переход на блок 22 алгоритма. Если РР равен единице, то блок работает в режиме поиска вхождений, не имеющих общих частей, при этом осуществляется переход на блок 24 алгоритма. In
В блоке 22 алгоритма по команде СРР:=1 выходной сигнал логического элемента DD.30 блока анализа и формирования сигналов сдвига устанавливается в единичное состояние. В этом случае логические элементы DD.29 и DD.21 указанного блока будут открыты. На выходах этих элементов будет сигнал ПРИ - прямоугольные импульсы, поступающие из блока 12 управления работой блока. In
В блоке 23 алгоритма по команде СДС:=СВП на вход регистра слов PrC1 DD. 14 блока 9 регистров сдвига и компаратора подаются прямоугольные импульсы СВП, количество которых на единицу меньше количества сигналов, поступивших на суммирующий вход счетчика СЧ1 DD.23. При этом по приходу каждого импульса СВП осуществляется сдвиг информации в этом регистре вправо на один разряд. При этом осуществляется переход на блок 26 алгоритма. In
В блоке 24 алгоритма по команде СРР:=0 выходной сигнал логического элемента DD. 30 блока 10 анализа и формирования сигналов сдвига устанавливается в нулевое состояние. В этом случае логические элементы DD.29 и DD.21 указанного блока будут закрыты. На выходах этих элементов будут нулевые состояния. In
В блоке 25 алгоритма по команде СДС:=0 на вход регистра слов PrC1 DD.14 блока 9 регистров сдвига и компаратора подается сигнал из блока 12 управления работой блока, равный нулевому значению. При этом осуществляется сдвиг информации в этом регистре на один разряд влево. In
В блоке 26 алгоритма происходит запись очередного вхождения в регистр вхождений РгВ блока 9 регистров сдвига и компаратора. Из блока 1 памяти вхождений на вход регистра поступает информация РгВ:=ДВ. In
Блок 27 алгоритма является конечным блоком.
Работа алгоритма управления системы. The operation of the system control algorithm.
Содержательная ГСА управления приведена на фиг.9 и отражает работу блока управления (фиг.1). Substantial GAW control is shown in Fig.9 and reflects the operation of the control unit (Fig.1).
По сигналам "УОО" и "ПУСК" (блоки 2, 4 граф-схемы алгоритма) (фиг.1) происходит установка в нуль всех элементов памяти устройства. по команде "СБРОС:=1"(блок 3). According to the signals "UOO" and "START" (blocks 2, 4 of the graph diagram of the algorithm) (Fig. 1), all elements of the device memory are set to zero. by the command "RESET: = 1" (block 3).
В блоке 5 алгоритма происходит загрузка слов-образцов для проведения поисковых операций. По команде ПВ:=СУП1 происходит подача на вход оперативно-запоминающего устройства (ОЗУ) ПВ DD.7 блока памяти вхождений (БПВ) сигналов управления для записи информации в ОЗУ. По команде ПВ:=АД1 подаются адресные входы для записи данных в ОЗУ. По команде ПВ:=ДН1 происходит подача на входы ОЗУ данных для записи (фиг.2). In
В блоке 6 алгоритма происходит загрузка слов для проведения поисковых операций. По команде ПС:=СУП2 происходит подача на вход оперативно-запоминающего устройства (ОЗУ) ПС DD.8 блока памяти слов (БПС) сигналов управления для записи информации в ОЗУ. По команде ПС:=АД2 подаются адресные входы для записи данных в ОЗУ. По команде ПС:=ДН2 происходит подача на входы ОЗУ данных для записи (фиг.2). In
В блоке 7 счетчик блоков поиска произвольных вхождений i устанавливается в единичное состояние по команде i:=1. In
В блоке 8 алгоритма анализируется признак КР - наличие информации в памяти вхождений блока памяти вхождений (БПВ). Если признак КР равен нулю, то это означает, что в памяти вхождений есть информация. В этом случае работа системы продолжается. Если признак КР равен единице, что означает: все слова-образцы в блоке памяти вхождений (БПВ) просмотрены. В этом случае происходит переход на конечный блок 14 алгоритма (фиг.2). In
В блоке 9 алгоритма анализируется признак ПСП - наличие информации в памяти слов блока памяти слов (БПС). Если признак ПСП равен нулю. то это означает, что в памяти слов есть информация. В этом случае работа системы продолжается. Если признак ПСП равен единицы, что означает: все обрабатываемые слова в блоке памяти слов (БПС) просмотрены. В этом случае происходит переход на конечный блок 14 алгоритма (фиг.2). In
В блоках 10-13 сформирован цикл загрузки и работы всех блоков поиска произвольных вхождений системы, начиная с первого и по n-й. In blocks 10–13, a cycle of loading and operation of all blocks for searching for arbitrary entries of the system is formed, starting from the first and the nth.
В блоке 10 алгоритма анализируется текущее значение счетчика блоков i. Если i<= n где n - общее количество блоков поиска произвольных вхождений в поисковой системе, то процесс загрузки блоков для символьной обработки продолжается. В этом случае происходит переход на блок 11 алгоритма. Если условие в блоке 10 алгоритма не выполняется, т.е. все блоки загружены, то осуществляется переход на блок 8 алгоритма для анализа признаков работы системы. In
В блоке 11 алгоритма анализируется признак работы СР i-ого блока поиска произвольных вхождений (БППВi). Если СРi равен единице, то происходит загрузка данного блока информацией для осуществление поисковой операции. Если признак работы СРi равен нулю, то осуществляется переход на блок 13 алгоритма. Сигнал СРi работы блока БППВi формирует блок управления (фиг.1). In
В блоке 12 алгоритма по команде БППВi:=ВДС происходит подача на i-блок поиска произвольных вхождений (БППВ) информации из блока памяти вхождений (БПВ). По команде БППВi:=ВДВ на вход i-ого блока поиска произвольных вхождений подается информация из блока памяти слов (БПС). В этом блоке алгоритма осуществляется загрузка блока БППВi словами и словами-образцами для обработки. In
В блоке 13 алгоритма по команде i:=i+1 происходит изменение значения счетчика блоков (БППВ) на единицу. При этом осуществляется переход на блок 10 алгоритма. In
Работа системы поиска произвольных вхождений заключается в следующем. The work of the search system for arbitrary occurrences is as follows.
Внешние управляющие сигналы "ПУСК" и "СБРОС" поступают в блок 6 управления. External control signals "START" and "RESET" are received in the
В параллельной системе поиска произвольных вхождений осуществляется процесс обработки информации сразу с несколькими словами и несколькими вхождениями в параллельном варианте. Для осуществления параллельной обработки в системе имеются n-блоков поиска произвольных вхождений БППВn. В каждый блок БППВn системы загружаются слова и слова-образцы (вхождения). Работают блоки в независимом друг от друга режиме. Все эти блоки имеют одинаковые структурные и принципиальные схемы, состоящие их однотипных цифровых элементов. Блоки работают по одному и тому же алгоритму. In a parallel search system for arbitrary occurrences, a process of processing information with several words and several occurrences in parallel is carried out at once. For parallel processing, the system has n-blocks for searching for arbitrary occurrences of BPNVn. Words and word-patterns (occurrences) are loaded into each block of the BPPVn system. Blocks work in an independent mode. All these blocks have the same structural and circuit diagrams consisting of the same digital elements. Blocks work on the same algorithm.
В оперативно-запоминающем устройстве блока 2 БПС записаны обрабатываемые слова, в которых необходимо обнаружить вхождения. Под вхождениями подразумевается символ или цепочка символов (включая слова), которые нужно найти в словах блока БПС. Вхождения находятся в оперативно-запоминающем устройстве блока 1 БПВ. В компараторе происходит последовательное сравнение каждой буквы вхождения с символами слова. В каждом блоке поиска произвольных вхождений БППВn обрабатывается сигнал сравнения символов блоков БПС и БПВ. Если вхождение обнаружено в слове, то формируется адрес (позиция) этого вхождения в слове. Адрес хранится в блоке 11 хранения адреса. Если сравнение не произошло, то формируются сигналы сдвига в блоке БУ, поступающие на вход блоков БПС и БПВ. Если при работе системы возникает ситуация, при которой были получены вначале положительные результаты сравнения в компараторе, а затем отрицательный, но признак конца вхождения еще не обнаружен. В этом случае будут найдены только несколько символов вхождения, но не все вхождение полностью. При положительном результате в компараторе происходит сдвиг влево на одну позицию информации регистра РгС1. Слово из регистра РгС1 побуквенно переходит во вторую часть регистра - РгС2. Двоичным счетчиком фиксируется положительная серия сравнений в компараторе. В случае отрицательного результата при сравнении происходит обратный сдвиг вправо информации из РгС2 в РгС1, но на один сдвиг меньше. Процесс поиска вхождений будет продолжен, но со второй буквы обрабатываемого слова. Первая буква в этом случае как бы "вычеркивается". Процесс продолжается до тех пор, пока не будут обнаружены все вхождения в обрабатываемом слове. In the RAM of the
Блок 1 памяти вхождений содержит оперативно-запоминающее устройство (ОЗУ) - память вхождений DD.7. (фиг.2). На вход этого блока поступают сигналы из блока управления для осуществления операций выбора кристалла, операции считывания/записи - СУП1, а также адресные данные АД1, по которым записываются в ОЗУ данные. Входными данными ОЗУ памяти вхождений являются слова-образцы (вхождения) - ДН1, которые поступают из блока управления системы. Вхождения записываются заранее перед осуществлением операции поиска. При считывании вхождений с выхода памяти вхождений формируется информационный сигнал ВДВ, соответствующий двоичному коду каждой буквы вхождения. Выходным сигналом является управляющая команда, соответствующая признаку конца работы блока памяти вхождений КР, т.е. ОЗУ блока "пустое". Этот сигнал поступает на вход блока управления. Память вхождений - оперативно-запоминающее устройство ОЗУ ПВ служит для хранения цепочки символов - вхождений.
Блок 2 памяти слов содержит оперативно-запоминающее устройство ОЗУ ПС - память слов DD.8. (фиг.2). На вход этого блока поступает информационный сигнал из блока управления для осуществления операций выбора кристалла, операции считывания/записи - СУП2, а также адресные данные АД2. Входными данными ОЗУ памяти слов являются обрабатываемые слова ДН2, которые поступают из блока управления. Слова записываются заранее перед осуществлением операции поиска. При считывании слов с выхода памяти слов формируется информационный сигнал ВДС, соответствующий двоичному коду каждой буквы слова. Выходным сигналом является управляющая команда, соответствующая признаку конца работы блока памяти слов ПСП. Этот сигнал поступает на вход блока управления, означающий, что ОЗУ ПС "пустое". Память слов ПС служит для хранения слов-образцов.
Блок 3 поиска произвольных вхождений содержит блок 9 регистров сдвига и компаратора БРСК, блок 10 анализа и формирования сигналов сдвига БАФС, блок 11 хранения адреса вхождений БХАВ, блок 12 управления работой блока БУРБ (фиг.3).
Блок 9 регистров сдвига и компаратора БРСК (фиг.4) содержит реверсивный регистр РгВ DD13 (регистр вхождений), в котором будет хранится слово-образец (вхождение), реверсивный регистр РгС1 DD14, (регистр слов), в котором будет хранится обрабатываемое слово, реверсивный регистр сдвига РгС2 DD15, логический элемент И DD16 предназначен для обнаружения признака конца вхождения ПРКВ, логический элемент И DD18 предназначен для обнаружения признака конца слова ПРКС, компаратор DD.17, представляющий собой устройство сравнения на равенство входных величин: выходных данных вхождений ДВ реверсивного регистра РгВ DD. 13 и выходных данных реверсивного регистра слов РгС1 - ДС (фиг. 4). Если входные сигналы равны, то на выходе компаратора формируется единичный сигнал ССР. В обратном случае ССР будет равен нулю. Выходной сигнал компаратора поступает на вход блока 12 управления работой блока и на вход блока 10 анализа и формирования сигналов сдвига (фиг.3). С выхода памяти вхождений информация ВДВ поступает на вход реверсивного регистра вхождений РгВ DD.13, по сигналам управления СУ1 из блока 12 управления работой блока происходит запись символов вхождения в регистр вхождений. Сигнал сдвига вхождений СДВ из блока 12 управления работой блока поступает на вход реверсивного регистра вхождений (фиг.4). Выходная информация из реверсивного регистра вхождений ДВ поступает на первый вход компаратора DD.17 (фиг.4). Реверсивный регистр РгВ выполняет операцию сдвига в любом направлении: слева направо или наоборот. Сдвиг вправо выполняется при значении сигнала СДВ=1. сдвиг влево - при СДВ=0, т.е. направление сдвига осуществляется одним управляющим сигналом [3, 4]. Элемент И DD.16 формирует сигнал признака конца вхождений ПРКВ, равный единице (все единицы на входе). Перед началом работы системы в регистре вхождений находится слово-образец, сигнал признака конца вхождений ПРКВ равен нулю, сигнал сдвига вхождений СДВ равен нулю. С выхода памяти слов информация ВДС поступает на вход реверсивного регистра слов PrC1 DD14, по сигналам управления СУР из блока 12 управления работой блока происходит запись слова в реверсивный регистр слов PrC1 DD.14. Сигнал сдвига слов СДС из блока 12 управления работой блока поступает на вход реверсивного регистра слов PrC1 DD.14 (фиг.4). Выходная информация из реверсивного регистра слов PrC1 ДС поступает на вход логического элемента И DD18, а также на второй вход компаратора КОМ DD. 17. Элемент И DD.18 формирует сигнал признака конца слова ПРКС, равный единице (все единицы на входе). Перед началом работы системы в регистре слов находится слово, сигнал признака конца слова ПРКС равен нулю. Работа системы начинается с установки управляющих сигналов сдвигов СДВ и СДС в нулевое состояние. На вход компаратора КОМ поступают по одному символу из регистров вхождений и слов. Если на выходе компаратора КОМ будет сформирован сигнал сравнения ССР, то сигнал сдвига СДС будет равен нулю, в этом случае будет сформирован сигнал сдвига влево на один разряд. Информация из регистра PrC1 DD.14 сдвинется на один символ влево. Этот символ перейдет по сигналам СУР в регистр РгС2 DD15 (фиг. 4). Процесс сдвига влево будет продолжаться до тех пор, пока не будет получен отрицательный результат сравнения в компараторе КОМ DD.17 или не будет обнаружен признак конца вхождения ПРКВ. Предположим, что было зафиксировано 4 сдвига влево и получен отрицательный сигнал сравнения ССР, равный нулю. Тогда блоком 12 управления работой блока будут сформированы сигналы вправо, при этом сигнал сдвига СДС равен единице. Информация из регистра РгС2 DD.15 будет сдвинута вправо на n-1 разрядов, где n - количество сдвигов влево, в нашем случае 3. Три буквы из регистра РгС2 DD15 перейдут в регистр PrC1 DD14. В этом случае вторая буква будет первой в регистре PrC1, процесс поиска вхождений будет продолжен (фиг.4). Если будет обнаружен признак конца вхождения ПРКВ, то в этом случае вхождение найдено и будет записано в блок хранения адреса вхождений по соответствующему адресу. Работу блока можно представить как хранение вхождений и слов. По приходу сигналов сдвига происходит выдача по одному символу на входы компаратора для осуществления операции сравнения. В зависимости от выходного сигнала компаратора ССР происходит сдвиг информации в обоих регистрах или в регистре слов.
Блок 10 анализа и формирования сигналов сдвига (фиг.5) содержит D-триггер DD19, двухвходовый логический элемент И DD. 20 с инверсным входом, двухвходовый логический элемент И DD.22, двухвходовый логический элемент И DD. 24, трехвходовый логический элемент И DD.21 с инверсным входом, логический элемент И DD.28 с инверсными входами, трехвходовый элемент И DD.27 с инверсным входом, электронный ключ DD.26, двоичный счетчик СЧ1 DD.23, двоичный счетчик СЧ2 DD.25, двухвходовый логический элемент И DD.29, двухвходовый логический элемент ИЛИ DD.30 с инверсными входами. Перед началом работы устройства двоичные счетчики Сч1 DD.23, Сч2 DD.25, а также D-триггер Тр DD. 19 триггер установлены в нулевое состояние. Блок 10 анализа и формирования сигналов сдвига (фиг.5) обрабатывает выходной сигнал ССР с компаратора. Если сигнал ССР равен единице, то это означает, что произошло совпадение двоичного кода символа вхождения с двоичным кодом буквы слова. В этом случае D-триггер Тр DD.19 по приходу из блока 12 управления работой блока разрешающего сигнала СЗЩ устанавливается в единичное состояние. Логический элемент И DD.22, выполняющий функцию электронного ключа, отпирается, тактовые импульсы ТАК из блока 12 управления работой блока поступают на суммирующий (+) вход двоичного счетчика СЧ1 DD.23. В двоичном счетчике СЧ1 DD.23 происходит суммирование тактовых импульсов, количество которых соответствует количеству совпадений в компараторе. На выходе двоичного счетчика СЧ1 DD.23 формируется двоичный код, соответствующий количеству положительных совпадений в компараторе (фиг.5). При каждом положительном совпадении в компараторе происходит формирование сигналов сдвига влево СДВ и СДС, равных нулю, и осуществляется сдвиг на один символ влево в регистре РгВ DD.13 и регистре PrC1 DD.14 блока 9 регистров сдвига и компаратора (фиг.4). Регистр РгС2 DD. 15 блока 9 регистров сдвига и компаратора записывает каждый символ, поступающий из регистра PrC1 DD.14. В случае обнаружения признака конца вхождения ПРКВ, равным единице, логическим элементом И DD.16 блока 9 регистров сдвига и компаратора происходит определение адреса вхождения и запись по соответствующему адресу записи в оперативно-запоминающее устройство ОЗУ DD.33 блока 11 хранения адреса вхождений. Если признак конца слова не обнаружен ПРКС= 0 (равен нулю), то предыдущее вхождение восстанавливается, т.е. переписывается заново из памяти вхождений, и процесс поиска вхождений в слове продолжается. Если совпадений в компараторе не происходит, выходной сигнал ССР равен нулю, то формируется только сигнал СДС, равным нулю, и происходит сдвиг влево на одну позицию информации, находящейся в регистре слов PrC1 DD. 14 блока 9 регистров сдвига и компаратора (фиг.4). При каждом сдвиге влево и отрицательном результате совпадения в компараторе из памяти слов ПС переписывается (дописывается) символ в регистр памяти слов PrC1 DD.14 блока 9 регистров сдвига и компаратора. Возможна ситуация в поисковой операции, когда был получен положительный результат сравнения символов, тогда формируется сдвиг влево на один разряд регистров. После сдвига получен второй раз положительный результат, третий и так далее, но признака конца вхождения еще нет. Допустим на n шаге получен отрицательный результат сравнения, а вхождение полностью не обнаружено. В этом случае D-триггер Тр DD.19 был установлен в состояние единицы, т.е. на выходе элемента единица. На следующем этапе сигнал сравнения равен нулю ССР=0. На выходе логического элемента И DD.20 будет сформирован единичный сигнал. Логический элемент И DD.21 также будет открыт, прямоугольные импульсы из блока 12 управления работой блока ПРИ будут поступать на вычитающий вход двоичного счетчика СЧ1 DD.23. Вычитание происходит до тех пор, пока на выходе счетчика не будет двоичный код, равный единице. На положительный вход счетчика прямоугольные импульсы из блока 12 управления работой блока поступать не будут, т.к. логический элемент И DD. 22, выполняющий функцию электронного ключа, будет заперт установившимся в нулевое состояние D-триггером DD.19. Логический элемент И DD.28 выполняет роль дешифратора единицы. Выход этого элемента равен единице в случае получения на выходе счетчика СЧ1 DD.23 двоичного кода 0001 (фиг.5). При всех других комбинациях на выходе данного элемента будет состояние нуль. При единице на выходе этого элемента логический элемент И DD.21 запирается, т.к. единица поступает на инверсный вход. Прямоугольные импульсы на вычитающий вход счетчика СЧ1 не поступают. Счетчик СЧ1 обнуляется командой ОБН, поступающей из блока 12 управления работой блока. Логический элемент И DD.27 выполняет роль своеобразного "клапана", формирующего количества сдвигов вправо регистра PrC1. Каждый раз, когда происходит вычитание единицы из содержимого счетчика СЧ1, происходит перемещение вправо информации из регистра РгС2 DD. 15 в регистр PrC1 DD.14 блока 9 регистров сдвига и компаратора. Количество сдвигов вправо будет на один меньше, чем количество сдвигов влево. В нашем примере n-1. Вторая буква из полученной серии положительных сдвигов будет первой в регистре PrC1. Вхождение будет заново переписано из памяти вхождений DD. 7 в регистр вхождений РгВ DD.13. Процесс поиска будет продолжен. Логический элемент или DD.30 выполняет функцию распознавания режима работы. Как известно, система работает в двух независимых режимах: определения вхождений с общими частями и определения вхождений и без (пересечений) общих частей. В первом случае признак режима работы РР будет равен нулю. Во втором случае признак РР равен единице. Логический элемент И DD.29 выполняет функцию электронного ключа. В случае, когда признак работы системы РР равен нулю, на выходе элемента ИЛИ DD.30 всегда будет единица. Электронный ключ DD. 29 будет открыт. Прямоугольные импульсы ПРИ из блока 12 управления работой блока через открытый ключ поступают на третий вход логического элемента И DD. 21. Этот режим характеризуется перемещением информации из регистра РгС2 DD.15 в регистр PrC1 DD.14 на n-1 разрядов, т.е. будет сформирован возврат информации, где n - количество положительных сдвигов, всякий раз, когда будет обнаружено вхождение в обрабатываемом слове, при этом признак конца вхождения ПРКВ будет равен единице. Если режим работы системы будет установлен как поиск вхождений без общих частей, то в этом случае РР равен единице. В случае обнаружения вхождения признак вхождений ПРКВ равен также единице. На выходе логического элемента ИЛИ DD.30 установить нулевое значение. Электронный ключ И DD.29 будет заперт. Прямоугольные импульсы ПРИ из блока 12 управления работой блока не будут поступать на вход элемента И DD.21 (фиг.5). Информация из регистра РгС2 не переместится в регистр PrCl. В этом случае будет сформирован сдвиг влево символов из регистра PrC1 в регистр РгС2 т.е. возврата информации не будет (фиг.4).
Блок 11 хранения адреса вхождений БХАВ (фиг.6) содержит оперативно-запоминающее устройство ОЗУ DD.33, двоичный счетчик, формирующий адреса столбцов ОЗУ - Сч ст DD.31, двоичный счетчик, формирующий адреса строк ОЗУ - Сч стр DD.32. Двоичные счетчики вначале работы устройства обнулены управляющими сигналами СБР, СБО. поступающими из блока 12 управления работой блока. На входы счетчиков поступают прямоугольные импульсы ГИ, ТИ из блока 12 управления работой блока. Счетчики формируют адреса строк и столбцов, по которым будут записаны адреса вхождений, поступающие на вход оперативно-запоминающего устройства ОЗУ DD.33 (фиг.6). Сигналы управления оперативно-запоминающего устройства ОЗУ DD.33 считывания/запись и выбора кристалла соответственно при записи принимают значения Сч/Зп=0, ВК=0.
Блок 12 управления работой блока БУРБ (фиг.3) синтезируется на основе ГСА алгоритма управления блоком (фиг.7) известным способом [6]. Размеченная ГСА работы блока 12 управления работой блока приведена на фиг.8, где обозначено:
Логические условия:
X1: "СДi"
Х2: "ССР"
Х3: "ТР"
Х4: "СЧ1"
Х5: "ПРКВ"
Х6: "ПРКС"
Х7: "РР"
Операторы:
У1: "СДi=1"
У2: "РгВ:=ВДВ"
У3: "РгС1:=ВДС"
У4: "Тр:=0"
У5: "Кл:=СBA"
У6: "Сч/Зп:=0"
У7: "ВК:=0"
У8: "ОЗУ:=АВХ"
У9: "СДС:=0"
У10: РгС2:=РгС1"
У11: "СВП:=1"
У12: "СЧ1:="ПРИ"
У13: "СДС:=1"
У14: "PrC1:PrC2"
У15: "CУ2:=1"
У16: ТгВ:=СУ1"
У17: "ОБН:1"
У18: "СЧ1:0"
У19: "ТР:=ССР"
У20: "СЗЩ:=1"
У21: "ТР:=1"
У22: "CЧl:=TAK"
У23: "CДB:=0"
У24: "CPP:=1"
У25: "СРР:=0"
У26: "СДС:=СВП"
Блок 6 управления системой синтезируется на основе ГСА алгоритма управления (фиг.9) известным способом [6]. Размеченная ГСА работы блока 6 управления системой приведена на фиг.10, где обозначено:
Логические условия:
X1: "УОО"
Х2: "ПУСК"
Х3: "КР"
Х4: "ПСП"
Х5: "i<=n"
Х6: "СРi"
Операторы:
У1: "СБРОС:=1"
У2: "ПB:=CУП1"
У3: "ПВ:=АД1"
У4: "ПВ:ДН1"
У5: "ПС:=СУП2"
У6: "i:=1"
У7: ПС:АД2"
У8: "ПС:=ДН2"
У9: "БППBi:=BДC"
У 10: "БППВi:=ВДВ"
У11: "i:=1+1"
ИСТОЧНИКИ ИНФОРМАЦИИ
1. Кудрявцев В.Б., Подколзин А.С., Ушчумлич Ш. Введение в теорию абстрактных автоматов. М.: Из-во МГУ, 1985, 174с.
Logical conditions:
X1: "SDi"
X2: "SSR"
X3: "TR"
X4: "SCH1"
X5: "PRKV"
X6: "PRKS"
X7: "PP"
Operators:
U1: "SDi = 1"
U2: "RgV: = Airborne"
U3: "RgS1: = GVA"
U4: "Tr: = 0"
U5: "Cl: = CBA"
Y6: "Mid / Sn: = 0"
Y7: "VK: = 0"
U8: "RAM: = AVX"
Y9: "SDS: = 0"
U10: RgC2: = RgC1 "
Y11: "SVP: = 1"
Y12: "SCH1: =" PRI "
Y13: "SDS: = 1"
Y14: "PrC1: PrC2"
Y15: "SU2: = 1"
U16: TgV: = SU1 "
Y17: "UPD: 1"
U18: "SCH1: 0"
Y19: "TR: = SSR"
U20: "NWT: = 1"
U21: "TR: = 1"
Y22: "SCl: = TAK"
Y23: "CDB: = 0"
Y24: "CPP: = 1"
U25: "CPP: = 0"
U26: "SDS: = SVP"
The
Logical conditions:
X1: UOO
X2: "START"
X3: "KR"
X4: PSP
X5: "i <= n"
X6: "CPi"
Operators:
U1: "RESET: = 1"
U2: "PB: = CUP1"
U3: "PV: = AD1"
U4: "PV: DN1"
U5: "PS: = SUP2"
Y6: "i: = 1"
U7: PS: AD2 "
U8: "PS: = DN2"
U9: "BPPi: = BDC"
Y 10: "BWPi: = Airborne"
Y11: "i: = 1 + 1"
SOURCES OF INFORMATION
1. Kudryavtsev VB, Podkolzin AS, Ushchumlich S. Introduction to the theory of abstract automata. M.: From Moscow State University, 1985, 174s.
2. Марков А. А. , Нагорный Н.М. Теория алгорифмов. - Москва.: Наука, - 318с. Главная редакция физико-математической литературы, 1984 г. 2. Markov A. A., Nagorny N.M. Theory of Algorithms - Moscow .: Science, - 318s. The main edition of the physical and mathematical literature, 1984
3. Успенский В. А., Семенов А.Л. Теория алгорифмов: основные открытия и приложения. - Москва.: Наука, Главная редакция физико-математической литературы. 1987 г., - 210с. 3. Uspensky V. A., Semenov A. L. Theory of algorithms: basic discoveries and applications. - Moscow .: Nauka, Main edition of the physical and mathematical literature. 1987, - 210s.
4. Алексенко А. Г. . Шагурин И.И. Микросхемотехника: Учеб. пособие для вузов. - 2-е изд., перераб. и доп. - М.: Радио и связь, 1990, - 496с.: ил. 4. Aleksenko A.G. Shagurin I.I. Microcircuitry: Textbook. manual for universities. - 2nd ed., Revised. and add. - M .: Radio and communications, 1990, - 496 p.: Ill.
5. Баранов С. И. Синтез микропрограммных автоматов. - Энергия, Ленинградское отделение, 1974 г., - 184с. 5. Baranov S. I. Synthesis of microprogram automata. - Energy, Leningrad branch, 1974, - 184s.
6. Цифровые и налоговые интегральные микросхемы: Справочник под ред. С. В. Якубовского. - М.: Радио и связь,1990, - 496 с. 6. Digital and Tax Integrated Circuits: A Guide, Ed. S.V. Yakubovsky. - M .: Radio and communications, 1990, - 496 p.
7. Патент 2150740 (прототип). 7. Patent 2150740 (prototype).
8. А.с. СССР 1837327 (аналог). 8. A.S. USSR 1837327 (analogue).
9. А.с. СССР 1667097 (аналог). 9. A.S. USSR 1667097 (analogue).
10. А.с. СССР 1277091 (аналог). 10. A.S. USSR 1277091 (analogue).
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2001132281/09A RU2220448C2 (en) | 2001-11-28 | 2001-11-28 | Concurrent arbitrary-occurrence search system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
RU2001132281/09A RU2220448C2 (en) | 2001-11-28 | 2001-11-28 | Concurrent arbitrary-occurrence search system |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2001132281A RU2001132281A (en) | 2003-07-10 |
RU2220448C2 true RU2220448C2 (en) | 2003-12-27 |
Family
ID=32065686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2001132281/09A RU2220448C2 (en) | 2001-11-28 | 2001-11-28 | Concurrent arbitrary-occurrence search system |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2220448C2 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2760628C1 (en) * | 2021-02-25 | 2021-11-29 | Федеральное государственное бюджетное образовательное учреждение высшего образования «Юго-Западный государственный университет» (ЮЗГУ) (RU) | Method and associative matrix apparatus for parallel search of a sample based on the prefixes thereof |
US20220157442A1 (en) * | 2020-11-13 | 2022-05-19 | Ohio State Innovation Foundation | Systems and methods for providing health care search recommendations |
RU2793554C1 (en) * | 2022-09-20 | 2023-04-04 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет" (ЮЗГУ) | Device for parallel-sequential search and replacement of occurrences in processed words |
-
2001
- 2001-11-28 RU RU2001132281/09A patent/RU2220448C2/en not_active IP Right Cessation
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220157442A1 (en) * | 2020-11-13 | 2022-05-19 | Ohio State Innovation Foundation | Systems and methods for providing health care search recommendations |
RU2760628C1 (en) * | 2021-02-25 | 2021-11-29 | Федеральное государственное бюджетное образовательное учреждение высшего образования «Юго-Западный государственный университет» (ЮЗГУ) (RU) | Method and associative matrix apparatus for parallel search of a sample based on the prefixes thereof |
RU2793554C1 (en) * | 2022-09-20 | 2023-04-04 | Федеральное государственное бюджетное образовательное учреждение высшего образования "Юго-Западный государственный университет" (ЮЗГУ) | Device for parallel-sequential search and replacement of occurrences in processed words |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2561453B1 (en) | A dual dfa decomposition for large scale regular expression matching | |
US6297760B1 (en) | Data acquisition system comprising real-time analysis and storing means | |
US20060259508A1 (en) | Method and apparatus for detecting semantic elements using a push down automaton | |
JPH07297728A (en) | Method and system for searching coincidence of patterns | |
GB1588535A (en) | Content-addressable memories | |
US4254476A (en) | Associative processor | |
RU2220448C2 (en) | Concurrent arbitrary-occurrence search system | |
US11586956B2 (en) | Searching apparatus utilizing sub-word finite state machines | |
US3034102A (en) | Data handling system | |
Nguyen et al. | An FPGA approach for high-performance multi-match priority encoder | |
KR101276796B1 (en) | Apparatus and method for matching pattern | |
RU2202823C2 (en) | Device for searching arbitrary occurrences | |
RU2245579C2 (en) | Parallel search and replace system | |
RU2105343C1 (en) | Device for situation control | |
RU2250493C2 (en) | Device for finding and replacing random strings in text words | |
RU2296366C1 (en) | Device for parallel search and substitution of entrances in processed words | |
RU2199778C1 (en) | Information retrieval system | |
RU2195015C1 (en) | Information retrieval parallel system | |
RU2469425C2 (en) | Associative memory matrix for masked inclusion search | |
RU72771U1 (en) | DEVICE FOR PARALLEL SEARCH AND DATA PROCESSING | |
RU2793554C1 (en) | Device for parallel-sequential search and replacement of occurrences in processed words | |
RU2150740C1 (en) | Searching device | |
US7227994B2 (en) | Method and apparatus for imbedded pattern recognition using dual alternating pointers | |
Moeini et al. | Improved Rabin-Karp Algorithm Using Bloom Filter | |
RU2549525C2 (en) | Method and apparatus for searching for composite sample in sequence |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20031129 |