Программная модель системы на кристалле

УДК 681.3

ПРОГРАММНАЯ МОДЕЛЬ СИСТЕМЫ НА КРИСТАЛЛЕ

К. Е. Окунев,

ассистент А. А. Ключарев,

канд. техн. наук, доцент

Санкт-Петербургский государственный университет аэрокосмического приборостроения

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

Ключевые слова — системы на кристалле, совместная разработка программного и аппаратного обеспечения.

Введение

Текущие темпы развития технологий в электронике привели к широкому использованию систем на кристалле (СнК) в бытовой и промышленной технике. Чаще всего СнК представляют собой системы реального времени. Неотъемлемой частью СнК являются микропроцессорные элементы, программное обеспечение (ПО) которых реализует функции управления системой. ПО в СнК тесно связано с работой специализированной аппаратуры и коммуникационных интерфейсов. Характеристики проектируемой системы полностью зависят от согласованности между собой всех программных и аппаратных компонентов.

При разработке СнК функционально законченная система формируется из готовых аппаратных и программных модулей, включая операционные системы реального времени (ОСРВ) [1]. Это требует разработки принципов отбора отдельных модулей, решения задач программной и аппаратной совместимости и оптимизации режимов работы компонентов системы для конкретной СнК.

Для описания аппаратного обеспечения в СнК на различных этапах проектирования используются три типа основных моделей:

— программные модели аппаратной реализации, которые описывают правила и алгоритмы взаимодействия с аппаратурой;

— функциональные модели — behavior models (поведенческие модели), упрощенно описывающие правила работы компонента аппаратного обеспечения;

— модели аппаратной реализации СнК.

Последние два типа моделей имеют стандартизированные описания [2]. Функциональные модели описываются с помощью несинтезируемых конструкций языков HDL (Hardware Description Language), таких как Verilog и VHDL. Модели аппаратной реализации описываются только синтезируемыми конструкциями HDL. Обе эти модели сложны для анализа при проектировании ПО, поскольку учитывают детализированные алгоритмы реализации целевой функции аппаратного обеспечения. Поэтому для разработки ПО обычно используется программная модель аппаратной части СнК.

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

Программная модель и ее составляющие

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

Рис. 1. Пример взаимодействия составляющих системы

ния, определяемые логикой изменения основных состояний.

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

Формализованное описание состояний управляемых компонентов в терминах теории конечных автоматов [3, 4] может быть представлено как

Кт = ^, I, Ft, q0, О, Fo),

где Кт — конечный автомат; Q — множество состояний автомата; I — множество входных сигналов; Ft — функции переходов; q0 — начальное состояние; О — множество выходных сигналов; Fo — функция выходов.

При построении программной модели необходимо разделять множества входных и выходных сигналов на несколько подмножеств из-за различия свойств и природы интерфейсных сигналов, а также особенностей их использования. Это непосредственно влияет на программную модель компонента. Выделим следующие подмножества [5]:

11пр^1 — множество входных сигналов, не участвующих в управлении системой, но являющихся источником данных для внутренней логики;

1сс1 — множество управляющих сигналов, которые участвуют при выборе различных ветвей в алгоритме функционирования компонента, причем 1 = 11пр'^1с;

1р сI — множество входных и управляющих сигналов, доступных для ПО;

ПС — множество входных и управляющих сигналов, не имеющих прямого управления со стороны ПО;

ОрсО — множество выходных сигналов, непосредственно доступных для ПО;

ОосО — множество выходных сигналов, обрабатываемых другими блоками и не являющихся напрямую доступными ПО.

В общем случае на каждый вход из множества I подаются сигналы, значения которых представляют собой многомерные случайные величины, описываемые многомерными плотностями вероятностей либо функциями распределения. Соответственно, модель состояний носит вероятностный характер. Изучение вероятностных характеристик поведения аппаратного обеспечения является принципиально важным аспектом при проектировании систем как мягкого, так и жесткого реального времени. Тогда множеству I ставится в соответствие множество случайных величин р: I ^ Fd, где Fd — множество плотностей распределения fdi(X), 1е[1, и], многомерных случайных величин:

Fd = ^1(Х), fd2(X), ..., fdU(X)},

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

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

Совокупность правил и алгоритмов обработки входного потока данных определяет режим работы, что с точки зрения конечного автомата представляет ограничения на последовательность изменения состояний, т. е. не любой путь может быть использован для достижения заданного состояния. Конечный автомат может быть описан ориентированным графом переходов G(Q, Е), где состояния соответствуют вершинам графа (qjeQ). Дуги графа определяются функциями переходов Е = Ft(q1, I1)), ..., ^, Ft(qj, I)}, где В этом

случае маршруты в конечном автомате есть подмножество всех возможных путей в графе EсQxQ.

Следовательно, задание режима работы сводится к определению подмножества путей (РтсЕ, g : Е ^ Рт) графа, допустимых к использованию для достижения цели (перевода системы из состояния qp в qt), которые определяются подмножеством входных управляющих сигналов (^С). Тогда алгоритм управления может быть представлен совокупностью последовательных множеств входных воздействий I1, ^, ..., I, выдаваемых ПО в зависимости от состояния системы. Эти воздействия позволяют обеспечить передвижение по заданным маршрутам из Рт. Для каждого режима работы существует свой сценарий входных воздействий, который позволяет пройти указанный маршрут путем следования по определенным дугам графа.

Выбор алгоритма управления сводится к определению наилучшего маршрута по критериям длины пути и затрат ресурсов. Для этого необходимо каждому переходу сопоставить весовые коэффициенты, отражающие реальные затраты на каждый переход или его существование с : Е ^ Р, где Р — это множество функций, определяющих весовые коэффициенты для каждого перехода. В системах СнК основными весовыми характеристиками являются энергопотребление перехода в активной фазе; энергопотребление перехода в пассивной фазе (затраты на само существование перехода); аппаратные затраты на реализацию перехода; временная длительность перехода и т. д. Весовые коэффициенты зависят от конкретной реализации, например от существования других переходов, так как несколько переходов могут использовать одни и те же аппаратные ресурсы.

В реальных системах возникает вопрос о достижимости конечной точки заданного маршрута. Компонент является полностью управляемым ПО, если множество управляющих сигналов состоит только из программно доступных сигналов или сигналов, напрямую порожденных от них ЦсЫр = ^ и Icn.It = 0). Действительно, если переходы обеспечиваются только программно доступными сигналами, то условие выполняется автоматически, если же в функции переходов участвуют результаты функции выходов, то они, так или иначе, являются производными от программно управляемых входных сигналов. В случае невыполнения условия полной программной управляемости компонента система является не полностью определенной, так как существуют пути, не зависящие от функционирования ПО. В этом случае поведение системы будет зависеть от вероятностных характеристик входного потока сигналов из множества Л.

Маршрут является абсолютно достижимым, если во всех вершинах (состояниях) на протяжении всего маршрута переходы осуществляются

только посредством программно доступных управляющих сигналов Icdp и их производных и не существует перехода, нарушающего маршрут (f : Pm ^ S, где S<z.Q и Es = {(q1, Ft(q1, I1)),..., (q, Ft(q,, I))}, где {q, ..., q} }oS и Es<uPm = Pm и qp<tSv где

l : Es ^ S1), т. е. не существует пути, при использовании которого конечная точка оказывается недостижимой без перехода в начальную точку маршрута.

Условие абсолютной достижимости не выполняется, если в маршруте существует хотя бы один путь, который образует замкнутый контур в графе с отправной точкой маршрута (qp) без достижения конечной точки (qt), что приводит к существованию перехода, делающего маршрут недостижимым при определенных условиях либо условно достижимым. Маршрут является условно достижимым, если существуют условия, при которых пути в маршруте образуют замкнутый контур с участием начального состояния и без участия конечного, а также существует зависимость от программно неуправляемых сигналов.

В графе можно выделить вершины (состояния), проходя через которые система может отклониться от заданного маршрута Ft(q, I)iEs. Такие состояния определим как критичные состояния конечного автомата, в которых неправильная или несвоевременная выдача управляющих сигналов со стороны активного компонента может привести к недостижимости конечной точки маршрута либо отложить достижение на бесконечно долгий срок. Именно наличие таких состояний формирует требования к ПО систем реального времени исходя из условий сохранения заданного маршрута.

Таким образом, модель состояний — это совокупность связанных автоматной модели, модели вероятностных характеристик входных сигналов, модели весовых коэффициентов стоимости существования и реализации элементов автоматной модели, а также функций связывания этих моделей в единое целое: <Km, Fd, P, p, c>. Данная совокупность позволяет оценивать различные параметры системы с точки зрения возможности реализации, надежности, вероятностных и стоимостных характеристик, а также производить оценку качества алгоритмов ПО.

Описание модели состояний программной модели на примере контроллеров SPI

Рассмотрим примеры описания и анализа модели состояний программной модели на примере ведущего и ведомого контроллеров интерфейса SPI (Serial Peripheral Interface), представленных на рис. 2. Данный интерфейс находит широкое применение в СнК, так как он является интер-

Ведущий

iSt

iTs

iSS_n

iD oSS n

oD

111111

oSCLK oS

iS

oEnd

SS n

SCLK

MOSI

MISO

Ведомый

oEnd oSS_n iSS n oD

iSCLK iS

iD

EXD-i

oS

Контроллер

прерываний

Блок

регистров

Рис. 2. Сигналы и взаимодействие ведущего и ведомого блоков шины SPI

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

Интерфейс является последовательным синхронным интерфейсом [6]. В ходе обмена всегда существует один ведущий контроллер (Master device) и ведомый контроллер (Slave Device). Ведущий контроллер (ВК) отвечает за выбор активного ведомого контроллера (причем только один может быть активным в один момент времени), производимый низким уровнем сигнала разрешения (SS_n). Сигнал SS_n может находиться в активном состоянии, даже если реальной передачи данных не происходит. Также ВК отвечает за формирование временной диаграммы передачи. Минимальная единица передаваемой информации на входе ВК — это байт. ВК передает этот байт последовательно, маркируя передачу синхросигналом (SCLK), бит за битом, на одном фронте SCLK бит выдается ведущим и ведомыми контроллерами, а на противоположном захватывается в сдвиговом регистре. Данная итерация повторяется 8 раз для передачи одного байта, затем SCLK останавливается, если нет другого байта для передачи.

Рассмотрим модель ВК SPI, построенную на анализе временной диаграммы (рис. 3) и спецификаций SPI. Модель системы представляет из

SS п Фронт выдачи данных Фронт захвата данных

SCLK пппппппп лпгшллгш

MOSI Кл -і \ "

MISO —' \ *

себя совокупность состояний Q = ^0, q1, q2, q3, q4, q5, q6, q7} с начальным состоянием q0; множеств входных и выходных сигналов ^ = {tTs, tSt, tSS_и, tD[7:0]}; I = ^}; Ор = {oD[7:0], oEиd};

Оо = {oS, oSS_и, oSCLK}; функции переходов, описанной в виде направленного графа (рис. 4); функции выходов, представленной в таблице, в виде изменений состояний сигналов в каждом из состояний. Также в модели присутствуют внутренний счетчик реального времени (Тс), счетчик выдаваемых битов (СТ) и регистр данных ф[7:0]), что позволяет упростить логическую схему графа. Определим маршрут как путь от состояния q0 до состояния q7 с последующим возвращением в q0.

Анализ данной модели показывает, что ведущий компонент SPI является полностью программно управляемым и удовлетворяет требованию абсолютной достижимости, так как ни один из его переходов не зависит от элементов множества Л. В модели отсутствуют критические состояния, так как не существует пути, нарушающего маршрут. Модель позволяет определить условие сохранения доступности для программного обеспечения состояния сигнала oD. Также определяются временные характеристики процесса работы компонента с точки зрения ПО, поскольку вычисляется время пути от исходной точки маршрута до конечной. Это может быть переведено в количество циклов микропроцессорного устройства, в течение которых ПО может переключиться на реализацию других задач.

t<Tc + iTs/2

t<Tc + iTs/2

Тс + iTs/2 4 J Т>=Тс+ iTs/2

Рис. 3. Пример временной диаграммы интерфейса SPI

Рис. 4. Граф переходов состояний ведущего устройства SPI

Таблица

Состояние Изменение выходов контроллера

ведущего ведомого

40 — —

ql ойй п = іББ п D = ІШ СТ = 0 oEnd = 0 Ш = ІШ оШ = іШ[7]

42 Тс = і оБСЬК = 1 ой = Ш[7] оШ = Ш[7]

q3 — Ш = Ш << 1 Ш[0] = ІБ СТ = СТ + 1

44 Тс = і Ш = Ш << 1 Ш\0] = ІБ оБСЬК = 0 оШ = Ш СТ = 0 oEnd = поі oEnd

45 — СТ = 0

46 СТ = СТ + 1 —

47 оШ = Ш oEnd = 1 —

Модель ведомого блока интерфейса SPI, построенная на основании анализа рис. 3 и спецификаций, описывается совокупностью состояний Q = = ^0, q1, q2, q3, q4, q5} с начальным состоянием q0; множеств входных и выходных сигналов ^ = {Ш[7: 0]}; И = ^, iSS_n, iSCLKУ; Ор = {oD[7:0], оЕпё,, oSS_n}; Оо = {oS}; функции переходов, описанной в виде направленного графа (рис. 5); функции выходов, представленной в таблице, в виде изменений состояний сигналов в каждом из состояний. В качестве внутренних сигналов используются регистр данных (ф) и счетчик (СТ). Основным маршрутом данных является путь от состояния q0 до состояния q4 с последующим возвращением в q0.

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

і8СЬК

Рис. 5. Граф переходов состояний ведомого устройства SPI

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

Рассмотрим взаимодействие данной модели с ПО с точки зрения задачи приема непрерывной последовательности байтов на временном интервале Т без учета структуры передаваемой информации, что подразумевает стационарность характеристик сигналов из Іссіі на \і^ іі + Т]. Так как программно доступные множества сигналов отображаются на соответствующие регистры, доступные ПО, а сигнал oEnd поступает на блок контроллера прерываний, то взаимодействие с данным устройством может производиться в двух режимах: обмен по опросу флага oEnd; обмен по прерыванию, выработанному по флагу oEnd. Особенностью обмена является то, что данные на выходе перезаписываются с приходом каждого нового байта, а данные для передачи захватываются с началом приема следующего. Так как блок не является программно управляемым, то задача ПО — уложиться во временные рамки по приему/передаче новых данных. Для режима опроса они выражаются в периоде опроса регистра oEnd, а для режима обмена по прерываниям — во времени реакции на соответствующее прерывание. Для простоты дальнейших рассуждений предположим, что данное время одинаково в обоих случаях и соответствует Тво^(і), тогда условием правильного приема является соблюдение условия ТвоП(і) < ТгеМ где Тгес(і) — время приема очередного байта.

Исходя из анализа условий достижения конечного состояния, формирующего oEnd, из начального по графу переходов делается вывод, что необходимо наличие отрицательного значения на входе iSS_n, а также поступление п = 8 сигналов iSCLK. Полагая, что сигнал iSS_n постоянно находится в активном состоянии на \^, іі + Т], можно утверждать, что Тгес(і) полностью зависит от поведения сигнала iSCLK. На интервале \ЬІ, іі + Т] значения длительностей передачи одного бита можно рассматривать как непрерывные случайные последовательности. В независимости от источника формирования синхросигнала передачи существует флуктуация периода синхросигнала, особенно заметная при его формировании программными способами, а не специализированной аппаратурой. Флуктуация периода влияет на время передачи байта в соответствии с графом переходов, а следовательно, и блока в целом.

Модель периода синхросигнала iSCLK можно представить в виде

ТзсШ М = Т _веШ + ^),

где Т_всїк — длительность периода синхросигнала на интервале \Ь, іі + Т]; |(і) — флуктуационная

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

В случае флуктуаций фронтов сигнала в окрестности fT 8СЬК(Ь) с сохранением длительности периода битов, называемой фазовой флуктуацией, можно утверждать, что длительность приема байта будет соответствовать

Тгес = пТ _ sclk + ^).

Причем, исходя из анализа источников синхросигналов фазовая флуктуационная составляющая |(Ь) распределена по нормальному закону [7].

Время Тво^(Ь) также может содержать случайную составляющую, отражающую возможность передачи управления более высокоприоритетным задачам или прерываниям на [^, ti + Т]. В этом случае можно записать

ТзаП (*) = Т _ Ф + ТШЦТ),

где Т_в^ — интервал опроса данных, не зависящий от внешних случайных воздействий и алгоритмов планирования; Щ(Т) — количество прерываний исполнения задачи опроса на интервале Т более высокоприоритетным процессом или прерыванием; Тш — время обработки высокоприоритетной задачи.

Задача анализа соотнотттения Т 'soft(t) ^ Тге() сводится к анализу применимости самого входного потока к функциональности системы исходя из программной модели. Для решения подобных задач удобно воспользоваться характеристиками типа «пересечений уровня» [8]. Выбор уровня будет определяться степенью влияния случайных составляющих и возможных моделей системы. Далее рассматриваются примеры определения уровней в различных случаях.

Если принять независимость Тво^(Ь) от случайной составляющей и условие стационарности Т_веШ на [Ь, ti + Т], то может быть осуществлен переход к анализу только распределения флукту-ационной составляющей. В данном случае предельный уровень Н можно определить как

Н = Т _ sft — пТ _ sclk.

Пересечение этого уровня указывает на невыполнение временных требований по допустимой частоте входного потока данных, который может обработать ПО, и классифицируется как нарушение работоспособности для систем жесткого реального времени. Для систем мягкого реального времени оценивается количество таких пересечений ^(Н, Т) и время нахождения в запрещенной зоне т— (Н), проиллюстрированные на рис. 6.

При принятии гипотезы распределения флук-туационной составляющей по нормальному закону применим аналитический способ анализа ра-

Рис. 6. Случайный процесс флуктуации периода синхросигнала

ботоспособности. Рассматриваем флуктуацию периода синхросигнала SCLK в виде стационарного гауссова случайного процесса с нулевым математическим ожиданием, некоторой дисперсией ст2 и плотностью вероятности [9]:

—?2

1

Р? Й) =

2 о?

2 по?

Для такой модели распределения (1) среднее число пересечений уровня Н траекторией случайного процесса на [Ь, ti + Т] определяется как [8]

—Н

N (Н, Т) = -V—г"(0)е

2а:

где г"(0) — вторая производная от нормированной корреляционной функции г(т) рассматриваемого процесса |(Ь) при т = 0.

Средняя длительность несоблюдения Т8ф(Ь) < < Тгес(Ь) при h = ст-1Н

,2

т- (h) = 2п(—г "(0))—2 Ф(К]е

где Ф(х) = (2п)—1/2^е— /2 с1у —интеграл вероятности.

Второй случай — это бесконечно малое влияние |(Ь) на общее поведение системы вследствие высокой стабильности генератора и невысоких частот передачи данных и наличие существенного влияния ТЫ1к(Т) на Т80^(Ь). Возникновение событий, приводящее к прерыванию текущего процесса, может подчиняться закону распределения Пуассона:

р; (Т) = ^ е-

I!

£ = 0,1,2,

где i — количество событий на интервале наблюдения Т; X — параметр распределения, вычисляемый как X = vT, где V — интенсивность потока.

В этом случае допустимый уровень можно определить как

пТ _ sclk — Т _ sft

Н =

1пЬ

а среднее нормированное количество превышений уровня Н рассчитывается как

е

H

N + (H, І) = 1 - £ (кi exp(-k) | і І).

i=0

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

Таким образом, с помощью выражений (1)-(6) можно рассчитать вероятности выхода за уровень

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

Заключение

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

Литература

1. Астапкович А. М. Микрооперационные системы реального времени / Под. ред. М. Б. Сергеева. — СПб.: Политехника, 2002. — 246 с.

2. Ciletti M. D. Advanced Digital Design with the Verilog(TM) HDL. — Prentice Hall, 2002. — 1008 с.

3. Gupta R. C. Co-Synthesis of Hardware and Software for Digital Embedded Systems: The Springer International Series in Engineering and Computer Science. — Springer, 1995. — 288 с.

4. Хопкрофт Д., Мотвани Р., Ульман Д. Введение в теорию автоматов, языков и вычислений: Пер. с англ. — М.: Издательский дом Вильямс, 2002. — 528 с.

ставление функций и логики работы с аппаратурой с точки зрения ПО. Использование приведенной совокупности формализованных описаний совместно с характеристиками типа «пересечений уровней» для входных воздействий позволяет разработать обобщенный комплексный подход к анализу систем реального времени и оптимизировать выбор программно-аппаратных решений аналитическим путем на стадии проектирования. Это имеет важное практическое значение для повышения качества и сокращения времени на разработку конечной продукции.

Предложенный подход проиллюстрирован простейшими примерами на основе ЙРІ. Но основными его приложениями являются сложные нестандартные коммуникационные интерфейсы и устройства, проектируемые для специализированных СнК. Множество асинхронных взаимодействующих процессов и сигналов, описываемых сложными законами, характерно для таких систем, поэтому анализ без соответствующих моделей затруднителен. Предложенные решения и набор моделей позволяют решить эту задачу.

5. Садовничий В. А. Теория операторов. — М.: Высш. шк., 1999. — 368 с.

6. AVR RISC microcontroller: Data Book. Atmel Inc, 1999. — 930 с.

7. Banerjee D. PLL Performance, Simulation and Design. 4th ed. — Dog Ear Publishing, LLC, 2006. — 344 c.

8. Тихонов В. И., Хименко В. И. Выбросы траекторий случайных процессов. — М.: Наука, 1987. — 303 с.

9. Ивановский Р. И. Теория вероятностей и математическая статистика. Основы, прикладные аспекты с примерами и задачами в среде Mathcad. — СПб.: БХВ-Петербург, 2008. — 528 с.