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

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 28.08.2020
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

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

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

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

Введение

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

Интернет вещей технология, которая изменяет все сферы жизни человека [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) «Непосредственный операнд». В качестве второго операнда использует число, которое задается прямо в инструкции.

3) «Прыжковый с условием». Инструкция, выполняющая переход по метке «прыжок» при выполнении условия, которое использует регистры.

4) «Прыжковый». Безусловный переход.

5) «Работающий с памятью». Чтение или запись в память.

В структуре указано - «варьируется» так, как длина обрабатываемого вектора может меняться в зависимости от параметров, указанных при синтезе схемы.

В целом, команд небольшое количество, поэтому процессор можно отнести к типу RISC (англ. reduced instruction set computer - компьютер с коротким набором команд). В таблице 1 представлен полный набор команд.

Таблица 1. Набор команд

мнемоника

битовый код

тип

описание

add

0000

регистровый

сложение

and

0001

регистровый

И

or

0010

регистровый

ИЛИ

not

0011

регистровый

отрицание

mul

0100

регистровый

умножение

div

0101

регистровый

деление

addi

0110

непосредственный операнд

сложение с операндом

shfl

0111

непосредственный операнд

сдвиг в лево

shfr

1000

непосредственный операнд

сдвиг в право

beq

1001

прыжковый с условием

переход при верном условии

jmp

1010

прыжковый

безусловный переход

sw

1011

работающий с памятью

запись в память

lw

1100

работающий с памятью

чтение из памяти

nop

1101

пустая команда

ничего не делать

slt

1110

регистровый

установить если меньше

sub

1111

регистровый

вычитание

4.3 Особенности системы

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

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

Большую роль в вычислительных системах играет ввод-вывод данных и в данной работе процессор снабжен интерфейсом, который работает по принципу fifo (first in first out - с англ. яз. первый пришел - первый ушел). Данный способ позволяет подключать разные блоки протоколов передачи например: SPI, UART, I2C.

Рисунок 8. Схема асинхронного FIFO [10].

Как видно на рисунке 5 у нас есть два тактовых сигнала «wclk» (тактовый сигнал протокола передачи) и «rclk» (частота работы процессора). Наличие двух разных клоковых доменов позволяет подключать к процессору различные протоколы передачи, которые работают на разных частотах. Таким образом, повышается легкость встраивания системы в различные приложения.

Так как у нас в схеме fifo есть два клока это влечет за собой некоторые проблемы. Самая главная из них это метастабильность, которая проявляет себя как запрещенный уровень напряжения на выходе последовательной логики. Возникает данное явление из-за невыполнения условии «времени установки» и «времени удержания» при пересечении клоковых доменов. На рисунке 6 показаны времена удержания и установки.

Рисунок 9. Временная диаграмма. «tsetup» и «thold» времена удержания и установки соответственно

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

5. Средства реализации

5.1 Обоснование выбора

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

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

5.2 Процесс проектирования

Реализация вычислительной системы на ПЛИС происходит в несколько этапов [11]. На рисунке 10 представлена блок схема процесса проектирования.

Рисунок 10. Процесс проектирования на ПЛИС

Первый этап - это выбор чипа ПЛИС, основные параметры которого:

· Количество логических блоков

· Количество входов / выходов

· Количество встроенной памяти

· Быстродействие чипа

· Наличие специализированных блоков (DSP, PLL и т.п.)

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

5.3 Обзор используемого программного обеспечения

Выбор программного обеспечения (ПО) главным образом определяется используемой ПЛИС так, как производитель разрешает работать с микросхемой только через свои инструменты. По этой причине и в силу того, что в данной работе используется элементная база от Intel, для разработки используется ПО от Intel: Intel Quartus Prime, ModelSim-Intel.

Quartus Prime

Размещение, наложение ограничении по времени, создание битового файла (см. рис. 10) - это этапы, которые осуществляются в Quartus Prime [12]. По сути, данная программа является набором инструментов, каждый из которых выполняет один из приведенных выше этапов. Основные инструменты:

· Chip planer необходим для ручного назначения логических ресурсов.

· Pin planer отвечает за настройку вводов / выводов

· Timing Analyzer предназначен наложения и анализа ограничении по времени

· Создание битового файла и конфигурация происходят из главного окна Quartus Prime.

Таким образом, в Quartus Prime есть всё необходимое для работы с ПЛИС фирмы Intel Altera. Однако моделирование происходит в ModelSim-Intel.

Рисунок 11. Работа в Quartus Prime

ModelSim - Intel

Как известно тестирование является одним из важных этапов проектирования сложных систем. При работе с ПЛИС тестирование проводится с помощью моделирования логики работы системы. Для проведения симуляции в данной работе используется программа ModelSim [13]. В ней присутствует весь необходимый функционал:

· Поддержка SystemVerilog

· Системные прерывания

· Объектно-ориентированное программирование

· Вывод диаграмм изменения сигналов

· Поддержка Tool Command Language

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

Рисунок 12. Работа в ModelSim

5.4 Элементная база

На сегодняшний день существует два основных производителя ПЛИС - Xilinx и Intel Altera. Каждая компания не уступает другой в ПО или аппаратной части, поэтому выбор был сделан в пользу Intel Altera благодаря плате, на которой расположен чип ПЛИС.

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

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

ПЛИС Cyclone 4

Рисунок 13. Микросхема ПЛИС Altera Cyclone 4 [4]

Для реализации вычислительного устройства используется микросхема ПЛИС Cyclone 4 [4] фирмы Intel Altera. В таблице 2 приведены ресурсы данной интегральной схемы.

Таблица 2. Ресурсы ПЛИС Altera Cyclone 4

Логические элементы

Встроенная память

Умножители

ФАПЧ

Сети тактовой частоты

Банки Ввода

вывода

Кол-во

пинов ввода вывода

6 272

270

15

2

10

8

179

· Логический элемент (ЛЭ), представленный на рисунке 2, позволяет реализовать булевую функцию с 4-8 переменными. Наличие мультиплексоров позволяет объединять такие ЛЭ для создания более сложного функционала. Также есть возможность выбрать с помощью какой логик будет создана функция: комбинационной или последовательной.

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

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

· ФАПЧ (Фазовая автоподстройка частоты) - генератор, предназначенный для создания новой частоты, из подающейся на вход. Встроенный в ПЛИС ФАПЧ позволяет создать систему, которая содержит несколько тактовых областей с различной частотой работы.

· Сеть тактовой частоты необходима для корректной работы последовательной логики. Суть её работы заключается в недопущении расфазировки тактовых сигналов.

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

· Большое количество пинов помогает создать гибкую систему ввода и вывода данных.

Отладочная плата

Рисунок 14. Отладочная плата RZ-Easy FPGA A2.1 с ПЛИС Cyclone 4 [14]

Для создания вычислительного устройства использовалась плата RZ-Easy FPGA A2.1 [14], изображенная на рисунке 14. На плате присутствует множество интерфейсов такие как:

· PS2

· RS232

· SP3232

· VGA

· JTAG

· AS

· LCD

· Выходы/входы ПЛИС для задания функционала пользователем

Также на плате расположены:

· M25P16 - микросхема для сохранения конфигурации ПЛИС при отключении питания

· SDRAM - оперативное запоминающие устройство объемом 64 Мбит

· Кварцевый генератор тактовой частоты (50 МГц)

· ПЛИС Cyclone 4

UART интерфейс

Рисунок 15. Передача данных по UART

Universal Asynchronous Receiver-Transmitter (UART) - это асинхронный протокол связи, использующий 2 линии по одной для отправки и принятия данных [15]. Передача данных в UART идет по одному биту в равные промежутки времени. Для задания времени удержания бита на линии задают скорость UART, которая указывается в бодах. Скорость (S) бодах связана с длительностью бита (T), как T = 1/S. Когда линия простаивает, она удерживается в логической единице. Начало передачи начинается с посылки стартового бита, который равен логическому нулю. В конце на линию выставляется один стоповый бит (лог. 1). Обычно за раз передают один байт. На рисунке 15 можно увидеть две транзакции передающиеся по UART.

В работе UART используется как средство связи для отладки вычислительной системы. Подключение происходит через конвертер USB - UART CP2102 фирмы Silicon Labs [16] (см. рисунок 16). USB подключается к персональному компьютеру, а UART к ПЛИС, внутри которой реализован контроллер UART. На рисунке 17 представлена принципиальная схема конвертера.

Рисунок 16. Конвертер USB - UART CP2102 фирмы Silicon Labs

Рисунок 17. Принципиальная схема конвертера [16]

5.5 Языки для описания аппаратуры и временных ограничений

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

Языки описания аппаратуры позволили повысить уровень абстракции и тем самым упростили разработку СБИС (сверхбольшая интегральная схема). На данный момент существует два основных языка: SystemVerilog и VHDL.

Выбор был сделан в пользу SystemVerilog так, как он имеет несколько преимущества перед VHDL:

· Наличие объектно-ориентированного подмножества языка программирования

· Universal Verification Methodology предполагает использование SystemVerilog

· Менее громоздкий синтаксис

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

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

Стандартным инструментом задания ВО на сегодняшний день является язык synopsys design constraints.

6. Тестирование и замеры параметров

6.1 Тестирование

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

Функциональное тестирование

Функциональное тестирование - это проверка всех возможностей, определяемых спецификацией, верифицируемой системы. Так на рисунке 18 приведен пример тестируемого конечного автомата (КА) Мура.

В конечном автомате Мура все выходные сигналы зависят от внутреннего состояния КА. Переход в другое состояние КА происходит только под воздействием сигналов, подаваемых на вход. Для тестирования КА необходимо, подавая различные сигналы на вход А, сопоставлять значения на выходе Y и внутренние состояния КА на соответствие спецификации. Если всё сходится, то блок прошел тестирование, если нет, то исправляется код, написанный на языке описания аппаратуры. Таким образом происходит верификация логики работы цифровой схемы с помощью функционального тестирования.

Рисунок 18. Схема конечного автомата Мура

В данной работе с помощью функционального тестирования верифицируется небольшие блоки такие как: Арифметико-логическое устройство, регистровый файл, котроллер UART, интерфейс FIFO. Однако по мере роста проекта сложность росла по экспоненте, поэтому возникла необходимость использовать объектно-ориентированное подмножество (ООП) SystemVerilog.

ООП SystemVerilog

Существуют распространённая структура [17], изображенная на рисунке 19, для верификации с помощью ООП SystemVerilog.

Рисунок 19. Структура системы для верификации

На рисунке 19 изображены пунктирной линей классы, каждый из которых выполняет свою функцию:

· Generator создает сценарии, которые описывают воздействия, подающиеся на тестируемое устройство. К примеру, мобильный телефон одновременно может выполнять такие сценарии как: проигрывание музыки, скачивание документов, показ видео и прочие. Генератор создает эти сценарии на основе различных случайных переменных (объем файла, место в памяти, и т.д.).

· Agent принимает сценарии и переводит их в более мелкие команды. Так если пришел запрос на чтение данных то, он переводится в более мелкие команды: запись необходимых данных в DMA для начала передачи информации, подачи тактовой частоты, включение питания и т.п.

· Driver, получая команды от Agent, преобразует их в сигналы, подающиеся на тестируемое устройство.

· Monitor принимает сигналы с выходов тестируемого устройства и переводит в более высокоуровневые ответы.

· Checker сравнивает ответы, полученные от monitor, с ожидаемыми.

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

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

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

6.2 Замеры характеристик вычислительной системы

После описания логики работы на SystemVerilog и ее верификации был проведен расчет максимальной частоты работы схемы при различных температурах в ПЛИС Altera Cyclone 4. Расчет был осуществлен с помощью языка Synopsys design constraints и инструмента Quartus Timing Analyzer [18]. Полученные данные приведены в таблице 3.

Таблица 3. Максимальные частоты работы схемы при различных температурах

Тактовый сигнал

Температура С

Период нс

МГц

clk

0

18,072

55,33

clk_intrfc

0

5,636

177,4

clk

85

19,359

51,66

clk_intrfc

85

6,054

165,18

· clk - частота работы процессора

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

Для реализации вычислительного устройства с параметрами, приведенными в таблице 4, необходимо было затратить 3190 логических элементов и 7Кбит встроенной памяти.

Таблица 4. Параметры вычислительного устройства

Длина вектора

Кол-во бит в слове

Кол-во бит в слове для отображения дробной части

Кол-во регистров

8

8

4

16

Стоит отметить, что параметры вычислительного устройства до синтеза можно изменять тем самым подстраивая систему под конкретную задачу. В ПЛИС Altera Cyclone 4 недостаточно ресурсов для более производительной системы.

7. Сравнение с аналогами

В таблице 5 представлены две системы, которые применяются для граничных вычислении, и разработанное в ходе данной работы устройство. Видно, что устройство под номером 2 (далее устр. 2) уступает устройству под номером 1 в частоте. Однако благодаря векторной архитектуре в задачах, в которых есть параллелизм данных, можно добиться более высокой производительности с использованием устр. 2. Если сравнивать с устройством под номером 3 (далее устр. 3) можно прийти к выводу, что устр. 2 больше подходит для работы с дробными числами, но при большем потреблении ресурсов (логических блоков).

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

Таблица 5. Параметры вычислительных систем

логические блоки, шт.

длина вектора, слов

разрядность, бит

формат данных

Частота работы, МГц

№1

784

1 (скалярный)

32

целое число

156,25

№2

3190

8

8

фиксированная точка

51,66

№3

2990

4

8

целое число

37,88

1 (скалярный)

32

· №1 - Nios 2 [19]

· №2 - Устройство, представленное в данной работе

· №3 - RISC V с векторным расширением [20]

Заключение

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

· Описание логики работы цифровой схемы на SystemVerilog

· Моделирование в ModelSim

· Верификация с ООО SystemVerilog

· Размещение на кристалле ПЛИС в программном пакете Quartus

· Расчет временных характеристик цифровой схемы на ПЛИС с помощью Synopsys design constraints

Вычислительная система имеет такие особенности:

· Использует параллелизм данных (векторный)

· Формат данных с фиксированной точкой

· Ввод-вывод на основе буфера FIFO

· Гибкость настройки вывод-вывода благодаря расположению на ПЛИС

Для реализации на ПЛИС Altera Cyclone 4 векторного восьмибитного процессора, одновременно обрабатывающего 8 слов с форматом данных «фиксированная точка» потребовалось 3190 логических блоков и 7 Кбит встроенной памяти. Вычислительная система работает на частоте 51 МГц. Диапазон рабочей температуры от 0С до 85С.

Также описание на SystemVerilog может свободно распространяться как открытая вычислительная система. Это дает возможность модифицировать устройство и задавать параметры для настройки системы под конкретную задачу.

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

Список литературы

[1] Yeo, Kiat Seng & Chian, Mojy & Ng, Tony & Tuan, Do. (2015). Internet of Things: Trends, challenges, and applications. Proceedings of the 14th International Symposium on Integrated Circuits, ISIC 2014. 568-571. 10.1109/ISICIR.2014.7029523.

[2] Ning, Huansheng & Li, Yunfei & Shi, Feifei & Yang, Laurence. (2020). Heterogeneous edge computing open platforms and tools for internet of things. Future Generation Computer Systems. 106. 10.1016/j.future.2019.12.036.

[3] Edge Computing: Decentralizing for Performance in the IoT. URL:https://www.strategyanalytics.com/access-services/enterprise/iot/reports/report-detail/edge-computing-decentralizing-for-performance-in-the-iot (дата обращения 23.02.2020)

[4] Cyclone IV Device Handbook, Altera. URL:https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/cyclone-iv/cyclone4-handbook.pdf (дата обращения 24.02.2020)

[5] Хеннеси Джон Л., Паттерсон Дэвид А. Компьютерная архитектура. Количественный подход. Издание 5-е Москва: ТЕХНОСФЕРА, 2016. - 936 с., ISBN 97805-94836-413-1

[6] Loghin, Dumitrel & Ramapantulu, Lavanya & Teo, Yong. (2017). On Understanding Time, Energy and Cost Performance of Wimpy Heterogeneous Systems for Edge Computing. 10.1109/IEEE.EDGE.2017.10.

[7] Andrйs Rodrнguez, Angeles Navarro, Rafael Asenjo, Francisco Corbera, Rubйn Gran, Darнo Suбrez, Jose NunezYanez. Exploring heterogeneous scheduling for edge computing with CPU and FPGA MPSoCs. Journal of Systems Architecture. Volume 98. 2019. Pages 27-40. ISSN 1383-7621.

[8] H. Junhong, Z. Tianxu and J. Haoyang, «New multi-DSP parallel computing architecture for real-time image processing,» in Journal of Systems Engineering and Electronics, vol. 17, no. 4, pp. 883-889, Dec. 2006, doi: 10.1016/S1004-4132 (07) 60032-2.

[9] Wan-Young Chung, Duk-Dong Lee, Real time multi-channel gas leakage monitoring system using CPLD chip, Sensors and Actuators B: Chemical, Volume 77, Issues 1-2, 2001, Pages 186-189, ISSN 0925-4005.

[10] Verilog, Expert & Cummings, Clifford. (2002). Simulation and Synthesis Techniques for Asynchronous FIFO Design.

[11] UltraFast Design Methodology. URL: https://www.xilinx.com/support/documentation-navigation/design-hubs/vivado-design-suite.html (дата обращения 25.02.2020)

[12] Quartus II Handbook. URL: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/qts/quartusii_handbook.pdf (дата обращения 26.02.2020)

[13] ModelSim® User's Manual. URL: https://www.microsemi.com/document-portal/doc_view/131619-modelsim-user (дата обращения 11.02.2020)

[14] Отладочная плата RZ-Easy FPGA A2.1. URL: http://rzrd.net/product/? 79_502.html (дата обращения 10.02.2020)

[15] Передача данных через UART. URL: http://easyelectronics.ru/avr-uchebnyj-kurs-peredacha-dannyx-cherez-uart.html (дата обращения 19.01.2020)

[16] Single chip USB to UART bridge. URL: https://static.chipdip.ru/lib/248/DOC000248655.pdf (дата обращения 03.03.2020)

[17] C. Spear, G. Tumbush, SystemVerilog for Verification, Edition Number 3, Springer US, 2012 - 464 с., ISBN 978-1-4614-0714-0

[18] Intel® Quartus® Prime Timing Analyzer Cookbook. URL: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/manual/mnl_timequest_cookbook.pdf (дата обращения 29.03.2020)

[19] Nios II Processor Reference Guide. URL: https://www.intel.com/content/dam/www/programmable/us/en/pdfs/literature/hb/nios2/n2cpu-nii5v1gen2.pdf (дата обращения 12.04.2020)

[20] RISC-V CPU (Tape-Out with U18 Technology). https://github.com/jasonlin316/RISC-V-CPU (дата обращения 12.04.2020)

Размещено на Allbest.ru


Подобные документы

  • Историческое развитие средств вычислений. Структурные схемы вычислительных систем. Развитие элементной базы и развитие архитектуры самих систем. Основные классы вычислительных машин. Каналы передачи данных. Требования к составу периферийных устройств.

    реферат [48,7 K], добавлен 09.01.2011

  • Сущность и задачи системы грид их практическое применение. Основные идеи, заложенные в концепции грид-вычислений. Уровни архитектуры грид, их характеристика. Технология облачных вычислений. Промежуточное программное обеспечение в распределенных системах.

    контрольная работа [736,9 K], добавлен 06.01.2013

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

    презентация [8,3 M], добавлен 11.10.2014

  • Основные требования к составу и параметрам технических средства. Верификация программного продукта. Расширение функционала программы и его реализация. Отладка и тестирование программного продукта. Тестирование программы в граничных и реальных условиях.

    курсовая работа [1,3 M], добавлен 29.12.2014

  • Обзор некоторых сведений о матрицах. Описание этапов работы с функциями. Проектирование программы для выполнения вычислений над матрицами в среде программирования MSVisualStudio 2008, при помощи языка программирования C++. Проверка результатов в Mathcad.

    курсовая работа [182,0 K], добавлен 06.04.2013

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

    курсовая работа [125,2 K], добавлен 24.09.2010

  • Классификации архитектур вычислительных систем. Организация компьютерных систем. Устройство центрального процессора. Принципы разработки современных компьютеров. Эволюция микропроцессорных систем. Увеличение числа и состава функциональных устройств.

    дипломная работа [1,4 M], добавлен 29.01.2009

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

    курсовая работа [669,3 K], добавлен 07.09.2015

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

    дипломная работа [2,2 M], добавлен 13.07.2015

  • Технология распределенных вычислений CORBA, взаимодействие компонентов и архитектура. Основное назначение CORBA и COM. Поддержка операционных систем, предлагаемые службы и масштабируемость. Формальное описание архитектуры и проблемы ее реализации.

    курсовая работа [89,3 K], добавлен 02.12.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.