- •Лабораторная работа 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. Основные вычислительные блоки векторного процессора
Основные блоки векторного поцессора определяют возможности процессора NM6403 в выполнении следующих операций:
- умножение с накоплением, называемое также взвешенным суммированием;
- арифметические и логические операции на векторном АЛУ;
- маскирование данных;
- функции активации;
- сдвиг операнда Х при выполнении взвешенного суммирования.
Помимо этого, приведен порядок выполнения преобразований над данными, если эти преобразования заданы в одной векторной команде.
6.3.4.1. Взвешенное суммирование
Операция умножения с накоплением выполняется на рабочей матрице, входящей в состав операционного узла ВП. Схематично она представлена на (см. Рис. 1-4).
Математически операция взвешенного суммирования, выполняемая на операционном узле ВП, записывается следующим образом:
где Z i - элемент выходного вектора X j - элемент данных, поступающих на вход X операционного узла ВП, Y i - частичная сумма, накопленная на предыдущем шаге взвешенного сумми рования, W ij - весовой коэффициент, расположенный в соответствующей ячейке рабочей мат рицы процессора, M - количество столбцов и N - количество строк рабочей матрицы, соответственно.
Рабочая матрица имеет два входа X и Y (см. Рис. 1-5). На эти входы подаются данные, расположенные во внешней памяти, либо во внутренних буферах ram и afifo, работающих по принципу FIFO. Данные из буферов или из памяти могут быть поданы как на вход X, так и на Y. То есть, например, вектор 64-х разрядных слов, хранящийся в ram, может быть передан на обработку в операционный узел через вход X и/или Y. Для управления потоком данных из внешней памяти используется логический буфер data. В качестве входа Y может также быть использован векторный регистр vr. Кроме этого в качестве входов могут выступать так называемые "нулевые" устройства, что означает, что данные на вход не поступают.
Рис. 1-4 Схематичное представление операции взвешенного суммирования.
Входы X и Y имеют различное предназначение при вычислениях. Данные, поступающие на вход X, умножаются на ячейки матрицы, и суммируются в пределах столбца. Данные, со входа Y добавляются к результату умножения со сложением, выполненного над данными входа X.
В рабочую матрицу предварительно загружаются весовые коэффициенты.
Разбиение матрицы на строки определяется регистром sb2. Этот же регистр определяет разбиение 64-х разрядных слов входных данных, поступающих на вход X. В sb2 предварительно записывается слово, определяющее границы разбиения.
Разбиение рабочей матрицы на столбцы задается регистром nb2. Он же определяет разбиение 64-х разрядных данных на входе Y, и разрядности результатов вычислений, содержащихся в буфере afifo.
Рис. 1-5 показывает, какие действия может выполнить ВП при помощи одной процессорной инструкции. Допустим, в буфер данных ram было предварительно загружено из памяти 32 длинных слова. При операции взвешенного суммирования из памяти по очереди подчитываются слова входных данных, каждое из которых направляется на вход X операционного узла ВП. Параллельно из буфера ram подчитывается очередное слово и направляется на вход Y. Каждый элемент, составляющий слово на входе X, умножается на весовой коэффициент, находящийся в соответствующей ячейке рабочей матрицы, результаты умножения складываются в пределах столбца, а затем к ним добавляется значение элемента, находящегося на соответствующей позиции в слове, поступившем на вход Y. Результат операции записывается в буфер afifo.
Данные, находящиеся в буферах FIFO векторного процессора, хранятся в 64-х разрядных словах. Для них на этом этапе разбиение на элементы не определено. Такое разбиение появляется только тогда, когда они поступают на вход X или Y рабочей матрицы, или на вход векторного АЛУ. В зависимости от того, на какой вход, Х или Y, поступают данные, они делятся на элементы тем или иным образом.
Рис. 1-5 Схема выполнения операции взвешенного суммирования на ВП.
Данные, находящиеся в буферах FIFO векторного процессора, хранятся в 64-х разрядных словах. Для них на этом этапе разбиение на элементы не определено. Такое разбиение появляется только тогда, когда они поступают на вход X или Y рабочей матрицы, или на вход векторного АЛУ. В зависимости от того, на какой вход, Х или Y, поступают данные, они делятся на элементы тем или иным образом.
Например, если разбиение входа X – 8 бит, то есть каждое слово представляется как 8 элементов по 8 бит, а разбиение Y – 16 бит, то в зависимости от того, куда будут направлены данные, хранящиеся в ram, на вход X или Y, они будут трактоваться либо как массив 8-ми, либо 16-ти битных элементов.
