Пристрій баз знань
Номер патенту: 109322
Опубліковано: 10.08.2015
Автори: Кургаєв Олександр Пилипович, Григор'єв Сергій Миколайович
Формула / Реферат
Пристрій баз знань, що містить головний комп'ютер, пам'ять баз знань, перший блок керування, арифметико-логічний блок, робочу пам'ять, регістр даних, регістр-лічильник вхідного масиву та перший блок вводу-виводу, перший вхід-вихід якого підключений до системної шини пристрою, його другий вхід-вихід підключений до входів-виходів регістра-лічильника вхідного масиву, а третій вхід-вихід разом із входами-виходами арифметико-логічного блока, першого блока керування та першими входами-виходами регістра даних, з'єднаного другими входами-виходами з входами-виходами робочої пам'яті, підключений до шини даних, який відрізняється тим, що в нього додатково введено пам'ять програм та даних, другий та третій блоки вводу-виводу, регістр-лічильник вихідного масиву, мультиплексор даних, регістр кореня бази знань, перший та другий регістри команд, регістр адрес даних, регістр імені структури, регістр номера слова фрейму, регістр адреси бази знань, регістр координати сліду, регістр вершини сліду, регістр ітерації, регістр істинності, регістр ознак сліду, регістр ознак породження, регістр першої інверсії, регістр другої інверсії, регістр типу фрейму, регістр ознак останнього елемента, додатковий регістр ознак сліду, додатковий регістр ознак породження, одинадцять мультиплексорів, стек адрес даних, стек регістрів, стек ознак, пам'ять сліду, суматор та два суматори по модулю два, при цьому четвертий вхід-вихід першого блока вводу-виводу підключено до входу-виходу регістра-лічильника вихідного масиву, чий вихід разом із виходом регістра-лічильника вхідного масиву через мультиплексор даних підключений до адресного входу робочої пам'яті, пам'ять програм та даних та перші входи-виходи другого та третього блоків вводу-виводу об'єднані системною шиною машини, другий вхід-вихід другого блока вводу-виводу підключений до входів-виходів головного комп'ютера, а другий вхід-вихід третього блока вводу-виводу підключений до першого входу-виходу регістра адрес даних, другий вхід-вихід якого підключено до входу-виходу стеку адрес даних, перший вихід третього блока вводу-виводу підключено до входу регістра кореня бази знань, чий вихід підключено до другого входу першого мультиплексора, вихід якого підключено до входу регістра імені структури, чий вихід з'єднано із першими входами третього мультиплексора і першого регістра команд та з другим входом другого мультиплексора, вихід якого підключено до входу регістра номера слова фрейму, чий вихід підключено до першого входу стеку регістрів та до першого входу суматора, вихід якого підключено до першого входу другого мультиплексора та до другого входу третього мультиплексора, чий вихід підключено до входу регістра адреси бази знань, з'єднаного виходом із адресним входом оперативної пам'яті бази знань, перший інформаційний вихід якої підключений до перших входів першого мультиплексора та четвертого мультиплексора, чий вихід підключено до входу регістра координати сліду, вихід якого з'єднаний із адресним входом пам'яті сліду, інформаційним входом оперативної пам'яті бази знань та із входом регістра вершини сліду, чий вихід підключено до другого входу стеку регістрів та до третього входу четвертого мультиплексора, другий вхід якого підключений до другого виходу стеку регістрів, чий перший вихід підключено до третього входу другого мультиплексора, вихід першого регістра команд підключено до входу третього блока вводу-виводу, чий другий вихід підключено до входу другого регістра команд, перший вихід якого підключено до першого входу другого блока керування, а другий вихід підключено до перших входів п'ятого, шостого, восьмого та десятого мультиплексорів, вихід ознак оперативної пам'яті бази знань підключено до входів додаткових регістрів ознак сліду, ознак породження та до других входів сьомого, восьмого, дев'ятого та десятого мультиплексорів, вихід додаткового регістра ознак сліду підключено до другого входу п'ятого мультиплексора, вихід додаткового регістра ознак породження підключено до другого входу шостого мультиплексора, треті входи п'ятого, шостого, восьмого та десятого і другі входи сьомого та дев'ятого мультиплексорів підключені до виходу стеку ознак, а виходи п'ятого, шостого, сьомого, восьмого, дев'ятого та десятого мультиплексорів з'єднані із входами регістрів ознак сліду, ознак породження, першої інверсії, другої інверсії, типу фрейму та ознак останнього елементу відповідно, перші виходи регістрів ознак сліду, ознак породження, типу фрейму та ознак останнього елемента підключено до третього входу першого регістра команд та другого входу другого блоку керування, чий вихід підключено до другого входу першого регістра команд, другі виходи регістрів ознак сліду, ознак породження, першої інверсії, другої інверсії, типу фрейму та ознак останнього елемента підключено до входу стеку ознак, перший вихід регістра першої інверсії та третій вихід регістра типу фрейму разом із виходом логічної одиниці підключено до входу ознак оперативної пам'яті баз знань, а третій вихід регістра першої інверсії підключено до першого входу першого суматора по модулю два та до першого входу одинадцятого мультиплексора, перший вихід регістра другої інверсії підключено до першого входу другого суматора по модулю два, чий другий вхід разом із другим входом першого суматора по модулю два та третім входом другого блока керування підключений до виходу регістра істинності, вхід якого з'єднаний із виходом одинадцятого мультиплексора, чиї другий і третій входи підключені до виходів першого та другого суматора по модулю два відповідно, входи-виходи стеку ознак з'єднані із входами-виходами пам'яті сліду та регістра ітерації, чий вихід підключений до другого входу суматора та до четвертого входу другого блока керування.
Текст
Реферат: Пристрій баз знань належить до обчислювальної техніки та може бути використаний при побудові систем, заснованих на знаннях (knowledge-based systems). Пристрій баз знань містить: головний комп'ютер, пам'ять баз знань, пам'ять програм та даних, три блоки вводу-виводу, термінальний процесор у складі робочої пам'яті, мультиплексора даних, регістра-лічильника вхідного масиву, регістра-лічильника вихідного масиву, регістра даних, арифметико-логічного блока та першого блока управління, та блок обробки знань у складі регістра кореня бази знань, першого та другого регістрів команд, регістра адрес даних, регістра імені структури, регістра номера слова фрейму, регістра адреси бази знань, регістра координати сліду, регістра вершини сліду, регістра ітерації, регістра істинності, регістра ознак сліду, регістра ознак породження, регістра першої інверсії, регістра другої інверсії, регістра типу фрейму, регістра ознак останнього елемента, додаткового регістра ознак сліду, додаткового регістра ознак породження, одинадцятьох мультиплексорів, трьох стеків адрес даних, регістрів та ознак, пам'яті сліду, суматора та двох суматорів по модулю два. Технічним результатом є: 1) знання зберігаються у вигляді множини визначень термінів та відокремлено від алгоритму їхньої обробки; 2) алгоритм роботи пристрою апаратно "зашитий" у блок управління; 3) знання, що містяться у базі знань зберігаються у вигляді ієрархічної структури; 4) зберігається структура логічного виводу, яка в подальшому може бути використана для пояснення ходу логічного виводу або породження нової структури даних; 5) надається можливість ефективно зберігати та інтерпретувати ітераційні та рекурсивні структури даних, які містять визначення з використанням відношень альтернативи, послідовності та ітерації. UA 109322 C2 (12) UA 109322 C2 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 Даний пристрій належить до області обчислювальної техніки та може бути використаний при побудові систем, заснованих на знаннях (knowledge-based systems). Відомий пристрій [SU1455345, 30.01.1989, Устройство для реализации нормальных алгорифмов Маркова // Довгань В.М, Кореневский Н.А., Бойко Ю.Л., Плотников В.В.], який призначено для обробки інформаційних потоків та масивів даних текстового та числового характерів згідно із заданими нормальними алгорифмами та складається із: блока організації підставлення, комутатора, блока пам'яті слова, блока регістрів слова, дешифратора межі слова, блока пошуку входження, блока керування. Більш швидкодіючим є пристрій [SU1635192, 15.03.91, Устройство для реализации подстановок слов // Довгаль В.М., Корольков О.Ф., Керекеша В.В., Старков Ф.А., Шевелев С.С], який дозволяє оброблювати дані символьного та числового типів за допомогою нормальних алгорифмів, які складаються виключно із формул підставлення з двобуквеними лівими та правими частинами, при цьому всі ліві частини (антецеденти) формул паралельно порівнюються із двобуквеним початковим словом (ситуацією) за допомогою асоціативного вузла порівняння. Відомий пристрій складається із: блока пам'яті слів, блока пам'яті входжень, блока пам'яті підстановок, вузла зсуву, комутатора, першого вузла контролю оброблюваного слова, вузла порівняння, блока організації підстановки елементів логіки, лічильника та блока керування. Більш досконалим щодо функціональних можливостей є пристрій [RU2039375, 22.06.1992, Устройство для реализации продукций // Довгаль В.М, Старков Ф.А., Керекеша В.В., Шевелев С.С, Леонов Е.И.], який складається із: блока пам'яті слів, вузла порівняння, блока керування, регістра символу ситуації, регістра маркера ситуації, блока тегів, блока ідентифікації активної продукції та регістра зсуву показника зчитування. Блоки сполучені між собою за допомогою окремих шин та працюють під управлінням блока керування. Серед головних особливостей відомого пристрою (RU2039375, 22.06.1992) слід відмітити те, що він допускає обробку продукцій нефіксованої довжини. Головним недоліком даного пристрою є те, що продукції у блоці пам'яті слів зберігаються у вигляді символьного масиву нефіксованої довжини. Це призводить до неефективного використання пам'яті слів та до необхідності посимвольної перевірки в процесі співставлення антецедентів. Найближчим до запропонованого є пристрій [US Patent, number 5218669 June 8, 1993, VLSI hardware implemented rule-based expert system apparatus and method (апаратно реалізована система обробки продукційних правил) // Hideaki Kobayashi, Masahiro Shindo], вибраний за прототип. Пристрій являє собою співпроцесор та містить: блок управління, блок вводу-виводу, робочу пам'ять, арифметико-логічний блок та оперативну пам'ять. Блок вводу-виводу призначений для забезпечення обміну даними та командами між системою обробки продукційних правил та головним комп'ютером. Процесор продукційних правил у складі блока управління, арифметико-логічного блока та робочої пам'яті призначений для ефективної обробки продукційних правил та реалізований у формі інтегральної мікросхеми. Арифметико-логічний блок призначений для виконання команд: порівняння над даними (=, , , =, NOT, AND, OR); переміщення даних; логічного зсуву та переходу. Блок управління керує роботою всіх модулів процесора продукційних правил, а також процесом обміну даними між пам'яттю правил та блоком вводу-виводу. Оперативна пам'ять містить набір команд фіксованої довжини. Кожна команда містить такі поля: "тип команди", "прапор" (умова (соndition)/дія (action)) та два операнди. Якщо поточна команда у полі "прапор" містить умову, то відбувається порівняння операндів у залежності від коду поля "тип команди". Якщо команда характеризується як дія, то над поточними операндами виконується дія, зазначена у полі "тип команди". Серед недоліків прототипу можна вказати наступні. 1. Необхідність виконання великої кількості обчислень у процесі пошуку активної продукції при співставленні антецедентів. Це пов'язано із тим, що між продукційними правилами, які містяться в оперативній пам'яті у вигляді команд спеціального формату, відсутній ієрархічний зв'язок. 2. Відсутність механізму пояснення логічного виводу. 3. Відсутність ефективного представлення у пам'яті ітераційних та рекурсивних структур. Спільними ознаками прототипу та пропонованої моделі є головний комп'ютер, пам'ять баз знань, перший блок управління, арифметико-логічний блок, робоча пам'ять, регістр даних, регістр-лічильник вхідного масиву та перший блок вводу-виводу, перший вхід-вихід якого підключений до системної шини пристрою, його другий вхід-вихід підключений до входів-виходів регістра-лічильника вхідного масиву, а третій вхід-вихід разом із входами-виходами арифметико-логічного блока, першого блока управління та першими входами-виходами 1 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 60 регістра даних, з'єднаного другими входами-виходами з входами-виходами робочої пам'яті, підключений до шини даних. В основу винаходу поставлена задача побудови спеціалізованого пристрою баз знань. Всяка задача, поставлена у вигляді імені функції та значення її аргументу, вирішується виводом рішення у процесі інтерпретації бази знань. База знань складається із структури взаємозв'язаних визначень термінів, кожне з яких представляється у формі одного з п'яти фреймів: альтернативи, послідовності, ітерації, текстової константи або терміналу. Усякий фрейм - послідовність слів фіксованої довжини (наприклад, трьохбайтових), серед яких розрізняється перше слово, а в кожному зі слів перший байт і наступні. Фрейми текстової константи й термінала - однослівні, ітерації двослівні, альтернативи й послідовності - багатослівні. Фрейми визначень всіх термінів всякої бази знань розміщено у пам'яті бази знань у вигляді ієрархічної структури, що усуває проблему множини конфліктних правил. Такий принцип організації бази знань дозволяє ефективно зберігати та інтерпретувати ітераційні й рекурсивні структури визначень. Ще однією важливою відмінністю системи обробки знань є те, що структура процесу інтерпретації, процесу виводу рішення зберігається спеціальними засобами ведення сліду. З метою розширення функціональних можливостей інтерпретації рекурсивних, ітераційних та вкладених структур і формування структури виводу рішення задачі у пристрій, що містить головний комп'ютер, пам'ять баз знань, перший блок управління, арифметико-логічний блок, робочу пам'ять, регістр даних, регістр-лічильник вхідного масиву та перший блок вводу-виводу, перший вхід-вихід якого підключений до системної шини пристрою, його другий вхід-вихід підключений до входів-виходів регістра-лічильника вхідного масиву, а третій вхід-вихід разом із входами-виходами арифметико-логічного блока, першого блока управління та першими входами-виходами регістра даних, з'єднаного другими входами-виходами з входами-виходами робочої пам'яті, підключений до шини даних, введено пам'ять програм та даних, другий та третій блоки вводу-виводу, регістр-лічильник вихідного масиву, мультиплексор даних, регістр кореня бази знань, перший та другий регістри команд, регістр адрес даних, регістр імені структури, регістр номера слова фрейму, регістр адреси бази знань, регістр координати сліду, регістрвершини сліду, регістр ітерації, регістр істинності, регістр ознак сліду, регістр ознак породження, регістр першої інверсії, регістр другої інверсії, регістр типу фрейму, регістр ознак останнього елемента, додатковий регістр ознак сліду, додатковий регістр ознак породження, одинадцять мультиплексорів, стек адрес даних, стек регістрів, стек ознак, пам'ять сліду, суматор та два суматори по модулю два, при цьому четвертий вхід-вихід першого блока вводувиводу підключено до входу-виходу регістра-лічильника вихідного масиву, чий вихід разом із виходом регістра-лічильника вхідного масиву через мультиплексор даних підключений до адресного входу робочої пам'яті, пам'ять програм та даних та перші входи-виходи другого та третього блоків вводу-виводу об'єднані системною шиною машини, другий вхід-вихід другого блока вводу-виводу підключений до входів-виходів головного комп'ютера, а другий вхід-вихід третього блока вводу-виводу підключений до першого входу-виходу регістра адрес даних, другий вхід-вихід якого підключено до входу-виходу стеку адрес даних, перший вихід третього блока вводу-виводу підключено до входу регістра кореня бази знань, чий вихід підключено до другого входу першого мультиплексора, вихід якого підключено до входу регістра імені структури, чий вихід з'єднано із першими входами третього мультиплексора і першого регістра команд та з другим входом другого мультиплексора, вихід якого підключено до входу регістра номера слова фрейму, чий вихід підключено до першого входу стеку регістрів та до першого входу суматора, вихід якого підключено до першого входу другого мультиплексора та до другого входу третього мультиплексора, чий вихід підключено до входу регістра адреси бази знань, з'єднаного виходом із адресним входом оперативної пам'яті бази знань, перший інформаційний вихід якої підключений до перших входів першого мультиплексора та четвертого мультиплексора, чий вихід підключено до входу регістра координати сліду, вихід якого з'єднаний із адресним входом пам'яті сліду, інформаційним входом оперативної пам'яті бази знань та із входом регістра вершини сліду, чий вихід підключено до другого входу стеку регістрів та до третього входу четвертого мультиплексора, другий вхід якого підключений до другого виходу стеку регістрів, чий перший вихід підключено до третього входу другого мультиплексора, вихід першого регістра команд підключено до входу третього блока вводувиводу, чий другий вихід підключено до входу другого регістра команд, перший вихід якого підключено до першого входу другого блока управління, а другий вихід підключено до перших входів п'ятого, шостого, восьмого та десятого мультиплексорів, вихід ознак оперативної пам'яті бази знань підключено до входів додаткових регістрів ознак сліду, ознак породження та до других входів сьомого, восьмого, дев'ятого та десятого мультиплексорів, вихід додаткового 2 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 60 регістра ознак сліду підключено до другого входу п'ятого мультиплексора, вихід додаткового регістра ознак породження підключено до другого входу шостого мультиплексора, треті входи п'ятого, шостого, восьмого та десятого і другі входи сьомого та дев'ятого мультиплексорів підключені до виходу стеку ознак, а виходи п'ятого, шостого, сьомого, восьмого, дев'ятого та десятого мультиплексорів з'єднані із входами регістрів ознак сліду, ознак породження, першої інверсії, другої інверсії, типу фрейму та ознак останнього елемента відповідно, перші виходи регістрів ознак сліду, ознак породження, типу фрейму та ознак останнього елемента підключено до третього входу першого регістра команд та другого входу другого блока управління, чий вихід підключено до другого входу першого регістра команд, другі виходи регістрів ознак сліду, ознак породження, першої інверсії, другої інверсії, типу фрейму та ознак останнього елемента підключено до входу стеку ознак, перший вихід регістра першої інверсії та третій вихід регістра типу фрейма разом із виходом логічної одиниці підключено до входу ознак оперативної пам'яті баз знань, а третій вихід регістра першої інверсії підключено до першого входу першого суматора по модулю два та до першого входу одинадцятого мультиплексора, перший вихід регістра другої інверсії підключено до першого входу другого суматора по модулю два, чий другий вхід разом із другим входом першого суматора по модулю два та третім входом другого блока управління підключений до виходу регістра істинності, вхід якого з'єднаний із виходом одинадцятого мультиплексора, чиї другий і третій входи підключені до виходів першого та другого суматора по модулю два відповідно, входи-виходи стеку ознак з'єднані із входамивиходами пам'яті сліду та регістра ітерації, чий вихід підключений до другого входу суматора та до четвертого входу другого блока управління. Відмітними ознаками запропонованого пристрою баз знань від відомого прототипу є: 1) знання зберігаються у вигляді множини визначень термінів та відокремлено від алгоритму їх обробки; 2) алгоритм роботи пристрою апаратно "зашитий" у автомат управління по типу Мура; 3) знання, що містяться у базі знань, зберігаються у вигляді ієрархічної структури, яка значно підвищує ефективність пошуку рішення за рахунок логічного виводу тільки у необхідній частині бази знань; 4) зберігається структура логічного виводу, яка в подальшому може бути використана для пояснення ходу логічного виводу або породження нової структури даних; 5) надається можливість ефективно зберігати та інтерпретувати ітераційні та рекурсивні структури даних, які містять визначення з використанням відношень кон'юнкції, диз'юнкції та інверсії. На фіг. 1 наведено структуру пристрою баз знань, на фіг. 2 наведено структуру блока управління, на фіг. 3 наведено структуру багатовхідного регістра, на фіг. 4 наведено структуру реверсивного регістра, на фіг. 5 наведено структуру запису пам'яті сліду та стеку регістрів, на фіг. 6 наведено структуру слова бази знань, на фіг. 7 наведено структуру байта ознак слова фрейму, на фіг. 8 наведено структуру шаблонів фреймів; на фіг. 9 наведено граф алгоритму роботи пристрою. У табл. наведено опис регістрів пристрою. Пристрій баз знань (фіг. 1) складається із: головного комп'ютера 1, модуля розширення функціональності 2, блока обробки знань 3, другого блока вводу-виводу 4, термінального процесора 5, пам'яті програм та даних 6, регістра даних 7, арифметико-логічного блока 8, робочої пам'яті 9, мультиплексора МХД 10 даних, регістра-лічильника RCm 11 вхідного масиву, регістра-лічильника RCn 12 вихідного масиву, першого блока вводу-виводу 13, першого блока управління 14, третього блока вводу-виводу 15, регістра RКБЗ 16 кореня бази знань, першого регістра RКОМ1 17 команд, другого регістра RКОМ2 18 команд, регістра RАД 19 адрес даних, стеку 20 адрес даних, першого мультиплексора MX1 21, регістра R01 22 імені структури, другого мультиплексора МХ2 23, регістра R02 24 номеру слова фрейму, суматора Σ 25, третього мультиплексора МХ3 26, регістра R03 27 адреси бази знань, пам'яті бази знань 28, другого блока управління 29, стеку регістрів 30, четвертого мультиплексора МХ 4 31, регістра RC04 32 координати сліду, регістра R05 33 вершини сліду, регістра ітерації RC06 34, пам'яті сліду 35, додаткового регістра R07* 36 ознак сліду, додаткового регістра R08* 37 ознаки породження, регістра R13 38 істинності, п'ятого мультиплексора МХ 5 39, шостого мультиплексора МХ6 40, сьомого мультиплексора МХ7 41, восьмого мультиплексора МХ8 42, дев'ятого мультиплексора МХ9 43, десятого мультиплексора МХ10 44, одинадцятого мультиплексора МХ11 45, регістра R07 46 ознак сліду, регістра R08 47 ознак породження, першого регістра R09 48 інверсії, другого регістра R10 49 інверсії, регістра R11 50 типу фрейму, регістра R12 51 ознаки останнього елемента, першого суматора 52 по модулю два, другого суматора 53 по модулю два, стеку ознак 54. Головний комп'ютер 1 призначений для постановки завдання, зчитування результатів роботи модуля розширення функціональності 2 та конфігурації роботи модуля 2. Блок обробки баз знань 3 призначений для швидкої апаратної обробки завдання, що надійшло від головного комп'ютера 1. Термінальний процесор 5 призначений для виконання термінальних програм на 3 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 60 замовлення блока обробки знань 3. Блок вводу-виводу 15 призначений для організації інтерфейсу між головним комп'ютером 1 та модулем 3. Пам'ять 6 програм та даних та перші входи-виходи першого 13, другого 4 та третього 15 блоків вводу-виводу об'єднані системною шиною пристрою. Другий вхід-вихід першого блока 13 вводу-виводу підключений до входів-виходів регістра-лічильника RCm 11 вхідного масиву, його третій вхід-вихід разом із входами-виходами арифметико-логічного блока 8, першого блока управління 13 та першими входами-виходами регістра даних RД 7, з'єднаного другими входамивиходами з входами-виходами робочої пам'яті 9, підключений до шини даних. Четвертий вхідвихід першого блока вводу-виводу підключений до входів-виходів регістра-лічильника RCn 12 вихідного масиву, чий вихід разом із виходом регістра-лічильника RCm 11 вхідного масиву підключений через мультиплексор МХД 10 даних до адресного входу робочої пам'яті 9. Другий вхід-вихід другого блока вводу-виводу 4 підключений до головного комп'ютера 1, а другий вхідвихід третього блока вводу-виводу 15 підключений до першого входу-виходу регістра RАД 19 адрес даних, другий вхід-вихід якого підключено до входу-виходу стеку 20 адрес даних. Перший вихід третього блока вводу-виводу 15 підключено до входу регістра RКБЗ 16 кореня бази знань, чий вихід підключено до другого входу першого мультиплексора МХ 1 21, вихід якого підключено до входу регістра R01 22 імені структури, чий вихід з'єднано із першими входами третього мультиплексора МХ3 26 і першого регістра RКОМ1 17 команд та з другим входом другого мультиплексора МХ2 23. Вихід другого мультиплексора МХ2 23 підключено до входу регістра R02 24 номера слова фрейму, чий вихід підключено до першого входу стеку 30 регістрів та до першого входу суматора 25, вихід якого підключено до першого входу другого мультиплексора МХ2 23 та до другого входу третього мультиплексора МХ 3 26. Вихід третього мультиплексора МХ3 26 підключено до входу регістра R03 27 адреси бази знань, з'єднаного виходом із адресним входом оперативної пам'яті 28 бази знань, перший інформаційний вихід якої підключений до перших входів першого МХ 1 21 та четвертого МХ4 31 мультиплексорів. Вихід четвертого мультиплексора МХ4 31 підключено до входу регістра RC04 32 координати сліду, вихід якого з'єднаний із адресним входом пам'яті 35 сліду, інформаційним входом оперативної пам'яті 28 бази знань та із входом регістра R05 33 вершини сліду, чий вихід підключено до другого входу стеку 30 регістрів та до третього входу четвертого мультиплексора МХ4 31, другий вхід якого підключений до другого виходу стеку 30 регістрів, чий перший вихід підключено до третього входу другого мультиплексора МХ 2 23. Вихід першого регістра RКОМ1 17 команд підключено до входу третього блока вводу-виводу 15, чий другий вихід підключено до входу другого регістра RКОМ2 18 команд, перший вихід якого підключено до першого входу другого блока управління 29, а другий вихід підключено до перших входів п'ятого МХ 5 39, шостого МХ6 40, восьмого МХ8 42 та десятого МХ10 44 мультиплексорів. Вихід ознак оперативної пам'яті 28 бази знань підключено до входів додаткових регістрів ознак сліду R07* 36, ознак породження R08* 37 та до других входів сьомого МХ7 41, восьмого МХ8 42, дев'ятого МХ9 43 та десятого МХ10 44 мультиплексорів. Вихід додаткового регістра R07* 36 ознак сліду підключено до другого входу п'ятого мультиплексора МХ 5 39, вихід додаткового регістра R08* 37 ознак породження підключено до другого входу шостого мультиплексора МХ 6 40, треті входи п'ятого МХ5 39, шостого МХ6 40, восьмого МХ8 42 та десятого МХ10 44 і другі входи сьомого МХ7 41 та дев'ятого МХ9 43 мультиплексорів підключені до виходу стеку 54 ознак. Виходи п'ятого МХ5 39, шостого МХ6 40, сьомого МХ7 41, восьмого МХ8 42, дев'ятого МХ9 43 та десятого МХ10 44 мультиплексорів з'єднані із входами регістрів ознак сліду R07 46, ознак породження R08 47, першої інверсії R09 48, другої інверсії R10 49, типу фрейму R11 50 та ознак останнього елемента R12 51 відповідно. Перші виходи регістрів ознак сліду R07 46, ознак породження R08 47, типу фрейму R11 50 та ознак останнього елемента R12 51 підключено до третього входу першого регістра команд RКОМ1 17 та другого входу другого блока управління 19, чий вихід підключено до другого входу першого регістра команд RКОМ1 17. Другі виходи регістрів ознак сліду R07 46, ознак породження R08 47, першої інверсії R09 48, другої інверсії R10 49, типу фрейму R11 50 та ознак останнього елемента R12 51 підключено до входу стеку 54 ознак, перший вихід регістра R09 48 першої інверсії та третій вихід регістра R11 50 типу фрейму разом із виходом логічної одиниці підключено до входу ознак оперативної пам'яті 28 баз знань. Третій вихід регістра R09 48 першої інверсії підключено до першого входу першого суматора 52 по модулю два та до першого входу одинадцятого мультиплексора МХ11 45, перший вихід регістра R10 49 другої інверсії підключено до першого входу другого суматора 53 по модулю два, чий другий вхід разом із другим входом першого суматора 52 по модулю два та третім входом другого блока управління 29 підключений до виходу регістра R13 38 істинності, вхід якого з'єднаний із виходом одинадцятого мультиплексора МХ11 45, чиї другий і третій входи підключені до виходів першого 52 та другого 53 суматора по модулю два відповідно. Входи-виходи стеку 54 ознак з'єднані із входами 4 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 виходами пам'яті 35 сліду та регістра RC06 34 ітерації, чий вихід підключений до другого входу суматора 25 та до четвертого входу другого блока управління 29. Блок вводу-виводу 15 виконує обмін даними та командами між термінальним процесором 5 та блоком обробки знань 3. За допомогою блока вводу-виводу 15 відбувається початкова ініціалізація вмісту регістрів блока 3, ініціалізація та модифікація даних в оперативній пам'ятях 20, 28, 30, 35 та 54. Блок 29 управління (фіг. 2) складається із трьох модулів: логіка переходів 55, пам'ять станів 56 та вихідна логіка 57. Блок 29 управління за результатами аналізу кодів на своїх входах формує на його виходах команди управління блоком вводу-виводу 15 та операційною частиною пристрою 3. Логіка переходів 55 визначає наступний стан блока управління 29, що є функцією від поточного стану пам'яті станів 56 та кодів на входах блока управління 29. Пам'ять станів 56 складається із набору елементів пам'яті та призначена для збереження поточного стану блока 29 управління. Команди на виходах блока управління 29 визначаються вихідною логікою 57 та є функцією від поточного стану пам'яті станів 56. Структуру багатовхідного регістра (RКОМ1, RКОМ2, RД, RАД) зображено на фіг. 3. Багатовхідний регістр складається із мультиплексора MXi та регістра Ri. На вхід регістра Ri надходять дані з виходу MXi, що вибираються згідно з командами на входах управління MXi. Дані з виходу мультиплексора MXi записуються у регістр Ri. Структуру реверсивного регістра (RC04, RC08) зображено на рис. 4. Він складається із мультиплексора MXi, арифметико-логічного пристрою та регістра Ri. На вхід мультиплексора MXi надходять n вхідних даних, дані від арифметико-логічного пристрою та команди. Згідно з вхідними командами виконується комутація відповідного входу мультиплексора MXi із його виходом. Дані з виходу мультиплексора записуються у регістр Ri. База знань (БЗ) представляється у формі інформаційної структури множини визначень, вузлами якої є поняття (термінальні - константи чи іменовані процедури, або не термінальні), а дугами - відношення альтернативи, послідовності чи ітерації, що зв'язують поняття (вузли) визначальної частини всякого визначення. Пам'ять бази знань 28 зберігає знання у машинній формі, що складається із множини фреймів, кожний із яких має структуру масиву слів фіксованої довжини (наприклад, 3 байти). Довжина фрейму залежить від типу відношення, яке він описує, та від числа понять у визначальній частині і може складати від одного до деякого скінченного числа слів. Пам'ять сліду 35 зберігає структуру виводу рішення задачі, яка може бути використана для пояснення процесу рішення задачі або при породженні наслідку. Пам'ять стеку 20 адрес даних, стеку 30 регістрів та стеку 54 ознак інтерпретації тимчасово зберігає проміжні дані процесу виводу рішення. Якщо на деякому етапі процесу інтерпретації вибраний шлях виявився хибним, то відбувається відновлення необхідного вмісту регістрів зчитуванням даних із відповідних стеків. На фіг. 5 наведено структуру запису стеку 20 адрес даних, стеку 30 регістрів та пам'яті сліду 35. Стек ознак 54 містить слова із 8-ми біт. На фіг. 6 наведено структуру слів бази знань, із яких складаються фрейми. Кожне слово бази знань містить 24-біти: байт ознак інтерпретації та інформаційне поле. Інформаційне поле залежно від типу поточного фрейму містить: фізичну адресу, що посилається на інший фрейм; фізичну адресу, що посилається на текстову константу; номер (ім'я) термінальної програми. На фіг. 7 наведено структуру байта ознак. Дане поле містить інформацію про тип фрейму та ознаки його інтерпретації. Кожен фрейм (фіг. 8) містить голову та елементи, пов'язані одним відношенням: альтернативи, послідовності чи ітерації. Голова та будь-який з елементів займають декілька послідовно розташованих комірок пам'яті, елементи одного фрейму також розташовуються послідовно, причому голова фрейму розташована першою в даній послідовності. Розмір фреймів (число елементів в одному фреймі) альтернативи чи послідовності може бути довільним, але скінченним. Фрейм ітерації складається із двох компонент: голови та посилання на ітерований елемент, яким є фрейм деякого довільного поняття, за виключенням визначеного у формі ітерації. Цим забезпечується зв'язність різних фреймів у єдину багаторазово вкладену структуру, що може містити рекурсивні конструкції. Складність опису (потужність множини понять, структура їхнього взаємозв'язку) може бути довільною та обмежується ресурсами конкретної реалізації (об'ємом оперативної пам'яті, об'ємом зовнішньої пам'яті, розрядністю вузлів та шин). Ті поняття бази знань, які не визначені через поняття бази знань, є термінальними та містять посилання на константи або термінальні програми, що у подальшому виконуються 5 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 60 термінальним процесором 5. Описана таким чином інформаційна структура прикладної області є базою знань прикладної області. На фіг. 9 у формі орієнтованого циклічного графу наведено алгоритм роботи пристрою. Пристрій працює наступним чином, безперервно виконуючи алгоритм фіг. 9 від початкової команди "старт" аж до зупинки тактового сигналу. В опису алгоритму використано наступні позначення: БОЗ - блок обробки знань 3, ТП - термінальний процесор 5, БЗ - база знань 28, ПС - пам'ять сліду 35, СР - стек регістрів 30, САД - стек адрес даних 20, CO - стек ознак 54, INP пам'ять вхідного масиву, OUT - пам'ять вихідного масиву, ПП - пам'ять програм 6. 1. Початкова установка: - завантаження БЗ; - завантаження бібліотек термінальних програм в ПП; - завантаження даних (аргументу обчислювальної функції) в масиви INP і OUT пам'яті ПП; - установка регістрів у початковий стан, зокрема регістр R11:=00; - перехід в стан 2. 2. Прийом завдання процесором БОЗ: - якщо отримано в RКБЗ 16 завдання (ім'я функції), то: - прийом від ТП в RАД 19 адрес даних та через RКОМ2 18 - ознак інтерпретації (режиму інтерпретації в R07, R08, значення інверсії 2 в R10 та в R12:=X); - R01:= адреса кореня БЗ (тобто код регістра RКБЗ 16 через мультиплексор МХ1 21 присвоїти регістру R01 22); - запис значення регістра RАД 19 в стек 20; - запис ознак інтерпретації (R11 - тип фрейму=00, режим інтерпретації -R07=0/1, R08=0/1, R09 інверсії 1=X, R10 - інверсії 2=0/1, R12=X) в стек 54; - перехід в стан 3; - якщо через RКОМ2 18 отримано значення істинності, то зберегти його в R13 38 та перейти в стан 21; - інакше, очікування завдання поверненням до пункту 2. 3. Аналіз завдання і режиму його інтерпретації (R11+R07+R08): - R02:= [R01] (вміст R01 записати в R02); - R03:= [R01] (вміст R01 записати в R03); - читання із БЗ 28 першого слова фрейму: R07*:= [поле ОС - ознака сліду], R11:= [поле "тип фрейму"], R09:= [поле 1]; - блок 29 управління аналізує R11, R07 та R08: якщо R11=(00)&(R07=0/1)&(R08=0/1), то перехід до п. 4 (термінали), якщо (R11=01/10)&R07=0&R08=0, то перехід до п. 5 (розпізнавання альтернативи), якщо R11=01&R07=0&R08=1, то перехід до п. 6 (породження альтернативи), якщо R11=01&R07=1&R08=0, то перехід до п. 8 (розпізнавання альтернативи із слідом), якщо R11=01&R07=1&R08=1, то перехід до п. 9 (породження альтернативи по сліду), якщо R11=10&R07=0&R08=1, то перехід до п. 10 (породження послідовності), якщо R11=10&R07=1&R08=1, то перехід до п. 12 (породження послідовності по сліду), якщо R11=10&R07=1&R08=0, то перехід до п. 13 (розпізнавання послідовності із слідом), якщо R11=11&R07=0&R08=0, то перехід до п. 15 (розпізнавання ітерації), якщо R11=11&R07=0&R08=1, то перехід до п. 17 (породження ітерації), якщо R11=11&R07=1&R08=0, то перехід до п. 18 (розпізнавання ітерації із слідом), якщо R11=11&R07=1&R08=1, то перехід до п. 20 (породження ітерації по сліду). 4. Передача термінального завдання процесору ТП: - R01:= [перший та другий байти першого слова фрейму, зчитані із БЗ 28]; - запис RАД 19 в стек 20 та ознак інтерпретації (тип фрейму - термінал з регістра R11; поточний режим інтерпретації - R07, R 08 інверсія завдання із R09-1) в стек 54; - передача процесору ТП значень RАД 19 та значень R01 і ознак інтерпретації через RКОМ1 17; - перехід в стан 2. 5. Розпізнавання альтернативи: - R02:=[R02] + 1; - R03:= [R02]; - читання із БЗ 28 другого слова фрейму. R10:= [поле 2], R12:= [поле ОЕ], R07*:= [значення (0/1) ознаки ОС] або R08*:= [значення (0/1) ознаки породження ОП], R01:= [перший та другий байти другого слова фрейму]; - запис значень регістра RАД 19 в стек 20, [R02] - в стек 30. Запис ознак інтерпретації (R11 тип фрейму альтернативи та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з другого слова фрейму та поточний режим інтерпретації - R07=0, R08=0) в стек 54; 6 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 - R07:= R07*; R08:= R08*; - перехід в стан 3. 6. Породження альтернативи: - R07:= R07*; - аналіз R07: якщо 0, то перехід в стан 21, інакше - в 7. 7. Встати на слід: - RC04:= [перший та другий байти першого слова фрейму, зчитаного з БЗ 28]; - RC06:= [слово з пам'яті ПС 35, зчитане за адресою RC04]; - R03:=[R02] + [RC06]; - читання з БЗ 28 за адресою [R03] вибраного слова фрейму. R10:= [поле 2], R12:= [поле ОЕ], R01:= [перший та другий байти вибраного слова фрейму]; - запис RАД 19 в стек 20. Запис ознак інтерпретації (R11 - тип фрейму альтернативи та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з вибраного слова фрейму та поточний режим інтерпретації - R07=0/1, R08=1) в стек 54; - перехід в стан 3. 8. Розпізнавання альтернативи із слідом: - RC06:= 1; -RC04:=[R05] + 1; - запис [RC06] в ПС 35 за адресою [RC04]; -R03:=[R02] + [RC06]; - читання з БЗ 28 за адресою [R03] другого слова фрейму. R10:= [поле 2], R12:= [поле ОЕ], R01:= [перший та другий байти вибраного слова фрейму]; - запис RАД 19 в стек 20, [R05], [R02] - в стек 30. Запис ознак інтерпретації (R11 - тип фрейму альтернативи та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з вибраного слова фрейму та поточний режим інтерпретації - R07=1, R08=0) в стек 54; - R05:= [RC04]; - перехід в стан 3. 9. Породження альтернативи по сліду: - RC04:= [RC04] + 1; - RC06:= [ПС 35] за адресою [RC04]; -R03:=[R02] + [RC06]; - читання з БЗ 28 за адресою [R03] вибраного слова фрейму. R10:= [поле 2], R12:= [поле ОЕ], R01:= [перший та другий байти вибраного слова фрейму]; - запис RАД 19 в стек 20. Запис ознак інтерпретації (R11 - тип фрейму альтернативи та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з обраного слова фрейму та поточний режим інтерпретації - R07=1, R08=1) в стек 54; - перехід в стан 3. 10. Породження послідовності: - R07:= R07*; - аналіз R07 (біту "ознака сліду", взятого з першого слова фрейму): якщо 1, то перехід в стан 11, інакше - в стан 12. 11. Встати на слід: - RC04:= [перший та другий байти першого слова фрейму, зчитаного з БЗ 28]; - перехід в стан 12. 12. Породження послідовності по сліду або без сліду: - R02:= [R02] + 1; - R03:= [R02]; - читання з БЗ 28 другого слова фрейму. R10:= [поле 2], R12:= [поле ОЕ], R01:= [перший та другий байти другого слова фрейму]; - запис значення RАД 19 в стек 20, [R02] в стек 30. Запис ознак інтерпретації (R11 - тип фрейму послідовності та R09-l з першого слова фрейму; R10-2, R12 - ОЕ з другого слова фрейму та поточний режим інтерпретації - R07=0/1, R08=1) в стек 54; - перехід в стан 3. 13. Розпізнавання послідовності із слідом: - RC06:= 1; - RC04:= [R05]; - R03:=[R02] + [RC06]; = - читання з БЗ 28 другого слова фрейму. R10: [поле 2], R12:= [поле ОЕ], R01:= [перший та другий байти другого слова фрейму]; 7 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 - запис RАД 19 в стек 20, [R05], [R02] - в стек 30, [RC06] - в стек 54. Запис ознак інтерпретації (R11 - тип фрейму послідовності та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з другого слова фрейму та поточний режим інтерпретації - R07=0/1, R08=1) в стек 54; - перехід в стан 3. 14. Завершити породження ітерації по сліду: - RC06:=[RС06] - 1; -R03:=[R02] + 1; - читання з БЗ 28 другого слова фрейму. R10:= [поле 2], R01:= [перший та другий байти другого слова фрейму]; - запис [RС06] в стек 54, [R02] в стек 30. Запис ознак інтерпретації (R11 - тип фрейму ітерації та R09-1 з першого слова фрейму; R10-2 з другого слова фрейму та поточний режим інтерпретації - R07=0/1, R08=1) в стек 54; - перехід в стан 3. 15. Розпізнавання ітерації: - R03:=[R02] + 1; - читання з БЗ 28 другого слова фрейму. R10:= [поле 2], R12:= [поле ОЕ], R07*:= [значення (0/1) ознаки розпізнавання із слідом] або R08*:= [значення (0/1) ознаки породження], R01:= [перший та другий байти другого слова фрейму]; - запис значення регістра [R02] в стек 30. Запис ознак інтерпретації (R11 - тип фрейму ітерації та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з другого слова фрейму та поточний режим інтерпретації - R07=0, R08=0) в стек 54; - R07:= R07*; R08:= R08*; - перехід в стан 3. 16. Встати на слід: - RС04:= [перший та другий байти першого слова фрейму, зчитаного з БЗ 28]; - RC06:= [ПС 35] за адресою [RC04]; - якщо лічильник [RС06] 0, то перехід в стан 14, інакше - в стан 19. 17. Породження ітерації: -R07:= R07*; - аналіз R07 (біту "ознака сліду", взятого з першого слова фрейму): якщо 1, то переходимо в стан 16, інакше - в 19. 18. Розпізнавання ітерації із слідом: - RC04:= [R05] + 1; - RC06:=0; - запис [RС06] в ПС 35 по адресі RC04; - R03:=[R02] + 1; - читання з ОЗУ БЗ 28 другого слова фрейму. R10:= [поле 2], R01:= [перший та другий байти другого слова фрейму]; - запис [R05], [R02] в стек 30. Запис ознак інтерпретації (R11 - тип фрейму ітерації та R09-1 з першого слова фрейму; R10-2 з другого слова фрейму та поточний режим інтерпретації - R07=1, R08=0) в стек 54; - R05:= [RC04]; - перехід в стан 3. 19. Завершити породження ітерації без сліду: - R13:= R09; - перехід в стан 21. 20. Породження ітерації по сліду: - RC04 = [RC04] + 1; - RC06:= [ПС 35] за адресою [RC04]; - якщо [RС06] 0, то перехід в стан 14, інакше - в стан 19. 21. Прийом і аналіз прапорів: - R07, R08, R09, R10, R11, R12:= [Верхній запис ознак інтерпретації стеку 54]; - R13:=[R13] [R10]; - аналіз R11, R13, R07 та R08: якщо R11=(00)&R13=1&(R07=0/1)&(R08=0/1), то перехід до п. 22 (прапор хибність на термінал), якщо R11=(00)&R13=0&(R07=0/1)&(R08=0/1), то переходимо до п. 23 (прапор істина на термінал), якщо R11=01&R13=0&R07=0&R08=0, то перехід до п. 24 (розпізнавання альтернативи після прапору істина), 8 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 60 якщо R11=01&R13=0&R07=1&R08=0, то перехід до п. 25 (розпізнавання альтернативи із слідом після прапору істина), якщо R11=01&R13=0&R07=0/1&R08=1, то перехід до п. 27 (породження альтернативи після прапору істина), якщо R11=01&R13=1&R07=0&R08=0, то перехід до п. 28 (розпізнавання альтернативи після прапору хибність), якщо R11=01&R13=1&R07=1&R08=0, то перехід до п. 30 (розпізнавання альтернативи із слідом після прапору хибність), якщо R11=01&R13=1&R07=0/1&R08=1, то перехід до п. 32 (породження альтернативи після прапору хибність), якщо R11=10&R13=0&R07=0&R08=0, то перехід до п. 34 (розпізнавання послідовності після прапору істина), якщо R11=10&R13=0&R07=1&R08=0, то перехід до п. 35 (розпізнавання послідовності із слідом після прапору істина), якщо R11=10&R13=0&R07=0/1&R08=1, то перехід до п. 37 (породження послідовності після прапору істина), якщо R11=10&R13=1&R07=0&R08=0, то перехід до п. 38 (розпізнавання послідовності після прапору хибність), якщо R11=10&R13=1&R07=1&R08=0, то перехід до п. 40 (розпізнавання послідовності із слідом після прапору хибність), якщо R11=10&R13=1&R07=0/1&R08=1, то перехід до п. 41 (породження послідовності після прапору хибність), якщо R11=11&R13=0&R07=0&R08=0, то перехід до п. 42 (розпізнавання ітерації після прапору істина), якщо R11=11&R13=0&R07=1&R08=0, то перехід до п. 43 (розпізнавання ітерації із слідом після прапору істина), якщо R11=11&R13=0&R07=0/1&R08=1, то перехід до п. 44 (породження ітерації після прапору істина), якщо R11=11&R13=1&R07=0&R08=0, то перехід до п. 46 (розпізнавання ітерації після прапору хибність), Якщо R11=11&R13=1&R07=1&R08=0, то перехід до п. 47 (розпізнавання ітерації із слідом після прапору хибність), якщо R11=11&R13=1&R07=0/1&R08=1, то перехід до п. 48 (породження ітерації після прапору хибність). 22. Відновлення покажчиків INP, OUT: - RАД:= [RАД із стеку 20]; - перехід в стан 2. 23. Набуття нових значень покажчиків INP, OUT: - виштовхнути [RАД] із стеку 20; - перехід в стан 2. 24. Розпізнавання альтернативи після прапору істина: - виштовхнути [R02] із стеку 30; - виштовхнути [RАД] із стеку 20; - R13:=[R13] [R09]; - перехід в стан 21. 25. Розпізнавання альтернативи із слідом після прапору істина: - R02:= [R02] із стеку 30; - R03:= [R02]; - RC04:= [R05] із стеку 30; - ОС першого слова фрейму:= 1; поля 1 та тип фрейма - відновити у байті ознак та [перший та другий байти першого слова фрейму за адресою [R03] БЗ 28]:= [RC04]; - виштовхнути [RАД] із стеку 20. - R13:=[R13] [R09]; - перехід в стан 21. 26. Вихід з розпізнавання альтернативи: - виштовхнути [R02] із стеку 30; - R13:=[R13] [R09]; - перехід в стан 21. 27. Породження альтернативи по сліду після прапору істина: - виштовхнути [RАД] із стеку 20; 9 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 60 - R13:=[R13] [R09]; - перехід в стан 21. 28. Розпізнавання альтернативи після прапору хибність: - відновлення покажчиків INP, OUT: RАД:= [RАД] із стеку 20; - аналіз значення R12: якщо 1, перехід в стан 26, інакше - в стан 29. 29. Розпізнавання нового варіанту альтернативи: - R02:= [R02 із стеку 30] + 1; - R03:= [R02]; - читання з ОЗУ БЗ 28 чергового слова фрейму альтернативи. R10:= [поле 2], R12:= [поле ОЕ], R07*:= [значення (0/1) ознаки розпізнавання із слідом] або R08*:= [значення (0/1) ознаки породження], R01:= [перший та другий байти обраного слова фрейму]; - запис значення регістра [RАД] в стек 20, а [R02] в стек 30. Запис ознак інтерпретації (R11 тип фрейму альтернативи та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з чергового слова фрейму та вхідний режим інтерпретації - R07=0, R08=0) в стек 54; - R07:= R07*; R08:= R08*; - перехід в стан 3. 30. Розпізнавання альтернативи із слідом після прапору хибність: - відновлення покажчиків INP, OUT: RАД:= [RАД із стеку 20]; - аналіз значення R12: якщо 1, перехід в стан 31, інакше - в стан 33. 31. Вихід із розпізнавання альтернативи із слідом: - виштовхнути [R02] із стеку 30; - RС04:= [R05] із стеку 30; - R13:=[R13] [R09]; - перехід в стан 21. 32. Породження альтернативи по сліду після прапору хибність: - відновлення RАД:= [RАД із стеку 20]; - R13:=[R13] [R09]; - перехід в стан 21. 33. Розпізнавання із слідом нового варіанту альтернативи: - RC04:= [R05 із стеку 30] + 1; RC06:= [RC06 із ПС 35] + 1; - запис [RC06] в ПС 35 по адресі RC04; - R02:= [R02 із стеку 30]; R03:=[R02; + [RC06]; - читання з ОЗУ БЗ 28 чергового слова фрейму. R10:= [поле 2], R15:= [поле ОЕ], R01:= [перший та другий байти вибраного слова фрейму]; - запис [RАД] в стек 20, запис [R05], [R02] в стек 30; - запис ознак інтерпретації (R11 - тип фрейму альтернативи та R09-1 з першого слова фрейму, відновлених з магазину; R10-2, R12 - ОЕ з вибраного слова фрейму та поточний режим інтерпретації - R07=1, R08=0) в стек 54; - R05:= [RC04]; - перехід в стан 3. 34. Розпізнавання послідовності після прапору істина: - аналіз значення R12: якщо 1, то перехід в стан 24, інакше - в стан 29. 35. Розпізнавання послідовності із слідом після прапору істина: - аналіз значення R12: якщо 1, то перехід в стан 25, інакше - в стан 36. 36. Продовжити розпізнавання послідовності із слідом: - RC06:= [RC06 із стеку 54] + 1; -R03:=[R02] + [RC06]; - читання із ОЗУ БЗ 28 чергового слова фрейму. R10:= [поле 2], R12:= [поле ОЕ], R01:= [перший та другий байти вибраного слова фрейму]; - запис [RАД] в стек 20, [R05], [R02] - в стек 30, [RC06] - в ПС 35. Запис ознак інтерпретації (R11 тип фрейму послідовності та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з чергового слова фрейму та поточний режим інтерпретації з R07=0/1, R08=1) в стек 54; - перехід в стан 3. 37. Породження послідовності після прапору істина: - аналіз значення R12: якщо 1, перехід в стан 24, інакше - в стан 39. 38. Розпізнавання послідовності після прапору хибність: - відновлення RАД:= [RАД із стеку 20]; - перехід в стан 26. 39. Продовжити породження послідовності: - R02:= [R02 із стеку 30]+ 1; 10 UA 109322 C2 5 10 15 20 25 30 35 40 45 50 55 60 - R03:= [R02]; - читання з ОЗУ БЗ 28 чергового слова фрейму послідовності. R10:= [поле 2], R12:= [поле ОЕ], R01:= [перший та другий байти другого слова фрейму]; - запис [RАД] в стек 20, [R02] - в стек 30. Запис ознак інтерпретації (R11 - тип фрейму послідовності та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з другого слова фрейму та поточний режим інтерпретації - R07=0/1, R08=1) в стек 54; - перехід в стан 3. 40. Розпізнавання послідовності із слідом після прапору хибність: - відновлення покажчиків: RC04:= [R05 із стеку 30], RАД:= [RАД із стеку 20]; - R07:= R07*; R08:= R08*; - перехід в стан 26. 41. Породження послідовності після прапору хибність: - відновлення RАД:= [RАД із стеку 20]; - R07:= R07*; R08:= R08*; - виштовхнути [R02 із стеку 30]; - R13:=[R13] [R09]; - перехід в стан 21. 42. Розпізнавання ітерації після прапору істина: - R03:= [R02 із стеку 30] + 1; - читання із БЗ 28 другого слова фрейму. R10:= [поле 2], R12:= [поле ОЕ], R07*:= [значення (0/1) ознаки розпізнавання із слідом] або R08*:= [значення (0/1) ознаки породження], R01:= [перший та другий байти другого слова фрейму]; - запис значення регістра [R02] в стек 30. Запис ознак інтерпретації (R11 - тип фрейму ітерації та R09-1 з першого слова фрейму; R10-2, R12 - ОЕ з другого слова фрейму та поточний режим інтерпретації - R07=0, R08=0) в стек 54; - R07:= R07*; R08:= R08*; - перехід в стан 3. 43. Розпізнавання ітерації із слідом після прапору істина: - RC04:= [R05 із стеку 30]+1; RC06:= [RC06 із ПС 35 по адресі RC04]+1; - запис [RC06] в ПС 35 по адресі RC04; - R03:= [R02 із стеку 30]+1; - читання з БЗ 28 другого слова фрейму. R10:= [поле 2], R01:= [перший та другий байти другого слова фрейму]; - запис [R05], [R02] в стек 30. Запис ознак інтерпретації (R11 - тип фрейму ітерації та R09-1 з першого слова фрейму; R10-2 з другого слова фрейму та поточний режим інтерпретації - R07=1, R08=0) в стек 54; - перехід в стан 3. 44. Породження ітерації після прапору істина: - RC06:=[RC06 із стеку 54]; - аналіз [RС06]: якщо [RС06] 0, то перехід в стан 45, інакше - в стан 46. 45. Продовжити породження ітерації після прапору істина: - RC06:= [RC06] - 1; R03:= [R02 із стеку 23] + 1; - читання з БЗ 28 другого слова фрейму. R10:= [поле 2], R01:= [перший та другий байти другого слова фрейму]; - запис [RС06] в стек 54, запис [R02] в стек 30. Запис ознак інтерпретації (R11 - тип фрейму ітерації та R09-1 з першого слова фрейму; R10-2 з другого слова фрейму та поточний режим інтерпретації - R07=0/1, R08=1) в стек 54; - перехід в стан 3. 46. Завершити породження ітерації та розпізнавання ітерації після прапору хибність: - виштовхнути [R02 із стеку 30]; R13:= [R09]; - перехід в стан 21. 47. Розпізнавання ітерації із слідом після прапору хибність: - R03:= [R02 із стеку 30]; - RC04:= [R05 із стеку 30]; - ОС першого слова фрейму:= 1; поля 1 та тип фрейма - відновити; - [перший та другий байти першого слова фрейму в БЗ 28]:= [RC04]; - R13:= [R09]; - перехід в стан 21. 48. Породження ітерації після прапору хибність: - виштовхнути [R02 із стеку 30]; виштовхнути [RC06 із стеку 54]; 11 UA 109322 C2 : 5 - R13 = [R09]; - перехід в стан 21. Оскільки система обробки знань підтримує системний шинний інтерфейс (наприклад, АРВ), то вона може бути легко інтегрована в сучасні мікропроцесорні системи на кристалі з метою розширення їхнього набору команд. Таблиця Ім'я регістра RД RCm RCn RKБ3 RКОМ1 RКОМ2 RАД R01 R02 R03 RC04 R05 RC06 R07 R08 R07* R08* R09 R10 R11 R12 R13 Розрядність, біт 24 12 12 16 24 24 24 16 16 16 16 16 16 1 1 1 1 1 1 3 1 1 Опис регістра Регістр даних Регістр-лічильник вхідного масиву Регістр-лічильник вихідного масиву Регістр кореня бази знань Перший регістр команд Другий регістр команд Регістр адрес даних Регістр імені структури Регістр номера слова фрейму Регістр адреси бази знань Регістр-лічильник координати сліду Регістр вершини сліду Регістр-лічильник ітерації Регістр ознаки сліду Регістр ознаки породження Додатковий регістр ознаки сліду Додатковий регістр ознаки породження Регістр інверсії 1 Регістр інверсії 2 Регістр типу фрейму Регістр ознаки останнього елемента Регістр істинності ФОРМУЛА ВИНАХОДУ 10 15 20 25 30 Пристрій баз знань, що містить головний комп'ютер, пам'ять баз знань, перший блок керування, арифметико-логічний блок, робочу пам'ять, регістр даних, регістр-лічильник вхідного масиву та перший блок вводу-виводу, перший вхід-вихід якого підключений до системної шини пристрою, його другий вхід-вихід підключений до входів-виходів регістра-лічильника вхідного масиву, а третій вхід-вихід разом із входами-виходами арифметико-логічного блока, першого блока керування та першими входами-виходами регістра даних, з'єднаного другими входамивиходами з входами-виходами робочої пам'яті, підключений до шини даних, який відрізняється тим, що в нього додатково введено пам'ять програм та даних, другий та третій блоки вводувиводу, регістр-лічильник вихідного масиву, мультиплексор даних, регістр кореня бази знань, перший та другий регістри команд, регістр адрес даних, регістр імені структури, регістр номера слова фрейму, регістр адреси бази знань, регістр координати сліду, регістр вершини сліду, регістр ітерації, регістр істинності, регістр ознак сліду, регістр ознак породження, регістр першої інверсії, регістр другої інверсії, регістр типу фрейму, регістр ознак останнього елемента, додатковий регістр ознак сліду, додатковий регістр ознак породження, одинадцять мультиплексорів, стек адрес даних, стек регістрів, стек ознак, пам'ять сліду, суматор та два суматори по модулю два, при цьому четвертий вхід-вихід першого блока вводу-виводу підключено до входу-виходу регістра-лічильника вихідного масиву, чий вихід разом із виходом регістра-лічильника вхідного масиву через мультиплексор даних підключений до адресного входу робочої пам'яті, пам'ять програм та даних та перші входи-виходи другого та третього блоків вводу-виводу об'єднані системною шиною машини, другий вхід-вихід другого блока вводу-виводу підключений до входів-виходів головного комп'ютера, а другий вхід-вихід третього блока вводу-виводу підключений до першого входу-виходу регістра адрес даних, другий вхідвихід якого підключено до входу-виходу стеку адрес даних, перший вихід третього блока вводувиводу підключено до входу регістра кореня бази знань, чий вихід підключено до другого входу 12 UA 109322 C2 5 10 15 20 25 30 35 першого мультиплексора, вихід якого підключено до входу регістра імені структури, чий вихід з'єднано із першими входами третього мультиплексора і першого регістра команд та з другим входом другого мультиплексора, вихід якого підключено до входу регістра номера слова фрейму, чий вихід підключено до першого входу стеку регістрів та до першого входу суматора, вихід якого підключено до першого входу другого мультиплексора та до другого входу третього мультиплексора, чий вихід підключено до входу регістра адреси бази знань, з'єднаного виходом із адресним входом оперативної пам'яті бази знань, перший інформаційний вихід якої підключений до перших входів першого мультиплексора та четвертого мультиплексора, чий вихід підключено до входу регістра координати сліду, вихід якого з'єднаний із адресним входом пам'яті сліду, інформаційним входом оперативної пам'яті бази знань та із входом регістра вершини сліду, чий вихід підключено до другого входу стеку регістрів та до третього входу четвертого мультиплексора, другий вхід якого підключений до другого виходу стеку регістрів, чий перший вихід підключено до третього входу другого мультиплексора, вихід першого регістра команд підключено до входу третього блока вводу-виводу, чий другий вихід підключено до входу другого регістра команд, перший вихід якого підключено до першого входу другого блока керування, а другий вихід підключено до перших входів п'ятого, шостого, восьмого та десятого мультиплексорів, вихід ознак оперативної пам'яті бази знань підключено до входів додаткових регістрів ознак сліду, ознак породження та до других входів сьомого, восьмого, дев'ятого та десятого мультиплексорів, вихід додаткового регістра ознак сліду підключено до другого входу п'ятого мультиплексора, вихід додаткового регістра ознак породження підключено до другого входу шостого мультиплексора, треті входи п'ятого, шостого, восьмого та десятого і другі входи сьомого та дев'ятого мультиплексорів підключені до виходу стеку ознак, а виходи п'ятого, шостого, сьомого, восьмого, дев'ятого та десятого мультиплексорів з'єднані із входами регістрів ознак сліду, ознак породження, першої інверсії, другої інверсії, типу фрейму та ознак останнього елементу відповідно, перші виходи регістрів ознак сліду, ознак породження, типу фрейму та ознак останнього елемента підключено до третього входу першого регістра команд та другого входу другого блоку керування, чий вихід підключено до другого входу першого регістра команд, другі виходи регістрів ознак сліду, ознак породження, першої інверсії, другої інверсії, типу фрейму та ознак останнього елемента підключено до входу стеку ознак, перший вихід регістра першої інверсії та третій вихід регістра типу фрейму разом із виходом логічної одиниці підключено до входу ознак оперативної пам'яті баз знань, а третій вихід регістра першої інверсії підключено до першого входу першого суматора по модулю два та до першого входу одинадцятого мультиплексора, перший вихід регістра другої інверсії підключено до першого входу другого суматора по модулю два, чий другий вхід разом із другим входом першого суматора по модулю два та третім входом другого блока керування підключений до виходу регістра істинності, вхід якого з'єднаний із виходом одинадцятого мультиплексора, чиї другий і третій входи підключені до виходів першого та другого суматора по модулю два відповідно, входи-виходи стеку ознак з'єднані із входами-виходами пам'яті сліду та регістра ітерації, чий вихід підключений до другого входу суматора та до четвертого входу другого блока керування. 13 UA 109322 C2 14 UA 109322 C2 15 UA 109322 C2 16 UA 109322 C2 Комп’ютерна верстка І. Скворцова Державна служба інтелектуальної власності України, вул. Василя Липківського, 45, м. Київ, МСП, 03680, Україна ДП “Український інститут інтелектуальної власності”, вул. Глазунова, 1, м. Київ – 42, 01601 17
ДивитисяДодаткова інформація
Автори англійськоюHryhoriev Serhii Mykolaiovych
Автори російськоюГригоръев Сергей Николаевич
МПК / Мітки
МПК: G06F 15/18, G06N 5/04
Код посилання
<a href="https://ua.patents.su/19-109322-pristrijj-baz-znan.html" target="_blank" rel="follow" title="База патентів України">Пристрій баз знань</a>
Попередній патент: Теплонакопичувач зі змінною товщиною теплоізоляційного прошарку
Наступний патент: Пристрій для обробки знань
Випадковий патент: Спосіб прогнозування порушень функціонального стану гепатобіліарної системи у новонароджених дітей