- •Лабораторная работа №1 Архитектура нейромикропроцессоров семейства NeuroMatrix ® nm 640х и их функциональные возможности
- •1. Описание и порядок пользования программой nmcalculator
- •1.1 Общие сведения о программе
- •1.2 Формирование векторной команды
- •1.3 Разбиение рабочей матрицы и запись весовых коэффициентов
- •1.4 Установка входных значений
- •1.5 Генератор кода
- •2. Порядок выполнения работы
- •Лабораторная работа № 2
- •1.Порядок выполнения работы
- •2. Элементы языка ассемблера процессора nm 6403
- •2.1 Формат ассемблерных инструкций
- •2.2 Векторные инструкции процессора
- •2.3 Регистры процессора
- •2.3.1 Основные регистры
- •3. Примеры простейших программ Пример 1: Организация циклов и доступ к памяти
- •Пример 2: Копирование массива данных на скалярном процессоре
- •Пример 3: Копирование массива данных на векторном процессоре
- •Пример 4: Операция взвешенного суммирования
- •4. Порядок выполнения работы
- •5. Контрольные вопросы
- •Лабораторная работа № 3
- •2.3 Использование Меток в Макросах
- •2.4 Импорт Макросов из Макробиблиотек
- •3. Примеры простейших программ Пример 1: Пример использования макросов в программе
- •Пример 2: Создание Библиотеки Макросов
- •4. Порядок выполнения работы
- •Лабораторная работа №4 Кодирование и декодирование информации в нейромикропроцессоре NeuroMatrix ® nm 640х
- •Теоретическая часть
- •1.1 Описание алгоритма шифрования гост 28147-89
- •Замена по таблице
- •Сдвиг на 11 разрядов
- •Вторая итерация
- •Замена по таблице
- •Сдвиг на 11 разрядов
- •Третья итерация
- •Замена по таблице
- •Сдвиг на 11 разрядов
- •1.2 Реализация алгоритма шифрования на процессоре nm6403
- •Практическая часть
- •2.1 Реализация алгоритма гост 28147-89 на нейропроцессоре nm 6403/6404
- •2.2 Реализация алгоритма гост 28147-89 на эмуляторе векторе векторных команд
- •2.3 Варианты заданий
- •2.4 Удаленный доступа к плате NeuroMatrix
- •Список используемой литературы:
1.2 Реализация алгоритма шифрования на процессоре nm6403
Для реализации шифрования на нейропроцессоре был взят алгоритм ГОСТ 28147-89 в режиме простой замены, то есть шифрование заканчивается после осуществления всех базовых циклов.
Преимущество использования 64-разрядного нейропроцессора состоит в том, что он может одновременно обрабатывать не один блок, а два, в связи с чем, скорость шифрования существенно повышается. Также, так как процессор имеет 6-то ступенчатый конвейер команд, то он одновременно может выполнять до 5-ти векторных операций и одну скалярную.
В данной программу на вход поступают два 64-разрядныъ блока, старшие части которых обрабатываются в соответствии с алгоритмом с 1-го по 3 шаг. Затем младшие части используются на 4-м шаге, происходит замена старшей и младшей части данных.
Такая последовательность повторяется 32 раза и в конце передаются выходные данные, которые выводятся на экран.
Практическая часть
2.1 Реализация алгоритма гост 28147-89 на нейропроцессоре nm 6403/6404
разработать программу шифрования shifr1.exe;
запустить shift и дешифрирования deshifr2.exe;
запустите файл shifr.exe, сравнить с результатом;
введите данные для шифрования согласно своему варианту задания;
запишите результаты выполнения программы;
запустите файл deshifr.exe
введите результаты, полученные в пункте 3;
резултаты сравните с вариантом задания и сделайте выводы.
2.2 Реализация алгоритма гост 28147-89 на эмуляторе векторе векторных команд
запустите файл X.exe;
переведите данные по таблице ASCII в шестнадцатеричную систему счисления;
введите старшие части полученных данных, подлежащих шифрованию, в поле X, а в Y – старшую часть используемого на данной итерации ключа.
Выберите операцию сложение по модулю 2 (xor) на эмуляторе, запишите результат и переведите его в двоичный вид;
переведите результат по таблице замен (см. пример);
используя эмулятор, сделайте сдвиг на 11 разрядов влево
Примечание 1: используйте операцию маскирования.
Примечание 2:сдвигайте сначала старшую часть, а потом младшую.
сложите младшие части исходных данных с результатами, полученными в пункте 6:
повторите пункты 2-7 еще 2 раза и получившиеся данные сравните с результатом выполнения пункта 2.1.3.
2.3 Варианты заданий
N=careless M=deserter
N=hydrogen M=entrealy
N=monarchy M=darkness
N=separate M=abstract
N=fracture M=infantry
N=skeleton M=discount
N=sergeant M=military
N=strategy M=maintain
N=antennae M=friction
N=standart M=together
N= courtier M=official
N=supreme M=distress
Ключ для всех вариантов abcd efgh klmn.
2.4 Удаленный доступа к плате NeuroMatrix
Возможность доступа к плате NeuroMatrix по сети осуществляется по средствам специально написанной программы работающей по принципу клиент - сервер. Решения реализованные в программе позволяют решить следующие проблемы:
Ограничения безопасности на компьютерах клиента не ограничивает функциональность программы.
Возможен доступ к плате по сети с любого количества компьютеров
Имеющиеся средства компиляции позволяют бистро исправить код и повторно запустить на выполнения, без дополнительных средств разработки.
Программный модуль является и клиентом и сервером в одном лице, а способ работы определяет по наличию локально установленной платы на компьютере.
Программа начинает работу специальной процедурой опроса наличия платы если результат опроса положительный то программа в дальнейшем оперирует процедурами серверной части модуля, в противном случае по указанному IP адресу высылается тестовый пакет информации с целью определения «запущен ли модуль в режиме сервера»
Схематично взаимодействие программы можно отобразить в следующем виде (рис.4.1).
Через сетевой интерфейс между клиентской и серверной частью передаются пакеты с командами следующего типа. «Загрузить и выполнить микрокод», «Файл к загрузке», «Получить результат», «Плата занята», «Проверка запущенного сервера». Затем команды принятые серверной частью расшифровываются и в зависимости от полученной команды выполняется та или иная процедура взаимодействия с платой. Помимо этого серверная часть получает информацию о пути к микропрограмме в виде пути к файлу в сетевой папке для общего доступа.
Рис.4.1. Взаимодействие с платой NeuroMatriх по сети.
Для корректной работы с платой были введены следующие ограничения:
1. Файлы с микропрограммами должны находиться в папке с сетевым общим доступом. Это сделано для унифицирования пути расположения микропрограммы
2. Серверная часть на время выполнения микропрограммы переходит в состояние «Занята», это исключает коллизии при попытках одновременно выполнять с разных компьютеров микропрограммы.
При выполнении лабораторных работ, как на серверной, так и клиентской части есть возможность получать микропрограмму из файла кода написанного на ассемблере.
Выбрав файл *.ASM возможно его компилировать в файл ELF и затем скомпоновать в файл ABS. Который и будет являться исполняемым файлом на плате с NeuroMatrix.
Для запуска файла ABS удаленно его нужно выбрать (при этом файл должен располагаться в сетевой папке), указать количество возвращаемых параметров и нажать кнопку «Загрузить файл на плату».
Были введены ограничения, с целью предотвратить изменение отладочных целей в нейропроцессоре и недопустить его программного зависания. Эти ограничения связаны с используемым адресным пространством платы. Для возможности съема данных с нейропроцессора надо предусмотреть в самом файле *.asm. (выгружая необходимые результаты в shared memory платы начинающейся с адреса $C0000100). Внешний вид интерфейса взаимодействия программы с платой NM представлен на рисунке 4.2.
Рис.4.2. Внешний вид интерфейса взаимодействия программы с платой NM.
На машине с установленной платой (Server) в программном интерфейсе становятся доступны все кнопки на экране оперирующие функциями с платой и в данном случае процесс обработки следует выполнять вручную строго по шагам.
