probabilistic verification in computational systems design

20
Вероятностная верификация при проектировании вычислительных систем С.Л. Френкель 1 , В.Н.Захаров 1 , В.Г. Ушаков 2 1 Институт проблем информатики ([email protected], [email protected]) 2 Московский гос. университет им. М.В. Ломоносова, Институт проблем информатики РАН ( [email protected] ).

Upload: iosif-itkin

Post on 02-Jul-2015

129 views

Category:

Science


1 download

DESCRIPTION

Sergey Frenkel, Victor Zakharov, Vladimir Ushakov, IPI RAS, Lomonosov Moscow State University, Moscow

TRANSCRIPT

Page 1: Probabilistic Verification in Computational Systems Design

Вероятностная верификация при

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

С.Л. Френкель1 , В.Н.Захаров1, В.Г. Ушаков2 1 Институт проблем информатики ([email protected], [email protected]) 2Московский гос. университет им. М.В. Ломоносова, Институт проблем информатики РАН ( [email protected] ).

Page 2: Probabilistic Verification in Computational Systems Design

Проблема обеспечение устойчивости программно-аппаратных средств к случайным кратковременным сбоям при проектировании. 1. Защита (“укрепление”, hardening) уязвимых

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

для HW и SW используется репликация:

TMR (Triple Modular Redundancy) на аппаратом

уровне, или N-version programming (NVP) , состоящее в выполнении N независимых функционально-эквивалентных программ, полученных из одной спецификации. 2

Page 3: Probabilistic Verification in Computational Systems Design

Model Checking для выбора защищаемых элементов/переменных

Model Checking- это — проверка, удовлетворяет ли заданная модель

системы формальным спецификациям, описанных средствами LTL,

CTL, и.тд..

Мотивация: верификация свойств Fault-tolerance без симуляции.

Условие применения- возможность построить конечно-

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

Например, если в исправной системе должна выполняться формула AG , то можно также рассмотреть условия AG(¬fault ))- т.е. система будет работать правильно, пока не появилась ошибка, и условие, что введение неисправности в модель не приведет к некорректному поведению AG(¬injected ).

3

Page 4: Probabilistic Verification in Computational Systems Design

Модель Single event Upset для системы (S, T, S0), где S – множество состояний,

кодируемых булевыми векторами s1,s2,..,sn S, T S×S –способ вычисления переходов как функций si := fi(V), где fi (V)– некоторые функции подмножеств V S.

Если булевы переменные начального состояния s0i из множества S0 возможных начальных состояний искажаются, модель переключает значение в следующем цикле как s0i := ¬fi(V).

4

Page 5: Probabilistic Verification in Computational Systems Design

Поиск угрожаемых элементов

(Например,. S. A. Seshia, W.Li, S. Mitra,“Verification-guided soft

error resilience”, DATE07, 2007)

(i) Каждой переменной модели соответствует множество assertions (формальных LTL/CTL утверждений ) которые задают условия корректного поведения.

(ii) изменение одного бита (согласно модели SEU) ведет, к произвольному изменению состояний автомата, ведущему к невыполнению тех или иных assertions.

(iii) строится n автоматов (FSM) с измененными битами соответствующего вектора состояния , n-число бит вектора состояний, n+1 раз выполняется Model Checking : один раз для свободной от SEU модели, чтобы проверить, что разработанный проект удовлетворяет требуемому свойству, и n раз для моделей с неисправностями.

Элемент системы нуждается в защите, если хотя бы одна из n моделей с неисправностями не удовлетворяет требуемому свойству

Page 6: Probabilistic Verification in Computational Systems Design

Формальный метод вероятностной верификации :Probabilistic Model Checking

Язык описания свойств в Probabilistic Model Checking PC позволяет описывать системы, представленных как Марковская Цепь Дискретного Времени ( DTMC) : (S, s0,P,L), где

−S – конечное множество состояний (“state space”) −s0 ∈ S – начальное состояние, −P: S ×S →[0,1] матрица переходов, Σs’∈SP(s,s’) = 1 для всехs ∈S L : S →2AP is function labelling states with atomic propositions

AP={try,fail,succ},

L(s0)=, L(s1)={try L(s2)={fail}, L{s3}={succ}

6

Page 7: Probabilistic Verification in Computational Systems Design

Расширение формул CTL на PCTL

−reachability: вероятность достигнуть состояние, удовлетворяюще φ

P~p[ F φ]

−invariance: вероятность выполнения φ всегда истинна

P~p [ G φ]

- Вероятность истинности формулы до момента T

P~p (U≤Tφ)

7

Page 8: Probabilistic Verification in Computational Systems Design

Вычислительная сложность PMC для проверки сушественности неисправности

СPMC= O(poly(N))·T·|φ|,

N- число состояний DTMC, |φ1| - размер формулы,

специфицирующей проверяемые свойства,

Как правило, poly(N) N6 !!!

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

8

Page 9: Probabilistic Verification in Computational Systems Design

Проблема нахождение контр-примеров для диагностики результатов

В PMC контрпримеры формируются по множеству путей, для которых вероятности не удовлетворяют заданному порогу.

Вероятность попадания в момент T в некоторое подмножество состояний S цепи Маркова, такое, что s|=ϕ с матрицей переходных вероятностей P(s, s’) вычисляется как Prob(True U≤ T ϕ) = s|=ϕ P(s,T), P(s,T) – вероятность попадания цепи в состояние s в момент времени T, которая вычисляется для данной DTMC по всем путям перехода в s за T переходов

9

Page 10: Probabilistic Verification in Computational Systems Design

Комбинированный логико-числовой метод (CLNM)

Основная идея вероятностной верификации свойств устойчивости автоматной модели к случайным сбоям состоит в том, что угрожаемые элементы проектируемой системы определяются методом Model Checking, а затем вычисляется вероятность того, что проявление ошибки (SEU) в данном элементе не приведет к проявлению ошибки в результате.

10

Page 11: Probabilistic Verification in Computational Systems Design

CLNM и PMC

11

Page 12: Probabilistic Verification in Computational Systems Design

Модель самовосстановления

Fault-Free: начальное состояние s0i

Faulty: начальное состояние s0j Цепь Mаркова с двумя поглощающими состояниями: A0 : Y=YF до момента перехода траектории переходов автомата в правильное состояние, A1 : Y≠YF

Page 13: Probabilistic Verification in Computational Systems Design

Модель сбоя

13

Сбой: пара (i,j)

at, as- текущее и следующие состояния, X-входы, Y-

выходы.

Page 14: Probabilistic Verification in Computational Systems Design

Вычисление вероятности самовосстановления

14

Вектор начального распределения определяется начальными состояниями исправного и неисправного автоматов. Если исправный автомат в начальный момент 0 находится в состоянии i0, а неисправный – в состоянии j0 ≠ i0, то p(i0,j0)(0) = 1, а остальные координаты вектора нулевые.

Матрица переходных вероятностей *вычисляется по известным

вероятностям входных переменных автомата.

Вероятность самовосстановления за t тактов после прекращения действия помехи:

Page 15: Probabilistic Verification in Computational Systems Design

Вычислительная сложность CLMN

СCLNM =O(poly(size(D)))

CCLNM/CPMCT|1|

15

Page 16: Probabilistic Verification in Computational Systems Design

Задача оценки вероятностей в модели CLNM Задача: оценить вероятности P(xi =1)

входных переменных автоматной модели

проектирования.

Средства:симуляторы и наборы бенчмарков, используемых при

отработке устройств.

16

Page 17: Probabilistic Verification in Computational Systems Design

Фаза выборки конвейеризированного процессора

17

Page 18: Probabilistic Verification in Computational Systems Design

Входные данные программ верификации

Таблица переходов автомата Микрооперации

18

at, as- текущее и следующие состояния, X-входы, Y-выходы.

Page 19: Probabilistic Verification in Computational Systems Design

Вероятности восстановления

Вероятности восстановления через t тактов после сбоя (1,2):

(DMAcycle до команды “S” (Start))

SH = (0.0, 0.034, 0.46, 0.55, 0.64, 0.68),

и после сбоя (5.2)- (ошибка заполнения программного счетчика):

S = (0.00, 0.79, 0.79, 0,85, 0.89, 0.92, 0.93

19

Page 20: Probabilistic Verification in Computational Systems Design

20

Thank You!