- •Лабораторная работа № 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.2. Реализация алгоритма шифрования на процессоре nm6403
Для реализации шифрования на нейропроцессоре был взят алгоритм ГОСТ 28147-89 в режиме простой замены, то есть шифрование заканчивается после осуществления всех базовых циклов.
Преимущество использования 64-разрядного нейропроцессора состоит в том, что он может одновременно обрабатывать не один блок, а два, в связи с чем скорость шифрования существенно повышается. Также, так как процессор имеет 6 - ступенчатый конвейер команд, он одновременно может выполнять до 5-ти векторных операций и одну скалярную.
В данной программе на вход поступают два 64-разрядных блока, старшие части которых обрабатываются в соответствии с алгоритмом с 1-го по 3-й шаг. Затем младшие части используются на 4-м шаге, происходит замена старшей и младшей частей данных.
Такая последовательность повторяется 32 раза, и в конце передаются выходные данные, которые выводятся на экран.
Практическая часть
2.1. Реализация алгоритма гост 28147-89 на нейропроцессоре nm6403/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.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 адресу высылается тестовый пакет информации с целью определения «запущен ли модуль в режиме сервера».
Схематично взаимодействие программы можно отобразить в следующем виде (рис.3).
Через сетевой интерфейс между клиентской и серверной частью передаются пакеты с командами следующего типа: «Загрузить и выполнить микрокод», «Файл к загрузке», «Получить результат», «Плата занята», «Проверка запущенного сервера». Затем команды, принятые серверной частью, расшифровываются и в зависимости от полученной команды выполняется та или иная процедура взаимодействия с платой. Помимо этого, серверная часть получает информацию о пути к микропрограмме в виде пути к файлу в сетевой папке для общего доступа.
Рис.3. Взаимодействие с платой NeuroMatriх по сети
Для корректной работы с платой были введены следующие ограничения
1. Файлы с микропрограммами должны находиться в папке с сетевым общим доступом. Это сделано для унифицирования пути расположения микропрограммы.
2. Серверная часть на время выполнения микропрограммы переходит в состояние «Занята», это исключает коллизии при попытках одновременно выполнять с разных компьютеров микропрограммы.
При выполнении лабораторных работ как на серверной, так и на клиентской части есть возможность получать микропрограмму из файла кода, написанного на ассемблере.
Выбрав файл *.ASM, возможно его компилировать в файл ELF и затем скомпоновать в файл ABS, который и будет являться исполняемым файлом на плате с NeuroMatrix.
Для запуска файла ABS удаленно его нужно выбрать (при этом файл должен располагаться в сетевой папке), указать количество возвращаемых параметров и нажать кнопку «Загрузить файл на плату».
Были введены ограничения с целью предотвратить изменение отладочных целей в нейропроцессоре и не допустить его программного зависания. Эти ограничения связаны с используемым адресным пространством платы. Для возможности съема данных с нейропроцессора надо предусмотреть в самом файле *.asm. (выгружая необходимые результаты в shared memory платы, начинающейся с адреса $C0000100). Внешний вид интерфейса взаимодействия программы с платой NM представлен на рисунке 4.
Рис.4. Внешний вид интерфейса взаимодействия программы с платой NM
На машине с установленной платой (Server) в программном интерфейсе становятся доступны все кнопки на экране, оперирующие функциями с платой, и в данном случае процесс обработки следует выполнять вручную строго по шагам.