Разработка метода автоматизации конструирования генераторов тестовых программ для микропроцессоров
Функциональная верификация микропроцессоров. Анализаторы формальных спецификаций. Генераторы кода и библиотеки моделирования. Техники генерации тестовых программ. Спецификации архитектуры, язык описания шаблонов. Размещение команд и данных в памяти.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | диссертация |
Язык | русский |
Дата добавления | 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