- •Лабораторная работа n 1 основы языка программирования пролог. Изучение среды turbo prolog.
- •Запустить Turbo Prolog
- •1.1 Основные понятия языка Турбо Пролог.
- •1.1.2. Факты
- •1.1. 3 . Запросы
- •1.2. Разделы программы на языке Турбо Пролог.
- •2. Среда turbo prolog 2.0.
- •2.1. Интерфейс среды Турбо Пролог 2.0.
- •2.1 Элементы главного меню и их функции:
- •2.3 Основные операции в среде Турбо Пролог.
- •2. 4 . Трассировка.
- •Лабораторная работа n 2 понятие правила и рекурсии. Встроенные предикаты.
- •1. Правила
- •1.1. Дерево вывода.
- •2. Рекурсия
- •3.Использование встроенных предикатов.
- •4. Задание для лабораторной работы
- •4.1. Варианты заданий
- •5. Контрольные вопросы.
- •Лабораторная работа № 3 интегрированная среда разработки visual prolog
- •1. Создание нового проекта.
- •2. Создание формы.
- •3. Работа с меню
- •4. Создание обработчиков нажатия на кнопку.
- •5. Задание для лабораторной работы
- •6. Контрольные вопросы.
- •2. Преобразование данных
- •3. Арифметические действия
- •Лабораторная работа № 5 построение нейросетевой экспертной системы
- •5.1. Цель работы
- •5.2. Методические указания
- •5.2.1. Постановка задачи
- •5.2.2. Критерии оценки
- •5.2.3. Ввод анализируемых данных
- •5.2.3.1. Использование файла запуска фактов
- •5.2.3.2. Использование протокола dde
- •5.3. Порядок выполнения работы
- •Лабораторная работа №6 Архитектура процессора NeuroMatrix ® nm 6403 и его функциональные возможности
- •6.3.2. Внешний интерфейс процессора
- •6.3.3. Общее описание внутренней структуры процессора
- •6.3.3.1. Описание основных элементов скалярного процессора
- •6.3.3.2. Описание основных элементов векторного процессора
- •6.3.4. Основные вычислительные блоки векторного процессора
- •6.3.4.1. Взвешенное суммирование
- •6.3.4.2. Выполнение операций на векторном алу
- •6.3.4.3 Операция маскирования
- •6.3.4.4 Обработка данных функцией активации
- •6.3.4.5 Циклический сдвиг вправо операнда х при взвешенном суммировании
- •6.3.4.6 Порядок выполнения преобразований над данными на вп
- •6.4. Описание и порядок пользования программой nmCalculator запустить nmCalculator
- •6.4.1 Общие сведения о программе
- •6.4.2 Формирование векторной команды
- •6.4.3 Разбиение рабочей матрицы и запись весовых коэффициентов
- •Контрольные вопросы
- •Лабораторная работа № 7 Программирование процессора NeuroMatrix ® nm 6403
- •7.2.3 Типы скалярных команд
- •7.2.4 Типы векторных команд
- •7.2.5 Регистры процессора
- •7.2.5.1 Основные регистры
- •7.2.5.2 Регистровые пары
- •7.3. Примеры простейших программ
- •7.4. Порядок выполнения работы
6.3.4.2. Выполнение операций на векторном алу
Арифметические и логические операции на векторном АЛУ выполняются над наборами 64-х разрядных слов, подаваемых на входы X и Y операционного узла ВП. Эти наборы подаются на входы из буферов ram, afifo, либо из памяти (data). Данные, хранящиеся, например, в ram, могут быть переданы на обработку в операционное устройство как через вход X, так и через Y. Кроме этого в качестве входов могут выступать так называемые "нулевые" устройства, что означает, что данные на вход не поступают. Результат вычислений всегда попадает в afifo.
Входы X и Y векторного АЛУ являются равноправными. Разбиение данных, поступающих на эти входы, на элементы определяется регистром nb2. Регистр sb2 не оказывает никакого влияния на вычисления в векторном АЛУ. В этом состоит особенность работы векторного АЛУ по сравнению с рабочей матрицей.
Операции на векторном АЛУ выполняются с учетом разбиения входных данных на элементы (см. Рис. 1-6). Это означает, что в местах разбиения 64-х разрядных слов на элементы ставятся "перегородки", которые в случае переполнения блокируют перенос старшего бита в соседнее поле, занимаемое другим элементом, а также препятствуют распространению знака за пределы границ элемента. При блокировках переноса переносимый бит теряется.
Рис. 1-6 Выполнение вычислений на векторном АЛУ.
На Рис. 1-7 приведен пример сложения двух 64-х разрядных слов, разбитых на 8 элементов по 8 бит каждый, на векторном АЛУ процессора NM6403.
Рис. 1-7 Сложение двух 64-х разрядных слов на векторном АЛУ.
Серым цветом на рисунке отображены ячейки, где "перегородки" повлияли на результат вычислений.
6.3.4.3 Операция маскирования
Для выполнения маскирования в операционном узле ВП существует специальное устройство. Оно имеет три входа и два выхода (см. Рис. 1-8). Данные подаваемые на входы Х и Y рабочей матрицы или векторного АЛУ сначала проходят через это устройство, и только после этого попадают в рабочую матрицу или на векторное АЛУ. Если код векторной команды не включает операцию маскирования, то данные, поступающие на входы X и Y устройства, пропускаются на выход без изменений. Если в коде команды присутствует запрос на маскирование, то используется также третий вход в устройство, на который подается вектор масок. Он может подчитываться из памяти (data), либо из буферов ram или afifo.
Векторные команды маскирования, как и все остальные векторные команды процессора NM6403, выполняются от 1 до 32 тактов. На каждом такте на входы X, Y и на вход вектора масок подаётся по одному 64-х разрядному слову.
Маскирование с векторным умножением
В системе команд процессора существует векторная команда, например:
маска X Y
rep 32 data = [ar0++] with vsum ram, data, afifo;
которая совмещает выполнение операции маскирования с обработкой результатов на рабочей матрице. В этом случае над данными выполняются следующие преобразования:
побитовая операция AND слова со входа X и слова маски: X and MASK. Эта операция оставляет в результирующем векторе X только те биты, которые в маске были равны единице;
побитовая операция AND слова со входа Y и инвертированного слова маски: Y and not MASK. Эта операция оставляет в результирующем векторе Y только те биты, которые в маске были равны нулю;
выполнение операции взвешенного суммирования над маскированными данными.
Рис. 1-8 Положение устройство маскирования в ОУ ВП.
Логическое маскирование
В случае совмещения операции маскирования с обработкой на векторном АЛУ, задаваемой командой:
маска X Y
rep 32 data = [ar0++] with mask ram, data, afifo;
над данными на каждом шаге выполняется следующее преобразование:
(X and MASK) or (Y and not MASK)
Сложно записанная формула вероятно скрывает простоту и пользу данного преобразования. На Рис. 1-9 дается пояснение в графической форме:
Рис. 1-9 Выполнение операции маскирования.
В тех позициях, на которых в маске стоят единицы, в слово результата будут записаны биты слова со входа X, на остальные места попадут биты слова со входа Y. Таким образом, операция маскирования позволяет за один такт из двух длинных слов собрать одно, взяв нужные биты из одного слова и из другого.
