Организация распределенного комбинированного аппаратного контроля многомерных матричных мультиконтроллеров с кольцевым арбитражем тема диссертации и автореферата по ВАК РФ 05.13.05, кандидат наук Мое Мин Вин

  • Мое Мин Вин
  • кандидат науккандидат наук
  • 2017, ФГБОУ ВО «Юго-Западный государственный университет»
  • Специальность ВАК РФ05.13.05
  • Количество страниц 165
Мое Мин Вин. Организация распределенного комбинированного аппаратного контроля многомерных матричных мультиконтроллеров с кольцевым арбитражем: дис. кандидат наук: 05.13.05 - Элементы и устройства вычислительной техники и систем управления. ФГБОУ ВО «Юго-Западный государственный университет». 2017. 165 с.

Оглавление диссертации кандидат наук Мое Мин Вин

ВВЕДЕНИЕ

1. АРХИТЕКТУРА МАТРИЧНЫХ ЛОГИЧЕСКИХ МУЛЬТИКОНТРОЛЛЕРОВ ПОВЫШЕННОЙ НАДЕЖНОСТИ

1.1. Особенности архитектуры матричных логических мультиконтроллеров

1.2. Реализация логических мультиконтроллеров в базисе СБИС

1.3. Обеспечение повышенной надежности СБИС-мультиконтроллеров

1.4. Методы контроля и диагностики цифровых устройств, вычислительных систем и логических мультиконтроллеров

1.5. Организация оперативного контроля логических мультиконтроллеров .. 35 Выводы

2. ОРГАНИЗАЦИЯ КОМБИНИРОВАННОГО КОНТРОЛЯ МАТРИЧНЫХ ЛОГИЧЕСКИХ МУЛЬТИКОНТРОЛЛЕРОВ С ИСПОЛЬЗОВАНИЕМ КОЛЬЦЕВОГО АРБИТРАЖА

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

2.2. Определение множеств контролируемых и контролирующих соседей

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

предлагаемого подхода

Выводы

3. АЛГОРИТМ И АППАРАТНЫЕ СРЕДСТВА КОМБИНИРОВАННОГО КОНТРОЛЯ МАТРИЧНЫХ ЛОГИЧЕСКИХ МУЛЬТИКОНТРОЛЛЕРОВ С КОЛЬЦЕВЫМ АРБИТРАЖЕМ

3.1. Параллельный алгоритм комбинированного контроля с кольцевым арбитражем

3.2. Структурно-функциональная организация аппаратных средств комбинированного контроля с кольцевым арбитражем

3.3. Функциональная схема аппаратных средств комбинированного контроля с кольцевым арбитражем

3.4. Оценка сложности средств контроля при использовании предлагаемого

подхода

Выводы

4. ИМИТАЦИОННОЕ МОДЕЛИРОВАНИЕ АППАРАТНЫХ СРЕДСТВ РАСПРЕДЕЛЕННОГО ВСТРОЕННОГО КОНТРОЛЯ ЛОГИЧЕСКИХ МУЛЬТИКОНТРОЛЛЕРОВ

4.1. Организация вычислительного эксперимента

4.2. Особенности описания модели мультиконтроллера. Язык Q-схем

4.3. Особенности программных средств для проведения вычислительного эксперимента

4.4. Построение имитационной модели мультиконтроллера

4.5. Результаты имитационного моделирования. Оценка их соответствия

теоретическим выводам

Выводы

ЗАКЛЮЧЕНИЕ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

ПРИЛОЖЕНИЕ 1 - Листинги программных модулей имитационного

моделирования

ПРИЛОЖЕНИЕ 2 - Акты внедрения

Рекомендованный список диссертаций по специальности «Элементы и устройства вычислительной техники и систем управления», 05.13.05 шифр ВАК

Введение диссертации (часть автореферата) на тему «Организация распределенного комбинированного аппаратного контроля многомерных матричных мультиконтроллеров с кольцевым арбитражем»

ВВЕДЕНИЕ

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

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

Задачи повышения надежности ЛМК и аналогичных распределенных систем (в том числе СБИС-систем), обеспечения их отказоустойчивости и живучести находятся в центре внимания ученых уже значительный отрезок времени. Весомый вклад в решение этих задач внесли советские и российские ученые (Б. В. Гне-денко, Ю.Ю. Громов, В.Н. Дианов, К.А. Иыуду, М.Ф. Каравай, Б.А. Козлов, В.С. Королюк, Н.В. Лаходынова, П.П. Пархоменко, Н.Д. Путинцев, Е.С. Согомонян,

А.П. Типикин, И.А. Ушаков, В.С. Харченко, Я.А. Хетагуров, Г.Н. Черкесов), а также зарубежные исследователи (Р. Барлоу, Д. Кокс, Р. Лонгботтом, Ф. Прошан, К. Райншке, В. Смит, И. Таканами, С.Фербер). Разработаны эффективные методы оценки надежности, контроля и диагностики ЛМК и подобных распределенных структур, методы отказоустойчивого размещения реализуемых управляющих алгоритмов, распределенные алгоритмы реконфигурации структуры ЛМК при отказах, алгоритмы отказоустойчивого межмодульного обмена данными. В то же время недостаточно проработанным остается вопрос оперативного выявления неисправных модулей мультиконтроллера (оперативный контроль) с целью их дальнейшего изолирования и замены резервом.

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

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

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

Объект исследования: аппаратные средства многомерных матричных логических мультиконтроллеров повышенной надежности.

Предмет исследования: методы, алгоритмы и аппаратные средства встроенного контроля логических мультиконтроллеров.

Работа выполнена в соответствии с планом НИР ЮЗГУ в 2013-2017 гг.

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

Для достижения сформулированной цели необходимо решить следующие частные задачи:

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

(включая системы на СБИС) в целях обоснования выбранного направления исследований.

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

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

4. Разработать структурно-функциональную организацию аппаратных средств распределенного оперативного контроля многомерных матричных мультиконтроллеров. Выполнить сравнительную оценку структурной и коммуникационной сложности разработанных аппаратных средств.

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

Результаты, выносимые на защиту, и их научная новизна:

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

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

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

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

Достоверность результатов исследований обеспечивается обоснованным и корректным использованием положений и методов математической логики, теорий: множеств и графов, вероятностей и математической статистики, надежности технических систем, систем и сетей массового обслуживания, стохастического моделирования, проектирования устройств ЭВМ и систем, а также подтверждается соответствием теоретических выводов результатам вычислительного эксперимента.

Соответствие паспорту специальности. Содержание диссертации соответствует п.4 паспорта специальности 05.13.05 «Элементы и устройства вычисли-

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

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

Практическое использование результатов работы. Основные научные результаты, идеи, рекомендации и выводы диссертационной работы внедрены в ООО «Визор» (г. Курск), а также используются в учебном процессе на кафедре информационных систем и технологий ЮЗГУ в рамках дисциплин «Надежность информационных систем», «Имитационное моделирование», в курсовом проектировании.

Апробация работы. Основные идеи, положения, результаты и выводы диссертационной работы были заслушаны и получили положительную оценку на V Международной научно-практической конференции «Актуальные вопросы науки и хозяйства: новые вызовы и решения (г. Санкт-Петербург, 2014 г.), на II и III Региональной заочной научно-практической конференции «Интеллектуальные информационные системы: тенденции, проблемы, перспективы» (г. Курск, 2014 г., 2015 г.), на II Международной заочной научно-технической конференции «Информационные системы и технологии» (г. Курск, 2016 г.), а также на научных семинарах кафедры информационных систем и технологий ЮЗГУ, проводившихся с 2013 по 2017 гг.

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

Личный вклад соискателя. Все выносимые на защиту научные результаты получены соискателем лично. В опубликованных в соавторстве работах личный вклад соискателя сводится к следующему: в [16,17] разработаны принципы организации комбинированного контроля мультиконтроллеров, в [24,26,27] предложена структурно-функциональная организация аппаратных средств комбинированного контроля, в [16,31] выполнена теоретическая оценка вероятности обнаружения неисправных модулей, в [10] изложены вопросы проектирования микропроцессорной системы с комбинированным контролем, в [25] рассмотрена задача организации взаимосвязи средств контроля мультиконтроллера со средствами маршрутизации.

Объем и структура работы. Диссертационная работа состоит из введения, четырех разделов, заключения, списка литературы и приложений. Работа содержит 165 страниц текста (с учетом двух приложений) и поясняется 36 рисунками и 4 таблицами; список литературы включает 108 наименований.

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

1. АРХИТЕКТУРА МАТРИЧНЫХ ЛОГИЧЕСКИХ МУЛЬТИКОНТРОЛЛЕРОВ ПОВЫШЕННОЙ НАДЕЖНОСТИ

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

1.1. Особенности архитектуры матричных логических мультиконтроллеров

Архитектура матричных логических мультиконтроллеров базируется на принципах параллельности, конструктивной однородности и децентрализованного управления [12]. Мультиконтроллер можно представить как быстродействующую рекон-фигурируемую логически распределенную систему нижнего уровня иерархии, воплощенную в малом физическом объеме (стойка, плата, СБИС). Благодаря параллельности мультиконтроллер способен выполнять параллельные ветви алгоритма ло-

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

Структура логического мультиконтроллера в самом общем виде (без привязки к архитектуре контроллеров, без учета топологии коммуникационной среды, а также способов организации связи с объектом управления и интеграции в систему высшего уровня иерархии) может быть представлена так, как показано на рис. 1.1. Основными элементами ЛМК являются набор однотипных модулей (контроллеров) и коммуникационная сеть (КС), поддерживающая их взаимосогласованное функционирование. Каждый контроллер (выделен пунктирным квадратом) состоит из функционального элемента (ФЭ) и коммуникационного элемента (КЭ). Функциональный элемент - это базовый элемент контроллера. В его задачу входит способность выполнять алгоритм логического управления ограниченной сложности, которая определяется технологическими параметрами (число ножек на корпусе, объем внутренней памяти команд, глубина стека, ширина выборки и т.п.). Как правило, это чисто последовательный алгоритм, однако возможно комплексирование ЛМК из многоядерных контроллеров, которые могут исполнять конвейерные и многопоточные алгоритмы. Коммуникационный элемент выполняет транспортные функции. Он обеспечивает подключения соответствующего ФЭ к коммуникационной сети и поддерживает взаимодействие частных алгоритмов, исполняемых разными контроллерами, на аппаратном уровне

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

Рис. 1.1. Структурная организация логического мультиконтроллера

Для подключения контроллеров ЛМК к объекту (объектам) управления используется специальный коммутатор связи с объектом управления (КСОУ). Он обеспечивает двунаправленные каналы связи объектов управления с контроллерами, через которые на объекты выдаются управляющие сигналы, а обратно поступают признаки состояния объектов с ряда установленных на них датчиков. Варианты организации КСОУ представлены в литературе [46]. Простейший вариант -использование множества не связанных друг с другом устройств сопряжения с объектом (УСО). Однако когда необходима реализация режимов группового взаи-

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

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

Информационные обмены между ЛМК и верхним уровнем управления АСУ осуществляются через дополнительный коммутатор. В схеме на рис. 1.1 это коммутатор связи с верхним уровнем (КСВУ). Как правило, взаимодействие ЛМК с верхним уровнем характеризуется низкой интенсивностью, поэтому особые требования к скорости обмена отсутствуют, и представляется возможным использование аппаратных решений на базе стандартных протоколов обмена данными. При этом допустимо последовательное взаимодействие, что позволяет снизить сложности и стоимость интерфейса.

Архитектура функционального элемента модуля ЛМК может варьироваться в широких пределах. Простейший вариант - микропрограммное управляющее устройство (МУУ) [38,39,89,90]. Также в основе ФЭ может лежать программируемый логи-

ческий контроллер [23,63] или даже микропроцессорная система. Выбор архитектуры ФЭ зависит от специфики и уровня сложности задач, возложенных на мульти-контроллер. Например, если не требуется поддержка вычислительных операций, то ФЭ можно реализовать на основе МУУ. В таком случае каждый контроллер будет представлять собой микропрограммный автомат с дополнительными коммуникационными функциями [36].

Простейший вариант структуры МУУ представлен на рис. 1.2 [12]. Ядром устройства является блок памяти микропрограмм (БПМП). Он необходим для постоянного хранения выполняемых микропрограмм (ветвей алгоритма управления). Выборка очередной микрокоманды из этого блока производится путем подачи заданного адреса. После считывания микрокоманда передается в так называемый конвейерный регистр, именуемый регистром микрокоманд (РМК). Операционная часть микрокоманды, где записывается или кодируется множество исполняемых микроопераций (МО), через дешифратор микроопераций (ДМО) передается на управляемый объект. Адрес очередной микрокоманды вычисляется в блоке формирования адреса микрокоманды (БФАМК) исходя из кода текущей операции (номера алгоритма управления), адреса непосредственного перехода (АП), взятого из предыдущей микрокоманды, а также от результатов проверки логических условий (ЛУ), принимаемых от управляемого объекта. Синхронизация работы устройства производится генератором тактовых импульсов (ГТИ), который имеет внешний вход запуска.

Возможности функционального элемента модуля ЛМК определяются организацией блока формирования адреса микрокоманды (в зарубежной литературе его часто именуют секвенсером - sequencer [89,90]). Секвенсеры современных микропрограммных устройств поддерживают разнообразные режимы адресации микрокоманд, причем вместе с естественной адресацией реализуются различные способы принудительной адресации.

МО

Рис. 1.2. Структурная организация микропрограммного контроллера

На рис. 1.3 в качестве примера изображена схема микропрограммного се-квенсера C49410 фирмы CAST, Inc. [89]. Прибор содержит следующие элементы и блоки: мультиплексор адреса на четыре входа (16 двоичных разрядов); буферный блок; дешифратор команд; регистр-счетчик микрокоманд (16 двоичных разрядов); вычитающий регистр-счетчик (16 двоичных разрядов); блок инкремента; стек на 33 слова с аппаратной поддержкой указателя стека; детектор нуля.

DATA(15:0) CP

Рис. 1.3. Структурная организация секвенсера C49410 фирмы CAST, Inc.

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

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

Назначение внешних выводов прибора C49410 состоит в следующем: 4-разрядный вход IR необходим для приема внешней команды, устанавливающей режим работы секвенсера; 16-разрядный вход DATA служит для приема внешнего адреса непосредственного перехода (например, из БПМП); 16-разрядный выход Y требуется для выдачи адреса следующей микрокоманды с целью адресации внешнего БПМП; вход CCN необходим для приема сигналов логических условий, а вход CCENN - для выдачи сигнала разрешения приема этих условий; вход CP используется для приема синхроимпульсов, координирующих работу элементов се-квенсера; вход CI служит для приема сигнала разрешения увеличения адреса следующей микрокоманды; вход OEN необходим для активизации работы буферного блока; вход RLDN требуется для приема сигнала, разрешающего запись в регистр-счетчик; выход FULLN предназначен для выдачи сигнала, индицирующего факт переполнения стека.

Похожие диссертационные работы по специальности «Элементы и устройства вычислительной техники и систем управления», 05.13.05 шифр ВАК

Список литературы диссертационного исследования кандидат наук Мое Мин Вин, 2017 год

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Александрович А.Е., Бородакий Ю.В., Чуканов В.О. Проектирование высоконадежных информационно-вычислительных систем. М.: Радио и связь, 2004.

2. А. М. Андреев, Г. П. Можаров, В. В. Сюзев. Многопроцессорные вычислительные системы: теоретический анализ, математические модели и применение: учеб. Пособие. - М. : Изд-во МГТУ им. Н. Э. Баумана, 2011. - 332 с.

3. Г.Т. Артамонов. Топология регулярных вычислительных сетей и сред. М.: Радио и связь, 1985.

4. Барлоу Р., Прошан Ф. Математическая теория надежности. М.: Сов. радио, 1969. 488 с.

5. Бредихин Р.В., Нян Лин, Зотов И.В. Об организации встроенного аппаратного взаимоконтроля в логических мультиконтроллерах // Изв. Вузов. Приборостроение. 2013. Т.56, №6. С. 44-49.

6. Воеводин В.В., Воеводин Вл.В. Параллельные вычисления. СПБ.: БХВ-Петербург, 2002. 608 с.

7. Воскобоев В.Ф. Надёжность технических систем и техногенный риск. Ч. I. Надёжность технических систем. - М. : ООО ИД «Альянс», 2008 ; ООО Изд-во «Путь», 2008. - 200 с.

8. Гнеденко Б.В., Беляев Ю.К., Соловьев А.Д. Математические методы в теории надежности. М.: Наука, 1965.

9. ГОСТ 27.002-89. Надежность в технике. Основные понятия. Термины и определения. - М. : Изд-во стандартов, 1990.

10.Даниел Мондай Афодигбокву, Мое Мин Вин, Тейн Тун Ньюнт, Зотов И.В. Формализация задачи проектирования микропроцессорной системы // Современные материалы, техника и технологии, №3 (3), 2015. С. 95-99.

11.А.Г. Додонов, Д.В. Ландэ. Живучесть информационных систем. - К.: Наук. думка, 2011. - 256 с.

12.Емельянов С.Г., Зотов И.В., Титов В.С. Архитектура параллельных логических мультиконтроллеров. М.: Высшая школа, 2009. 233 с.

13.Журавлев Ю.П., Котелюк Л.А., Циклинский Н.И. Надежность и контроль ЭВМ. М.: Сов. радио, 1978. 416 с.

14.Зотов И.В., Бредихин Р.В., Лисицин Л.А., Нян Лин. Принципы организации встроенного аппаратного межмодульного взаимоконтроля в матричных логических мультиконтроллерах // Известия ЮЗГУ. Серия «Управление, вычислительная техника, информатика. Медицинское приборостроение». 2013. №1. С. 202-208.

15.Зотов, И.В. Визуальная среда для имитационного моделирования коммутаторов и коммуникационных сетей / Перспективы развития систем управления оружием: сборник докладов IV научно-практической конференции, Курск, 19-20 сентября 2007 г. М.: Изд-во «Бедретдинов и Ко», 2007. С. 71-82.

16. Зотов И.В., Мое Мин Вин, Тейн Тун Ньюнт. Организация оперативного межмодульного контроля в отказоустойчивых логических мультиконтроллерах // Интернет-журнал «НАУКОВЕДЕНИЕ» Том 8, №3 (2016) http://naukovedenie.ru/PDF/106TVN316.pdf (доступ свободный). Загл. с экрана. Яз. рус., англ.

17.Зотов И.В., Тейн Тун Ньюнт, Мое Мин Вин. Новый подход к организации распределенного аппаратного контроля матричных логических мультиконтроллеров // Информационно-измерительные и управляющие системы. №6, т.14, 2016. С. 39-45.

18. Зотов, И.В. Теоретические основы синтеза схем быстродействующих устройств распределенной децентрализованной координации параллельных микропрограмм в мультиконтроллерах: дис. ... д-ра техн. наук: 05.13.05: защищена 07.12.06: утв. 15.03.07 / Зотов Игорь Валерьевич. Курск, 2007. 383 с.

19.Каштанов В.А., Медведев А.И. Теория надежности сложных систем. М.: Изд-во "Европейский центр по качеству", 2002. - 469 с.

20. Козлов Б. А., Ушаков И. А. Справочник по расчету надежности аппаратуры радиоэлектроники и автоматики. М.: Сов. радио, 1975.

21.В.А. Колосков, А.В. Медведев, М.В. Медведева. Построение клеточных алгоритмов самоорганизации мультимикроконтроллеров с программируемым резервом // Автоматика и телемеханика. 2002. № 1. С. 161-172.

22.Кремер, Н.Ш. Теория вероятности и математическая статистика [Текст]: Учеб. для вузов - 3-е изд. перераб. и доп. - М.: «ЮНИТИДАНА», 2004. - 573 с.

23.Минаев И.Г., Самойленко В.В. Программируемые логические контроллеры: практическое руководство для начинающего инженера. М.: АГРУС, 2009.

24.Мое Мин Вин, Зотов И.В. Структурная организация аппаратных средств комбинированного мультиплексного межмодульного контроля логических мультиконтроллеров / Информационные системы и технологии. Материалы докладов II Международной заочной научно-технической конференции «ИСТ-2016», 17 мая 2016 г. Курск: ЗАО «Университетская книга», 2016. С. 12-15.

25.Мое Мин Вин, Тейн Тун Ньюнт, Даниел Мондай Афодигбокву, Зотов И.В. Алгоритмы маршрутизации сообщений в мультиконтроллерах // Общественная научная организация «Наука и хозяйство», ежемесячный научный журнал, №5, 2014. С. 14-17.

26.Мое Мин Вин, Тейн Тун Ньюнт, Зотов И.В. Об организации комбинированного мультиплексного межмодульного контроля в матричных логических мультиконтроллерах // Известия ЮЗГУ. №3 (66), 2016. С. 61-70.

27.Мое Мин Вин, Тейн Тун Ньюнт, Нян Лин, Даниэл Мондай Афодигбокву. Организация межмодульных передач управления и синхронизации при реализации алгоритмов управления в логических мультиконтроллерах / Интеллектуальные информационные системы: тенденции, проблемы, перспективы. Материалы докладов II региональной заочной научно-практической конференции «ИИС-2014» (10 ноября 2014 г.). -Курск: ЮЗГУ, 2014. С. 106-110.

28.Надежность автоматизированных систем управления / под ред. Я.А. Хетагурова. М.: Высшая школа, 1979.

29. Надёжность информационных систем : учебное пособие / Ю.Ю. Громов, О.Г. Иванова, Н.Г. Мосягина, К.А. Набатов. - Тамбов : Изд-во ГОУ ВПО ТГТУ, 2010. - 160 с.

30.Наджаджра М.Х., Абдель-Джалил Дж.Н., Зотов И.В.. Использование аппарата Q-схем для моделирования алгоритмов маршрутизации / Оптико-электронные приборы и устройства в системах распознавания образов, обработки изображений и символьной информации: материалы 7-й Международной научно-технической конференции, Курск, 4-7 октября 2005 г. - Курск: КурскГТУ, 2005. - C. 179-181.

31.Ньян Лин, Мое Мин Вин, Ткачук М.С., Пожидаев В.А., Зотов И.В. Оценка вероятности правильной локализации отказа при реализации межмодульного взаимоконтроля в логических мультиконтроллерах / Интеллектуальные информационные системы: тенденции, проблемы, перспективы: Материалы докладов III регион. заоч. науч.-практ. конф., 23 октября 2015 г. Курск: ЗАО «Университетская книга», 2015. С. 9-11.

32.Ньян Лин, Тейн Тун Ньюнт, Пожидаев Д. А., Долженкова И.В., Зотов И.В. Структурно-функциональная организация аппаратных средств межмодульного взаимоконтроля логических мультиконтроллеров / Интеллектуальные информационные системы: тенденции, проблемы, перспективы. Материалы докладов III региональной заочной научно-практической конференции «ИИС-2015» (23 октября 2015 г.). - Курск: ЗАО «Университетская книга», 2015. С. 12-15.

33.Нян Лин. Параллельный алгоритм и аппаратные средства межмодульного взаимоконтроля логических мультиконтроллеров // Известия Юго-Западного государственного университета. Серия «Управление, вычислительная техника, информатика. Медицинское приборостроение». 2015. № 3 (16). С. 62-67.

34.Острейковский, В. А. Теория надежности / В. А. Острейковский. - М.: Высшая школа, 2003. - 363 с.

35.Патент №2280887 РФ, МКИ 8 G05B19/18, G06F9/28. Микроконтроллерная сеть / А. А. Иванов, Дж.Н. Абдель-Джалил, И.В. Зотов, С.В. Виноградов (РФ). - №2005104065/09; заявлено 15.02.2005; опубл. 27.07.2006, Бюл. №21. 26 с.

36.Патент РФ №2450328, кл. G06F9/00. Логический мультиконтроллер с распределенным параллельно-конвейерным барьерным синхронизатором / А.М.А. Аль-Хади, С.В. Волобуев, И.В. Зотов, С.А. Муратов (РФ) / заявл. 15.12.2010; опубл. 10.05.2012.

37.Пат. N5151996 США, МКИ^ 06 F 15/16. Multi-dimensional message transfer router / Hillis W.D. (США). N497003; заявл. 20.03.90; опубл. 29.09.92.

38.Пат. N5765007 США, МКИ6^ 06 F 9/22. Microinstruction sequencer having multiple control stores for loading different rank registers in parallel / Rahman M.M., Horst R.W., Harris R. (США). N976304; заявл. 13.11.92; опубл. 09.06.98.

39.Пат. Ш941986США, МКИ6^ 06 F 9/22. Micro-code sequencer with branch-taken and branch-not-taken micro-code vectors sharing common address to eliminate taken branch penalties / Kulkarni U.M. (США). N055971; заявл. 03.04.93; опубл. 24.08.99.

40.Пат. N7080156 США, МКИ8^ 06 F 15/173. Message routing in a torus interconnect / LeeW.S., TalagalaN., ChongF. (Jr.) [et al.] (США). N104923; заявл. 21.03.02; опубл. 18.07.06.

41.Райншке К., Ушаков И.А. Оценка надежности систем с использованием графов. - М.: Радио и связь, 1988. - 208 с.

42.Свидетельство о регистрации программы для ЭВМ №2006610308. Библиотека классов для имитационного моделирования коммуникационных сетей / Э.И.Ватутин, И.В.Зотов (РФ). - М.: РосПатент; заявлено 22.10.2005; дата регистрации 16.01.2006.

43.Свидетельство о регистрации программы для ЭВМ №2007611310. Визуальная среда имитационного моделирования VisualQChart / И.В. Зотов и др.. Заявл. 13.02.07; дата регистрации 27.03.07.

44.Советов Б.Я., Яковлев С.А. Моделирование систем: учеб. Пособие. М.: Высшая школа, 2005. 343 с.

45.П.В. Сусин, Ю.В. Беляев, И.В. Зотов. Коммутатор с двойными кольцевыми распределенными выходными очередями / Системы управления и информационными технологии/ Межвузовский сборник научных трудов. Выпуск 9. - Воронеж: Центрально-Черноземное книжное издательство, 2002. - С.70-75.

46.П.В. Сусин, И.В. Зотов, В.С. Титов. Матричная коммутационная сеть для организации взаимодействия параллельной системы логического управления с коллективом объектов / Материалы 4-й Международной научно-технической конференции «Новые информационные технологии и системы», Пенза, ПГУ, 2000. - С. 94-95.

47.Тейн Тун Ньюнт. Оценка вероятности обнаружения отказов при распределенном аппаратном контроле логических мультиконтроллеров // Информационно-измерительные и управляющие системы. №10, т.14, 2016. С. 55-60.

48.Тейн Тун Ньюнт, Даниел Мондай Афодигбокву, Зотов И.В. Способы коммутации сообщений в логических мультиконтроллерах // Общественная научная организация «Наука и хозяйство», ежемесячный научный журнал, №5, 2014. С. 13-14.

49.Тейн Тун Ньюнт, Зотов И.В. Об организации комбинированного мультиплексного межмодульного контроля в матричных логических мультиконтроллерах / Информационные системы и технологии. Материалы докладов II Международной заочной научно-технической конференции «ИСТ-2016» (17 мая 2016 г.). - Курск: ЗАО «Университетская книга», 2016. С. 7-12.

50.Угрюмов Е.П. Цифровая схемотехника. СПб.: БХВ-Петербург, 2004.

800 с.

51.Ушакова Г.Н. Аппаратный контроль и надежность специализированных ЭВМ. М.: Советское радио, 1969.

52.Червоный А.А., Лукьященко В.И., Котин Л.В. Надежность сложных систем. М.: Машиностроение, 1975.

53.M. Abramovici, M. A. Breuer, and A. D. Friedman, "Digital Systems Testing and Testable Design," IEEE Press, Piscataway, NJ, 1994.

54.M.K. Aguilera, W. Chen, and S. Toueg, Failure Detection and Consensus in the Crash-Recovery Model // Distributed Computing, vol. 13, no. 2, pp. 99-125, 2000.

55.R. Ahlswede, H. Aydinian, On diagnosability of large multiprocessor networks // Discrete Applied Mathematics, vol.156, no.18, pp.3464-3474, Nov. 2008.

56.Y. Ajima, S. Sumimoto, and T. Shimizu, Tofu: A 6D mesh/torus interconnect for exascale computers // Computer, vol. 42, pp. 36-40, 2009.

57.G. A. Allan, A. J. Walton, and R. J. Holwill, A yield improvement technique for IC layout using local design rules // IEEE Trans. Computer-Aided Design, vol. 11, pp. 1355-1362, Nov. 1992.

58.L. Benini, G. De Micheli G. Networks on chips: a paradigm // IEEE Transactions on Computers, 2002. Vol. 35, no. 1. pp. 70-78.

59.Bernardi P., Ciganda L.M., Sanchez E., and Sonza Reorda M. MIHST: A Hardware Technique for Embedded Microprocessor Functional On-Line Self-Test // IEEE Transactions on Computers, Vol. 63, No. 11, November 2014. PP. 2760-2771.

60.R. Bianchini and R. Buskens, Implementation of On-Line Distributed System-Level Diagnosis Theory // IEEE Trans. Computers, vol. 41, pp. 616-626, May 1992.

61.T. Bjerregaard, S. Mahadevan. A survey of research and practices of network-on-chip // ACM Computing Surveys, 2006. Vol. 38, no 1. pp. 1-51.

62.D. Blough and H. Brown, The Broadcast Comparison Model for On-Line Fault Diagnosis in Multicomputer Systems: Theory and Implementation // IEEE Trans. Computers, vol. 48, pp. 470-493, May 1999.

63.W. Bolton. Programmable logic controllers. Linacre House, Jordan Hill, Oxford: Elsevier, 2006.

64.J. M. Camara [et al.] Twisted torus topologies for enhanced interconnection networks // IEEE Transactions on Parallel and Distributed Systems, vol. 21, pp. 1765-1778, 2010.

65.D. Chen [et al.] Looking under the hood of the IBM Blue Gene/Q network / in Proc. of the International Conference on High Performance Computing, Networking, Storage and Analysis, ser. SC '12. Los Alamitos, CA, USA: IEEE Computer Society Press, 2012, pp. 69:1-69:12.

66.D. Chen [et al.] The IBM Blue Gene/Q interconnection network and message unit / in Proc. of 2011 International Conference for High Performance Computing, Networking, Storage and Analysis, ser. SC '11. New York, NY, USA: ACM, 2011, pp. 26:1-26:10.

67.B. Ciciani, Ed., Manufacturing Yield Evaluation of VLSI/WSI Systems. Los Alamitos, CA: IEEE Computer Society Press, 1998.

68.S.R. Das, Self-testing of cores-based embedded systems with built-in hardware / IEE Proceedings - Circuits, Devices and Systems, Volume 152 , Issue 5, pp. 539 - 546. 7 Oct. 2005.

69.E.P. Duarte Jr. and T. Nanya, A Hierarchical Adaptive Distributed SystemLevel Diagnosis Algorithm // IEEE Trans. Computers, vol. 47, pp. 34-45, Jan. 1998.

70.Epiphany-V: A 1024-core 64-bit RISC processor. URL: https://www.parallella.org/2016/10/05/epiphany-v-a- 1024-core-64-bit-risc-processor/ (дата обращения: 12.12.2016).

71.D. Fick, A. DeOrio, J. Hu, V. Bertacco, D. Blaauw, and D. Sylvester. Vicis: A reliable network for unreliable silicon / Proc. 46th DAC, Jul. 2009, pp. 812-817.

72.Furber S. Living with failure: Lessons from nature? / Proc. 11th IEEE ETS, May 2006, pp. 4-8.

73.T. Horita and I. Takanami. Fault-tolerant processor arrays based on the 1.5-track switches with flexible spare distributions // IEEE Transactions on Computers, vol. 49, No. 6, pp. 542-552, June 2000.

74.S.-Y. Hsieh, C.-Y. Kao, The Conditional Diagnosability of k-Ary n-Cubes under the Comparison Diagnosis Model // IEEE Transactions on Computers, pp. 839 - 843 Volume: 62, Issue: 4, April 2013.

75.L. M. Huisman, Diagnosing arbitrary defects in logic designs using single location at a time (SLAT) // IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 23, no. 1, pp. 91-101, 2004.

76.Intel 80-Core Teraflop Research Chip:

https://www.dvhardware.net/article17017.html (дата обращения: 13.10.2017).

77.IntellaSys SEAforth 40C18:

http://www.businesswire.com/news/home/20080924005255/en/IntellaSys-40-core-Processor-Technology-Creates-Industry-Benchmark (дата обращения: 13.10.2017).

78.Jafri S.M.A.H., Piestrak S.J., Sentieys O., and Pillement S. Design of the Coarse-grained Reconfigurable Architecture DART with On-line Error Detection // Microprocessors and Microsystems, Vol.38, Issue 2, pp. 124-136, 2014.

79.G.Jiang, W.Jigang, and J.Sun. Efficient Reconfiguration Algorithm for Three-dimensional VLSI Arrays / in Proc. of the IEEE 26th International Parallel and Distributed Processing Symposium Workshops & PhD Forum, 2012. pp. 261-265.

80.W. Jigang, T. Srikanthan, G. Jiang, and K. Wang. Constructing Sub-Arrays with Short Interconnects from Degradable VLSI Arrays // IEEE Transactions on Parallel and Distributed Systems, vol. 25, No. 4, April 2014. pp. 929-938.

81.A. Kohler, M. Radetzki. Fault-tolerant architecture and deflection routing for degradable NoC switches / Proc. 3rd ACM/IEEE Int. Symp. NoC, May 2009, pp. 22-31.

82.E. Kolonis, M. Nicolaidis, D. Gizopoulos, M. Psarakis, J. Collet, and P. Zajac. Enhanced self-configurability and yield in multicore grids / Proc. 15th IEEE IOLTS, Jun. 2009, pp. 75-80.

83.Krstic A., Lai W.C., Cheng K.T., Chen L., and Dey S. Embedded Software-Based Self-Test for Programmable Core-Based Designs // IEEE Design and Test of Computers, Vol. 19, No. 4, July/Aug. 2002. PP. 18-27.

84.J. C.-M. Li and E. J. McCluskey, Diagnosis of Resistive-Open and Stuck-Open Defects in Digital CMOS ICs // Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 24, no. 11, pp. 1748-1759, 2005.

85.L. Lin, S. Zhou, L. Xu, D. Wang, The Extra Connectivity and Conditional Diagnosability of Alternating Group Networks // IEEE Transactions on Parallel and Distributed Systems, pp. 2352 - 2362 Volume: 26, Issue: 8, Aug. 1 2015.

86.Lin S., Shen W., Hsu C., Chao C., and Wu A. Fault-tolerant router with built-in self-test/self-diagnosis and fault-isolation circuits for 2D mesh based chip multiprocessor systems / Proc. Int. Symp. VLSI-DAT, Apr. 2009, pp. 72-75.

87.P. Maestrini and P. Santi, Self Diagnosis of Processor Arrays Using a Comparison Model / Proc. 14th Symp. Reliable Distributed Systems, pp. 218-228, 1995.

88.J. Mekkoth, M. Krishna, J. Qian, W. Hsu, C.-H. Chen, Y.-S. Chen, N. Tamarapalli, W.-T. Cheng, J. Tofte and M. Keim, Yield Learning with Layout-Aware Advanced Scan Diagnosis, in Proc. International Symposium for Testing and Failure Analysis, pp. 412-418, 2006.

89.Microprogram controller CAST C49410 Altera megafunction. Datasheet/ CAST Inc. 2004. 2 p.

90.Microprogram controller IA2910A. Preliminary datasheet / InnovASIC Inc. 1999. 19 p.

91.Psarakis M., Gizopoulos D., Sanchez E., and Sonza Reorda M. Microprocessor Software-Based Self-Testing // IEEE Design and Test of Computers, Vol. 27, No. 3, May/June 2010. PP. 4-19.

92.Raik J. and Govind V. Low-area boundary BIST architecture for meshlike network-on-chip / Proc. 15th IEEE Int'l Symp. DDECS, Apr. 2012, pp. 95-100.

93.J. Rajski, J. Tyszer, M. Kassab and N. Mukherjee, Embedded Deterministic Test // IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. Vol.23, no. 5, pp. 776-792, 2004.

94.S. Rangarajan, A.T. Dahbura, and E. Ziegler, A Distributed System-Level Diagnosis Algorithm for Arbitrary Network Topologies // IEEE Trans. Computers, vol. 44, pp. 312-334, Feb. 1995.

95.S. Rangarajan and D. Fussell, Diagnosing Arbitrarily Connected Parallel Computers with High Probability // IEEE Trans. Computers, vol. 41, pp. 606-615, May 1992.

96.A. Sengupta and A.T. Dahbura, On Self-Diagnosable Multiprocessor Systems: Diagnosis by the Comparison Approach // IEEE Trans. Computers, vol. 41, pp. 1386-1396, Nov. 1992.

97.M. Sharma, C. Schuermyer, and B. Benware, Determination of Dominant-Yield-Loss Mechanism with Volume Diagnosis, in Proc. of IEEE Design & Test of Computers, vol.27, no.3, pp.54-61, 2010.

98.Stroud C., Sunwoo J., Garimella S., and Harris J. Built-In Self-Test for System-on-Chip: A Case Study / Proc. Int'l Test Conf., PP. 837-846, 2004.

99.C. Sun, L. Chang, R.P. Dick. Three-dimensional multiprocessor system-on-chip thermal optimization / 5th IEEE/ACM international conference on hardware/software codesign and system synthesis. 30 September -3 October, 2007. pp. 117-122.

100. W. C. Tam, O. Poku, and R.D. Blanton, Systematic Defect Identification Through Layout Snipet Clustering, In Proc. IEEE International Test Conference, pp.1, 2010.

101. H. Tang, S. Manish, J. Rajski, M. Keim, and B. Benware, Analyzing Volume Diagnosis Results with Statistical Learning for Yield Improvement, in Proc. Of European Test Symp., pp. 145-150, 2007.

102. TILE-Gx8036™ Overview / Mellanox Corporation, 2016. URL: http://www.mellanox.com/related-docs/prod_multi_core/PB_TILE-Gx36.pdf (дата обращения: 11.12.2016).

103. S. Vangal, J. Howard, G. Ruhl, [et al]. An 80-tile sub-100-w teraflops processor in 65-nm CMOS // IEEE J. Solid-State Circuits, Vol. 43, No. 1, Jan. 2008, PP. 29-41.

104. Vega 3 Processor / Azul Systems, 2010. URL: http://www.azulsystems.com/products/vega/processor (дата обращения: 12.12.2016).

105. Z. Wang, M. Marek-Sadowska, K.-H. Tsai and J. Rajski, Analysis and Methodology for Multiple-Fault Diagnosis // IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems, vol. 25, no.3, pp. 558-575, 2006.

106. Z. Wang. VLSI. InTech, 2010. 464 p.

107. L. Zhang. Fault-Tolerant meshes with small degree // IEEE Transactions on Computers, vol. 51, No.5, pp. 553-560, May 2002.

108. Zhang Z., Refauvelet D., Greiner A., Benabdenbi M., and Pecheux F. On-the-Field Test and Configuration Infrastructure for 2-D-Mesh NoCs in Shared-Memory Many-Core Architectures // IEEE Transactions on Very Large Scale Integration (VLSI) Systems, Vol. 22, No. 6, June 2014. PP. 1364-1376.

ПРИЛОЖЕНИЕ 1 - Основные листинги программы имитационного моделирования

// Файл QChart.cpp. Реализация основного класса Q-схемы

#define __QCHART_CPP__

#include "QChartStdHdr.h" #pragma hdrstop

namespace QChart {

//.................................CStatManager......................................

// файл для статистики с атрибутами

std::string CQChart::CStatManager::_statfilename = "";

std::ostream * CQChart::CStatManager::_pstatfile = 0;

bool CQChart::CStatManager::_statfileappend = true;

std::string CQChart::CStatManager::_userstring = ""; // строка комментария

bool CQChart::CStatManager::_needstatistics = false; // признак необходимости получения статистики

bool CQChart::CStatManager::_statallowed = false;// признак разрешения получения статистики

size_t CQChart::CStatManager::_elemcount = 0; // количество элементов в схеме

size_t CQChart::CStatManager::_linkcount = 0; // количество связей в схеме

size_t CQChart::CStatManager::_queuecount = 0; // количество очередей в схеме

size_t CQChart::CStatManager::_devicecount = 0; // количество устройств в схеме

size_t CQChart::CStatManager::_massctrlcount = 0; // количество групповых контроллеров

CQChart::CStatManager::statmode_t CQChart::CStatManager::_statmode; // режим сбора статистики

size_t CQChart::CStatManager::_statstarttime = 0; // время начала сбора статистики

size_t CQChart::CStatManager::_statstartreqnum = 0; // номер заявки для начала сбора статистики

size_t CQChart::CStatManager::_modeltime = 0; // время работы системы (моделирования)

size_t CQChart::CStatManager::_issuednum = 0; // число выработанных заявок (включая необслуженные)

// число выработанных заявок за время сбора статистики size_t CQChart::CStatManager::_actualissuednum = 0;

size_t CQChart::CStatManager::_processednum = 0; // число обработанных (обслуженных) заявок

// число заявок, обработанных только за время сбора статистики

size_t CQChart::CStatManager::_actualprocessednum = 0;

size_t CQChart::CStatManager::_lostnum = 0; // число потерянных заявок

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

size_t CQChart::CStatManager::_actuallostnum = 0;

size_t CQChart::CStatManager::_reqinsys = 0; // число заявок в системе

float CQChart::CStatManager::_averreqinsys = 0.0;// среднее число заявок в системе

size_t * CQChart::CStatManager::_maxquelen = 0; // максимальная длина очередей

float * CQChart::CStatManager::_averquelen = 0; // средняя длина очередей

float * CQChart::CStatManager::__workload = 0; // загрузка устройств (каналов)

float CQChart::CStatManager::_avtimeinsys = 0.0; // ср. время пребывания заявки в системе

size_t CQChart::CStatManager::_maxtimeinsys = 0; // max время пребывания заявки в системе

// Инициализация сбора статистики void CQChart::CStatManager::_InitializeO { try {

_maxquelen = new size_t [_queuecount];

_averquelen = new float [_queuecount];

__workload = new float [_devicecount];

for (size_t i = 0; i < __queuecount; i++) { __maxquelen[i] = 0; __averquelen[i] = 0.0;

}

for (size_t j = 0; j < __devicecount; j++) __workload[j] = 0.0;

}

catch(std::bad_alloc &) THROW_ERROR(EParametersError, PRM_ERROR_ID, "Description: failure during statistics initialization", "Details: unable to allocate memory for statistics data")

}

// Расчет окончательной статистики void CQChart::CStatManager::_CalcFinalStatDataO { size_t actualmodeltime =

_modeltime >_statstarttime ?_modeltime -_statstarttime : 1;

_averreqinsys /= actualmodeltime;

_avtimeinsys =_actualprocessednum > 0 ?_avtimeinsys /_actualprocessednum : 0.0;

for (size_t i = 0; i <_queuecount; i++)_averquelen[i] /= actualmodeltime;

for (size_t j = 0; j <_devicecount; j++) __workload[j] /= actualmodeltime;

}

// Сохранение статистических данных в поток #define STAT_TO_STREAM (stream)

\

{

(stream) << std::endl << std::endl << "Current date & time: " << \

CStatManager::_GetStatDateTime() <<_userstring << std::endl;

\

(stream) << std::endl << "Modelling period duration: " << __modeltime; \

(stream) << std::endl << "Requirements issued: " << __actualissuednum; \

(stream) << std::endl << "Requirements processed: " << __actualprocessednum; (stream) << std::endl << "Requirements lost: " << __actuallostnum; \

(stream) << std::endl << "Average number of requirements in system: " <<_averreqinsys; \

(stream) << std::endl << "Average time for a requirement in system: " <<_avtimeinsys; \

(stream) << std::endl << "Maximal time for a requirement in system: " <<_maxtimeinsys; \

(stream) << std::endl << "*** Queue lengths:";

\

ChartStrEntry_t * pelement =_chartstructure;

\

while (pelement) {

\

if (Related<CReqAwareElement>(pelement->pelem) && \

dynamic_cast<CReqAwareElement*>(pelement->pelem)->GetLogStat() && Related<CGenericQueue>(pelement->pelem)) \

{

\

(stream) << std::endl << "maximum for "

\

<< dynamic_cast<CGenericElement&>(* pelement -> pelem).GetName() << ": "

<<_maxquelen[dynamic_cast<CGenericElement&>(* pelement -> pelem).GetID() - 1];

(stream) << std::endl << "average for " \

<< dynamic_cast<CGenericElement&>(* pelement -> pelem).GetName() << ": " <<_averquelen[dynamic_cast<CGenericElement&>(* pelement -> pelem).GetID() - 1]; \

} \ pelement = pelement -> pnextelem; } \ (stream) << std::endl << "*** Device workloads:";

\

pelement = __chartstructure;

\

while (pelement) {

\

if (Related<CReqAwareElement>(pelement->pelem) &&

\

\

\

dynamic_cast<CReqAwareElement*>(pelement->pelem)->GetLogStat() && \

Related<CReqProcessor>(pelement->pelem)) \

(stream) << std::endl << "for "

\

<< dynamic_cast<CGenericElement&>(* pelement -> pelem).GetName() << ": " \

<<_workload[dynamic_cast<CGenericElement&>(* pelement -> pelem).GetID() - 1]; \

pelement = pelement -> pnextelem;

\

}

\

}

bool CQChart::CStatManager::__SaveStatData() {

// попытка открытия/создания файла статистики

if (_statfilename != "") {

std::ios_base::open_mode statfilemode = static_cast<std::ios_base::open_mode>(

std::ios_base::out | (_statfileappend ? std::ios_base::ate : std::ios_base::trunc));

try {

__pstatfile =

new std::ofstream(_statfilename.c_str(), statfilemode);

}

catch (std::exception &) { // принудительно пишем на экран _pstatfile = &std::cout;

}

}

else // пишем на экран

_pstatfile = &std::cout;

if ( dynamic_cast<std::basic_ofstream<char>*>(_pstatfile) != 0 ) {

// пишем статистику в файл

STAT TO STREAM(*dynamic cast<std::basic ofstream<char>*>( pstatfile)); // закрываем файл статистики

dynamic_cast<std::basic_ofstream<char>*>(_pstatfile)->close();

// удаляем поток delete __pstatfile;

}

else /* пишем в cout */ STAT_TO_STREAM(*__pstatfile); return true;

}

// Завершение сбора статистики

inline void CQChart::CStatManager::_Finalize() {

delete[]_maxquelen; deleteQ_averquelen; delete[]_workload;

}

// Запись даты и времени окончания сбора статистики

inline const char * CQChart::CStatManager::_GetStatDateTime() {

time_t statfintime; time(&statfintime); return ctime(&statfintime);

}

#if !defined(_DEBUG_VERSION_)

//..........................CProgressBarManager..............................

// текущее значение процента завершения

size_t CQChart::CProgressBarManager::_percentcompleted = 0;

// длительность между смежными обновлениями процента size_t CQChart::CProgressBarManager::_granularity = 1;

// расчет данных для частоты обновления процента завершения void CQChart::CProgressBarManager::_CalcProgressGranularity() {

__granularity = CQChart::__finalizemode == onduration ? CQChart::__duration / 100 : CQChart::__finalreqnum / 100; _granularity +=_granularity == 0 ? 1 : 0;

}

// отображение строк состояния

void_fastcall CQChart::CProgressBarManager::_ShowProgressBar(bool showflag) {

if (showflag == true) { // перерисовка

gotoxy(1,3); clreol(); gotoxy(1,2); std::cout << "Simulation in progress ... ";

std::cout << std::endl <<_percentcompleted << " % completed ";

return;

}

// обновление только процента завершения gotoxy(1,3); std::cout <<_percentcompleted;

}

// обновление процента завершения

void_fastcall CQChart::

CProgressBarManager::_UpdateProgressBar(bool forcefinalize)

{

size_t oldpercentcompleted =_percentcompleted;

if (forcefinalize) _percentcompleted = 100;

else {

switch (CQChart::_finalizemode) {

case onduration:

_percentcompleted =

(size_t)ceil(CQChart::CStatManager::_modeltime /_granularity);

break; case onreqissued:

_percentcompleted = 100 -

(size_t)ceil((CQChart::_finalreqnum -

CQChart::CStatManager::_issuednum) /_granularity);

break; case onreqprocessed:

_percentcompleted = 100 -

(size_t)ceil((CQChart::_finalreqnum -

CQChart::CStatManager::_processednum) /_granularity);

break; case onreqlost:

_percentcompleted = 100 -

(size_t)ceil((CQChart::_finalreqnum -

CQChart::CStatManager::_lostnum) /_granularity);

break;

}

if (_percentcompleted > 100)

_percentcompleted = 100;

}

if (_percentcompleted > oldpercentcompleted)

_ShowProgressBar(false);

}

#endif // !_DEBUG_VERSION_

//.................................CQChart......................................

// зарегистрированные элементы и связи ChartStrEntry_t * CQChart::__chartstructure = 0;

// счетчики-идентификаторы зарегистрированных элементов (пока другие не нужны) int CQChart::__deviceid = 0;

int CQChart::_queueid = 0;

int CQChart::__gateid = 0;

// параметры моделирования

size_t CQChart::_duration = 0; // время моделирования

// предельная длительность моделирования

const size_t CQChart::_maxmodeltime = numeric_limits<size_t>::max();

// номер заявки для завершения цикла моделирования

size_t CQChart::_finalreqnum = 0;

// режим завершения цикла моделирования

CQChart::finalizemode_t CQChart::_finalizemode;

// номер сеанса моделирования

unsigned short CQChart::_simulsessioncount = 1;

// признаки правильности порядка построения Q-схемы

bool CQChart::_elemregistered = false; // регистрация хотя бы двух элементов

bool CQChart::_linkregistered = false; // регистрация хотя бы одной связи

bool CQChart::_paramset = false; // признак задания параметров

bool CQChart::_qchartbuilt = false; // признак окончания проверки схемы

bool CQChart::_simulationcomplete = false;

// признак окончания моделирования

// псевдоконструктор CQChart & CQChart::theQChart() { static CQChart theonlyQChart; return theonlyQChart;

}

// регистрация нового элемента

void_fastcall CQChart::

RegisterElement(CGenericElement & elem) throw(CErrorManager::ERegisterError)

{

// вызов функции возможен только до запуска моделирования

if (_SimulationInProgress() ) return;

// сохранение головы старого списка

ChartStrEntry_t * savchartstructure =_chartstructure;

// проверка не регистрировался ли этот элемент ранее if (savchartstructure) {

ChartStrEntry_t * pregelem = savchartstructure; do {

if (pregelem -> pelem == &elem)

THROW_ERROR(ERegisterError, REG_ERROR_ID, "Description: attempt to register an already registered element", string("Details: check element \"") + elem.__name + string("\"")) pregelem = pregelem -> pnextelem;

}

while (pregelem);

}

// формирование нового элемента try {

_chartstructure = new ChartStrEntry_t;

}

catch(std::bad_alloc &)

THROW_ERROR(ERegisterError, REG_ERROR_ID, "Description: failure while creating a new element", string("Details: insufficient memory to allocate element \"") +

elem._name + string("\""))

// добавление нового элемента

_chartstructure -> pelem = const_cast<CGenericElement*>(&elem);

_chartstructure -> pininflinks =_chartstructure -> poutinflinks =

_chartstructure -> pinctrllinks =_chartstructure -> poutctrllinks = 0;

if (savchartstructure) // элементы уже регистрировались

_elemregistered = true; // как минимум 2 элемента зарегистрированы

// регистрируемый элемент в голову списка элементов

_chartstructure -> pnextelem = savchartstructure;

// учет элементов

CStatManager::_elemcount++;

if (Related<CReqProcessor>(&elem)) {

CStatManager::_devicecount++;

elem._id = ++_deviceid;

}

else

if (Related<CGenericQueue>(&elem)) {

CStatManager: :_queuecount++;

elem._id = ++_queueid;

}

else

if (Related<CGate>(&elem))

elem._id = ++_gateid;

else

if (Related<CMassGateController>(&elem)) ++CStatManager::_massctrlcount;

}

// регистрация связи между элементами void CQChart::

RegisterLink(const CGenericElement & eleml, const CGenericElement & elem2, linkkind_t linkkind, state_t ctrlstate, float probability, CGenericElement * passocelem, state_t assocelemstate) throw(CErrorManager::ERegisterError, std::bad_alloc)

{

// вызов функции возможен только до запуска моделирования

if (_SimulationInProgress() ) return;

if (!_elemregistered)

THROW_ERROR(ERegisterError, REG_ERROR_ID, "Description: unable to register a link",

"Details: attempt to register a link before elements are registered") // поиск элемента 1

ChartStrEntry_t * plstelem =_chartstructure;

while (plstelem) {

if (plstelem -> pelem == &elem1) break; plstelem = plstelem -> pnextelem;

}

if (plstelem == 0)

THROW_ERROR(ERegisterError, REG_ERROR_ID, "Description: unable to register a link", string("Details: failed to find registered element \"") +

eleml._name + string("\"\nspecified as source for the link"))

// поиск элемента 2

ChartStrEntry_t * p2ndelem =_chartstructure;

while (p2ndelem) {

if (p2ndelem -> pelem == &elem2) break; p2ndelem = p2ndelem -> pnextelem;

}

if (p2ndelem == 0)

THROW_ERROR(ERegisterError, REG_ERROR_ID, "Description: unable to register a link", string("Details: failed to find registered element \"") + elem2._name + string("\"\nspecified as sink for the link"))

// проверка не регистрировалась ли уже эта связь {

LinksListEntry_t * plinks = plstelem -> poutinflinks; if (linkkind == inf) while (plinks) {

if (plinks -> pelem == &elem2) THROW_ERROR(ERegisterError, REG_ERROR_ID, "Description: unable to register an information link", string("Details: another information link between \"") +

elem1._name + string("\"\nand \"") + elem2._name +

string("\" exists")) plinks = plinks -> pnextlink;

}

plinks = p1stelem -> poutctrllinks; if (linkkind == ctrl) while (plinks) { if (plinks -> pelem == &elem2)

THROW_ERROR(ERegisterError, REG_ERROR_ID, "Description: unable to register a control link", string("Details: another control link between \"") +

elem1._name + string("\"\nand \"") + elem2._name +

string("\" exists")) plinks = plinks -> pnextlink;

}

plinks = p2ndelem -> pininflinks; if (linkkind == inf) while (plinks) { if (plinks -> pelem == &elem1)

THROW_ERROR(ERegisterError, REG_ERROR_ID, "Description: unable to register an information link", string("Details: another information link between \"") +

elem1._name + string("\"\nand \"") + elem2._name +

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