Анализ применимости инструмента Spin к верификации протоколов когерентности памяти

Оценка эффективности применения метода model checking и инструмента Spin с верификацией протоколов когерентности памяти для поиска ошибок в устройствах. Проверка выполнимости характеристик системы. Верификация протокола когерентности "Эльбрус-2S".

Рубрика Программирование, компьютеры и кибернетика
Вид статья
Язык русский
Дата добавления 27.11.2018
Размер файла 50,3 K

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

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

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

ЗАО «МЦСТ», МГТУ им Н.Э. Баумана

Анализ применимости инструмента Spin к верификации протоколов когерентности памяти

В.С. Буренков

Аннотация

Рассматривается применимость метода model checking и инструмента Spin, в котором реализованы алгоритмы метода, к верификации протоколов когерентности памяти. Анализируются основные процедуры и оптимизации Spin. Определяется ограничение на количество процессорных узлов системы, которая может быть проверена с помощью этого инструмента.

Ключевые слова: model checking, Spin, протокол когерентности памяти, верификация.

Annotation

AN ANALYSIS OF THE SPIN MODEL CHECKER APPLICABILITY TO CACHE COHERENCE PROTOCOLS VERIFICATION

V. Burenkov

This paper examines the applicability of model checking and the Spin model checker to cache coherence protocols verification. Basic Spin algorithms and optimizations are analyzed. The article defines an upper bound on the size of the model under verification in terms of processor nodes.

Keywords: model checking, Spin, cache coherence protocol, verification.

Введение

Широкое использование методов поиска ошибок в устройствах, которые реализуют протоколы когерентности памяти, основанных на моделировании со случайными воздействиями, не обеспечивает 100%-ной полноты верификации. Некоторые ошибки могут проявиться лишь при возникновении длинных последовательностей событий, таких как кэш-промахи и прием сообщений различными частями системы. Поскольку число таких последовательностей является комбинаторным, вероятность их возникновения во время моделирования со случайными воздействиями резко уменьшается при увеличении их длины [1].

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

Верификация протокола когерентности «Эльбрус-2S» указанным методом была проведена с использованием инструментального средства Spin (Simple Promela Interpreter) [3], выполняющего проверку корректности взаимодействующих параллельных асинхронных процессов. Эта функция была особенно существенна, поскольку процессоры системы, протокол когерентности которой проверяется, работают параллельно и асинхронно по отношению друг к другу.

1. Основные средства и алгоритмы верификации Spin

Система Spin предоставляет пользователю:

язык Promela (Protocol Meta Language) - C-подобный язык для спецификации моделей;

удобные средства для выражения условий корректности формулами темпоральной логики линейного времени (Linear Time Logic, LTL) [4].

Теоретико-автоматный подход. В Spin реализован подход, состоящий в проверке выполнимости LTL-формул на структуре Крипке. Если конечным образом задать язык L(M), содержащий все цепочки, возможные в структуре Крипке M, а также язык L(), содержащий все цепочки, не удовлетворяющие заданной формуле , и построить пересечение этих языков, проверив его на пустоту, то есть возможность выявить, что не выполняется на M, и найти контрпример - те цепочки, которые удовлетворяют формуле . Если L(M) L() , то M допускает цепочки, удовлетворяющие [4].

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

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

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

Параллелизм в Spin. В модели всей системы параллелизм представлен недетерминированным выбором (интерливингом, или чередующимся исполнением). Например, если задана система из n параллельных процессов, в каждом из которых только один оператор, то один вариант исполнения модели представляет собой последовательность из n операторов, произвольным образом набранных из составляющих процессов. Всего таких вариантов будет n!. Такая семантика является следствием основного правила теории параллельных процессов: при их анализе нельзя делать предположений об относительных скоростях выполнения процессов или стратегии планировщика процессов. Только в этом случае результаты анализа будут справедливы при любых условиях прерываний процессов, любых скоростях процессоров и других факторах [4].

Проверка выполнимости свойств. Для верификации свойств поведения Spin по введенной формуле LTL строит ее отрицание, которое описывает нежелательные поведения системы. По отрицанию формулы строится автомат Бюхи, а по нему - процесс never, представляющий поведение этого автомата. Выполнение процесса never совместно с другими процессами представляет поведение синхронной композиции этого автомата и глобального графа достижимости. Эта синхронная композиция является автоматом Бюхи, который будем называть автоматом S. Если язык, принимаемый автоматом S, пуст, то исходное требование удовлетворяется, т.е. нежелательных поведений у анализируемой системы процессов нет. Если язык не пуст, то он содержит поведения, которые в системе нежелательны.

Считается, что автомат Бюхи «допускает» хотя бы одно -слово, если и только если существует достижимый из начального состояния цикл, проходящий через какое-либо его финальное состояние [4], который обозначим как а-цикл. Отсюда, при доказательстве того, что никакая траектория системы не соответствует отрицанию условия корректности, достаточно убедиться в отсутствии таких циклов в автомате S.

Поиск циклов в автомате. В Spin для нахождения а-цикла в графе используется алгоритм вложенного поиска в глубину (nested depth-first search), основная идея которого заключается в следующем. Первый поиск в глубину устанавливает, какие финальные состояния достижимы из начального состояния системы. Второй (вложенный) поиск в глубину начинается в каждом из таких состояний и проверяет, достижимы ли они из самих себя. Если достижимы, то сконструирована последовательность вычислений, представляющая из себя контрпример.

Для проверки некоторых свойств (например, свойств безопасности, safety, которые гарантируют, что при определенных условиях некоторая ситуация никогда не достигается, т.е. «нечто плохое» не произойдет) отсутствует необходимость в поиске циклов в графе. Достаточно найти в графе достижимости путь, который ведет к состоянию, в котором «нечто плохое» произошло. Основным алгоритмом Spin для нахождения подобных путей является поиск в глубину [3].

Хранение векторов состояний. Таким образом, для практических целей решение задачи model checking в Spin сведено к решению задачи достижимости. Spin конструирует пространство состояний и при анализе каждого состояния для предотвращения повторного прохода вершин проверяет, не было ли оно уже исследовано. В результате алгоритм, который мог бы иметь экспоненциальную вычислительную сложность, превращается в алгоритм с линейной (относительно числа состояний) вычислительной сложностью [3]. Векторы состояний сохраняются в хэш-таблице, эффективность доступа к которой обеспечивается сокращением размера элементов и возможностью выбора ее размера.

Верификация «на лету». Для сокращения времени поиска в глубину при наличии контрпримеров Spin конструирует множества состояний и переходов «на лету» («on-the-fly») только для части построенной системы переходов; она постепенно достраивается в ограниченной области памяти. Таким образом, контрпример находится без построения всего множества состояний.

2. Оптимизации Spin

Для верификации моделей большего размера в Spin реализован ряд алгоритмов оптимизации, которые, соответственно их методике, подразделяются на две ортогональные по отношению друг к другу группы:

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

оптимизации, позволяющие уменьшить объем памяти, занимаемой векторами состояний. В эту группу входят методы без потерь (редукция collapse, техника с использованием минимального автомата [5], редукция hash compact [6]) и с потерями (bitstate-хэширование [7, 8]). При использовании методов с потерями некоторые контрпримеры могут быть не найдены. Однако если контрпример найден, то он действительно представляет ошибку.

Рассмотрим подробнее методы редукции частичных порядков и редукции collapse.

Редукция частичных порядков. Рассмотрим присваивания x: x1 и y: y3 асинхронной композиции процессов P1 и P2, где x - локальная переменная P1, y - локальная переменная P2. Безотносительно к порядку выполнения присваиваний результат будет одним и тем же. Редукция частичных порядков позволяет вместо всех полученных на основе интерливинга вариантов выполнения операторов, которые эквивалентны с точки зрения результата, анализировать только один. Он статически выбирается до начала исполнения программы верификации.

Эта техника позволяет сократить использование памяти и время выполнения программы верификации на 10-90% [8].

Метод collapse. Глобальное состояние модели задается определенной комбинацией состояний отдельных ее процессов и содержимого ее каналов, повторять полное описание которых в каждом глобальном состоянии довольно расточительно. В методе collapse [3] информация о состояниях делится на две составляющие:

глобальные данные модели, включая содержимое всех каналов;

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

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

Метод collapse зачастую позволяет достигать уменьшения объема используемой памяти на 60-80% при небольшом увеличении времени выполнения программы верификации (10-20%) [8].

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

3. Результаты верификации протокола когерентности «Эльбрус-2S»

Автором разработаны две Promela-модели протокола когерентности, используемого в системе на кристалле «Эльбрус-2S». В них задаются N процессоров (предполагаемых одноядерными), где значение N при исследованиях было равным 3 и 4. Процессоры и значимые функции различных устройств, участвующих в реализации протокола когерентности, описываются идентичными процессами. В моделях представлена одна кэш-строка, поскольку протокол когерентности памяти отвечает за состояния одной строки памяти и не затрагивает взаимодействие между доступами к различным кэш-блокам. Таким образом, все процессоры обращаются в память только по одному адресу. Разработанные модели отличаются друг от друга полнотой описания протокола, а, значит, и сложностью. В первой модели вводится ограничение - пока не завершится операция от одного процессора, другие процессоры не могут выдавать новые инструкции. Во второй модели такое ограничение снято, что соответствует модели памяти «Эльбрус».

К протоколу были предъявлены следующие требования:

кэш-строка никогда не может находиться в двух или более кэшах в состоянии Modified;

кэш-строка никогда не может находиться в двух или более кэшах в состоянии Owned;

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

Формальная проверка этих свойств не обнаружила контрпримеров.

Результаты верификации показаны в табл. 1-3. Верификация осуществлялась на сервере Intel Xeon E5520 с тактовой частотой 2,27 ГГц и объемом оперативной памяти 64 Гбайт. Для второго варианта модели четырехпроцессорной системы удалось получить только результат с использованием bitstate-хэширования, при котором исследованным за несколько часов оказалось множество состояний с мощностью порядка 109.

Таблица 1 Результаты верификации модели 1 при N=3

Оптимизация

Количество исследованных состояний модели

Объем используемой памяти, Мбайт

Время верификации, с

Отсутствует

106

100

3

Collapse

106

60

6

Минимальный автомат

106

22

22

Hash compact

106

47

3

Bitstate

106

12

3

Таблица 2 Результаты верификации модели 1 при N=4

Оптимизация

Количество исследованных состояний модели

Объем используемой памяти

Время верификации, мин

Отсутствует

3108

42 Гбайт

18

Collapse

3108

20 Гбайт

30

Минимальный автомат

3108

1 Гбайт

110

Hash compact

3108

17 Гбайт

13

Bitstate

3108

990 Мбайт

17

Таблица 3 Результаты верификации модели 2 при N=3

Оптимизация

Количество исследованных состояний модели

Объем используемой памяти, Мбайт

Время верификации

Отсутствует

2107

2800

1 мин

Collapse

2107

1500

2 мин

Минимальный автомат

2107

240

7 мин

Hash compact

2107

1200

50 с

Bitstate

2107

170

1 мин

Заключение

Инструментальное средство Spin может применяться для верификации промышленных протоколов когерентности памяти, однако при этом существует ограничение на число узлов процессорной системы, отражаемых в модели, равное 3 или 4 в зависимости от сложности модели. В [10] данный параметр ограничивается аналогичными значениями (при этом речь идет не только о Spin, но и о методе model checking вообще).

Это значение, видимо, является пределом применимости метода model checking. В то же время промышленность обусловливает необходимость верификации при N=8, 16 и т.д. Для верификации более сложных систем возможно использование других приемов (например, абстракции) совместно с model checking, что является предметом дальнейших исследований.

верификация протокол когерентность память

Литература

1. K.L. McMillan. Symbolic Model Checking: An Approach to the State Explosion Problem, Ph.D. Dissertation. - Carnegie Mellon University, 1992.

2. E.M. Clarke, O. Grumberg, D. Peled. Model Checking. - MIT Press, 1999, 314 pp.

3. G.J. Holzmann. The Spin Model Checker: Primer and Reference Manual. - Addison-Wesley, 2003. 608 pp.

4. Карпов Ю.Г. MODEL CHECKING. Верификация параллельных и распределенных программных систем. - СПб.: БХВ-Петербург, 2010, 560 с.

5. G.J. Holzmann, A. Puri. A Minimized Automaton Representation of Reachable States. - International Journal on Software Tools for Technology Transfer, 1999, vol. 2, issue 3, pp. 270-278.

6. P. Wolper, D. Leroy. Reliable Hashing without Collision Detection. - Computer Aided Verification. Lecture Notes in Computer Science, 1993, vol. 697, pp. 59-70.

7. G.J. Holzmann. An Improved Protocol Reachability Analysis Technique. - Software Practice and Experience, 1988, vol. 18, № 2, pp. 137-161.

8. G.J. Holzmann. An Analysis of Bitstate Hashing. - Formal methods in system design, 1998, vol. 13, № 3, pp. 287-307.

9. G.J. Holzmann. The Model Checker Spin. - IEEE Transactions on Software Engineering, 1997, vol. 23, № 5.

10. C. Chou, P. K. Mannava, S. Park. A Simple Method for Parameterized Verification of Cache Coherence Protocols. - Formal Methods in Computer-Aided Design. Lecture Notes in Computer Science - 2004, vol. 3312, pp. 382-398.

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

...

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

  • Цель и область применения логической поддержки когерентности в Эльбрус/МЦСТ-ХR. Построение системы с 16 процессорами. Решение проблемы пропускной способности в линках. Особенности существующего протокола когерентности. Организация справочника и фильтра.

    презентация [403,1 K], добавлен 03.06.2012

  • Применение многопроцессорных вычислительных систем. Отличительные особенности многопроцессорной вычислительной системы. Cервера серии HP 9000. Структурная схема компьютера с гибридной сетью. Организация когерентности многоуровневой иерархической памяти.

    курсовая работа [440,6 K], добавлен 13.08.2011

  • Общая характеристика протокола ICMP, его назначение и формат сообщений. Анализ применимости протокола ICMP при переходе с набора протоколов IP v4 на набор IP v6. Свойства и принцип работы, сферы применения протоколов обмена маршрутной информацией.

    курсовая работа [210,8 K], добавлен 24.08.2009

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

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

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

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

  • Стеки протоколов общемировой сетевой базе. Формат кадра сообщения NetBIOS. Использование в сети стеков коммуникационных протоколов: IPX/SPX, TCP/IP, OSI и DECnet. Дистанционное управление освещением. Особенности использования коммуникационных протоколов.

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

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

    курсовая работа [708,6 K], добавлен 31.05.2013

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

    лабораторная работа [31,2 K], добавлен 26.11.2011

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

    дипломная работа [767,2 K], добавлен 23.12.2011

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

    реферат [505,0 K], добавлен 03.04.2014

  • Внутренний кэш. Смешанная и разделенная кэш-память. Статическая и динамическая память. TLB как разновидность кэш-памяти. Организация кэш-памяти. Отображение секторов ОП в кэш-памяти. Иерархическая модель кэш-памяти. Ассоциативность кэш-памяти.

    курсовая работа [229,1 K], добавлен 04.11.2006

  • Хранение различной информации как основное назначение памяти. Характеристика видов памяти. Память типа SRAM и DRAM. Кэш-память или сверхоперативная память, ее специфика и области применения. Последние новинки разработок в области в оперативной памяти.

    презентация [2,1 M], добавлен 01.12.2014

  • Сравнительный анализ статической и динамической памяти. Быстродействие и потребление энергии статической памятью. Объем памяти микросхем. Временные диаграммы чтения и записи памяти. Микросхемы синхронной и асинхронной памяти. Режимы модулей памяти.

    презентация [114,2 K], добавлен 27.08.2013

  • Один из мировых лидеров в области создания систем автоматизированного проектирования для разработок интегральных схем - Cadence Design Systems. СФ-блоки для памяти, верификации и систем хранения данных. Анализ целостности сигналов Allegro Package SI.

    презентация [1,7 M], добавлен 03.09.2014

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

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

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

    реферат [72,9 K], добавлен 06.04.2010

  • Классификация компьютерной памяти. Использование оперативной, статической и динамической оперативной памяти. Принцип работы DDR SDRAM. Форматирование магнитных дисков. Основная проблема синхронизации. Теория вычислительных процессов. Адресация памяти.

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

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

    реферат [71,0 K], добавлен 06.02.2010

  • Компьютерная память, ее виды и классификации. Составляющие внутренней памяти процессорной системы (постоянное и оперативное запоминающие устройства). Построение пространства памяти заданного объема. Принцип записи и чтения информации, структура памяти.

    контрольная работа [609,8 K], добавлен 12.01.2015

  • Модели и протоколы передачи данных. Эталонная модель OSI. Стандартизация в области телекоммуникаций. Стеки протоколов и стандартизация локальных сетей. Понятие открытой системы. Internet и стек протоколов TCP/IP. Взаимодействие открытых систем.

    дипломная работа [98,9 K], добавлен 23.06.2012

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