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


Скачать 121.6 Kb.
Название Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе
Тип Документы
rykovodstvo.ru > Руководство эксплуатация > Документы
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе производительности вычислительных систем, состоит в обеспечении “своевременности”

выполнения тех или иных процессов /тредов в системах с пареллелизмом. Например, может потребоваться, чтобы процесс P1 должен всегда завершаться раньше начала процесс P2.
P1 ----------------
P2 -------------------------

1 Использования логики предикатов для представления требований к

производительности
В процессе выполнения команд сегменты конвейерного процессора

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

Программные конфликты.

a) из-за преждевременного использования содержимого элементов зоны хранения в конвейере может произойти нарушение правильности выполнения программы;

б) из-за ветвлений, и из-за информационной зависимости между командами.

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

Часто конвейеры используют предсказания для сокращения влияния этих конфликтов. Например, если на данной фазе уже известно, что переход может произойти либо на команду I1 либо I2, то в процессоре обрабатывается либо I1 и следующие за ней команды, либо I2 и следующие за ней. Пусть через несколько тактов работы выяснится, что переход должен был произведен на команду I2. Если в процессор была введена команда I1 и следующие за ней команды, то они удаляются, и начинают обрабатывать I2. В этом случае непрерывность процесса выполнения программы нарушается- т.е. в конвейерном процессоре задержка начaла выполнения ветви перехода может иметь место тогда, когда направление перехода угадано неверно. Если же вычислительный процесс организован так, что производится упреждающий ввод обеих ветвей, то задержка их поступления может быть связана с необходимостью вычислить адрес перехода;

.Информационные конфликты

Один и тот же элемент хранения (адрес памяти) может использоваться двумя (или несколькими) командами, находящимися в конвейере Можно выделить 3 группы таких конфликтов:

- чтение после записи;

- запись после чтения;

- запись после записи. .

Иными словами, конфликт возможен, например, если чтение командой I1 информации, изменяемой командой I2 произойдет до окончания такого изменения. Вообще, в зависимости от того, какая информация изменяется, возможны следующие «информационные » конфликты:

-изменения команды;

- изменения операнда;

-изменения адреса операнда;

-изменения признака результата.

-При этом данные конфликты можно также различать по виду используемых информационных ресурсов – регистры или память.

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

Обозначим: r- рассматриваемый ресурс, Ii – инструкция в конвейере на фазе конвейеризации si, на цикле pj, t0i, t0j - моменты времен, в которые инструкции Ii Ij выбираются в конвейер. Тогда предикат ресурсного конфликта можно определить, как:

Resource_Conflict((Ii, t0i), (Ij, t0j), r):=

 si, sj,: pipeline_stage.

 pj, pj_: clock_phase.___

(0<( t0j - t0i)) & ((t0j+ sj) =( t0j + sj)) &

(Phase_used(Ip, sp, pj,r)&Phase_used(Ij,sp, pj,r ).
Подставляя конкретные значения переменных можно определить, истинность или ложность значения предиката, и соответственно выяснить, выполняются или нет условия отсутствия конфликта.


2. Временная логика

Требуемый временной порядок работы устройства или программы (их временная спецификацию- вспомните первую лекцию!) можно описать с помощью формул временной логики, называемых также ”временными выражениями”. Иными словами, временное логическое выражение определяет, как описать временную логику поведения, т.е. задать условия “правильного” временного поведения проектируемой системы, и задать временные соотношения между событиями, которым соответствуют переходы проектируемой системы из состояния в состояние ( последовательности этих переходов можно рассматривать, как “пути” на графе переходов ). Приведем пример временной логики, широко используемой в современных САПР.

Выражения временной логики состоят из т. временных выражений, и т.н. “кванторов пути» :

A(“квантор всеобщности” ) –высказывание для всех путей.образованных переходами из состояния в состояние”,

E(“квантор существования”) - “для некоторых путей
(в общем, это аналоги используемых в логике предикатов кванторов  и ).

Используются 4 вида временных соотношений :

  1. всегда ( always)- т.е. выражение Gp означает, что (логическое)

условие p выполняется в любой рассматриваемый момент времени,

F – “в конце концов” (eventually), т.е. Fp означает что в один из моментов времени событие p обязательно наступит (условие p выполнится).

X “в следующий момент времени ” (next)- (Xp означает что событие (условие) p

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

U- “p истинно до тех пор, пока не наступит (выполниться) q” ( until).

Итак, вместе с кванторами можно образовать 8 операторов временной логики.
Table 1 Основные операции временной логики
Operator интерпретация
AG для всех путей в любой момент времени
AF для всех путей в некоторый момент времени,
AX для всех путей в следующий момент времени
A[q U r]. для всех путей утверждение q истинно пока r истинно
EG любой момент времени для какого-нибудь пути
EF для какого-нибудь пути в некоторый момент времени.
EX для какого-нибудь пути в следующий момент времени.
E[q U r]. существует путь, для которого q истинно, пока l r истинно.
Говорят, что данные формулы представляют собой операторы CTL (Computational tree logic).

С помощью формул временной логики ( CTL ) выражают условия (свойства) верифицируемой системы, важнейшие из которых- Safety (надежность безопасность) – свойства, которые обязаны выполняться во всех состояниях системы (в любой момет времени функционирования системы), и liveness (живучесть)- свойство отсутствия явления deadlock. Соответственно временная верификация проектируемой программно-аппаратной системы на соответствующем уровне описания состоит в сравнении свойств, представленных во временной верификации системы на CTL (или ином языке временной логики), и тех, что обеспечивает достигнутая на данном этапе проектирования реализация системы.

Например, обмен по шине некоторoго устройства может быть в этом языке описан в терминах изменения состояния, state, принимающей символьные значения ”ready” (готов к обмену) или ”busy” (занят обработкой текущего запроса), и условия изменения состояния “request”, представляющую собой булеву переменную. При этом спецификация данного модуля в терминах CTL будет содержать строки типа AG(request AF state  busy) (см. таблицу1), что означает, что в любой момент времени для всех способов(путей) выполнения программы, если в какой-то момент был запрос, то состояние системы - busy

(- - булева операция “импликация») .

В качестве другого примера рассмотрим программную модель счетчика по модулю 4, со счетным входом и управляющими переменными stall ( отмена счета) и reset (сброс счетчика)) . Условие его корректного поведения может быть представлено, как

AG[(stall & reset& (count=C)&(C<4)]Ax(count=C+1)],

где count—следующее состояние счетчика, C-текущее.
Итак, мы рассмотрели возможный язык спецификации условий временной упорядоченности вычислительных действий (событий). Рассмотрим теперь способы представления (описания) специфицируемых таким образом вычислительных систем.

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

т.н. модель Крипке (Kripke).

Системой переходов (моделью Крипке ) Т называют четверку K =< S, R, L, S0 >, где S — множество состояний, R SS-множество пар состояний, между которыми возможны переходы (complete transition relation) L : S → 2AP— функция, которая приписывает каждому состоянию те или иные логические условия (записанные на CTL), истинные в этом состоянии ( “ устанавливает метки”), S0 S – множество начальных состояний. Существенно, что если ϕ и ψ - CTL формулы, то: ¬ϕ, ϕ ψ, ϕ ψ, AXϕ (ϕ истина также в следующий момент времени), AϕUψ (ϕ выполняется до тех пор, пока выполняется ψ h), and AGϕ (ϕ holds henceforth выполняется (истина) начиная с этого времени) тоже CTL-формулы. T

Если задан конечный автомат Мили M=<S, I,O, δ,λ, >, где I ={i},O, δ, λ , S 0- входы, выходы, функция переходов (δ) и выходов (λ) соответственно, то cтруктура Крипке для конечного автомата будет иметь вид:,


Например, для автомата, описывающего счетчик по модулю 3 (рис.1), где rst-сигнал “reset” (устанавливает все разряды счетчика в 0 при rst=1), а cnt- сигнал синхронизации



Рисунок 1. Ссчетчик по модулю 3

структура Крипке представлена на рисунке 2.

Рисунок 2. Структура Крипке счетчика по модулю 3.
Здесь переход δ(s, i) → s в автомате соответствует состоянию < s, i > в структуре Крипке. Например, состояние S 10 представляет переход S1 в S 2 в счетчике.


  1. Структура Крипке используется для представлении переходов в верифицируемой системе в широко известной системе верификации (на основе Model Checking) SMV (Symbolic Model Verification), разработанный в Cadence Berkeley Laboratories

. Познакомьтесь с SMV Manual: (найдите в Интернет).

Хорошее изложение по русски можно найти по http://logic.pdmi.ras.ru/~kulikov/verification/06.pdf (Там говориться о некоторой модификации NuSMV, но разница (в синтаксисе и семантики) практически нет.)

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

Основным путем сокращения перебора является представление логических выражений с помощью т.н. “Диаграмм двоичных решений” (BDD), о которых кратко говорится в Приложении 2.
Приложение 1. Пример верификации конечного автомата с использованием SMV
Временная верификация счетчика по модулю 7 с переносом.
MODULE main {название модуля}

VAR {глобальные переменные}

bit0 : counter_cell(1); {первый бит, ячейка}

bit1 : counter_cell(bit0.carry_out); {второй бит, при переносе из предыдущей ячейки}

bit2 : counter_cell(bit1.carry_out); {третий бит, при переносе из предыдущей ячейки}
SPEC { описание некоторого требуемого свойства проектируемой системы на языке временной логики}

AG AF bit2.carry_out {возможность существования переноса для всех переменных в любой и в некоторый момент времени}
MODULE counter_cell(carry_in) {Начало модуля}

VAR {объявление локальных переменных}

value : boolean; {Логическая переменная }
ASSIGN {Присвоение значений на такте- описание всех пар входов-состояний и условий, т.е. структуры Крипке }

init(value) := 0; {инициализировать как 0}

next(value) := value + carry_in mod 2; {присвоить значению собственное значение <�сложение по модулю 2> m2 значение переноса}
DEFINE

carry_out := value & carry_in; {присвоение переменной переноса значение логического умножения value и переноса}
Меню программы:

Prop -> Verify -> вкладка в нижнем окне – Trace -> File -> New Trace ->Run -> Extend Trace-> Вводим количество шагов -> Run->Recalculate Trace




Получаем трассу счётчика.

Первая строка – перенос из нулевого бита.

Вторая – нулевой бит

Третья – перенос из первого бита.

Четвёртая - первый бит.

Пятая – перенос из второго бита.

Шестая – второй бит.


Приложение 2. Представление логических условий при верификации в SMV

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

Один из главных подходов к ее решению состоит в выборе “хорошего” способа представления этих условий. Наиболее распростарненным является способ представления булевых выражений в виде т.н. “ упорядоченной двоичных диаграм решений” (OBDD- ordering binary decision diagram) - упорядоченного направленного графа, вершинами которого являются определенным образом упорядоченные переменные, а дуги соответсвуют логическим значениям переменных, из которых они исходят, а две конечные . вершины (квадраты на рис....) соответствуют нулевому и единичному значениям функции. Например, на рис.. представлена OBDD функции, задаваемой формулой
f(a,b,c)=a*(-b*-c)+(-a)*b*(-c) +-a*b*c*+a*b*c



Рис.5. OBDD

В общем, OBDD отвечает следующим требованиям. :

1.В ней не должно быть 2-х конечных вершин с одинаковыми метками ( 0 или 1).

2. В ней не должно быть 2-х промежуточных вершин с одинаковыми исходами ( то есть таких

вершин, у которых и левое, и правое ребро ведут к одинаковым.

вершинам ).

3. В ней не должно быть ни одной вершины , у которой оба исходящих ребра ведут в одну и ту же вершину.

В любом случае OBDD представляет собой более компактную форму представления логических условий, чем обычная таблица истинности.
Приложение 3.

Краткое описание методов формальной верификации,

используемых в SMV

1 Model checking- автоматическая методика проверки того, что некоторое множество трeбований (свойств) заданное формулами временной логики для данной схемы, представленной как Finit e-State –Machine (FSM). Эта проверка связана с прохождением всех возможных путей в пространстве состояний, и это прохождение интерпретируется как реализация последовательности вычислений, представляющее собой computation tree(CT) .Соответственно, операторы временной логики описывают computation paths. По сути, CT представляет собой дерево всех возможных последовательностей выполнения программы, или “переключений” (обработки входных команд) схемы. Корень дерева соответствует начальному состоянию системы. Для компактного представления пространства состояний как правило используется техника OBDD.
2. Ограниченное (bounded) model checking (BMC).

BMC пытается обнаружить ошибки в системе путем построения формулы, логически исполнимой тогда, когда создается трасса (последовательность состояний), длиной N, которая противоречит свойству (property), заданному пользователем. Задаваемое пользователем ограничение N влияет на размеры формул и длину трассы, обнаруживающей ошибку. Очевидно, что отрицательный ответ не означает, что система в целом не содержит ошибок, а только лишь, что трасса длиной N или короче не обнаружила ошибок.


3. SAT

Альтернативой подхода к тестированию моделей с использованием BDD может служить использование так называемых алгоритмов проверки принципиальной исполнимости схемы - satisfiability solvers (SAT).

С помощью SAT можно определить, существует ли исполнимое утверждение (a satisfying assignment) для соответствующей формулы, задающей условие корректности реализации некоторого свойства системы.

Обработка формулы исполнимости заключается в определении, будет ли эта формула исполнима при данном утверждении.

.

Похожие:

Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Тема управление ресурсами вычислительных систем
Цель темы: раскрыть принципы функционирования современных операционных систем по управлению ресурсами вычислительных систем
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon В проточной части устройства (или трубопровода)
Разработан метод численного решения системы четырех дифференциальных уравнений характеристики, описывающих неустановившиеся течения...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Дидактические условия использования компьютерных технологий в начальной школе специальность
Охватывают конкретный круг проблем и имеют перспективы для дальнейшей экспериментальной деятельности. Они позволяет убедиться в актуальности...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Программный комплекс удаленного доступа для численного решения сопряженных задач термомеханики
Фгбун институт проблем механики им. А. Ю. Ишлинского Российской академии наук, г. Москва, Россия
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Методическое пособие по решению проблем, возникающих при работе с...
Региональная инфраструктура электронного правительства Ханты-Мансийского округа – Югры
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Методические указания к расчетно-графическим заданиям по учебной...
Целью ргз является закрепление и лучшее усвоение теоретического материала. Предлагаемые задания направлены на выявление архитектурных...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Рабочая программа дисциплины «Исполнительное производство»
Анализ практики рассмотрения судами споров, связанных с применением законодательства об исполнительном производстве, свидетельствует...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Рекомендации по оптимизации предоставления государственных и муниципальных...
Ульяновской области по принципу «одного окна» в рамках межведомственного взаимодействия, включая рекомендации по заполнению технологических...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Проблемы проведения статистического наблюдения, характеризующего...
Статистический учет жилищного строительства осуществляется на основании форм статистических наблюдений, утвержденных приказами Росстата...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Литература и dvd кадры Папка по технологии Конкурса «Отбор сотрудников отдела продаж»
Все факторы делятся на четыре категории: сильные стороны, слабые стороны, возможности и угрозы. Метод включает определение цели проекта...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Инструкция по производству геодезическо-маркшейдерских работ при...
Увеличивающийся объем информации о процессах горного производства, взаимосвязях и обусловленности их развития невозможен без применения...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Рабочая программа адаптационной дисциплины «Основы построения программно-аппаратного...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов образовательной программы...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Программа коррекционной работы направлена на разрешение ряда проблем,...
Для этого педагог должен иметь представление об объекте воспитания – личности ребёнка
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Программа дисциплины Архитектура вычислительных систем для направления...
Программа предназначена для преподавателей, ведущих данную дисциплину, учебных ассистентов и студентов направления 09. 03. 04 "Программная...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon В. Б. Касевич Фонологические проблемы
Иными словами, весь тот круг проблем, которые стали широко обсуждаться в последние десятилетия, получает в этой книге языковедческое...
Мы рассмотрели статистический метод численного сравнения двух вариантов реализации вычислительных систем. Другой круг проблем, возникающих при анализе icon Метод Иммунотурбидиметрический тест с сенсибилизацией частицами. Принцип определения
Человеческий IgE имеет молекулярный вес около 190 кДа и состоит из двух идентичных тяжёлых цепей и двух идентичных лёгких цепей,...

Руководство, инструкция по применению




При копировании материала укажите ссылку © 2024
контакты
rykovodstvo.ru
Поиск