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

Функциональная верификация микропроцессоров. Анализаторы формальных спецификаций. Генераторы кода и библиотеки моделирования. Техники генерации тестовых программ. Спецификации архитектуры, язык описания шаблонов. Размещение команд и данных в памяти.

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

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

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

Таблица 7. Статистика по специфицированным командам RISC-V

Класс команд

Число специфицированных команд

RV32I (целочисленная арифметика, доступ к памяти, ветвления)

37

RV32I (доступ к управляющим регистрам)

0 (из 6)

RV32I (системные команды)

0 (из 9)

RV64I (целочисленная арифметика, доступ к памяти)

12

RV32M (целочисленное умножение и деление)

8

RV64M (целочисленное умножение и деление)

5

RV32A (атомарные операции)

0 (из 11)

RV64A (атомарные операции)

0 (из 11)

RV32F (плавающая арифметика)

0 (из 26)

RV64F (плавающая арифметика)

0 (из 4)

RV32D (плавающая арифметика)

0 (из 26)

RV64D (плавающая арифметика)

0 (из 6)

Всего

62 (из 161)

4.4.3 Генерация тестовых программ для архитектуры RISC-V

Для генератора тестовых программ для архитектуры RISC-V были разработаны шаблоны тестовых программ, демонстрирующие его возможности. Все общие свойства шаблонов для данной архитектуры были описаны в базовом классе, в котором были добавлены дополнительные оберточные функции для доступа к регистрам и командам. Это позволило использовать в шаблонах нотацию, максимально приближенную к используемой языком ассемблера для RISC-V. Всего было разработано около 10 шаблонов, позволяющих создавать тесты следующих типов:

· детерминированные тесты для команд целочисленной арифметики;

· случайные тесты для команд целочисленной арифметики;

· комбинаторные тесты для команд целочисленной арифметики;

· тесты со строенными проверками для команд целочисленной арифметики;

· комбинаторные тесты на команды ветвления (перебор трасс исполнения);

Таким образом, проведенные эксперименты показали, что предложенный метод позволяет сконструировать работоспособный генератор тестовых программ для архитектуры RISC-V. Важно отметить, что данный генератор, поддерживающий 40% от общего числа команд, был разработан всего за 3 недели.

Выводы

Предложенный метод автоматизации конструирования генераторов тестовых программ был применен для микропроцессоров MIPS64, ARMv8, PowerPC и RISC-V. Для данных архитектур были разработаны формальные спецификации системы команд (на языке nML) и подсистемы управления памятью (на языке mmuSL), на основе которых были сконструированы генераторы тестовых программ. Общая статистика по разработанным формальным спецификациям приводится в таблице 8.

Таблица 8. Статистика по разработанным формальным спецификациям

Архитектура

MIPS64

ARMv8

PowerPC

RISC-V

Число заспецифицированных команд

235

1015

34

62

Размер nML спецификаций в строках кода

3999

18178

935

816

Размер mmuSL спецификаций в строках кода

267

2643

0

0

Общие трудозаты в человеко-месяцах

4

30

1

0.75

Трудоемкость описания одной команды в человеко-днях

0.37

0.65

0.64

0.27

Практический опыт показал, что трудоемкость разработки формальных спецификаций находится в линейной зависимости от количества команд, поддерживаемых микропроцессором. Трудоемкость описания одной команды зависит от сложности системы команд и в среднем составляет 0.48 человеко-дня. Для сравнения: при использовании инструмента MicroTESK 1.0, который предполагает разработку спецификаций на языке Java, трудоемкость описания одной команды архитектуры MIPS64 составляет около 0.8 человеко-дня [11, 99]. Таким образом, предложенный метод позволяет сократить трудозатраты на создание генератора тестовых программ примерно в 2 раза. Сравнение с другими инструментами генерации не приводится, так как данные о трудоемкости их конфигурирования отсутствуют в открытых источниках.

Сконструированные генераторы тестовых программ отвечают основным требованиям, предъявляемым к промышленным инструментам такого рода:

· поддержка различных техник построения тестовых программ (случайные, комбинаторные, на основе ограничений);

· возможность построения тестов со встроенными проверками;

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

Генераторы тестовых программ для MIPS64 и ARMv8 применяются в отечественных и зарубежных компаниях.

Заключение

Основные научные и практические результаты, полученные в диссертационной работе и выносимые на защиту, состоят в следующем:

1. Разработан метод автоматизации конструирования генераторов тестовых программ для микропроцессоров на основе формальных спецификаций.

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

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

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

Разработанный программный инструмент применяется в промышленных проектах по верификации микропроцессоров.

Благодарности. Автор выражает благодарность А.С. Камкину за неоценимый вклад в проведенную работу, без энтузиазма и оптимизма которого она бы не состоялась. Отдельную благодарность автор выражает коллегам по Институту, которые участвовали в апробации разработанного инструмента.

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

1. Татарников А.Д. Обзор методов и средств генерации тестовых программ для микропроцессоров. Труды ИСП РАН, т. 29, в. 1, 2017, С. 167-194.

2. Камкин А.С., Коцыняк А.М., Проценко А.С., Татарников А.Д., Чупилко М.М.. Генератор тестовых программ для архитектуры ARMv8 на основе инструмента MicroTESK. Труды ИСП РАН, т. 28, в. 6, 2016, С. 87-102.

3. Татарников А.Д. Построение поведенческих моделей микропроцессоров для генерации тестовых программ. Известия высших учебных заведений. Физика. Том 59. No 8/2. 2016. С. 97-100.

4. Tatarnikov A. An Approach to Instruction Stream Generation for Functional Verification of Microprocessor Designs. Proceedings of 14th IEEE East-West Design & Test Symposium (EWDTS'2016). 2016. P. 270-273.

5. Татарников А.Д. Комбинаторная генерация тестовых программ для микропроцессоров на основе формальных спецификаций системы команд. Сборник трудов конференция «Проблемы разработки перспективных микро- и наноэлектронных систем». 2016. Часть II. C. 38-45.

6. Tatarnikov A. Language for Describing Templates for Test Program Generation for Microprocessors. Proceedings of the Institute for System Programming Volume 28 (Issue 4). 2016. P. 77-98.

7. Chupilko M., Kamkin A., Kotsynyak A., Protsenko A., Smolov S., Tatarnikov A. Specification-Based Test Program Generation for ARM VMSAv8-64 Memory Management Units. Proceedings of 16th International Workshop on Microprocessor and SOC Test and Verification (MTV 2015), 2015. P. 1-7.

Приложения

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

...

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

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

    курсовая работа [2,2 M], добавлен 28.09.2011

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

    лабораторная работа [45,6 K], добавлен 15.03.2009

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

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

  • Логические функции и структура микропроцессоров, их классификация. История создания архитектуры микропроцессоров x86 компании AMD. Описание К10, система обозначений процессоров AMD. Особенности четырёхъядерных процессоров с микроархитектурой К10 и К10.5.

    курсовая работа [28,9 K], добавлен 17.06.2011

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

    курсовая работа [4,7 M], добавлен 26.03.2009

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

    презентация [119,4 K], добавлен 05.01.2014

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

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

  • Унифицированный язык моделирования UML. Проектирование и документирование программных систем. Листинги кода проектируемой программы, сгенерированные RationalRose. Модель информационной подсистемы для управления, учета, контроля и ведения библиотеки.

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

  • Исследование и оценка возможностей работы со следующими разделами библиотеки приложения Simulink пакета программ Matlab: Source, Sinks, Continuous, Math Operation. Функции по представлению полученных в результате моделирования данных в графическом виде.

    лабораторная работа [438,9 K], добавлен 23.09.2022

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

    курсовая работа [45,5 K], добавлен 04.06.2014

  • Анализ существующих систем автоматизации документооборота. Выбор шаблона проектирования. Microsoft SQL Server как комплексная высокопроизводительная платформа баз данных. Язык программирования C#. Разработка интерфейса и иллюстрация работы системы.

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

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

    курсовая работа [139,4 K], добавлен 24.06.2011

  • Понятие, виды и функции тестов, компьютерное тестирование. Государственные стандарты создания компьютерных тестов и практическая реализация комплекса генерации тестов: СУБД и язык программирования, пользовательский интерфейс, экономическая эффективность.

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

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

    методичка [2,9 M], добавлен 27.11.2011

  • Объем двухпортовой памяти, расположенной на кристалле, для хранения программ и данных в процессорах ADSP-2106x. Метод двойного доступа к памяти. Кэш-команды и конфликты при обращении к данным по шине памяти. Пространство памяти многопроцессорной системы.

    реферат [28,1 K], добавлен 13.11.2009

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

    контрольная работа [534,7 K], добавлен 11.01.2015

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

    лабораторная работа [41,4 K], добавлен 18.11.2014

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

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

  • Семь поколений процессоров. Технология производства микропроцессоров. Сравнительные характеристики процессоров AMD и Intel на ядре Clarkdale. Квазимеханические решения на основе нанотрубок. Одновременная работа с Firefox и Windows Media Encoder.

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

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

    реферат [158,8 K], добавлен 25.06.2015

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