Тема: МНОГОПОТОЧНОЕ СОФТ-ПРОЦЕССОРНОЕ ЯДРО ДЛЯ СИСТЕМ УПРАВЛЕНИЯ И ИИ НА БАЗЕ ПЛИС
Закажите новую по вашим требованиям
Представленный материал является образцом учебного исследования, примером структуры и содержания учебного исследования по заявленной теме. Размещён исключительно в информационных и ознакомительных целях.
Workspay.ru оказывает информационные услуги по сбору, обработке и структурированию материалов в соответствии с требованиями заказчика.
Размещение материала не означает публикацию произведения впервые и не предполагает передачу исключительных авторских прав третьим лицам.
Материал не предназначен для дословной сдачи в образовательные организации и требует самостоятельной переработки с соблюдением законодательства Российской Федерации об авторском праве и принципов академической добросовестности.
Авторские права на исходные материалы принадлежат их законным правообладателям. В случае возникновения вопросов, связанных с размещённым материалом, просим направить обращение через форму обратной связи.
📋 Содержание
ГЛАВА 1. РАЗРАБОТКА И ТЕСТИРОВАНИЕ ПРОЦЕССОРНЫХ
АРХИТЕКТУР В СОВРЕМЕННОМ МИРЕ 7
1.1. Физика процессов внутри кристалла 7
1.2. Языки описания аппаратуры 9
1.3. Системы управления и искусственный интеллект в них 10
1.4. Симулирование и тестирование в языках описания аппаратуры 11
1.5. Теория автоматов 12
1.6. Язык ассемблера 13
ГЛАВА 2. БАЗОВЫЕ ТИПЫ ПРОЦЕССОРОВ, ИХ ОСОБЕННОСТИ, ФУНКЦИОНАЛЬНЫЕ БЛОКИ И ВОЗМОЖНОСТИ 15
2.1. Типы процессоров и базовые блоки 15
2.2. Анализ производительности 16
2.3. Однотактный процессор 17
2.4. Многотактный процессор 18
2.5. Конвейерный процессор 20
2.6. Суперскалярный процессор и внеочередного выполнения 24
2.7. Реализация функций в процессоре 25
2.8. Многопоточность и многоядерность 25
2.9. Сравнение реализаций многопоточности в MIPS, PROPELLER, XMOS. 26
ГЛАВА 3. РАЗРАБОТКА МНОГОПОТОЧНОГО СОФТ-ПРОЦЕССОРНОГО ЯДРА ДЛЯ СИСТЕМ УПРАВЛЕНИЯ И ИИ НА БАЗЕ ПЛИС 32
3.1. Арифметико-логическое устройство 32
3.2. Блоки арифметических операций 32
3.3. Блоки логических операций 38
3.4. Блоки операций сдвига 41
3.5. Временной анализатор 43
3.6. Цифровой компаратор 45
3.7. Порты ввода/вывода 48
3.8. Буфферы входа 49
3.9. Маска адресов 51
3.10. Счетчик команд 56
3.11. Память ОЗУ 58
3.12. Память программ 63
3.13. Схема архитектуры проектируемого ядра процессора 69
3.14. Язык ассемблера и пример написания программы 72
ЗАКЛЮЧЕНИЕ 74
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
📖 Введение
Параллелизм выполнения задач для микроконтроллеров и микропроцессоров на сегодняшний день выполняется с помощью суперскалярных ядер работающих вместе с общей кэш-памятью. Каждое из ядер может образовать отдельный полноценный поток, чем и обеспечивается аппаратная многопоточность, но если для обычных ПК на этих ядрах используется множество и так программных потоков (THREAD). Производительность достигается разгоном микропроцессора, добавлением ядер и быстрым выполнением последовательных команд, а в микроконтроллерах чаще всего используется одно ядро, при этом чаще всего с помощью прерываний по таймеру и прерываний по событию создается параллелизм управления устройствами. Что зачастую не всегда очевидно, а применение операционных систем таких как FreeRTOS требует дополнительной памяти и не тривиально в изучении.
Есть предположение, что если поменять архитектуру ядра микро-контроллера, то можно добиться более простого параллельного управления модулями в системе. По предположению это должно дать более простую модель управления параллельными процессами, что может быть использовано в системах управления и системах на основе ИИ.
Исходя из вышесказанного, было принято решение необходимости разработки многопоточного софт-процессорного ядра для систем управления и ИИ на базе ПЛИС, а также проведение симуляции процессов внутри получившейся схемы.
Для разработки ядра было принято решение использовать современные инструменты проектирования Vivado 2019.2.
✅ Заключение
Разработана новая архитектура ядра процессора содержащая в себе самые эффективные принципы многопоточности таких архитектур как XMOS, PROPELLER, MIPS. А именно - в разработанной архитектуре присутствует принцип от XMOS отсутствия как таковой общей памяти ОЗУ и наличие арбитра для переноса значений в другой поток. В спроектированной архитектуре таким арбитром выступает маска адресов, которую можно настроить на передачу данных от одного программного потока ОЗУ другому программному потоку.
Принципом взятым от архитектуры PROPELLER является наличие у программного потока собственной памяти программ.
Принципом взятым от архитектуры MIPS является аппаратная многопоточность. Она состоит из наличия отдельных блоков АЛУ, которые либо заняты либо нет, и если блоки не заняты, то их можно использовать, собственно здесь сохраняется принцип использования блоков процессора не участвующих в выполнении операции другого потока.
Полученная архитектура процессора позволяет решать задачи, а именно цепочки одних и тех же действий над многими переменными, к примеру нахождение значения веса для алгоритма классического perceptron[41]. Либо легко воспроизвести цепочку для ПИД-регулятора для систем управления, где для работы не нужны серьезные интеллектуальные системы.
Параметры и возможные расширения для получившейся архитектуры:
- максимальный размер памяти программ для одного программного потока - 4 Гб;
- максимальный размер ОЗУ для одного потока - 4 Гб;
- разрядность с оперируемыми данными - 32 бита;
- максимальное количество блоков АЛУ, цифровых компараторов и любых других вычислительных устройств - 255 шт.
Такие параметры как количество портов ввода/вывода, входных и выходных портов для ОЗУ могут варьироваться в зависимости от надобности и возможности расположения на кристалле. Параметры объема буферов входов и объем памяти маски адресов напрямую зависит от возможных расширений в данной архитектуре.
Существенными недостатками спроектированной архитектуры оказа-лось требование наличия отличной программы синтеза для программиста, которая бы сообщала о наличии колец или других конфликтных ситуаций при проектировании программы наподобие сред разработки для ПЛИС.
Все блоки памяти данной архитектуры описаны на языке VHDL и были просимулированы в среде разработки Vivado 2019.2, что и представлено в 3-ей главе данной работы.



