Изобретение относится к техническим средствам автоматики и вычислительной техники и может быть использовано в устройствах обработки информации, в частности, для составления словарей, справочников, создания баз данных, в информационно-поисковых системах.
Известно "Устройство для сортировки чисел" (а.с. N 1304015, 1987 г. Бюл. 14), позволяющее упорядочить массив чисел в возрастающем и убывающем порядке.
Известно также "Устройство сортировки информации" (a.c. N 1594521, 1990 г. Бюл. 355), позволяющее упорядочить массивы данных.
В качестве прототипа выбрано "Устройство сортировки информации" (положительное решение от 26.03.94 г. по номеру заявки 93015991), позволяющее упорядочить данные.
Недостатком известного устройства является ограниченность функциональных возможностей одной операцией упорядочения.
Поставлена цель расширения функциональных возможностей без значительного удорожания аппаратуры.
Изобретение позволяет организовать помимо режима упорядочения данных режим отбора слов из потока данных на основании сопоставления их с заданными образцами без значительного увеличения затрат на аппаратуру.
Решение задачи достигается тем, что в устройство сортировки информации, содержащее первый и второй стековые блоки памяти, элемент сравнения, блок управления, входной и выходной каналы, блок оперативной памяти, блок коммутации и идентификации, причем с первого по пятый управляющие выходы блока управления соединены соответственно с первого по пятый управляющими входами блока оперативной памяти, информационный вход которого соединен с входным каналом, управляющий выход блока оперативной памяти соединен с четвертым управляющим входом блока управления, информационный выход блока оперативной памяти соединен с первым информационным входом элемента сравнения и вторым информационным входом блока коммутации и идентификации, первый управляющий выход последнего соединен с четырнадцатым управляющим входом блока управления, с первого по третий управляющие входы блока коммутации и идентификации соединены соответственно с десятого по двенадцатый управляющими выходами блока управления, второй информационный выход блока коммутации и идентификации соединен с выходным каналом, первый информационный выход блока коммутации и идентификации соединен с информационным входом второго стекового блока памяти, первый и второй управляющие входы последнего соединены соответственно с шестым и седьмым управляющими выходами блока управления, первый и второй управляющие выходы второго стекового блока памяти соединены соответственно с десятым и одиннадцатым управляющими входами блока управления, первый и второй управляющие входы первого стекового блока памяти соединены соответственно с восьмым и девятым управляющими выходами блока управления, первый и второй управляющие выходы первого стекового блока памяти соединены соответственно с двенадцатым и тринадцатым управляющими входами блока управления, информационный выход первого стекового блока памяти соединен с первым информационным входом блока коммутации и идентификации и со вторым информационным входом элемента сравнения, с первого по третий управляющие выходы последнего соединены соответственно с пятого по седьмой управляющими входами блока управления, с первого по третий управляющие входы "ЗАГР", "ЧТПР", "ЧТОБ", а также восьмой и девятый управляющие входы "СБРОС" и "ПУСК" блока управления являются внешними входами устройства, тринадцатый и четырнадцатый управляющие выходы "ГТ" и "СИН" блока управления являются внешними выходами устройства, введены шестнадцатый внешний управляющий вход "РСЕЛ" блока управления, с пятнадцатого по семнадцатый управляющие выходы которого соединены с третьего по пятый управляющими входами первого стекового блока памяти, соответственно третий управляющий выход последнего соединен с пятнадцатым управляющим входом блока управления, восемнадцатый управляющий выход и семнадцатый управляющий вход которого соединены соответственно с четвертым управляющим входом и вторым управляющим выходом блока коммутации и идентификации, третий информационный выход последнего соединен с информационным входом первого стекового блока памяти, третий и четвертый информационные входы блока коммутации и идентификации соединены соответственно с входным каналом и информационным выходом второго стекового блока памяти.
ВХК - входной канал служит для приема данных.
БОП - блок оперативной памяти служит для временного хранения принятого слова или числа.
ЭС - элемент сравнения символов принятого слова и уже упорядоченных слов или образцов.
СБП2 - второй стековый блок памяти служит для хранения части упорядоченного массива и организации упорядочения.
СБП1 - первый стековый блок памяти служит для хранения части упорядоченного массива и организации упорядочения или хранения массива образцов в режиме отбора.
БКиИ - блок коммутации и идентификации служит для коммутации информации с различных источников на информационный вход блоков СБП2 СБП1 и на выходной канал, а также для определения границ слов упорядоченного массива и идентификации маскированных символов образца.
ВЫХК - выходной канал служит для выдачи данных.
БУ - блок управления служит для управления другими блоками устройства.
Теория нормальных алгорифмов универсальна по отношению к любым алгоритмическим схемам /1/. Под алгорифмом Маркова понимается конечная последовательность формул вида
S _→ T, (1)
где S - образец;
T - подстановка;
S и Т - произвольные слова в фиксированном алфавите.
Работа формулы заключается в обнаружении в слове фрагмента, совпадающего с образцом, и замене обнаруженного фрагмента на слово-подстановку.
Упорядочение слов, например, по признаку алфавитного порядка в теории нормальных алгорифмов занимает особое место, поскольку относится к труднореализуемым задачам, в которых используются формулы /продукции/, содержащие образцы с заданными в их структуре операциями. В данном случае речь идет об операции компарации на "больше", "меньше" и "равно". Подстановка в формулах вида /1/ также имеет свою специфику и представляет собой вспомогательное служебное слово, указывающее позицию слова среди других слов в заданном правиле упорядочения, а для отбора слов это служебное слово - указатель слова, отвечающего заданным правилам отбора.
В основу работы предлагаемого устройства положен модифицированный алгоритм, который содержит образец и подстановку с указанными выше особенностями. Устройство сортировки информации реализует формулы следующего вида:
S1 ⊗ S2 _→ T1/T2 (2)
S1 ⊗′ S2 _→ T2/T3, (3)
где S1 и S2 - компаранды образца; ⊗ - символ, обозначающий операцию компарации на "больше", "меньше" и "равно"; ⊗′ - символ, обозначающий операцию компарации на "больше" и "меньше" с "равно" с учетом маски образца при сопоставлении /который показан в качестве компаранда образца в формуле вида /1//, а также сопоставление длины компарандов; T1 - указатель позиции в частично упорядоченном массиве одного из компарандов в зависимости от результата компарации или сопоставления длин слов; T2 - указатель следующего /текущего/ компаранда или правила построения образца по результатам сравнения слов; _→ - разделители в форме служебных символов, не входящих в основной алфавит; T3 - фрагмент подстановки, означающий выдачу на выходной канал принятого слова;
В предлагаемом устройстве смысл фрагмента подстановки T2 заключается в приеме очередного символа с входного канала.
Формула вида /2/ задает рекурсивную реализацию процесса упорядочения; формула вида /3/ - процесса селекции.
На фиг. 1 изображена структурная схема устройства сортировки информации;
на фиг. 2 представлен вариант технической реализации блока оперативной памяти;
на фиг. 3 - вариант технической реализации элемента сравнения;
на фиг. 4 - вариант технической реализации второго штекового блока памяти;
на фиг. 3 - вариант технической реализации первого стекового блока памяти;
на фиг. 6 - вариант технической реализации блока коммутации и идентификации;
на фиг. 7 - содержательная граф-схема алгоритма (далее по тексту ГСА) работы блока управления.
Устройство сортировки информации /фиг. 1/ содержит входной канал 1, блок 2 оперативной памяти, элемент 3 сравнения, первый стековый блок 4 памяти, второй стековый блок 5 памяти, блок 6 коммутации и идентификации, выходной канал 7, блок 8 управления.
Для описания алгоритма работы блока 8 управления используются следующие идентификаторы.
1. 3АГР - сигнал записи в устройство.
2. ЧТПР - сигнал выдачи устройством упорядоченного массива в возрастающем порядке.
3. ЧТОБ - сигнал выдачи устройством упорядоченного массива в убывающем порядке.
4. ОБСЧ - сигнал обнуления, поступающий на вход счетчика блока БОП.
5. ИНСЧ - сигнал инкрементации содержимого счетчика блока БОП.
6. ЗПРГ - сигнал записи в регистр РГ блока БОП информации из счетчика СЧ блока БОП.
7. ЗПОЗУ - сигнал записи/не чтения ОЗН блока БОП.
8. ВК1 - сигнал выбора кристалла ОЗН блока БОП /инверсный/.
9. КС - признак конца слова, находящегося в блоке БОП.
10. БОЛЬШЕ - признак того, что символ И2 больше символа И3.
11. МЕНЬШЕ - признак того, что символ И2 меньше символа И3.
12. РАВНО - признак того, что символ И2 равен символу И3.
13. ЗНС1 - сигнал записи в стек блока СБП1.
14. ЧТС1 - сигнал чтения из стека блока СБП1.
15. ОБСЧА - сигнал обнуления счетчика адреса СЧА блока СБП1.
16. ЗПРГА - сигнал записи в регистр адреса РГА блока СБП1 информации из счетчика адреса СЧА блока СБП1.
17. ВК2 - сигнал выбора кристалла ОЗУ блока СБП1 /инверсий/.
18. С1ПН - признак того, что блок СБП1 полон.
19. С1ПТ - признак того, что блок СБП1 пуст.
20. КМ - признак конца массива, находящегося в блоке СБП1 в режиме селекции.
21. ЗПС2 - сигнал записи в стек блока СБП2.
22. ЧТС2 - сигнал чтения из стека блока СБП2.
23. С2ПН - признак того, что стек блока СБП2 полон.
24. С2ПТ - признак того, что стек блока СБП2 пуст.
25. РСЕЛ - внешний признак режима селекции.
26. СБРОС - сигнал сброса устройства.
27. ПУСК - сигнал пуска устройства.
28. А0 - адрес, подаваемый на вход коммутатора КМ2 блока БКиИ.
29. А1 - адрес 1, подаваемый на вход коммутатора КМ1 блока БКиИ.
30. А2 - адрес 2, подаваемый на вход коммутатора КМ1 блока БКиИ.
31. РВ - сигнал разрешения выдачи информации на выходной канал.
32. ГС - признак границы между словами упорядоченного массива или массива образцов.
33. МС - признак маскированного символа в режиме селекции.
34. ГТ - сигнал готовности устройства.
35. СИН - внешний выходной синхронизирующий сигнал.
36. И1 - входные данные ОЗУ блока БОП.
37. И2 - выходные данные ОЗУ блока БОП.
38. ИЗ - выходные данные ОЗУ блока СБП1.
39. И4 - выходные данные стека блока СБП2.
40. И5 - выходные данные коммутатора блока БКиИ, поступающие на вход стека СБП2.
41. И6 - выходные данные шинного формирователя ШФ блока БКиИ.
42. И7 - выходные данные коммутатора КМ2 блока БКиИ.
Работа алгоритма управления устройством.
Содержательная ГСА управления приведена на фиг. 7 и отражает работу блока управления /фиг. 1/.
По сигналу "СБРОС" (узел 2 ГСА) /фиг. 1/ происходит сброс информации, хранящейся в блоках СБП1 и СБП2 по командам "ОБСЧА" и "ЧТС2" (узел 4 ГСА) до тех пор, пока блок СБП2 не станет пуст и установится признак "С2ПТ" (узел 5 ГСА) /фиг. 1/.
По сигналу "ПУСК" (узел 5 ГСА) осуществляется переход на узел 113 ГСА, иначе на узел 5 ГСА.
В узле 6 ГСА осуществляется анализ сигнала "ЧТОБ", по этому сигналу осуществляется переход на узел 63 ГСА.
В узле 7 ГСА осуществляется анализ сигнала "ЧТПР", по этому сигналу осуществляется переход на узел 58 ГСА.
В узле 8 ГСА анализируется сигнал "ЗАГР", по которому осуществляется загрузка входного слова в БОП /фиг. 1/, иначе осуществляется переход на блок 6 ГСА.
В блоке 9 ГСА по команде "ОБСЧ:=1" обнуляется счетчик блока БОП /фиг. 2/. До тех пор, пока не будет снят сигнал "ЗАГР" /блок 10 ГСА/, по команде "ЗПОЗУ:=1" происходит запись входного символа в ОЗУ по адресу, хранящемуся в счетчике СЧ /фиг. 2/ и выдача внешнего синхронизирующего сигнала "СИН" /блок 11 ГСА/. В блоке 12 ГСА по команде "ИНСЧ:=1" содержимое счетчика СЧ /фиг. 2/ увеличивается на единицу.
В блоке 13 ГСА по команде "ЗПРГ:=1" происходит запись в регистр РГ состояния счетчика СЧ /фиг. 2/, в данном случае равное количеству символов в принятом слове.
В блоке 14 ГСА анализируется признак пустоты блока СБП1 "С1ПТ". По этому признаку осуществляется переход на блок 16 алгоритма.
В блоке 15 ГСА по команде "ОБСЧ:=1" обнуляется счетчик СЧ /фиг. 2/, по командам "ЧТС1:=1", "А1:=1", "А2:=1", "ЗПС2:=1" происходит запись символа из блока СБП1 в блок СБП2, осуществляется переход на блок 19 ГСА.
В блоке 16 ГСА анализируется признак пустоты блока СБП2 /фиг. 1/ "С2ПТ", по признаку осуществляется переход на блок 40 ГСА, иначе происходит запись слова из СБП2 в СБП1 /фиг. 1/.
В блоке 17 анализируется признак границы между словами в стековых блоках памяти "ГС", идентифицируемый специальным служебным кодом. По признаку осуществляется переход на блок 15 ГСА.
В блоке 18 ГСА по командам "ЧТС2:=1", "ЗПС2:=1" происходит запись очередного символа из СБП2 в СБП1 /фиг. 1/, осуществляется переход на блок 17 ГСА.
В блоке 19 ГСА анализируется признак того, что И2 меньше И3 "МЕНЬШЕ", выдаваемый элементом сравнения /фиг. 3/. По признаку осуществляется переход на блок 20 ГСА, иначе на блок 35 ГСА.
В блоке 20 ГСА анализируется признак границы между словами в стековых блоках памяти /фиг. 1/ "ГС", по которому осуществляется переход на блок 22 ГСА.
В блоке 21 ГСА осуществляется запись символа из СБП2 в СБП1 /фиг. 1/ по командам "ЧТС2:=1", "ЗПС1:=1", переход на блок 20 ГСА.
В блоке 22 ГСА анализируется признак "С2ПТ" пустоты СБП2 /фиг. 1/, по которому осуществляется переход на блок 40 ГСА.
В блоке 23 ГСА по командам "ЧТС2:=1", "ЗПС1:=1" происходит запись символа из СБП2 в СБП1 /фиг. 1/.
В блоке 24 ГСА анализируется признак границы слов в стековых блоках памяти "ГС", по которому осуществляется переход на блок 25 ГСА, иначе на блок 23 ГСА.
В блоке 25 ГСА по команде "ОБСЧ:=1" происходит обнуление СЧ блока БОП /фиг. 2/, по командам "ЧТС1", "ЗПС2", "А1", "А2" происходит запись символа из СБП1 в СБП2 /фиг. 1/.
В блоке 26 ГСА анализируется признак того, что И2 меньше И3 "МЕНЬШЕ", по которому осуществляется переход на блок 20 ГСА.
В блоке 27 ГСА анализируется признак того, что И2 равно И3 "РАВНО", по признаку осуществляется переход на блок 31 ГСА.
В блоке 28 ГСА анализируется признак "БОЛЬШЕ" того, что И2 больше И3, по которому осуществляется переход на блок 29 ГСА, иначе на блок 26 ГСА и признаки проверяются заново.
В блоке 29 ГСА анализируется признак "ГС", по которому осуществляется переход на блок 40 ГСА.
В блоке 30 ГСА по командам "ЧТС1:=1", "А1:=1", "А2:=1", "ЗПС2:=1" символ из СБП1 записывается в СБП2 /фиг. 1/, осуществляется переход на блок 29 ГСА.
В блоке 31 ГСА по команде "ИНСЧ:=1" увеличивается на единицу содержимое СЧ /фиг. 2/, по командам "ЧТС1", "А1", "А2", "ЗПС2" символ из СБП1 записывается в СБП2 /фиг.1 /.
В блоке 32 ГСА анализируется признак "ГС" или пустоты СБП2 "С2ПТ" /фиг. 1/, по которому осуществляется переход на блок 34 ГСА.
В блоке 33 анализируется признак конца слова в БОП "КС" /фиг. 1/, выдаваемый при равенстве состояний СЧ и РГ /фиг. 2/. По признаку осуществляется переход на блок 20 ГСА, иначе на блок 26 ГСА.
В блоке 34 ГСА анализируется признак "КС", по которому осуществляется переход на блок 40 ГСА, иначе на блок 29 ГСА.
В блоке 35 ГСА анализируется признак "РАВНО", если "РАВНО=0", осуществляется переход на блок 44 ГСА.
В блоке 36 ГСА по команде "ИНСЧ:=1" содержимое СЧ /фиг. 2/ увеличивается на единицу. По команде "ЧТС1:=1", "А1:=1", "А2:=1", "ЗПС2:=1" символ из СБП1 записывается в СБП2 /фиг. 1/.
В блоке 37 ГСА анализируется признак границы слов в СБП1, СБП2 или пустоты блока СБП2 /фиг. 1/ "ГС" и "С2ПТ", по которому осуществляется переход на блок 39 ГСА.
В блоке 38 ГСА анализируется признак "КС" /фиг. 1/, по которому осуществляется переход на блок 20 ГСА, иначе на блок 19 ГСА.
В блоке 39 ГСА анализируется признак "КС", если "КС=0", осуществляется переход на блок 45 ГСА.
В блоке 40 ГСА по команде "ОБСЧ" обнуляется СЧ /фиг. 2/, по командам "ЗПС2: =1", "А2:=1" в СБП2 /фиг. 1/ записывается служебный код границы слов, при этом сигнал "А2" адресует выход формирователя кодов ФК с помощью коммутатора КС1 /фиг. 6/.
В блоке 41 ГСА анализируется признак "КС" /фиг. 1/, по которому осуществляется переход на блок 71 ГСА.
В блоке 42 ГСА происходит запись символа из ОЗУ, адресуемым СЧ /фиг. 2/ по командам "ЗПС2:=1", "А1:=1", при этом сигнал "А1" коммутирует И2 на выход КМ /фиг. 6/.
В блоке 43 ГСА по команде "ИНСЧ:=1"происходит увеличение на единицу содержимого счетчика СЧ /фиг. 2/, переход на блок 41 ГСА.
В блоке 44 ГСА анализируется признак "БОЛЬШЕ" /фиг. 1/. Если "БОЛЬШЕ=0", осуществляется переход на блок 19 ГСА.
В блоке 45 ГСА анализируется признак "ГС" или "С2ПТ" /фиг. 1/, по этому признаку осуществляется переход на блок 47 ГСА.
В блоке 46 ГСА по командам "ЧТС1:=1", "ЗПС2:=1", "А1:=1", "А2:=1" происходит запись в СБП2 символа из СБП1 /фиг. 1/, осуществляется переход на блок 45 ГСА.
В блоке 47 ГСА анализируется признак пустоты СБП1 "С1ПТ" /фиг. 1/, по признаку осуществляется переход на блок 40 ГСА.
В блоке 48 ГСА, по команде "ОБСЧ:=1" обнуляется счетчик СЧ /фиг. 2/, по командам "ЧТС1", "ЗПС2", "А1", "А2" происходит запись в СБП2 символа из СБП1 /фиг. 1/.
В блоке 49 ГСА анализируется признак того, что И2 меньше И3 "МЕНЬШЕ" /фиг. 1/, по признаку осуществляется переход на блок 56 ГСА.
В блоке 50 ГСА анализируется признак "РАВНО", по признаку осуществляется переход на блок 52 ГСА.
В блоке 51 ГСА анализируется признак "БОЛЬШЕ" /фиг. 1/, по признаку осуществляется переход на блок 45 ГСА, иначе на блок 49 ГСА.
В блоке 52 ГСА по команде "ИНСЧ:=1" происходит увеличение содержимого СЧ /фиг. 2/ на единицу, по командам "ЧТС1:=1", "ЗПС2:=1", "А1:=1", "А2:=1" символ из СБП1 записывается в СБП2 /фиг. 1/.
В блоке 53 ГСА анализируется признак "ГС" или "С2ПТ". Если признак равен нулю, осуществляется переход на блок 55 ГСА.
В блоке 54 ГСА анализируется признак конца слова в БОП "КС" /фиг. 1/, по признаку осуществляется переход на блок 40 ГСА, иначе на блок 45 ГСА.
В блоке 55 ГСА анализируется признак "КС". Если "КС=0", осуществляется переход на блок 49 ГСА.
В блоке 56 ГСА анализируется признак границы между словами в СБП1, СБП2 "ГС" /фиг. 1/, по которому осуществляется переход на блок 40 ГСА.
В блоке 57 ГСА по командам "ЧТС2:=1", "ЗПС1:=1" переписывается символ из СБП2 в СБП1 /фиг. 1/, осуществляется переход на блок 56 ГСА.
В блоке 58 ГСА анализируется признак пустоты СБП2 "С2ПТ", по которому осуществляется переход на блок 60 ГСА.
В блоке 59 ГСА по командам "ЧТС2:=1", "ЗПС1:=1" переписывается символ из СБП2 в СБП1 /фиг. 1/, осуществляется переход на блок 58 ГСА.
В блоке 60 ГСА анализируется признак "ЧТПР" /фиг. 1/, по которому осуществляется переход на блок 61 ГСА, иначе на блок 60 ГСА.
В блоке 61 ГСА анализируется признак пустоты СБП1 "С1ПТ" /фиг. 1/, по признаку осуществляется переход на блок 115 ГСА.
В блоке 62 ГСА выдача символа из СБП1 на ВЫХК по командам "ЧТС1:=1", "РВ:=1" и одновременно выдача сигнала "СИН:=1".
В блоке 63 ГСА анализируется признак "С1ПТ" /фиг. 1/, по признаку осуществляется переход на блок 65 ГСА.
В блоке 64 ГСА по командам "ЧТС1:=1", "ЗПС2:=1", "А1:=1", "А2:=1" происходит запись символа из СБП1 в СБП2 /фиг. 1/, осуществляется переход на блок 63 ГСА.
В блоке 65 ГСА анализируется наличие сигнала "ЧТОБ", по сигналу осуществляется переход на блок 66 ГСА, иначе на блок 65 ГСА.
В блоке 66 ГСА анализируется признак "С2ПТ", по признаку осуществляется переход на блок 115 ГСА.
В блоке 67 анализируется признак "ГС", по которому осуществляется переход на блок 69 ГСА.
В блоке 68 ГСА по командам "ЧТС2:=1", "ЗПС1:=1" переписывается символ из СБП2 в СБП1 /фиг. 1/, осуществляется переход на блок 67 ГСА.
В блоке 69 ГСА анализируется признак пустоты СБП1 "С1ПТ" /фиг. 1/, по нему осуществляется переход на блок 65 ГСА.
В блоке 70 ГСА происходит выдача символа из СБП1 на ВЫХ К /фиг. 1/ по командам "РВ: =1", "ЧТС1:=1" и выдача сигнала "СИН", осуществляется переход на блок 69 ГСА.
В блоке 71 ГСА анализируется наличие сигнала "ЗАГР". Если "ЗАГР=0", осуществляется переход на блок 71 ГСА.
В блоке 72 ГСА по команде "ОБСЧА:=1" обнуляется содержимое счетчика СЧА /фиг. 5/.
В блоке 73Т ГСА по командам "ЗПС1:=1", "Ао:=1" в СБП1 загружается символ с ВХК, что стробируется сигналом "СИН" /фиг. 1/.
В блоке 74 ГСА по команде "ИНСЧА" увеличивается на единицу содержимое СЧА /фиг. 5/.
В блоке 75 ГСА анализируется наличие сигнала "ЗАГР", по которому осуществляется переход на блок 77 ГСА.
В блоке 76 ГСА по команде "ЗПРГА:=1" содержимое СЧП записывается в регистр РГА /фиг. 5/.
В блоке 77 ГСА анализируется наличие сигнала "ЧТОБ". Если "ЧТОБ=0", осуществляется переход на блок 79 ГСА.
В блоке 78 ГСА по команде "ОБСЧА:=1" обнуляется содержимое СЧА /фиг. 5/, осуществляется переход на блок 63 ГСА.
В блоке 79 ГСА анализируется наличие сигнала "ЧТПР", если "ЧТПР=0", осуществляется переход на блок 81 ГСА.
В блоке 80 ГСА по команде "ОБСЧА:=1" обнуляется содержимое СЧА /фиг. 5/, осуществляется переход на блок 58 ГСА.
В блоке 81 ГСА анализируется наличие сигнала "ЗАГР". Если "ЗАГР=0", осуществляется переход на блок 81 ГСА.
В блоке 82 ГСА по команде "ОБСЧ:=1" обнуляется содержимое СЧ /фиг. 2/.
В блоке 83 ГСА анализируется наличие сигнала "ЗАГР". Если "ЗАГР=0", осуществляется переход на блок 86 ГСА.
В блоке 84 ГСА по команде "ЗПОЗУ:=1" в БОП записывается символ с входного канала /фиг. 1/, что стробируется сигналом "СИН".
В блоке 85 ГСА по команде "ИНСЧ:=1" содержимое СЧ /фиг. 2/ увеличивается на единицу, осуществляется переход на блок 83 ГСА.
В блоке 86 ГСА по команде "ЗПРГ:=1" содержимое СЧ записывается в РГ, равное количеству символов в принятом слове /фиг. 1/.
В блоке 87 ГСА по командам "ОБСЧ:=1", "ОБСЧА:=1" обнуляется содержимое СЧ /фиг. 2/ СЧА /фиг. 5/.
В блоке 88 ГСА анализируется признак "БОЛЬШЕ", по которому осуществляется переход на блок 117 ГСА.
В блоке 89 ГСА анализируется признак "МЕНЬШЕ", по которому осуществляется переход на блок 114 ГСА.
В блоке 90 ГСА анализируется признак конца слова в БОП "КС" /фтг. 1/, по признаку осуществляется переход на блок 114 ГСА.
В блоке 91 ГСА анализируется признак границы между словами в СБП1 "ГС" /фиг. 1/, по которому осуществляется переход на блок 117 ГСА.
В блоке 92 ГСА по командам "ИНСЧ", "ИНСЧА" содержимое СЧ и СЧА /фиг. 2, 5/ увеличивается на единицу, переход на блок 88 ГСА.
В блоке 93 ГСА по командам "ОБСЧ", "ИНСЧА" обнуляется содержимое СЧ /фиг. 2/ и увеличивается на единицу содержимое СЧА /фиг. 5/.
В блоке 94 ГСА анализируется признак "МЕНЬШЕ", по которому осуществляется переход на блок 118 ГСА.
В блоке 95 анализируется признак "БОЛЬШЕ", по которому осуществляется переход на блок 114 ГСА.
В блоке 96 ГСА анализируется признак "ГС", по которому осуществляется переход на блок 114 ГСА.
В блоке 97 ГСА анализируется признак "КС", по которому осуществляется переход на блок 118 ГСА.
В блоке 98 ГСА по командам "ИНСЧ:=1", "ИНСЧА:=1" увеличивается на единицу содержимое СЧ /фиг. 2/ и СЧА /фиг. 5/.
В блоке 99 ГСА по командам "ОБСЧ", "ИНСЧА" обнуляется содержимое СЧ /фиг. 2/, увеличивается на единицу содержимое СЧА /фиг. 5/.
В блоке 100 ГСА анализируется признак конца массива образцов в СБП1 "КМ" /фиг. 5/, по признаку осуществляется переход на блок 114.
В блоке 101 ГСА анализируется признак "РАВНО" или маскированный символ "МС". Если признак равен нулю, осуществляется переход на блок 118 ГСА.
В блоке 102 по командам "ИНСЧ", "ИНСЧА" увеличивается на единицу содержимое СЧ /фиг. 2/ и содержимое СЧА /фиг. 5/.
В блоке 103 ГСА анализируется признак "ГО" или "КМ", по признаку осуществляется переход на блок 105 ГСА.
В блоке 104 ГСА анализируется признак "КС", по признаку осуществляется переход на блок 118 ГСА, иначе на блок 101 ГСА.
В блоке 105 ГСА анализируется признак "КС". Если "КС=0", осуществляется переход на блок 118 ГСА.
В блоке 106 ГСА по команде "ОБСЧ" содержимое СЧ обнуляется /фиг. 2/.
В блоке 107 ГСА по командам "А1:=1", "ЗПС2:=1" в СБП2 производится запись символа из БОП /фиг. 1/.
В блоке 108 ГСА по команде "ИНСЧ:=1" содержимое СЧ увеличивается на единицу /фиг. 1/.
В блоке 109 ГСА анализируется признак "КС". Если "КС=0", осуществляется переход на блок 107 ГСА.
В блоке 110 ГСА по командам "А2:=1", "ЗПС2:=1" производится запись кода границы между словами в стек СБП2 /фиг. 1, 4/.
В блоке 111 анализируется признак "С1ПН" или "С2ПН". Если признак равен нулю, осуществляется переход на блок 114 ГСА.
В блоке 112 ГСА по команде "ОБСЧА:=1" обнуляется содержимое СЧА /фиг. 5/, выдается внешний сигнал "ГТ", осуществляется переход на блок 58 ГСА.
В блоке 113 ГСА анализируется наличие сигнала "РСЕЛ", по которому осуществляется переход на блок 71 ГСА, иначе на блок 6 ГСА.
В блоке 114 ГСА выдается сигнал "СИН", переход на блок 77 ГСА.
В блоке 115 ГСА анализируется признак СБП1 или СБП2 полон "С1ПНН или С2ПН" /фиг. 1/. Если признак равен нулю, переход на блок 6.
В блоке 116 ГСА выдается сигнал "ГТ" /фиг. 1/.
В блоке 117 ГСА анализируется признак "ГС или КМ", по которому осуществляется переход на блок 94 ГСА, иначе на блок 93 ГСА, из которого осуществляется переход на блок 117 ГСА.
В блоке 118 ГСА анализируется признак "ГС или КМ", по которому осуществляется переход на блок 100 ГСА, иначе на блок 99 ГСА, из которого осуществляется переход на блок 118 ГСА.
Работа устройства сортировки информации заключается в следующем.
Внешние управляющие сигналы "ЗАГР", "ЧТПР", "ЧТОБ", "ПУСК", "РСЕЛ", "СБРОС", поступают на блок 8 управления, "ГТ", "СИН" из блока 8 управления. Входной канал представляет собой интерфейс, по которому посимвольно поступают слова. Выходной канал-интерфейс выдачи слов.
В режиме упорядочения основная идея работы заключается в следующем.
Упорядочение данных происходит по мере их поступления. На вход устройства сортировки посимвольно поступает и записывается в БОП текущее слово, где символом является составляющая слова, имеющая фиксированную длину. Началом отсортированного массива считается первый символ наименьшего слова /числа/, концом - последний символ наибольшего, при этом массив хранится в блоках СБП1, СБП2. Указанные блоки организованы в виде очередей типа LIFO /последним пришел - первым ушел/, причем начало упорядоченного массива является первым пришедшим в блок СБП2, а конец - первым пришедшим в блок СБП1. Осуществляется поиск весового места текущего слова в массиве уже упорядоченных данных посредством посимвольных сравнений элементом сравнения ЭС текущего слова со словами массива упорядоченных данных. Весовое слово - такая позиция текущего слова в упорядоченном массиве, когда ближайшее к нему стоящее на позицию раньше слово меньше, либо равно ему, а стоящее на позицию позже слово больше, либо равно ему. Поиск весового места текущего слова осуществляется следующим образом. Первый символ текущего слова сравнивается элементом сравнения ЭС с первым символом первого слова из СБП1 /фиг. 1/. Если результатом сравнения является равенство, сравниваются вторые символы и т.д. до тех пор, пока результатом сравнения не станет "БОЛЬШЕ" или "МЕНЬШЕ", или одно из слов не кончилось. Причем сравненные символы переписываются из СБП1 в СБП2. Результат сравнения двух слов: если слова кончились одновременно - они равны, если элементом сравнения был выдан сигнал "БОЛЬШЕ=1" /т. е. символ слова из БОП больше символа слова из СБП1/, либо слово блока СБП1 кончилось, а слово БОП нет - текущее слово, находящееся в БОП больше исследованного из упорядоченного массива. Если элементом сравнения выдан сигнал "МЕНЬШЕ= 1" /т.е. символ слова из БОП меньше символа из СБП1/, либо текущее слово кончилось, а исследуемое из СБП1 нет - текущее слово больше исследованного. Далее если текущее слово равно исследованному, оно записывается за ним в СБП2, если текущее слово больше, оно сравнивается с ближайшим большим исследованному слову, пока текущее слово не станет равно очередному слову из СБП1, СБП2, тогда оно записывается за очередным исследованным словом, либо не станет меньше очередного, тогда текущее слово из БОП записывается перед ним, либо не будет достигнут конец массива, тогда слово из БОП записывается в конец. Если текущее слово меньше исследованного, то оно сравнивается с очередным, ближайшим меньшим исследованного, пока не станет равно очередному, либо больше его, тогда слово из БОП записывается в массив за исследованным словом /т.е. на позицию ближе у концу массива/, либо не будет достигнуто начало массива, при достижении начала слово из БОП записывается в массив первым.
Вышеописанные записи в БОП, поиск весового места и запись в стековые блоки памяти, хранящие упорядоченный массив, происходят посимвольно, повторяются n раз, где n - количество слов, подлежащих упорядочению. После этого упорядоченная информация выдается на выходной канал в возрастающем, либо в убывающем порядке.
В режиме селекции работа заключается в следующем.
Селекция данных происходит из входного потока слов на основе результатов их сопоставления с образцами. На вход устройства посимвольно поступают и записываются образцы, разграниченные символами с кодами 11 ... 1, в СБП1, причем сначала подаются образцы - нижняя и верхняя границы, а затем образцы для сопоставления на равно, в которых отдельные позиции символов образца могут быть маскированы путем записи в них символов с кодами 00 ... 0.
Далее на вход устройства посимвольно поступает и записывается в БОП текущее слово, подлежащее обработке. Осуществляется сопоставление принятого слова с образцами. С первым образцом осуществляется сопоставление на больше, при этом первый символ текущего слова сравнивается ЭС с первым символом образца и т.д., пока результатом сравнения не станет больше или образец не кончится первым, и тогда слово считается больше образца, или результатом сравнения не станет меньше или слово в БОП не закончится, тогда слово считается меньшим или равным образцу и неудовлетворяющим условию выбора /т.к. первый образец должен являться нижней границей/.
Если слово больше образца, оно сопоставляется со вторым образцом на меньше, при этом первый символ текущего слова сравнивается ЭС с первым символом образца и т. д., пока результатом сравнения не станет меньше или слово не кончится первым, и тогда считается, что слово меньше образца, или результатом сравнения не станет больше или образец не кончится, тогда слово считается большим или равным образцу и неудовлетворяющим условию.
Если слово меньше образца, оно сопоставляется с третьим и т.д. образцами, пока не станет равно образцу. Сопоставление на равно заключается в следующем. Начиная с первых символов, сравниваются слово и образец, пока результатом их сопоставления является "равно" и они не закончились одновременно, в противном случае слово и образец считаются не равными. При этом символы считаются равными и в том случае, если символ образца равен специальному служебному коду-маске.
Если слово равно образцу, оно отбирается, т.е. записывается в СБП2, если оно не равно ни одному образцу, слово считается неудовлетворяющим условию.
Далее и в случае, если слово не удовлетворяет условию, снова осуществляется загрузка очередного слова в БОП и сопоставление и т.д.
По окончании работы осуществляется выдача выбранных слов в хронологическом или противоположном ему порядке.
Блок 2 оперативной памяти содержит счетчик СЧ, регистр РГ, оперативное запоминающее устройство ОЗУ и компаратор КП /фиг. 2/. На инверсный вход ОЗУ выбор кристалла подается константа "0" /не ВК/. Входная информация И1 поступает на вход данных ОЗУ. По сигналу "ОБСЧ=1" происходит обнуление счетчика. По сигналу "ЗПОЗУ=1" записывается входной символ в ОЗУ по адресу, хранящемуся в счетчике. По сигналу "ИНСЧ=1" содержимое счетчика увеличивается на единицу. По сигналу "ЗПРГ=1", выдаваемому по окончании загрузки слова, содержимое счетчика, в данном случае равное количеству символов слова, записывается в регистр. Если "ЗПОЗУ=0", на выход ОЗУ И2 выдается символ, находящийся по адресу, хранящемуся в счетчике. Компаратор КП, входами которого являются выходы регистра и счетчика, определяет признак конца слова "КС" при равенстве этих кодов.
Элемент 3 сравнения содержит компаратор КП /фиг. 3/, который сравнивает поступающие на его вход символы И2 и ИЗ и выдает сигналы "БОЛЬШЕ=1", если И2 больше ИЗ, "МЕНЬШЕ=1", если И2 меньше ИЗ и "РАВНО=1", если И2 равно ИЗ.
Второй стековый блок 5 памяти содержит стек /фиг. 4/ и служит для хранения части упорядоченного массива или селектированных слов. По сигналу "ЗПС2= 1" в вершину стека записывается символ И5, по сигналу "ЧТС2=1" из вершины стека считывается символ на выход И4. При этом стеком выдаются сигналы "С2ПН=1", если стек полон, и "С2ПТ=1", если пуст.
Первый стековый блок 4 памяти содержит счетчик адреса СЧА, оперативное запоминающее устройство ОЗУ, регистр адреса РГА, компаратор КП, элементы И ИЛИ-НЕ /фиг. 3/. Информация И7 поступает на вход данных ОЗУ. По сигналу "ЗПС1= 1", поступающему на вход СЧА и вход записи в ОЗУ, по переднему фронту символ И7 записывается в ОЗУ по адресу, хранящемуся в СЧА, содержимое которого увеличивается на единицу по заднему фронту. По сигналу "ЧТС1=1" содержимое СЧА уменьшается на единицу по заднему фронту, при этом сигналом "ЗПС1=0" осуществляется чтение по переднему фронту из ОЗУ символа ИЗ, адресуемого содержимым СЧА. По сигналу "ОБСЧА=1" содержимое СЧА обнуляется. По сигналу "ЗПРГА= 1", выдаваемому по окончании записи массива образцов в режиме селекции, содержимое СЧА записывается в РГА. На инверсный вход ОЗУ выбор кристалла "не ВК" подается константа "О". Компаратор КП осуществляет сравнение содержимых СЧА и РГА, выходы которых подаются на его входы и при их равенстве выдает признак конца массива "КМ=1". Элементы И и ИЛИ-НЕ выдают признаки, соответственно, стек полон "С1ПН" и стек "С1ПТ".
Блок 6 коммутации и идентификации содержит шинный формирователь ШФ с тремя состояниями на выходе, коммутаторы КМ1, КМ2, формирователь кодов ФК, элементы И, ИЛИ-НЕ /фиг. 6/. Служит для выдачи отсортированного массива на выходной канал ВЫХК /фиг. 1/ и коммутации информации с различных источников на входы СБП1, СБП2, а также для определения границы слов "ГС" и маскированного символа "МС" в СБП1. По сигналу "РВ=1" информация со входа ШФ И3 подается на его выход И6. Когда "РВ=0", его выход находится в высокоимпедансном состоянии. Сигналы А1 и А2 поступают на адресные входы КМ1, И5 является его выходом, на который передается входная информация И3 по "А1=1", "А2= 1", передается И2 по "А1= 1", "А2=0", либо передается служебный код границы между словами, генерируемый формирователем кодов ФК, указанное подключение осуществляется по "А1= 0", "А2=1". Сигнал АО поступает на адресных вход КМ2, И7 является его выходом, на который передается входная информация И4, если "АО=0" или И1, если "АО=1". Элементы И и ИЛИ-НЕ выдают сигналы, соответственно, границы между словами "ГС" при равенстве символа И3 коду 11 ... 1 и маскированного символа при равенстве И3 коду 00 ... 0.
Блок 8 управления синтезируется на основе ГСА управления /фиг. 7/ известным способом /2/.
Источники информации
1. Марков А.А., Нагорный Н.М. Теория алгорифмов. -Москва: Наука, -318 с. Главная редакция физико-математической литературы, 1984 г.
2. Баранов С. И. Синтез микропрограммных автоматов. -Энергия. Ленинградское отделение. 1974 г. -184 с.
3. Лебедев О.Н. Микросхемы памяти и их применение. -Москва: Радио и связь, 1990 г. -184 с.
4. Заявка N 93015991 /положительное решение от 26.03.94 г. //прототип/.
5. А.С. СССР N 1304015 /аналог/.
6. А.С. СССР N 1594521 /аналог/.
название | год | авторы | номер документа |
---|---|---|---|
УСТРОЙСТВО СОРТИРОВКИ ИНФОРМАЦИИ | 2004 |
|
RU2274893C2 |
УСТРОЙСТВО СОРТИРОВКИ ИНФОРМАЦИИ | 1993 |
|
RU2034327C1 |
УСТРОЙСТВО СОРТИРОВКИ СЛОВ | 2002 |
|
RU2223538C2 |
ПАРАЛЛЕЛЬНАЯ СИСТЕМА ПОИСКА ПРОИЗВОЛЬНЫХ ВХОЖДЕНИЙ | 2001 |
|
RU2220448C2 |
УСТРОЙСТВО СОРТИРОВКИ СИМВОЛОВ | 1992 |
|
RU2067317C1 |
ПАРАЛЛЕЛЬНАЯ СИСТЕМА ИНФОРМАЦИОННОГО ПОИСКА | 2001 |
|
RU2195015C1 |
УСТРОЙСТВО ПОИСКА ПРОИЗВОЛЬНЫХ ВХОЖДЕНИЙ | 2001 |
|
RU2202823C2 |
ИНФОРМАЦИОННО-ПОИСКОВАЯ СИСТЕМА | 2001 |
|
RU2199778C1 |
УСТРОЙСТВО ПОИСКА ВХОЖДЕНИЙ | 1998 |
|
RU2150740C1 |
ПАРАЛЛЕЛЬНАЯ СИСТЕМА ПОИСКА И ЗАМЕНЫ | 2003 |
|
RU2245579C2 |
Изобретение относится к техническим средствам автоматики и вычислительной техники и может быть использовано в устройствах обработки информации, в частности для составления словарей, справочников, создания баз данных, в информационно-поисковых системах. Технический результат заключается в расширении функциональных возможностей устройства. Технический результат достигается за счет того, что в устройстве происходит сортировка, т. е. упорядочение данных по мере их поступления, при этом выдача упорядоченного массива происходит как в возрастающем, так и в убывающем порядке, а также происходит сортировка, т. е. селекция из входного потока данных слов на основе результатов их сопоставления с образцами на больше, меныше и равно. Устройство сортировки информации содержит входной и выходной каналы, два стековых блока памяти, элемент сравнения, блок оперативной памяти, блок управления, оперативные запоминающие устройства, счетчики, регистры, компараторы, стек, коммутаторы, формирователь кодов, шинный формирователь, элементы ИЛИ - НЕ и И. Новым в устройстве является то, что выполняется функция селекции слов из потока данных, удовлетворяющих требуемым отношениям к заранее заданным образцам. 9 ил.
Устройство сортировки информации, содержащее первый и второй стековые блоки памяти, элемент сравнения, блок управления, входной и выходной каналы, блок оперативной памяти, блок коммутации и идентификации, причем с первого по пятый управляющие выходы блока управления соединены соответственно с первого по пятый управляющими входами блока оперативной памяти, информационный вход которого соединен с входным каналом, управляющий выход блока оперативной памяти соединен с четвертым управляющим входом блока управления, информационный выход блока оперативной памяти соединен с первым информационным входом элемента сравнения и вторым информационным входом блока коммутации и идентификации, первый управляющий выход последнего соединения с четырнадцатым управляющим входом блока управления, с первого по третий управляющие входы блока коммутации и идентификации соединены соответственно с десятого по двенадцатый управляющими выходами блока управления, второй информационный выход блока коммутации и идентификации соединен с выходным каналом, первый информационный выход блока коммутации и идентификации соединен с информационным входом второго стекового блока памяти, первый и второй управляющие входы последнего соединены соответственно с шестым и седьмым управляющими выходами блока управления, первый и второй управляющие выходы второго стекового блока памяти соединены соответственно с десятым и одиннадцатым управляющими входами блока управления, первый и второй управляющие входы первого стекового блока памяти соединены соответственно с восьмым и девятым управляющим выходами блока управления, первый и второй управляющие выходы первого стекового блока памяти соединены соответственно с двенадцатым и тринадцатым управляющими входами блока управления, информационный выход первого стекового блока памяти соединен с первым информационным входом блока коммутации и идентификации и вторым информационным входом элемента сравнения, с первого по третий управляющие выходы последнего соединены соответственно с пятого по седьмой управляющими входами блока управления, с первого по третий управляющие входы "ЗАГР", "ЧТПР", "ЧТОБ", а также восьмой и девятый управляющие входы "СБРОС" и "ПУСК" блока управления являются внешними входами устройства, тринадцатый и четырнадцатый управляющие выходы "ГТ" и "СИН" блока управления являются внешними выходами устройства, отличающееся тем, что в него введены шестнадцатый внешний управляющий вход "РСЕЛ" блока управления, с пятнадцатого по семнадцатый управляющие выходы которого соединены с третьего по пятый управляющими входами первого стекового блока памяти соответственно, третий управляющий выход последнего соединен с пятнадцатым управляющим входом блока управления, восемнадцатый управляющий выход и семнадцатый управляющий вход которого соединены соответственно с четвертым управляющим входом и вторым управляющим выходом блока коммутации и идентификации, третий информационный выход последнего соединен с информационным входом первого стекового блока памяти, третий и четвертый информационные входы блока коммутации и идентификации соединены соответственно с входным каналом и информационным выходом второго стекового блока памяти.
УСТРОЙСТВО СОРТИРОВКИ ИНФОРМАЦИИ | 1993 |
|
RU2034327C1 |
Устройство для сортировки чисел | 1988 |
|
SU1594521A1 |
Устройство для сортировки чисел | 1985 |
|
SU1304015A1 |
Марков А.А | |||
и др | |||
Теория алгорифмов | |||
- М.: Наука, 1984, с.318 | |||
Баранов С.И | |||
Синтез микропрограммных автоматов | |||
- Л.: Энергия, 1974, с.184 | |||
Лебедев О.Н | |||
Микросхемы памяти и их применение | |||
- М.: Радио и связь, 1990, с.184. |
Авторы
Даты
1999-04-10—Публикация
1995-08-01—Подача