RUS  ENG
Полная версия
ЖУРНАЛЫ // Труды института системного программирования РАН // Архив

Труды ИСП РАН, 2015, том 27, выпуск 3, страницы 149–160 (Mi tisp143)

A model-based approach to design test oracles for memory subsystems of multicore microprocessors

[Подход к построению тестовых оракулов для подсистем памяти многоядерных микропроцессоров на основе моделей]

Alexander Kamkina, Mikhail Petrochenkovb

a Institute for System Programming of the Russian Academy of Sciences
b MCST

Аннотация: В работе представлен метод построения тестовых оракулов для подсистем памяти многоядерных микропроцессоров. Метод основан на использовании недетерминированной эталонной модели тестируемой системы. Идея подхода состоит в динамическом уточнении поведения модели на основе реакций, полученных от системы. При возникновении недетерминированного выбора в эталонной модели создаются и запускаются дополнительные экземпляры модели, каждый из которых моделирует возможный вариант поведения подсистемы памяти. При получении реакции от тестируемой подсистемы завершаются экземпляры модели, для которых данная реакция является некорректной. Признаком ошибки является отсутствие активных экземпляров эталонной модели. Эталонная модель и построенный на ее основе тестовый оракул разделены на три уровня: (1) уровень операции, (2) уровень кэш-строки и (3) уровень подсистемы памяти. Оракул уровня операции проверяет корректность обработки отдельного запроса соответствующего типа. Оракул уровня кэш-строки состоит из оракулов операций и предназначен для проверки запросов к заданной кэш-строке. Оракул уровня подсистемы памяти объединяет оракулы кэш-строк и производит общую оценку поведения устройства. Для эффективной реализации метода необходимо, чтобы тестируемая подсистема памяти удовлетворяла следующим двум ограничениям: (1) запросы к разным кэш-строкам исполняются независимо друг от друга; (2) запросы в одну кэш-строку сериализуются (в каждый момент времени исполняется не более одного запроса к одной кэш-строке). Предложенный метод с небольшими изменениями использовался для верификации кэш-памяти третьего уровня микропроцессора «Эльбрус-8C»; в результате было найдено три ошибки.

Ключевые слова: многоядерные микропроцессоры, кэш-память, консистентность памяти, протоколы когерентности, функциональная верификация, тестирование на основе моделей, автоматизация разработки тестов, тестовый оракул, «Эльбрус-8C».

Язык публикации: английский

DOI: 10.15514/ISPRAS-2015-27(3)-11



Реферативные базы данных:


© МИАН, 2024