- •Лабораторная работа 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.3.1. Описание основных элементов скалярного процессора
Скалярный процессор представляет собой RISC ядро, отвечающее за подготовку данных для векторного процессора. Он также может использоваться и как самостоятельный вычислительный блок.
СП имеет 8 адресных регистров и 8 регистров общего назначения. Помимо этого, существует набор специализированных регистров.
СП позволяет осуществлять следующие операции:
- различные виды адресации с модификацией адресных регистров;
- чтение/запись в память как 32-х разрядных слов, так и пар слов, образующих 64-х разрядное число;
- все виды арифметических и логических операций над регистрами общего назначения с модификацией и без модификации флагов состояния;
- различные типы сдвигов, в том числе на произвольное количество битов;
- условные и безусловные переходы, в том числе отложенные переходы;
- вызовы функций с записью в стек адреса возврата, в том числе и отложенные вызовы функций;
- пошаговое умножение;
- управление таймерами;
- настройка регистров управления доступом к внешней памяти на тип, используемый в конкретном устройстве;
- управление векторным процессором путем задания его конфигурации.
6.3.3.2. Описание основных элементов векторного процессора
ВП представляет собой специализированный матричный узел – операционное устройство (ОУ) для выполнения операций умножения с накоплением, арифметических и логических операций, маскирования, функций активации над векторами и матрицами.
Под векторами понимаются одномерные массивы однородных данных, расположенные в памяти в виде непрерывного блока. Матрица - это массив векторов.
Разрядность всех узлов ВП составляет 64 бита. ВП осуществляет обработку целочисленных данных, которые упакованы в 64-х разрядные слова с помощью простой конкатенации (см. Рис. 1-3). В общем случае слово упакованных данных представляет собой вектор
D = {D k...D 1}, содержащий k элементов, суммарная разрядность которых составляет 64 бита. Причем в одном слове Dмогут быть упакованы данные, имеющие разную разрядность. Количество элементов k, упакованных в одном слове, зависит от их разрядностей и может принимать целочисленное значение в диапазоне от 1 до 64.
Рис. 1-3 Формат слова упакованных векторных данных.
В состав ВП входят следующие компоненты:
Рабочая матрица - операционный узел, в котором осуществляются операции умножения с накоплением. С рабочей матрицей связана пара регистров, которые определяют её разбиение на столбцы и строки. Описание функционирования рабочей матрицы приведено в параграфе 1.4.1. Взвешенное суммирование;
Теневая матрица - устройство, используемое для ускорения закачки весовых коэффициентов в рабочую матрицу. В то время, как рабочая матрица участвует в операции умножении с накоплением, в теневую может параллельно подкачиваться новая порция весовых коэффициентов. После того, как теневая матрица загружена, она в течение одного процессорного такта может быть перегружена в рабочую. С теневой матрицей связана своя пара регистров, определяющая ее разбиение на столбцы и строки. Это разбиение может быть отличным от того, которое использовалось в рабочей матрице на предыдущем этапе;
Векторное АЛУ - устройство, позволяющее совершать стандартный набор арифметических и логических операций над парами 64-х разрядных слов, каждое из которых разделено на малоразрядные элементы. При арифметических операциях в случае переполнения внутри диапазона, отведенного под один малоразрядный элемент, блокируется перенос битов в соседний элемент. Более подробное описание работы векторного АЛУ приведено в параграфе 1.4.2. Выполнение операций на векторном АЛУ;
Буфер весовых коэффициентов (wfifo) - очередь глубиной в 32 64-х разрядных слова, организованная по принципу FIFO. В нее подгружаются весовые коэффициенты, и в ней они хранятся, прежде чем происходит их загрузка в теневую матрицу. Загрузка данных и их выгрузка из wfifo может осуществляться по частям, то есть, например, в wfifo можно загрузить сначала 8 слов, а затем еще 24, но так, чтобы не произошло переполнения;
Буфер внутренней памяти (ram) - очередь глубиной в 32 64-х разрядных слова, организованная по принципу FIFO. Используется, как один из аргументов в операциях умножения с накоплением, а также в операциях на векторном АЛУ. В ram может быть загружено от 1 до 32 слов. Буфер может использоваться многократно, однако в операциях должны участвовать все данные, хранящиеся в ram. Не допускается использование только части хранящихся там данных;
Псевдобуфер шины данных (data) используется для обозначения данных, находящихся на шине данных непосредственно в процессе их загрузки из памяти в ВП. Позволяет обрабатывать данные на проходе. Псевдобуфер имеет глубину в 32 64-х разрядных слов и организован по принципу FIFO. Используется, как один из аргументов в операциях умножения с накоплением, а также в операциях на векторном АЛУ;
Буфер накопления результатов (afifo) - очередь глубиной в 32 64-х разрядных слова, организованная по принципу FIFO. Результат любой операции на ВП сохраняется в afifo. Может также использоваться, как один из аргументов в операциях умножения с накоплением и в операциях на векторном АЛУ. Для того, чтобы получить доступ к результатам вычислений на векторном процессоре, хранящимся в afifo, необходимо выгрузить их в память;
Векторный регистр (vr) - 64-х разрядный регистр, используемый в качестве определенного операнда в операции умножения с накоплением. Можно представить его, как буфер, состоящий из заданного количество одинаковых слов. Может быть загружен из СП. Доступен только на запись;
Устройства, обеспечивающие выполнение функции активации над входными векторами. В ВП содержится два устройства, работающих независимо. Они позволяют активировать входные данные перед выполнением операции умножения с накоплением или перед подачей их на векторное АЛУ;
Устройства, обеспечивающие выполнение операции маскирования над входными векторами. Более подробное описание выполнения операции маскирования дано в разделе Операция маскирования;
Устройство, обеспечивающее циклический сдвиг вправо на один бит слова данных, подаваемого на вход X рабочей матрицы в операции взвешенного суммирования. Более подробное описание работы устройства циклического сдвига дано в разделе 1.4.5. Циклический сдвиг вправо операнда Х при взвешенном суммировании.