SU1679554A1 - Ассоциативное запоминающее устройство - Google Patents

Ассоциативное запоминающее устройство Download PDF

Info

Publication number
SU1679554A1
SU1679554A1 SU884622825A SU4622825A SU1679554A1 SU 1679554 A1 SU1679554 A1 SU 1679554A1 SU 884622825 A SU884622825 A SU 884622825A SU 4622825 A SU4622825 A SU 4622825A SU 1679554 A1 SU1679554 A1 SU 1679554A1
Authority
SU
USSR - Soviet Union
Prior art keywords
input
output
adder
block
search
Prior art date
Application number
SU884622825A
Other languages
English (en)
Inventor
Геннадий Петрович Токмаков
Original Assignee
Предприятие П/Я А-3517
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Предприятие П/Я А-3517 filed Critical Предприятие П/Я А-3517
Priority to SU884622825A priority Critical patent/SU1679554A1/ru
Application granted granted Critical
Publication of SU1679554A1 publication Critical patent/SU1679554A1/ru

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

Изобретение относитс  к вычислительной технике и может быть использовано в ассоциативных процессорах, устройствах символьной обработки информации, например в устройствах морфологического анализа словоформ. Цель изобретени  - повышение быстродействи  устройства. Устройство содержит регистр 1, компаратор 2, блок 3 пам ти, содержащий  чейки 4 пам ти, кажда  из которых содержит поле 5 символов, поле 6 указателей и поле 7 признаков. Устройство также содержит сумматор 8 и блок 9 управлени . Предлагаемое устройство обеспечивает ассоциативный поиск символьных последовательностей произвольной длины и выдачу соответствующего кода как результат поиска. В данном устройстве резко сокращено врем  поиска информации , оно зависит только от длины искомой последовательности, но не зависит от обье- ма словар  символьных последовательностей . 4 ил.

Description

Изобретение относитс  к вычислительной технике, а именно к ассоциативным запоминающим устройствам.
Цель изобретени  - повышение быстродействи  устройства.
На фиг. 1 изображена структурна  схема ассоциативного запоминающего устройства; на фиг.2 - алгоритм формировани  структуры поискового дерева: на фиг.З - структура поискового дерева, записанна  в блоке пам ти; на фиг.4 - алгоритм ассоциативного поиска последовательностей произвольной длины.
Основу устройства составл ет регистр 1, вход которого  вл етс  информационным входом устройства, а выход подключен к первому информационному входу компаратора 2, блок 3 пам ти, кажда   чейка 4 пам ти которого содержит поле 5 символов, поле 6 указателей и поле 7 признаков, причем выход пол  5 символов подключен к
второму информационному входу компаратора 2, выход пол  6 указателей подключен к первому информационному входу сумматора 8, второй информационный вход которого  вл етс  входом Единичное приращение устройства, а к третьему информационному входу подключен выход сумматора 8, подключенный также к адресному входу блока 3 пам ти и одновременно  вл ющийс  информационным выходом устройства . Выход пол  7 признаков подключен к входу Признак поиска блока 9 управлени .
Блок 9 управлени  имеет входы Запись , Поиск, Признак конца последовательности , Наличие совпадени  и Признак поиска, причем сигналы, поступающие на указанные входы, обозначены Yi-Ys (фиг. 1). Блок 9 управлени  имеет выходы Положительный результат поиска, Ошибка и Запрос,  вл ющиес  одноО
1 о ел ел
-N
именными выходами устройства. Сигналы на этих и других выходах блока 9 обозначены Х-|-Хц (фиг.1).
Предлагаемое устройство используетс  дл  ассоциативного поиска информации, где в качестве опросных признаков используютс  символьные последовательности произвольной длины, которые организованы в виде структуры поискового дерева.
Дл  формировани  этой структуры рассматриваемое множество символьных последовательностейподвергаетс  предварительной сортировке в установленном пор дке. Например, приведенные слова отсортированы в алфавитном пор дке:
абажур
аббат
абрикос
актер
арми 
асфальт
база
базальт
базар
берег
бугор
бык
вольер
вольт
Затем это множество последовательностей разбивают на классы и подклассы следующим образом. Последовательности, начинающиес  с буквы а, объедин ют в первый класс первого уровн ; последовательности , начинающиес  с буквы б, - во второй класс первого уровн ; и последовательности , начинающиес  с буквы в - в третий класс первого уровн .
Внутри полученных классов образуют классы второго уровн , объедин ющие последовательности с одинаковыми вторыми буквами. Например, три первые последовательности первого класса с одинаковыми вторыми буквами б составл ют класс второго уровн , остальные классы второго уровн  дл  первого класса первого уровн  содержат по одной последовательности, так как вторые буквы в этих последовательност х разные (актер, арми , асфальт).
Аналогичное разбиение провод т дл  второго и третьего классов первого уровн .
Затем описанным образом производ т разбиение на классы третьего уровн  последовательности классов второго уровн  и т.д.
Сущность процесса формировани  структуры поискового дерева дл  отсортированного множества последовательностей в ходе записи заключаетс  в следующем.
Дл  последовательностей, первые символы которых одинаковы, дл  записи первого символа отводитс  по одной  чейке. Таким образом, получают множество узлов первого уровн , которые объедин ютс  в блок первого уровн . Относительно приведенного примера можно сказать, что каждый узел блока  вл етс  представителем класса первого уровн  и  вл етс  первым элементом дл  всех последовательностей соответствующего класса.
0 Далее рассматривают множество классов второго уровн  и описанным образом получают узлы второго уровн . Затем узлы, относ щиес  к одному классу первого уровн , объедин ют в блоке, следовательно,
5 каждый блок второго уровн  относитс  к какому-либо узлу первого уровн .
Продолжа  таким образом, получают множество блоков третьего, четвертого и т.д. уровней, которые между собой св заны
0 следующим образом, Каждый блок (п+1)-го уровн  относитс  к некоторому узлу (элементу ) блока п-го уровн .
Описанна  структура формируетс  в процессе записи отсортированного множе5 ства последовательностей по алгоритму, схема которого изображена на фиг.2. Этот алгоритм может быть реализован на внешней ЭВМ в виде программы, а структура, сформированна  в некоторой области ее па0 м ти, затем может 5ь;ть перезаписана в блок 3 пам ти устройства с помощью программатора .
Сначала рассмотрим процесс записи в пам ть внешней ЭВМ (на фиг,1 не показана)
5 первой псследовател ьноста первого класса, т.е. рассмотрим ситуацию, когда перед записью последовательности область пам ти, отведенна  дл  записи структуры поискового дерева, пуста.
0
Работа алгоритма начинаетс  с установки начального адреса выделенной области пам ти. После этого вводитс  первый символ первой последовательности. Затем про5 грамма провер ет, не  вл етс  ли данный символ признаком конца последовательности . Если эта проверка дает отрицательный результат, то провер етс  содержимое пол  символов  чейки пам ти, на которукууказы0 вает счетчик адреса. Если содержимое не равно нулю, то в поле символов заноситс  код введенного символа, а в поле признаков - код конца блока.
После этого счетчик адрес внешней
5 ЭВМ увеличиваетс  на единицу.
Вводом очередного символа последовательности начинаетс  следующий цикл записи . Так как поле символов  чейки по установленному адресу также пусто, данный и следующие циклы по записи второго
и остальных символов первой последовательности привод тс  аналогично.
После записи последнего элемента последовательности вводитс  символ признака конца последовательности. При этом проверка введенного символа на равенство коду признака конца последовательности дает положительный результат. Это приводит к уменьшению содержимого счетчика адрес на единицу (при зтом он будет указывать на  чейку, в поле символов которой записан последний символ последовательности ), и в поле признаков соответствующей  чейки в дополнение к признаку конца блока запишетс  признак конца последовательности .
На этом процесс записи первой последовательности завершаетс , в ходе которого элементы первой последовательности записываютс  в пор дке поступлени  с некоторого начального адреса выделенной области пам ти,
А теперь рассмотрим процесс записи второй последовательности. В нашем примере два первых символа этой последовательности совпадают с двум  первыми символами первой последовательности. Как и в предыдущем случае, сначала счетчик адрес устанавливаетс  на начальный адрес выделенной области пам ти. Затем вводитс  первый символ второй последовательности . Как уже описано, сначала введенный символ провер етс  на равенство коду конца последовательности. Если эта проверка дает отрицательный исход, провер етс  поле символов  чейки, на которую указывает счетчик. Так как при записи первой последовательности в данное поле бал записан код первого символа, данна  проверка завершаетс  отрицательно.
После этого код введенного символа сравниваетс  с содержимым данного пол  символа. В данном случае мы получаем совпадение , первые символы первой и второй последовательностей одинаковы. Затем счетчик адреса получает единичное приращение , и программа ждет поступлени  второго символа. Таким образом, если введенный символ совпадает с символом, записанным в поле символов  чейки, на которую указывает счетчик адрес, то этот символ в пам ти не записываетс , а счетчик адрес увеличиваетс  на единицу, указыва  при этом на первую  иейку блока, относ щегос  к данному символу.
Затем вводитс  второй символ второй последовательности, и описанный процесс полностью повтор етс , так как вторые символы первой и второй последовательности также совпадают. Далее вводитс  третий
символ и после его сравнени  с содержимым пол  символом соответствующей  чейки результатом будет несовпадение. В этом случае поле признаков данной  чейки провер етс  на предмет наличи  в нем признака конца блока. Если данный признак имеет место, то он стираетс , затем счетчик адреса и счетчик приращений внешней ЭВМ, содержимое которого перед этим было рав0 но нулю, увеличиваетс  на единицу. Далее поле символа  чейки, на которую указывает счетчик адреса, провер етс  на наличие нулевого кода. Если при этом нулевой код не обнаружен, то счетчики адреса и прираще5 ни  снова увеличиваютс  на единицу и снова содержимое пол  символов соответствующей  чейки провер етс  на равенство нулевому коду. Этот цикл повтор етс  до тех пор, пока в поле символов
0 некоторой  чейки не окажетс  нулевой код, С помощью описанных циклов проводитс  поиск первой свободной  чейки, в которую будет записан код третьего символа второй последовательности, и определ етс  прира5 щение адреса между сравниваемой и первой свободной  чейками пам ти.
После этого в поле указателей  чейки, с содержимым пол  символов которой сравнивалс  код третьего символа, записывзет0 с  содержимое счетчика приращени . Таким образом, устанавливаетс  св зь между двум  соседними элементами блока, после чего адрес следующего элемента блока определ етс  сложением значений счетчи5 ка адресов и пол  указателей данной  чейки пам ти. Затем счетчик лрираа ни  обнул етс . Увеличением счетчика адреса программа подготавливаетс  к приему очередного символа последовательности.
0Остальные символы записываютс  в последовательные  чейки в пор дке поступле- ни , как при записи первой последовательности.
Теперь рассмотрим запись третьей по5 следовательности, первые два символа которой также совпадают с первыми двум  символами предыдущих последовательностей . Поэтому дл  первых двух символов третьей последовательности программа ра0 ботает аналогично.
После ввода третьего символа последовательности предварительно провер етс  наличие признака конца последовательности , затем содержимое поле символов оче5 редной  чейки провер етс  на наличие нулевого кода. При отсутствии нулевого кода в  чейке пам ти содержимое ее пол  символов сравниваетс  с кодом третьего символа, результатом чего будет несовпадение . После этого содержимое пол  признаков провер етс  на предмет наличи  признака конца блока. Так как при записи третьего символа второй последовательности этот признак в первой  чейке блока третьего уровн  был обнулен, после проверки производитс  сложение текущего значени  счетчика адреса и содержимого пол  указателей данной  чейки и запись результата в счетчик адреса. Этим определ ют адрес очередной  чейки блока третьего уровн , с содержимым пол  символов которой сравниваетс  код третьего символа.
На этот раз снова имеет место несовпадение , однако в поле признаков этой  чейки содержитс  код конца блока, занесенный при записи третьего символа второй последовательности . Поэтому дальнейший процесс формировани  структуры поискового дерева полностью совпадает с процессом записи символа второй последовательности начина  с третьего.
Итак, мы рассмотрели все возможные ситуации, которые могут иметь место при формировании структуры поискового дерева . На фиг.З описана структура поискового дерева дл  множества слов, приведенного в нашем примере, сформированного по описанному алгоритму.
Полученна  структура переписываетс  к блок 3 пам ти. Ассоциативное запоминающее устройство готово к работе.
Устройство работает следующим образом .
С внешнего устройства на информационный вход устройства поступает первый элемент опросной последовательности и записываетс  в регистр 1. Сумматор 8 установлен при этом в исходное состо ние. Затем с блока 9 управлени  на входы блока
3и регистра 1 поступают сигналы чтени , а на управл ющий вход компаратора 2 - сигнал разрешени  сравнени . В результате в компараторе 2 производитс  сравнение содержимых пол  5 символов текущей  чейки
4блока 3 и регистра 1. Если совпадени  при этом не произошло, то в сумматоре 8 складываютс  значение на выходе сумматора 8, поступающее на его третий информационный вход, и значение с выхода пол  6 указателей текущей  чейки 4 блока 3, поступающее на первый информационный вход сумматора 8. Дл  этого с блока 9 на входы сумматора 8 подаютс  сигналы приема информации и код операции сложени  над соответствующими операци ми. В результате этого сложени  получают адрес следующей  чейки 4 блока первого уровн , содержимое пол  5 символов которой также сравниваетс  в компараторе 2 с содержимым регистра 1, если и в данном случае
совпадение не происходит, то описанным образом определ етс  адрес следующей  чейки 4 блока, содержимое пол  5 символов которой также сравниваетс  с содержимым регистра 1. Описанна  последовательность операций продолжаетс  до тех пор, пока содержимое пол  5 символов некоторой  чейки 4 блока первого уровн  не совпадает с содержимым регист0 ра 1.
Как только совпадение произошло, содержимое сумматора 8 получает единичное приращение. Дл  этого с блока 9 управлени  подаютс  сигналы X Vi Ха приема ин5 формации, а затем Xs - код операции сложени , При этом в сумматоре 8 складываютс  текущее содержимое с выхода сумматора 8, поступающее на/ третий вход и значение 1, поступающее на второй вход
0 сумматора 8.
В результате приращени  значени  адреса на единицу всегда получают адрес  чейки :4, в которой записан первый элемент блока следующего, в данном случае второго
5 уровн . После этого в регистр 1 заноситс  код второго символа опросной последовательности и производитс  аналогична  процедура поиска второго элемента в данном блоке второго уровн .
0 Затем производитс  поиск третьего и последующих элементов опросной последовательности до тех пор, пока в блок 9 с пол  признаков 7 соответствующей  чейки 4 блока 3 и с внешнего устройства не поступ т
5 признак конца последовательности и сигнал конца опросной последовательности. В этой ситуации сумматор 8 указывает на  чейку 4, в которой записан последний символ опросной последовательности, храни0 мой в блоке 3 и тождественной опросной последовательности. Этот адрес однозначно определ ет данную последовательность и может служить ее кодом. Поэтому блок 9 выдачей сигнала Вывод оповещает внеш5 нее устройство о том, что на выходе устройства имеетс  результат поиска опросной последовательности в виде кода-адреса. На этом ассоциативный поиск опросной последовательности завершаетс .
0 В ходе ассоциативного поиска опросной последовательности возможна така  ситуаци , когда при сравнении очередного элемента опросной последовательности ни один элемент опрашиваемого блока не сов5 падает с данным входным элементом. Эта ситуаци  вы вл етс  тогда, когда после очередного несовпадени  в поле признаков 7 соответствующей  чейки 4 обнаруживаетс  признак конца блока. При этом блок 9 вырабатывает дл  внешнего устройства -сигнал
Ошибка и работа устройства на этом завершаетс .

Claims (1)

  1. Формула изобретени  Ассоциативное запоминающее устройство , содержащее блок пам ти, регистр, компаратор и блок управлени , причем первый информационный вход компаратора подключен к выходу регистра, информационный вход которого  вл етс  информационным входом устройства, первый выход блока пам ти соединен с вторым информационным входом компаратора, выход которого подключен к входу Наличие совпадени  блока управлени , второй выход блока пам ти подключен к входу Признак поиска блока управлени , входы Запись, Поиск и Признак конца последовательности которого  вл ютс  одноименными входами устройства, первый и второй выходы блока управлени  подключены соответственно к входу разрешени  записи и входу разрешени  чтени  регистра, третий и четвертый выходы блока управлени  подключены соответственно к управл ющему входу-компаратора и к входу записи- чтени  блока пам ти, п тый, шестой и седьмой выходы блрка управлени   вл ютс  соответственно выходами Положительный результат поиска, Ошибка и Запрос устройства, отличающеес  тем, что, с целью повышени  быстродействи  устройства, в него введен сумматор,
    первый информационный вход которого подкл ючен к третьему выходу блока пам ти, второй информационный вход сумматора  вл етс  входом Приращение единицы устройства , выход сумматора подключен кадресному входу блока пам ти и третьему информационному входу сумматора и  вл етс  информационным выходом устройства, восьмой выход блока пам ти соединен с входом Код операции сумматора, дев тый , дес тый и одиннадцатый выходы блока пам ти соединены соответственно с первым, вторым и третьим входами разрешени  приема информации сумматора.
    Запись
    JL
    ойН
    оиск
    Признан каниа ггаслеЛайатем. -
    поста.
    ill/1
    Яоши/пельнш
    результат
    поиска 4Ои/иЈка4Janpoc r
    слеЛайатем. -
    5 5 7
    9
    J
    И
    8
    гт
    4L
    У5 5
    V
    Х7 S Ь
    Хю
    7/
    Фие.1
    Фаг 2
    Уст. см
    СцмВ -. Рв
    Сравнение
    и+ д CM
    Указ Адр - 38хСгг
    Нет
    нет
    Да
    / Ошибка
    /Конец jj ФиеМ
    1
    Ј
    1
    п . лп
    +/ см
    Нет
    Нет
SU884622825A 1988-12-22 1988-12-22 Ассоциативное запоминающее устройство SU1679554A1 (ru)

Priority Applications (1)

Application Number Priority Date Filing Date Title
SU884622825A SU1679554A1 (ru) 1988-12-22 1988-12-22 Ассоциативное запоминающее устройство

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
SU884622825A SU1679554A1 (ru) 1988-12-22 1988-12-22 Ассоциативное запоминающее устройство

Publications (1)

Publication Number Publication Date
SU1679554A1 true SU1679554A1 (ru) 1991-09-23

Family

ID=21416314

Family Applications (1)

Application Number Title Priority Date Filing Date
SU884622825A SU1679554A1 (ru) 1988-12-22 1988-12-22 Ассоциативное запоминающее устройство

Country Status (1)

Country Link
SU (1) SU1679554A1 (ru)

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Авторское свидетельство СССР № 1174988, кл. G 11 С 15/00, 1983. Авторское свидетельство СССР № 1587586, кл. G 11 С 15/60. 1988. *

Similar Documents

Publication Publication Date Title
US3916387A (en) Directory searching method and means
KR940003700B1 (ko) 검색방법 및 그 장치
US4053871A (en) Method and system for the iterative and simultaneous comparison of data with a group of reference data items
US5497485A (en) Method and apparatus for implementing Q-trees
US20030130981A1 (en) Enhanced multiway radix tree and related methods
US5193207A (en) Link sorted memory
US3290659A (en) Content addressable memory apparatus
US4027288A (en) Self-managing variable field storage system for handling nested data structures
US4254476A (en) Associative processor
US3389377A (en) Content addressable memories
SU1679554A1 (ru) Ассоциативное запоминающее устройство
US3508220A (en) Fast access content-organized destructive readout memory
US4167778A (en) Invalid instruction code detector
US8204887B2 (en) System and method for subsequence matching
US4327407A (en) Data driven processor
US3996569A (en) Information storage systems and input stages therefor
US11822530B2 (en) Augmentation to the succinct trie for multi-segment keys
US4488260A (en) Associative access-memory
EP0227348A2 (en) Content addressable memory circuit and method
US3271745A (en) Register search and detection system
JPH0746362B2 (ja) 文字列照合方法
Thron et al. A Low-Complexity, Low-Memory Frequent Itemset Mining Algorithm for Transactions With Sorted Items
US3500340A (en) Sequential content addressable memory
US20240028228A1 (en) Tiered memory data structures and algorithms for static searching via binary search
SU646373A1 (ru) Ассоциативное запоминающее устройство