- •Лабораторная работа № 1 Архитектура нейромикропроцессоров семейства NeuroMatrix® nm640х и их функциональные возможности
- •1. Описание и порядок пользования программой nmcalculator
- •1.1. Формирование векторной команды
- •1.2. Разбиение рабочей матрицы и запись весовых коэффициентов
- •1.3. Установка входных значений
- •1.4. Генератор кода
- •2. Порядок выполнения работы
- •Лабораторная работа № 2
- •1. Указания к выполнению работы
- •2. Элементы языка ассемблера процессора nm6403
- •2.1. Формат ассемблерных инструкций
- •2.2. Векторные инструкции процессора
- •2.3. Регистры процессора
- •2.3.1. Основные регистры
- •3. Порядок выполнения работы
- •4. Контрольные вопросы
- •Лабораторная работа № 3
- •2.3. Использование меток в макросах
- •2.4. Импорт макросов из макробиблиотек
- •3. Пример простейшей программы
- •4. Порядок выполнения работы
- •Лабораторная работа № 4
- •1.2. Реализация алгоритма шифрования на процессоре nm6403
- •Практическая часть
- •2.1. Реализация алгоритма гост 28147-89 на нейропроцессоре nm6403/6404
- •2.2. Реализация алгоритма гост 28147-89 на эмуляторе вектора векторных команд
- •2.3. Варианты заданий
- •2.4. Удаленный доступ к плате NeuroMatrix
- •Библиографический список
Лабораторная работа № 1 Архитектура нейромикропроцессоров семейства NeuroMatrix® nm640х и их функциональные возможности
Цель работы: ознакомление с общей архитектурой, функциональными особенностями современных нейромикропроцессоров семейства NeuroMatrix® NM640Х (Л1879ВМХ) и его отличиями от других процессоров этого класса с целью изучения основ программирования процессора.
1. Описание и порядок пользования программой nmcalculator
1.1. Формирование векторной команды
Для задания векторной команды необходимо установить флажки в соответствующих элементах управления. Программой отслеживается неверный ввод команды. Переключатели, соответствующие невозможной комбинации, становятся недоступными.
Рекомендуется соблюдать следующий порядок формирования команды.
Определить операционное устройство: либо рабочая матрица (операция взвешенного суммирования), либо векторное АЛУ. В первом случае – установить флажок "Vsum".
Если необходимо, то подключить регистры маскирования и активации. При работе с векторным АЛУ задать требуемую арифметико-логическую операцию в группе переключателей "Operations".
Задать необходимое разбиение матрицы.
Ввести входные значения.
Действия пользователя по формированию команды отображаются в поле "Command". Обозначения, принятые при выводе команды, не соответствуют реальным устройствам процессора Л1879ВМ1. Например, команда маскирования может выглядеть следующим образом: rep 1 with mask M , shift X , activate Y.
В реальной команде вместо операндов M, X и Y необходимо использовать существующие аппаратные ресурсы (data, ram, afifo и т. д.).
1.2. Разбиение рабочей матрицы и запись весовых коэффициентов
Для разбиения матрицы на строки и столбцы можно либо воспользоваться выпадающим списком стандартных разбиений (nbl, nbh, sbl, sbh), либо вводить константы разбиения в окна ввода, либо разбить матрицу в визуализаторе с помощью кнопок-переключателей. Все изменения в матрице отображаются в визуализаторе и в окнах ввода. Для удобства 64-разрядные регистры разбиения (nb1 и sb) разделены на младшие и старшие части. При необходимости можно скопировать значение младшей части регистра в старшую часть (кнопка "->"). Следует учитывать, что при работе с арифметико-логическими командами (в отличие от команд взвешенного суммирования) разбиение можно задать только в регистрах nbl и nbh, то есть векторы на входах X и Y будут иметь одинаковое разбиение. В операции взвешенного суммирования разбиение на столбцы (nbl, nbh) может отличаться от разбиения на строки (sbl, sbh). Весовые коэффициенты можно задать щелчком мыши в визуализаторе матрицы, устанавливая/сбрасывая необходимые биты. Альтернативный способ – вызов окна диалога из всплывающего меню. В этом случае можно задать значение всей строке либо одному весовому коэффициенту. В окне диалога предусмотрен ввод шестнадцатеричных и десятичных значений. Для просмотра всех введённых весов можно воспользоваться генератором кода (кнопка "Code"). Весовые коэффициенты будут записаны в секцию данных в массиве Weights.
1.3. Установка входных значений
Входные значения (Entry X, Entry Y), маску (Mask X, Mask Y), пороги для функции активации можно задать щелчком мыши в визуализаторе матрицы на соответствующих регистрах, устанавливая/сбрасывая необходимые биты либо вводя значения в соответствующие окна ввода.