Содержание к диссертации
Введение
1. Архитектура матричных логических мультиконтроллеров повышенной надежности 12
1.1. Особенности архитектуры матричных логических мультиконтроллеров 12
1.2. Реализация логических мультиконтроллеров в базисе СБИС 23
1.3. Обеспечение повышенной надежности СБИС-мультиконтроллеров 26
1.4. Методы контроля и диагностики цифровых устройств, вычислительных систем и логических мультиконтроллеров 29
1.5. Организация оперативного контроля логических мультиконтроллеров 35
Выводы 39
2. Организация комбинированного контроля матричных логических мультиконтроллеров с использованием кольцевого арбитража 40
2.1. Общие принципы организации комбинированного межмодульного контроля логических мультиконтроллеров. Применение кольцевого арбитража 40
2.2. Определение множеств контролируемых и контролирующих соседей 42
2.3. Оценка вероятности обнаружения неисправных модулей при использовании предлагаемого подхода 45
Выводы 57
3. Алгоритм и аппаратные средства комбинированного контроля матричных логических мультиконтроллеров с кольцевым арбитражем 59
3.1. Параллельный алгоритм комбинированного контроля с кольцевым арбитражем 59
3.2. Структурно-функциональная организация аппаратных средств комбинированного контроля с кольцевым арбитражем 65
3.3. Функциональная схема аппаратных средств комбинированного контроля с кольцевым арбитражем 67
3.4. Оценка сложности средств контроля при использовании предлагаемого подхода 83
Выводы 95
4. Имитационное моделирование аппаратных средств распределенного встроенного контроля логических мультиконтроллеров 96
4.1. Организация вычислительного эксперимента 96
4.2. Особенности описания модели мультиконтроллера. Язык Q-схем 98
4.3. Особенности программных средств для проведения вычислительного эксперимента 105
4.4. Построение имитационной модели мультиконтроллера 118
4.5. Результаты имитационного моделирования. Оценка их соответствия теоретическим выводам 120
Выводы 123
Заключение 124
Библиографический список 127
Приложение 1 - Листинги программных модулей имитационного моделирования 139
Приложение 2 - Акты внедрения 164
- Особенности архитектуры матричных логических мультиконтроллеров
- Оценка вероятности обнаружения неисправных модулей при использовании предлагаемого подхода
- Функциональная схема аппаратных средств комбинированного контроля с кольцевым арбитражем
- Особенности программных средств для проведения вычислительного эксперимента
Введение к работе
Актуальность темы. Реализация систем логического управления нижнего уровня в базисе мультиконтроллеров – перспективный путь развития встраиваемых управляющих систем. Логические мультиконтроллеры (ЛМК) сочетают в своей архитектуре свойства параллельности, распределенности, однородности, наращиваемости и гибкости, что позволяет системам на их основе эффективно решать задачи логического управления высокопараллельными комплексными объектами и процессами теоретически неограниченной сложности.
Однотипность модулей и регулярность структуры мультиконтроллеров создают необходимые предпосылки для внедрения в них режима живучести, при котором неисправные модули оперативно заменяются модулями резерва с автоматическим переразмещением выполняемых управляющих алгоритмов и рестартом ЛМК с последней пройденной контрольной точки. Такой режим существенно повышает надежность систем на основе мультиконтроллеров, делая их устойчивыми к дефектам и отказам отдельных модулей, что в особенности важно в тех случаях, когда нарушение корректной работы объекта управления имеет серьезные или катастрофические последствия. Методы обеспечения живучести в настоящее время разработаны не только для традиционных двумерных матричных систем, но и для многомерных структур, которые, как известно, имеют скоростные преимущества перед двумерными структурами ввиду более высокой плотности их топологической модели.
Задачи повышения надежности ЛМК и аналогичных распределенных систем (в том числе СБИС-систем), обеспечения их отказоустойчивости и живучести находятся в центре внимания ученых уже значительный отрезок времени. Весомый вклад в решение этих задач внесли советские и российские ученые (Б.В. Гнеденко, Ю.Ю. Громов, В.Н. Дианов, К.А. Иыуду, М.Ф. Каравай, Б.А. Козлов, В.С. Королюк, Н.В. Лаходынова, П.П. Пархоменко, Н.Д. Путинцев, Е.С. Согомонян, А.П. Типикин, И.А. Ушаков, В.С. Харченко, Я.А. Хетагуров, Г.Н. Черкесов), а также зарубежные исследователи (Р. Барлоу, Д. Кокс, Р. Лонгботтом, Ф. Прошан, К. Райншке, В. Смит, И. Таканами, С.Фербер). Разработаны эффективные методы оценки надежности, контроля и диагностики ЛМК и подобных распределенных структур, методы отказоустойчивого размещения реализуемых управляющих алгоритмов, распределенные алгоритмы реконфигурации структуры ЛМК при отказах, алгоритмы отказоустойчивого межмодульного обмена данными. В то же время недостаточно проработанным остается вопрос оперативного выявления неисправных модулей мультиконтроллера (оперативный контроль) с целью их дальнейшего изолирования и замены резервом.
Оперативное выявление неисправных модулей в ЛМК в настоящее время осуществляется на аппаратном уровне с применением методов распределенного самоконтроля и межмодульного взаимоконтроля. Распределенный самоконтроль представляется наиболее простым в реализации, однако он не обеспечивает приемлемую вероятность обнаружения неисправностей, поскольку решение об отказе модуля принимается только локальными средствами контроля без согласования с другими модулями. Методы межмодульного взаимоконтроля базируются на согласованном вынесении решения об отказе модуля несколькими соседями в матричной структуре ЛМК, что позволяет снизить зависимость результата контроля от контролирующей способности и надежности проверяющих блоков и, как следствие, повысить вероятность обнаружения неисправностей. Однако эти методы требуют значительного усложнения сети связей между модулями мультиконтроллера, в частности, добавления диагональных связей и связей с непрямы-
ми соседями, что резко увеличивает число межмодульных соединений, которое является одним из критических факторов для многомерных структур. Кроме того, при использовании подобных методов относительно высока вероятность возникновения коллизий при попытках одновременной проверки модуля несколькими его соседями, что требует введения сложных алгоритмов и аппаратных средств арбитража.
Таким образом, имеет место противоречие, состоящее в том, что, с одной стороны, необходимо оперативное получение достоверных данных о текущем распределении неисправностей в физической структуре мультиконтроллера с целью их быстрого изолирования и замены резервом, а с другой стороны, известные методы распределенного оперативного контроля мультиконтроллеров либо не обеспечивают достаточную вероятность обнаружения отказов либо требуют существенного увеличения числа межмодульных соединений (коммуникационной сложности аппаратных средств) и при этом не исключают конфликтных ситуаций при параллельной проверке модулей.
Научно-технической задачей диссертации является разработка нового подхода к организации встроенного оперативного контроля многомерных матричных мультикон-троллеров, а также алгоритмических и схемных решений на его основе, позволяющих снизить коммуникационную сложность аппаратных средств.
Объектисследования: аппаратные средства многомерных матричных логических мультиконтроллеров повышенной надежности.
Предметисследования: методы, алгоритмы и аппаратные средства встроенного контроля логических мультиконтроллеров.
Работа выполнена в соответствии с планом НИР ЮЗГУ в 2013-2017 гг.
Целью диссертационной работы является снижение коммуникационной сложности многомерных матричных логических мультиконтроллеров со встроенным аппаратным контролем на основе разработки нового подхода к организации межмодульного контроля и реализующих его распределенных аппаратных средств комбинированного контроля с кольцевым арбитражем.
Для достижения сформулированной цели необходимо решить следующие частные задачи:
-
Провести сравнительный анализ известных методов, алгоритмов и средств аппаратного, программного и гибридного контроля цифровых устройств и систем (включая системы на СБИС) в целях обоснования выбранного направления исследований.
-
Разработать новый подход к организации распределенного оперативного контроля многомерных матричных логических мультиконтроллеров, позволяющий снизить коммуникационную сложность аппаратных средств. Оценить вероятность обнаружения отказов в ЛМК при использовании разработанного подхода, сопоставить результаты оценки с известными распределенными методами контроля.
-
Синтезировать параллельный аппаратно-ориентированный алгоритм встроенного контроля модулей многомерного матричного логического мультиконтроллера на базе предложенного подхода.
-
Разработать структурно-функциональную организацию аппаратных средств распределенного оперативного контроля многомерных матричных мультиконтроллеров. Выполнить сравнительную оценку структурной и коммуникационной сложности разработанных аппаратных средств.
-
Провести вычислительный эксперимент на базе стохастической имитационной модели с целью оценки вероятности обнаружения отказов в ЛМК при использовании разработанного алгоритма и аппаратных средств. Сопоставить результаты эксперимента с теоретическими выводами.
Результаты, выносимые на защиту, и их научная новизна:
-
Новый подход к организации встроенного распределенного контроля матричных логических мультиконтроллеров, отличающийся тем, что каждый модуль параллельно осуществляет проверку всех своих физических соседей в матричной структуре в сочетании с самоконтролем и, в свою очередь, сам параллельно проверяется всеми физическими соседями с последующим вынесением решения о неисправности модуля на основе применения мажоритарной операции к множеству частных решений, вынесенных его контролирующими модулями, причем для исключения конфликтов при попытках физически одновременной проверки некоторого модуля в него вводится кольцевой регистр арбитража с циркулирующим в нем единичным флагом, который опрашивается блоками контроля перед началом процедуры проверки.
-
Параллельный аппаратно-ориентированный алгоритм встроенного распределенного контроля многомерных матричных мультиконтроллеров, новизна которого заключается в организации на аппаратном уровне взаимного исключения при попытках начала проверки модулями своих соседей на основе опроса состояния флагов, движущихся в кольцевых регистрах арбитража этих соседей, что позволяет устранить коллизии при реализации контролирующих действий разными модулями и существенно упростить процедуру выбора моментов времени перехода к проверке соседних модулей.
-
Структурно-функциональная организация аппаратных средств встроенного распределенного контроля многомерных матричных мультиконтроллеров, отличающаяся наличием в каждом модуле множества параллельно функционирующих идентичных блоков контроля соседей, работа которых координируется блоком организации контроля, а также множества триггеров арбитража, организованных в виде кольцевого регистра сдвига, содержащего единичный флаг разрешения контроля модуля, позволяющая значительно сократить число линий связи между модулями мультиконтролле-ров высокой размерности.
Достоверность результатов исследований обеспечивается обоснованным и корректным использованием положений и методов математической логики, теорий: множеств и графов, вероятностей и математической статистики, надежности технических систем, систем и сетей массового обслуживания, стохастического моделирования, проектирования устройств ЭВМ и систем, а также подтверждается соответствием теоретических выводов результатам вычислительного эксперимента.
Соответствие паспорту специальности. Содержание диссертации соответствует п.4 паспорта специальности 05.13.05 «Элементы и устройства вычислительной техники и систем управления» («Разработка научных подходов, методов, алгоритмов и программ, обеспечивающих надежность, контроль и диагностику функционирования элементов и устройств вычислительной техники и систем управления»), так как в ней разработаны новый подход, алгоритм, схемы устройств, а также программные средства имитационного моделирования встроенного аппаратного контроля модулей многомерного мультиконтроллера, обеспечивающие снижение коммуникационной сложности аппаратных средств, что способствует уменьшению сложности изготовления и стоимости многомерных систем на базе мультиконтроллеров.
Практическая значимость работы.Предложенный подход к организации встроенного распределенного контроля матричных логических мультиконтроллеров позволяет значительно снизить число внешних межмодульных соединений по сравнению с методами межмодульного взаимоконтроля, обеспечивая тем больший эффект, чем больше число измерений в матрице мультиконтроллера, что согласуется с современными тенденциями перехода к матричным системам более высокой размерности (3 и вы-
ше). Сокращение числа межмодульных соединений упрощает и удешевляет производство многомерных мультиконтроллеров, поскольку существенно снижается сложность задачи трассировки межмодульных соединений. Простота схемы организации кольцевого арбитража также способствует снижению структурной сложности средств контроля и аппаратной сложности многомерной системы в целом.
Практическое использование результатов работы. Основные научные результаты, идеи, рекомендации и выводы диссертационной работы внедрены в ООО «Визор» (г. Курск), а также используются в учебном процессе на кафедре информационных систем и технологий ЮЗГУ в рамках дисциплин «Надежность информационных систем», «Имитационное моделирование», в курсовом проектировании.
Апробация работы. Основные идеи, положения, результаты и выводы диссертационной работы были заслушаны и получили положительную оценку на V Международной научно-практической конференции «Актуальные вопросы науки и хозяйства: новые вызовы и решения (г. Санкт-Петербург, 2014 г.), на II и III Региональной заочной научно-практической конференции «Интеллектуальные информационные системы: тенденции, проблемы, перспективы» (г. Курск, 2014 г., 2015 г.), на II Международной заочной научно-технической конференции «Информационные системы и технологии» (г. Курск, 2016 г.), а также на научных семинарах кафедры информационных систем и технологий ЮЗГУ, проводившихся с 2013 по 2017 гг.
Публикации по теме диссертации. Результаты диссертационной работы отражены в 8 публикациях, в числе которых 3 статьи, опубликованные в научных изданиях из Перечня центральных рецензируемых журналов и изданий.
Личный вклад соискателя. Все выносимые на защиту научные результаты полу
чены соискателем лично. В опубликованных в соавторстве работах личный вклад соис
кателя сводится к следующему: в [2,3] разработаны принципы организации комбиниро
ванного контроля мультиконтроллеров, в [1,6,8] предложена структурно-
функциональная организация аппаратных средств комбинированного контроля, в [2,7]
выполнена теоретическая оценка вероятности обнаружения неисправных модулей, в [4]
изложены вопросы проектирования микропроцессорной системы с комбинированным
контролем, в [5] рассмотрена задача организации взаимосвязи средств контроля мульти-
контроллера со средствами маршрутизации.
Объем и структура работы. Диссертационная работа состоит из введения, четырех разделов, заключения, списка литературы и приложений. Работа содержит 165 страниц текста (с учетом двух приложений) и поясняется 36 рисунками и 4 таблицами; список литературы включает 108 наименований.
Области возможного использования. Результаты проведенных исследований могут найти применение при разработке аппаратуры встроенного контроля матричных вычислительных и управляющих систем, в том числе перспективных многомерных СБИС-систем, а также в локальных сетях с матричной структурной организацией.
Особенности архитектуры матричных логических мультиконтроллеров
Архитектура матричных логических мультиконтроллеров базируется на принципах параллельности, конструктивной однородности и децентрализованного управления [12]. Мультиконтроллер можно представить как быстродействующую рекон-фигурируемую логически распределенную систему нижнего уровня иерархии, воплощенную в малом физическом объеме (стойка, плата, СБИС). Благодаря параллельности мультиконтроллер способен выполнять параллельные ветви алгоритма логического управления (или нескольких независимых алгоритмов) теоретически произвольной сложности в любых пространственно-временных сочетаниях, совмещая выполнение ветвей с информационными обменами и межмодульными координационными операциями. Конструктивная однородность предполагает создание мульти-контроллера из идентичных физических модулей, связанных сетью матричной топологической структуры, каждый из которых способен выполнять назначенные на него (микро)команды алгоритма управления без привлечения внешнего централизованного воздействия. Благодаря реконфигурируемости ЛМК обеспечивается возможность перепрограммирования, как отдельных контроллеров, так и коммуникационной среды в целом (в оффлайн или оперативном режиме), для чего имеются соответствующие внешние интерфейсы.
Структура логического мультиконтроллера в самом общем виде (без привязки к архитектуре контроллеров, без учета топологии коммуникационной среды, а также способов организации связи с объектом управления и интеграции в систему высшего уровня иерархии) может быть представлена так, как показано на рис. 1.1. Основными элементами ЛМК являются набор однотипных модулей (контроллеров) и коммуникационная сеть (КС), поддерживающая их взаимосогласованное функционирование. Каждый контроллер (выделен пунктирным квадратом) состоит из функционального элемента (ФЭ) и коммуникационного элемента (КЭ). Функциональный элемент – это базовый элемент контроллера. В его задачу входит способность выполнять алгоритм логического управления ограниченной сложности, которая определяется технологическими параметрами (число ножек на корпусе, объем внутренней памяти команд, глубина стека, ширина выборки и т.п.). Как правило, это чисто последовательный алгоритм, однако возможно комплексирование ЛМК из многоядерных контроллеров, которые могут исполнять конвейерные и многопоточные алгоритмы. Коммуникационный элемент выполняет транспортные функции. Он обеспечивает подключения соответствующего ФЭ к коммуникационной сети и поддерживает взаимодействие частных алгоритмов, исполняемых разными контроллерами, на аппаратном уровне (команды удаленной передачи/приема управления, барьерной синхронизации, удаленный вызов подпрограмм и т.д.).
Для подключения контроллеров ЛМК к объекту (объектам) управления используется специальный коммутатор связи с объектом управления (КСОУ). Он обеспечивает двунаправленные каналы связи объектов управления с контроллерами, через которые на объекты выдаются управляющие сигналы, а обратно поступают признаки состояния объектов с ряда установленных на них датчиков. Варианты организации КСОУ представлены в литературе [46]. Простейший вариант – использование множества не связанных друг с другом устройств сопряжения с объектом (УСО). Однако когда необходима реализация режимов группового взаимодействия объектов управления с контроллерами, в основе КСОУ лежит более сложная коммутационная архитектура (в частности, неблокирующий переключатель с коммутацией каналов [6]). К скорости взаимодействия контроллеров с объектами управления предъявляются довольно жесткие требования, поэтому обмены данными, командами, сигналами с датчиков через КСОУ осуществляется параллельными словами заданной разрядности, которые оформляются в виде пакетов.
Логический мультиконтроллер может функционировать автономно или в составе иерархической АСУ. При этом набор реализуемых алгоритмов может быть жестко заданным или изменяемым (состав алгоритмов меняется в режиме оффлайн или оперативно). Часто мультиконтроллер представляет собой подсистему нижнего уровня иерархии в составе АСУ и является объектом управления и настройки верхнего уровня. В функции подсистем верхнего уровня по отношению к ЛМК обычно входит выбор очередного исполняемого алгоритма, подгрузка новых алгоритмов управления, переразмещение алгоритмов, контроль и диагностика мультиконтроллера. В свою очередь, мультиконтроллер возвращает на верхний уровень признаки состояния, завершения операций, флаги окончания перенастройки, сигналы готовности, признаки отказа и т.д.
Информационные обмены между ЛМК и верхним уровнем управления АСУ осуществляются через дополнительный коммутатор. В схеме на рис. 1.1 это коммутатор связи с верхним уровнем (КСВУ). Как правило, взаимодействие ЛМК с верхним уровнем характеризуется низкой интенсивностью, поэтому особые требования к скорости обмена отсутствуют, и представляется возможным использование аппаратных решений на базе стандартных протоколов обмена данными. При этом допустимо последовательное взаимодействие, что позволяет снизить сложности и стоимость интерфейса.
Архитектура функционального элемента модуля ЛМК может варьироваться в широких пределах. Простейший вариант – микропрограммное управляющее устройство (МУУ) [38,39,89,90]. Также в основе ФЭ может лежать программируемый логический контроллер [23,63] или даже микропроцессорная система. Выбор архитектуры ФЭ зависит от специфики и уровня сложности задач, возложенных на мульти-контроллер. Например, если не требуется поддержка вычислительных операций, то ФЭ можно реализовать на основе МУУ. В таком случае каждый контроллер будет представлять собой микропрограммный автомат с дополнительными коммуникационными функциями [36].
Простейший вариант структуры МУУ представлен на рис. 1.2 [12]. Ядром устройства является блок памяти микропрограмм (БПМП). Он необходим для постоянного хранения выполняемых микропрограмм (ветвей алгоритма управления). Выборка очередной микрокоманды из этого блока производится путем подачи заданного адреса. После считывания микрокоманда передается в так называемый конвейерный регистр, именуемый регистром микрокоманд (РМК). Операционная часть микрокоманды, где записывается или кодируется множество исполняемых микроопераций (МО), через дешифратор микроопераций (ДМО) передается на управляемый объект. Адрес очередной микрокоманды вычисляется в блоке формирования адреса микрокоманды (БФАМК) исходя из кода текущей операции (номера алгоритма управления), адреса непосредственного перехода (АП), взятого из предыдущей микрокоманды, а также от результатов проверки логических условий (ЛУ), принимаемых от управляемого объекта. Синхронизация работы устройства производится генератором тактовых импульсов (ГТИ), который имеет внешний вход запуска.
Возможности функционального элемента модуля ЛМК определяются организацией блока формирования адреса микрокоманды (в зарубежной литературе его часто именуют секвенсером – sequencer [89,90]). Секвенсеры современных микропрограммных устройств поддерживают разнообразные режимы адресации микрокоманд, причем вместе с естественной адресацией реализуются различные способы принудительной адресации.
Оценка вероятности обнаружения неисправных модулей при использовании предлагаемого подхода
Выполним теоретическую оценку вероятности обнаружения неисправных (дефектных и отказавших) модулей ЛМК в случае использования предлагаемого подхода, исследуем ее зависимости от размерности мультиконтроллера и надежности отдельных блоков контроля. Сопоставим результаты оценки с методом распределенного самоконтроля и межмодульного взаимоконтроля.
Оценку будем проводить, учитывая, что отказ модуля или его дефект может быть пропущен средствами контроля (скрытый отказ) и что любой блок контроля может ложно индицировать отказ соседнего модуля (ложное срабатывание). Все отказы, которые не попадают в категории скрытых и ложных, являются явными отказами.
Исходя из приведенной системы понятий, качество организации распределенного контроля мультиконтроллера можно оценить долей явных отказов среди всех имевших место аномалий. При предельном переходе эта доля будет отражать вероятность того, что отказ обнаружен, т.е. вероятность обнаружения отказа.
Принятая система понятий поясняется диаграммами Эйлера, изображенными на рис. 2.2.
На рис. 2.2 выделены 3 области: A, B и C. Они охватывают все случаи, соответствующие явным, скрытым и ложным отказам. При объединении областей A и C получаем множество всех отказов, индицированных средствами контроля. Отношение площади области A к общей площади областей A, B и C даст вероятность обнаружения отказа. В предельном случае область A будет равна области всех имеющих место отказов (все отказы явные, ложных отказов нет). Аналогично, отношение площади области B к общей площади областей A, B и C дает вероятность пропуска отказа, а отношение площади области C к общей площади областей A, B и C отражает вероятность ложного срабатывания блока контроля (ложный отказ).
Пусть (t) – вероятность обнаружения отказа некоторого модуля изолированным блоком контроля (входящим в состав одного из контролирующих соседей либо данный модуль). Пусть - (t) и 0 (t) – вероятности соответственно пропуска отказа модуля и ложного срабатывания для данного блока контроля. Тогда согласно диаграммам Эйлера, представленным на рис. 2.2, несложно записать следующее правило
В оставшихся не рассмотренными случаях (когда 2, 1 и 0 модулей из 5 обнаруживают неисправность) считаем, что данный модуль работоспособен. Если, например, лишь 1 модуль из 5 обнаружил отказ данного модуля, полагаем, что средства контроля этого модуля допустили ложное срабатывание либо этот контролирующий модуль неисправен.
Суммируя выражения (2.6)-(2.8), выведем выражение для расчета вероятности обнаружения отказа данного модуля всеми контролирующими модулями в составе двумерного ЛМК
Графики, представленные на рис.2.3 и рис.2.4, позволяют установить ряд закономерностей .
1. Вероятность выявления неисправных модулей P(t) существенно увеличивается с повышением размерности ЛМК d, что обусловлено линейной зависимостью мощности множества контролирующих модулей у каждого контроллера от размерности. 2. Вероятность выявления неисправных модулей P(t) намного быстрее устремляется к единице относительно вероятности л"(?). Так, в двухмерном муль-тиконтроллере при лт(ґ) = 0,7 вероятность P(t) увеличивается примерно до 0,84, т.е. возрастает в 1,2 раза. В трехмерном мультиконтроллере при лг(ґ) = 0,7 имеем уже P(t)« 0,87, т.е. вероятность P(t) возрастает в 1,24 раза.
Следует отметить, что полученные закономерности справедливы лишь при л (ґ) 0,5, т.е. в тех случаях, когда отдельные блоки контроля выявляют более половины неисправностей. При лт(ґ) = 0,5 имеет место P(t) = 0,5, следовательно, предлагаемый подход не дает эффекта. При л(і) 0,5 вероятность обнаружения отказов, напротив, снижается (P(t) лг(t) 0,5), что характерно для мажоритарных систем. Исходя из сказанного, далее будем полагать, что л (ґ) 0,5.
Используя формулу (2.15), выполним теоретическое сравнение предлагаемого подхода с распределенным самоконтролем и межмодульным взаимоконтролем. Считаем, что вероятность выявления неисправности при самоконтроле есть л"(?) (контроль соседа и самоконтроль осуществляются по одному и тому же алгоритму). Исследуем зависимости отношения cp(t) = P(t)/a(t) от размерности ЛМК d и от вероятности л"(?) при ряде заданных значений л"(?) и d соответственно. Данные зависимости приведены на рис. 2.5 и 2.6 соответственно.
Анализ представленных зависимостей (рис.2.5 и 2.6) показывает преимущества предлагаемого подхода по вероятности обнаружения отказов перед распределенным самоконтролем на всем диапазоне значений л(г) и d. Наименьший эффект, который обеспечивает разработанный подход, достигается в двумерных мультиконтроллерах: при лг(/) = 0.9 9?(7)« 1.102, при лт(/) = 0.8 9?(7)« 1.178, при лт(/) = 0.7 9?(7)«1.196, при лт(/) = 0.6 9?(7)«1.138, при jt(t) = 0.55 9?(7)«1.078. Также из приведенных зависимостей следует, что при высокой надежности блоков контроля (л (ґ) 0.9) отношение p{t} практически постоянно. Чем ближе значение л"(?) подходит к единице, тем слабее преимущество предлагаемого подхода перед распределенным самоконтролем. При л (ґ) = 0.9 и d 2 имеет место таким образом, предлагаемый подход обеспечивает повышение вероятности выявления неисправных модулей примерно на 11%. Максимальный эффект от использования предлагаемого подхода обеспечивается при лг(ґ)«0.7, что соответствует средней надежности блоков контроля (см. рис.2.6).
Функциональная схема аппаратных средств комбинированного контроля с кольцевым арбитражем
Детализируем представленную на рис. 3.3 структурную схему средств контроля и синтезируем их функциональную схему. Для этого первоначально определим способы реализации вершин алгоритма контроля, учитывая те выражения, которые в них указаны. Один из возможных вариантов реализации вершин алгоритма сведен в табл. 3.3.
На основе разработанной структурной схемы (рис. 3.3), используя данные табл. 3.2, построим функциональную схему средств контроля в составе модуля ЛМК.
Работа средств контроля будет синхронизироваться двумя сериями тактовых импульсов CLK1 и CLK2, приходящих от ГТИ (см. рис. 3.3). Полагаем, что серии CLK1 и CLK2 имеют один и тот же период следования, при этом импульсы CLK2 запаздывают относительно CLK1 на половину периода, а скважность импульсов выбрана такой, что между парами соседних импульсов CLK1, CLK2 и CLK2, CLK1 есть промежуток времени, величина которого не менее длительности этих импульсов.
Прежде чем перейти к построению схемы средств контроля в целом, рассмотрим принципы реализации кольцевого арбитража, поскольку он является ключевым элементом в рамках предлагаемого подхода. Для этого отдельно приведем схему кольцевого арбитража и проанализируем ее работу. В целях упрощения ограничимся рассмотрением двухмерного случая. Функциональная схема, реализующая кольцевой арбитраж на уровне модуля двухмерного ЛМК, изображена на рис. 3.4.
В схеме на рис. 3.4 имеется пять JK-триггеров, к K-входам которых подключены инверторы. Нумерация триггеров соответствует индексации соседних модулей, принятой выше (i-й JK-триггер с подключенным к нему инвертором соответствует блоку ТАi в структурной схеме на рис. 3.3). Триггеры соединены в кольцевой регистр и тактируются импульсами CLK1, поступающими от ГТИ (на схеме не показан). Также в схеме имеется два элемента И, необходимые для блокировки прохождения импульсов CLK1, когда данный модуль проверяется другим модулем либо осуществляет самоконтроль.
Рассмотрим функционирование схемы кольцевого арбитража.
Все триггеры приводятся в исходное состояние импульсом системного сброса RST, который формируется однократно при запуске мультиконтроллера. После поступления этого импульса триггер 0 оказывается в состоянии логической единицы ( zx0y =1), а остальные триггеры сбрасываются в ноль. Тем самым обеспечивается начальное условие, заданное вершиной 2 разработанного алгоритма контроля (см. рис. 3.1), согласно которому все модули изначально настроены на самоконтроль.
В случае начала текущим модулем процедуры самоконтроля из БСК приходит сигнал bx0y =0 (выполняется вершина 2i ветви B0 разработанного алгоритма, см. рис. 3.2). В результате блокируются оба элемента И и импульсы CLK1 перестают поступать на синхровходы триггеров. Триггер 0 сохраняет единичное значение, а остальные триггеры остаются в нулевом состоянии до тех пор, пока не закончится процедура самоконтроля данного модуля. Как только самоконтроль завершается, поступает сигнал bx0y =1 (вершина bi алгоритма контроля), элементы открываются, что позволяет следующим импульсам поступать на триггеры. Возможна ситуация, когда флаг bx0y не сбрасывается в ноль, элементы И остаются открытыми. Это происходит в том случае, когда еще не истекло время до начала процедуры самоконтроля.
Далее очередной импульс CLK1 через двухвходовой элемент И проходит на синхровходы всех триггеров и инициирует сдвиг единицы из триггера 0 в триггер 1. В триггер 0 при этом одновременно заносится нулевое значение из триггера 4. В результате триггер 1 оказывается в состоянии логической единицы, а остальные триггеры установлены в ноль. Появляется значение z3x,( y+1)modm =1, которое разрешает соседнему модулю ux,( y+1)modm (расположенному сверху) начать проверку данного модуля (индекс «3» означает, что для модуля ux,( y+1)modm текущий модуль uxy является третьим по порядку соседом).
В случае начала модулем ux,( y+1)modm процедуры контроля из его БКС3 при ходит сигнал bx3,(y+1)modm =0 (выполняется вершина 2i ветви B3 алгоритма контроля). Происходит блокировка элементов И и импульсы CLK1 перестают поступать на синхровходы триггеров. Триггер 1 сохраняет единичное значение, а остальные триггеры остаются в нулевом состоянии до тех пор, пока не закончится процедура контроля. Как только контроль завершается, поступает сигнал bx3,( y+1)modm =1 (вершина bi алгоритма контроля), элементы И открываются, что позволяет следующим импульсам поступать на триггеры. Если флаг bx3,( y+1)modm не сбрасывался в ноль (не истекло время до начала контроля), элементы И так остаются открытыми.
Далее аналогичным образом единица из триггера 1 сдвигается в триггер 2, из триггера 2 в триггер 3, затем в триггер 4 и снова в триггер 0, завершая цикл арбитража. Происходящие при этом действия аналогичны описанному выше. При единичном состоянии триггера 2 право контроля данного модуля дается соседнему модулю u(x+1)modn,y. Единичное состояние триггера 3 дает возможность контроля соседу ux,y+(1-sign( y))m-1. Наконец, при единичном состоянии триггера 4 проверку осуществляет соседний модуль ux+(1-sign(x))n-1,y . Процессы приема значений флагов z и формирования значений флагов b подробно рассматриваются ниже.
Отметим, что схема организации кольцевого арбитража в мультиконтролле-рах более высокой размерности будет аналогична приведенной на рис. 3.4. Отличаться она будет увеличением числа триггеров, инверторов, входов и выходов. Например, в случае трехмерного ЛМК потребуется 7 триггеров арбитража, в случае четырехмерного – 9 триггеров.
Теперь перейдем к построению функциональных схем блока организации контроля, блоков контроля соседей / самоконтроля. Схемы всех указанных блоков объединим в одну схему, что позволит более четко и наглядно описать их интерфейс. Полученная объединенная схема изображена на рис. 3.5. Блок организации контроля здесь расположен слева, а БКС размещены справа. Учитывая идентичность всех БКС, детализирован лишь блок БКС0 (являющийся блоком самоконтроля). Связи всех БКС с БОК, а также их внешние связи одинаковы.
Блок организации контроля имеет 4 внешних входа, обозначенных символами A, B, C, D (рис. 3.5).
Входы A и D служат для приема серий тактовых импульсов CLK1 и CLK2 от ГТИ (но не являющегося элементом средств контроля).
Вход B предназначен для приема признака работоспособности текущего модуля x1x2 xd от формирующего его мажоритарного элемента (см. также рис. 3.3).
Вход C используется для подачи импульса начальной установки RST, обеспечивающего приведение всех элементов памяти средств контроля в исходное состояние.
Каждый блок контроля соседей / самоконтроля (рис. 3.5) имеет несколько входных и выходных связей с БОК, а также ряд внешних входов и выходов для подключения к проверяемым модулям. Все указанные входы и выходы обозначены порядковыми номерами.
Назначение внешних входов и выходов БКС сводится к следующему.
Вход 9 служит для приема текущего значения флага zxi1x2 xd из схемы организации кольцевого арбитража проверяемого соседа (или данного модуля).
Выход 10 необходим для выдачи текущего значения флага bxi1x2 xd в схему организации кольцевого арбитража проверяемого соседа (или данного модуля).
Выходы 11 и 12 используются для передачи в проверяемый модуль команды контроля (выход 12) в сопровождении синхроимпульса (выход 11).
Выход 13 предназначен для выдачи признака ix1x2 xd работоспособности проверяемого соседнего модуля (или данного модуля – в случае самоконтроля).
Вход 14 служит для приема отклика проверяемого модуля (или данного модуля – в случае самоконтроля) на выполняемую команду контроля.
Особенности программных средств для проведения вычислительного эксперимента
Рассмотрим ключевые особенности визуальной среды Visual QChart Simulator [12, 15, 42, 43], используемой для реализации вычислительных экспериментов, выделяя при необходимости те детали, которые наиболее существенны для данного диссертационного исследования.
Среда Visual QChart Simulator имеет графический интерфейс пользователя, позволяющий непосредственно вводить исследуемые Q-схемы, встроенный двухуровневый транслятор в промежуточный язык макросов и затем в объектный код, диспетчер проектов моделирования, обеспечивающий как последовательное, так и параллельное асинхронное/синхронное исполнение нескольких сессий моделирования, а также набор средств для сбора и простейшей обработки статистических данных. В среде можно настраивать параметры всех элементов модели и связей между ними, при необходимости можно вводить код на языке С++ для описания нестандартного поведения моделирующих агрегатов (в нашем случае требуется непосредственное программирование обобщенных массовых контроллеров). Основу архитектуры среды Visual QChart Simulator составляет библиотека классов, шаблонов и моделирующих функций. Она охватывает множества структур данных, функций, шаблонных функций, макросов, классов и шаблонных классов, реализующих основные и вспомогательные абстракции (моделирующие агрегаты) имитационного моделирования.
Взаимодействие с пользователем в среде Visual QChart Simulator осуществляется посредством ряда взаимосвязанных окон диалога. После запуска программы на экране высвечивается главное окно, внешний вид которого представлен на рис. 4.3. Оно включает область ввода модели, разделенную на ячейки и именуемую дизайнером Q-схем, палитру компонент (находится справа) и меню (расположено вверху). Работа с палитрой компонент и дизайнером Q-схем организована в стиле RAD-приложений. На первом шаге из палитры выбирается нужный компонент (моделирующий агрегат), затем он переносится в любую ячейку сетки дизайнера. После размещения элемента в сетке можно выполнять редактирование, перемещение, копировать или удалить элемент. Можно также ввести связи элемента с другими элементами модели (информационные и/или управляющие). Действия можно отменять, а также выполнять повторно независимо от того, сохранен уже файл, содержащий Q-схему, или нет.
При обращении практически к любому из пунктов меню среды Visual QChart Simulator на экран выводится новое диалоговое окно. Также окна диалога выводятся и в других случаях, например, при переходе к редактированию параметров текущего агрегата или атрибутов связи.
На рис. 4.4 в качестве примера представлено окно настройки параметров генератора заявок или канала (для других элементов окна настройки параметров аналогичны по виду и отличаются лишь множеством доступных для изменения параметров). В верхней части данного окна имеется поле задания имени моделирующего агрегата Name. Это имя в дальнейшем используется в качестве программного идентификатора объекта, представляющего данный агрегат. Слева вверху расположена область выбора закона распределения интервалов времени между заявками. Здесь можно выбрать один из трех стандартных законов распределения (фиксированный, равномерный или экспоненциальный) ли 108 бо нажать кнопку и запрограммировать функцию, реализующую любой отсутствующий в перечне закон распределения. Под областью выбора закона распределения размещены поля ввода значений параметров закона распределения. Количество доступных для ввода полей зависит от выбранного закона; например, если задан равномерный закон распределения, то необходимо будет задать 2 параметра (левую и правую границы области значений случайной величины). В правой части рассматриваемого окна диалога имеется область для управления сбором статистических данных моделирования. К примеру, чтобы для данного генератора фиксировались статистические данные о числе выданных заявок, следует включить флажок Log statistics. Возможен расширенный режим сбора статистики (Log debug statistics). Массовое включение/отключение сбора статистики о работе моделирующих агрегатов осуществляется следующими двумя флажками. Так, если установить флажок All/no elements log statistics, то статистические данные будут фиксироваться для всех элементов модели. Область Set (adjacent) links appearance содержит две кнопки для сокрытия связей данного элемента или связей всех элементов (в окне дизайнера Q-схем скрытые связи отображаются бледно-желтым цветом), что удобно при редактировании больших моделей, имеющих много связей между элементами.
Ключевым элементом разработчика Q-схем в среде Visual QChart Simulator является редактор пользовательского кода. Он обеспечивает возможность ввода нестандартного кода для законов распределения генераторов заявок и каналов, для функций, описывающих дисциплины обслуживания очередей, функций группового управления клапанами, а также алгоритмов работы массовых контроллеров. Редактор становится доступным тогда, когда для данного генератора, канала, очереди либо клапана необходимо задать нестандартный алгоритм поведения (вход в редактор осуществляется при нажатии на кнопку Edit code, см. рис. 4.4). Также редактор всегда используется при работе с массовыми контроллерами (см. рис. 4.2,в).
На рис. 4.7 представлен вид окна редактора пользовательского кода для ввода нестандартного закона распределения интервалов между заявками (вид окон для клапанов, очередей и массовых контроллеров аналогичен).
Поле имени необходимо для задания имени шаблонного класса генератора случайных чисел. Оно должно быть формально правильным идентификатором согласно стандарту языка C++. Поле параметров шаблона используется для указания параметров шаблона генератора случайных чисел (не более 3 параметров). Каждый параметр задается в формате декларации С++ с одним декла-ратором и позволяет установить граничное значение при формировании случайных интервалов модельного времени между заявками. Так, при реализации нормального закона распределения параметры позволяют задать математическое ожидание M между моментами выхода заявок и среднеквадратическое отклонение S. Стандартный формат декларации параметра имеет вид: const size_t p. Здесь p – идентификатор параметра, используемый в коде шаблона, size_t – стандартный тип, представляющий множество беззнаковых целых чисел. Для третьего параметра допустима декларация вида const int p (int – стандартный тип знаковых целых чисел), причем возможны отрицательные значения этого параметра.
Поле выбора существующего кода позволяет повторно использовать уже готовый пользовательский код. К примеру, если сразу несколько генераторов заявок работают в соответствии с нормальным законом распределения, то можно лишь один раз ввести код этого закона, а затем повторно выбирать его из выпадающего списка. Идентификаторы шаблонов, классов и функций вносятся в данный список с учетом типа текущего моделирующего агрегата, в частности, редактируя код дисциплины обслуживания некоторой очереди, из списка нельзя выбрать код функции массового управления или код закона распределения и т.п.
Для добавления кода, реализующего нестандартный алгоритм генератора случайных чисел, его следует набрать в окне редактирования (рис. 4.7) между текстом «Insert generator code here» и ближайшей замыкающей фигурной скобкой. Этот фрагмент кода будет телом функции GetValue, возвращающей величину интервала модельного времени до момента выхода очередной заявки из генератора либо до завершения пребывания заявки в канале. Значение данной функции имеет тип size_t, таким образом, функция способна вернуть только неотрицательное целое (нуль на выходе корректен, однако он принудительно меняется единицей в процессе генерации проекта моделирования). В теле функции GetValue допускается использовать произвольные операторы, выражения, декларации С++, корректные в контексте определения этой функции. Возможны обращения к стандартным математическим функциям, таким, как log, ln, sin, cos. Отметим, что окно редактирования, изображенное на рис. 4.7, отображает нестандартный код в том виде, в каком он появится в автоматически создаваемом визуальной средой заголовочном файле.
На рис. 4.8 представлено окно редактора пользовательского кода с подготовленным определением нестандартного закона распределения.