Дипломная работа: Разработка устройства для граничных вычислений

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Выпускная квалификационная работа

Разработка устройства для граничных вычислений

Манджиев Дмитрий Анатольевич

Введение

вычислительный граничный архитектура

Интернет вещей технология, которая изменяет все сферы жизни человека [1]. Так в медицине, промышленности, государственных услугах, транспорте, банковском деле, она позволяет сократить издержки и увеличить доход. Помимо пользы столь важных сферах жизни мы не заметили, как наши обыденные ежедневные задачи становятся намного проще благодаря данной технологии.

Все эти блага требуют решения определенных проблем, связанных с использованием данной технологии [2]. Например, множество датчиков увеличивают энергопотребление, нагрузку на средства связи. Также во многих применениях требуется соблюдать ограничения по времени обработки данных. Всё это влечет за собой поиск новых архитектур для вычислительных систем. В данной работе идет поиск и проектирование подходящий архитектуры процессора для решения проблем, возникающих с применением интернета вещей.

Первая задача - это определить оптимальный формат данных, которые будет обрабатывать вычислительное устройство, от этого во много зависит производительность. Вторая, но менее важная часть процессора является система ввода-вывода, позволяющая сократить время обработки данных. Что касается адаптивности к конкретным задачам данная проблема будет решаться на уровне языка описания аппаратуры, где будут предусмотрены настраиваемые параметры.

Очень мало открытых для использования и модификации архитектур процессоров. С учетом этого, а также того, что интернет вещей требует разнообразия в вычислительных системах, то есть различных соотношении цен, энергопотребления, производительности и прочего, появляется потребность в новых свободно распространяемых архитектурах. Данный проект также призван внести вклад в решение этой проблемы.

1. Граничные вычисления

Граничные вычисления - это информационная инфраструктура, которая предлагает вынос вычислительных ресурсов из облачного дата центра на периферию в близи источников данных (датчиков, сенсоров и т.п.). На рисунке 1 представлена структура со слоем граничных вычислении.

Рисунок 1. Структурная схема Интернета Вещей

Построение инфраструктуры с использованием граничных вычислении позволяет получить некоторые преимущества:

· Первичная фильтрация данных, которая позволяет отправлять только релевантные данные в облако

· Обработка в близи источника данных уменьшает время отклика, что порой бывает критически важно.

· Возможность обрабатывать данные только локально дает более высокий уровень безопасности и конфиденциальности

· Уменьшение объемов отправляемых данных снижает требования к емкости облачных хранилищ и пропускной способности сети

Согласно прогнозам Strategy Analytics [3], к 2025 г. более половины данных, генерируемых Интернетом вещей, будут обрабатываться при помощи данной технологии. Таким образом, имея очевидные преимущества граничные вычисления будут активно внедряться в различные отрасли.

2. Обзор аппаратных платформ

Помимо универсальных процессоров, которые способны выполнять большой спектр задач, существую вычислительные системы, не обладающие большой универсальностью, но хорошо подходящие к конкретной области применения. Можно выделить несколько таких платформ:

· ПЛИС

· Графически процессоры

· Специализированные интегральные схемы

· Сопроцессоры для обработки сигналов

ПЛИС (Программируемые логические интегральные схемы) применяются в основном для прототипирования при производстве интегральных схем, а также недавно стали использоваться для высокопроизводительных вычислении. ПЛИС представляют из себя матрицу соединенных между собой логических блоков (см. рис. 1), содержащие необходимые элементы для создания как последовательной логики, так и комбинационной.

Рисунок 2. Логический блок чипа Cyclone 4 [4]

Для того, чтобы ПЛИС могла выполнить определенную задачу ее необходимо с конфигурировать. Основной инструмент для этого язык описания аппаратуры, на котором описывается цифровая схема, выполняющая определённый алгоритм.

ПЛИС хорошо подходит для решения задач, требующих низкое время отклика и энергоэффективность. Однако разработка для ПЛИС характеризуется высокой сложностью в связи с тем, что описание работы происходит на уровне цифровой схемы, а не программы.

Графические процессоры (или на англ. GPU, graphics processing unit) первоначально были созданы для разгрузки центрального процессора от обработки графики, что наложило некоторый отпечаток на архитектуру устройства.GPU для эффективной работы с видеоданными используют параллелизм данных [5]. Вследствие этого архитектура данного устройства представлена объединением нескольких SIMD (англ. single instruction, multiple data - одиночный поток команд, множественный поток данных) процессоров (см. рис. 2).

Рисунок 3. Упрощенная структурная схема многопотокового SIMD процессора [5]

Сегодня графические процессоры - это основной вычислительный элемент высокопроизводительных вычислений.

Помимо ПЛИС и GPU существуют специализированные интегральные схемы, к которым можно отнести нейропроцессоры, процессоры для обработки сигналов. Их особенность заключается в проблемно-ориентированной системе команд и архитектуре, специально оптимизированной под конкретную задачу. Ввиду высокой вариативности архитектурных решении данных устройств нет возможности описать их в данной работе.

3. Обзор вычислительных систем для граничных вычислении

3.1 Центральный процессор с ПЛИС

Rodriguez и другие [6] предлагают использовать системы на кристалле (или на англ. MPSoC, MultiProcessor System-on-Chip) для граничных вычислений. Данная технология представляет из себя расположенные на одной интегральной схеме процессор и ПЛИС. Авторы для достижения большей гибкости используют инструмент синтеза высокого уровня, OpenCL, который позволяет описывать конфигурацию ПЛИС абстрагируясь от цифровой схемотехники.

Для достижения наилучших показателей работы системы авторами используется планировщик, способный динамически и адаптивно распределять нагрузку между центральным процессорным устройством (ЦПУ) и ПЛИС. Для оценки производительности было проведено сравнение с одноядерным и многоядерным процессорами, а также их комбинациями с ПЛИС. Оценка проводилась с помощью 7 тестов, включающих задачи из таких областей как: линейная алгебра, криптография, гравитационная динамика, физическое моделирование, 3D - графика, управление рисками.

Результат работы показывает, что ПЛИС в сочетание с многоядерным процессором улучшает производительность в 2,9 и энергоэффективность в 2,7 по сравнению с вычислениями только на ускорительном устройстве и еще больше, если сравнение идет с одним центральным процессором.

Таким образом, авторы приходят к выводу, что связка ПЛИС и ЦПУ позволяет достичь хороших результатов при условии, что будет учтена специфика решаемой задачи и оптимальная конфигурация ПЛИС.

3.2 Центральный процессор с Графическим ускорителем

Loghin и другие [7] проводят анализ времени отклика, энергопотребления и стоимости между вычислениями в облаке, двумя гетерогенными системами, состоящих из центральных и графических процессоров, и гомогенными системами.

Сравнивая гетерогенные системы с гомогенными с помощью тестов MapReduce, Loghin и другие пришли к выводу, что в большинстве приложениях гетерогенные системы могу демонстрировать лучшие показатели времени обработки данных и энергопотребления. Однако остаются случаи, где стоит применить гомогенные системы.

Ввиду большого разнообразия облачных вычислительных устройств в статье было выведено отношение эквивалентности между облачными и граничными системами по их производительности и времени выполнения. Loghin и другие пришли к заключению, что 12 граничных устройств достигают такой же или лучшей производительности в сравнении с одним экземпляром мощных облачных сред с учетом коэффициента эквивалентности.

Главный вывод данной статьи заключается в том, что граничные вычисления, использующие связку центрального процессора с графическим, дешевле, чем мощные облачные решения, за исключением случаев небольших кластеров устройств, так как они не могу амортизировать затраты на обслуживающий персонал.

3.3 Объединение цифровых сигнальных процессоров

Для граничных вычислении применяют также цифровые сигнальные процессоры (ЦСП). Так в статье [8] Junhong и другие используют ЦСП для обработки изображении в реальном времени.

Система, описанная в этой статье, состоит из двух типов модулей. Первый - это ведущий модуль, который управляет вторым типом - ведомым. На рисунке 1 представлена архитектура системы.

Рисунок 4. Структурная схема сигнальных процессоров

Как видно из схемы к одному ведущему устройству может подключаться несколько ведомых посредством различных шин. Здесь и заключается особенность системы дело в том, что один из интерфейсов реализуется на базе ПЛИС. Это делает систему более изменяемой и расширяемой, сохраняя высокую пропускную способность.

Провидя эксперименты, авторы в заключении приходят к выводу, что представленная архитектура с несколькими цифровыми сигнальными процессорами отличается высокой эффективностью, стабильностью и надежностью.

3.4 Сложное программируемое логическое устройство

Complex Programmable Logic Device (с англ. Сложное программируемое логическое устройство) - это разновидность ПЛИС, отличающаяся более высокой энергоэффективностью и низкой стоимостью. Такие преимущества достигаются за счет уменьшение возможностей реализации цифровой логики.

CPLD благодаря своим характеристикам хорошо подходят для сферы интернета вещей. Так в статье [9] данное устройство используется для создания системы мониторинга утечек природного газа в реальном времени.

Сеть датчиков обрабатывается многоканальной системой с разделением времени. Входные сигналы каждого газоанализатора принимаются в установленное время и обрабатываются последовательно. На рисунке 5 изображена схема управляющей платы, а на рисунке 6 - цифровая схема, реализованная в CPLD.

Рисунок 5. Схема управляющей платы

Рисунок 6.Цифровая схема, реализованная в CPLD

Данный пример показывает, что потребность в граничных вычислениях можно удовлетворить с помощью дешевых и простых CPLD, дающих возможность обрабатывать данные в режиме реального времени при этом экономя электроэнергию.

4. Описание архитектуры вычислительной системы

4.1 Тракт данных

Процессор, который представлен в данной работе, является векторным и данные представлены в виде фиксированной точки. Слово «векторный» подразумевает в данном контексте вычислительную систему, в которой одна инструкция применяется к нескольким данным одновременно. Обрабатываемая информация представлена в формате фиксированной точки, что позволяет с одной стороны с экономить ресурсы с другой проводить вычисления с дробными числами.

В тракте данных основные компоненты - это память инструкции, регистровый файл, контроллер, векторное арифметико-логическое устройство, память данных, блок разрешения конфликтов.

Обработка данных и выполнение инструкций происходит в несколько этапов:

· Выборка инструкции

· Декодирование

· Выполнение

· Запись/чтение

· Обратное запись

Из рисунка 4 видно, что каждому этапу выполнения соответствует определенная часть конвейера. Благодаря этому можно выполнять несколько инструкции одновременно на разных стадиях и загружать функциональные блоки более равномерно в сравнении с однотактовым процессором.

Рисунок 7. Упрощенная схема тракта данных

Применение конвейеризации приводит к появлению конфликтов, одновременно выполняющихся инструкции. Так, например среди них «запись после чтения», которая появляется при не своевременно обновленных данных. Для решения подобных проблем был создан блок разрешения конфликтов, который, в частности, решает «запись после чтения» с помощью пересылки новых данных через несколько стадий конвейера.

В конце стоит отметить, что архитектура, описанная на SystemVerilog, может изменяться настройкой параметров в коде, который ее описывает. Так, например можно задать размерность вектора данных или изменить разрядность слов тем самым повысив точность и границы представляемых чисел.

4.2 Набор команд

Набор команд состоит из пяти типов:

1) «Регистровый». Работает с регистрами и результат записывает в регистровый файл.

2) «Непосредственный операнд». В качестве второго операнда использует число, которое задается прямо в инструкции.

Источник: https://otherreferats.allbest.ru/download/1226700/