Содержание к диссертации
Введение
Глава 1. Обзор методов обеспечения отказоустойчивости в современных вычислительных системах 10
1.1. Основные понятия отказоустойчивости вычислительных систем 10
1.2. Исследование методов обнаружения ошибок и восстановления функционирования вычислительных систем после обнаружения сбоя 18
1.3. Исследование практически реализованных отказоустойчивых вычислительных систем 30
Выводы к первой главе 53
Глава 2. Исследование архитектуры и особенностей организации отказоустойчивого функционирования вычислительной системы с автоматическим распределением ресурсов 55
2.1. Исследование принципов организации вычислительных процессов в системе с автоматическим распределением ресурсов 56
2.2. Анализ архитектуры и определение роли и задач системы контроля и обеспечения отказоустойчивости вычислительной системы с автоматическим распределением ресурсов 61
2.3. Параметры надежности вычислительной системы с автоматическим распределением ресурсов 75
2.4. Исследование вариантов реализации структуры отказоустойчивого исполнительного устройства ВСАРР. 81
Выводы ко второй главе 92
Глава 3. Разработка алгоритмов функционирования системы обеспечения отказоустойчивости вычислительной системы с автоматическим распределением ресурсов 94
3.1 .Разработка алгоритмов работы системы аппаратного контроля МИУ 94
3.2. Разработка алгоритма передачи информации, необходимой для восстановления вычислительного процесса, на исправный модуль МИУ в случае возникновения отказа одного из модулей 114
3.3. Разработка алгоритма передачи информации, необходимой для восстановления вычислительного процесса, на исправное МИУ в случае возникновения отказа одного из МИУ 120
3.4. Разработка алгоритмов работы системы аппаратного контроля МАП 127
3.5. Разработка алгоритма реализации контрольных точек в графе задачи, выполняемой на ВСАРР 136
Выводы к третьей главе 144
Глава 4. Создание аппаратных средств для контроля выполнения операций в макете блока вещественной арифметики ИУ ВСАРР и пересылки сообщений о возникающих неисправностях на HOST-машину 145
4.1.Анализ современных тенденций развития элементной базы цифровой схемотехники 145
4.2. Выбор элементной базы и определение конструктивов для реализации макета ВСАРР 154
4.3. Инструментальные средства и методика проектирования макета ВСАРР 156
4.4. Разработка аппаратных средств для контроля выполнения операций в макете блока вещественной арифметики ИУ ВСАРР и пересылки сообщений о возникающих неисправностях на HOST-машину 158
Выводы к четвертой главе 169
Заключение 170
Литература 173
Перечень сокращений 184
- Исследование методов обнаружения ошибок и восстановления функционирования вычислительных систем после обнаружения сбоя
- Анализ архитектуры и определение роли и задач системы контроля и обеспечения отказоустойчивости вычислительной системы с автоматическим распределением ресурсов
- Разработка алгоритма передачи информации, необходимой для восстановления вычислительного процесса, на исправный модуль МИУ в случае возникновения отказа одного из модулей
- Выбор элементной базы и определение конструктивов для реализации макета ВСАРР
Введение к работе
Актуальность проблемы.
Для решения большинства современных фундаментальных задач в различных областях науки и техники требуются многопроцессорные супер-ЭВМ с производительностью 10 -10 операций в секунду. Однако реальная производительность универсальных многопроцессорных вычислительных систем на задачах проблемного характера составляет в среднем лишь 12-15 процентов от пиковой производительности. Эффективность использования современных систем массового параллелизма падает с увеличением числа процессоров в системе, так как резко падает коэффициент их загрузки, при работе с глобальными данными.
Для решения проблем синхронизации вычислительных процессов по данным и равномерной загрузки процессоров необходимо исследование новых методов организации параллельных вычислительных процессов и разработка методов создания вычислительных систем с принципиально новой архитектурой, отличной от традиционной архитектуры фон-Неймана, которые обеспечат эффективное и автоматическое распределение вычислительных процессов по ресурсам вычислительной системы.
Однако с ростом сложности структуры вычислительных систем и повышением их быстродействия резко растут требования к достоверности результатов решения задач, поставленных перед вычислительной системой, а, следовательно, к системе контроля производимых вычислений. Эффективность системы контроля становится одной из наиболее важных характеристик вычислительного комплекса. Наиболее естественный путь повышения надежности вычислительной системы - это повышение надежности ее составляющих элементов, однако, как показывает опыт развития вычислительной техники, это не решит поставленной задачи для больших ЭВМ. Кардинально проблема обеспечения надежного и отказоустойчивого функционирования таких вычислительных комплексов (в особенности для вычислительных систем реального времени, требующих высокой достоверности результатов вычислений) может быть решена только структурным способом на аппаратном уровне.
Одним из таких способов является модульный принцип построения вычислительной системы, где каждый модуль охвачен полным аппаратным контролем, обеспечивающим высокую достоверность получаемых результатов. Отключение неисправного модуля в такой системе производится автоматически по срабатыванию встроенного аппаратного контроля.
На данный момент в отделе Построения информационно-вычислительных систем высокого параллелизма Института проблем информатики Российской Академии Наук
5 разработан и отлажен макет машины нетрадиционной архитектуры с автоматическим распределением ресурсов (ВСАРР).
При разработке структуры и алгоритмов функционирования ВСАРР возникает проблема организации системы автоматического контроля и обеспечения отказоустойчивости при выполнении вычислений. В такой вычислительной системе параллельные вычислительные процессы имеют сложную структуру, основанную на принципе потока данных. В случае возникновения неисправности (сбоя, отказа) при выполнении таких процессов возникают трудности с локализацией источника ошибки, возникает опасность распространения ошибки по всей системе до момента ее обнаружения и изоляции отказавшего модуля, а также возникают проблемы реконфигурации системы после отказов и восстановления нормального функционирования. На данный момент эти проблемы являются наименее проработанными.
Данная диссертационная работа посвящена проблемам обеспечения отказоустойчивого функционирования и достоверности выдаваемой информации вычислительной системы нетрадиционной архитектуры, обеспечивающей автоматическое распределение ресурсов системы между вычислительными процессами. Актуальность этих проблем определяется тем, что новая архитектура и сложные алгоритмы организации вычислительных процессов в вычислительном комплексе предъявляют новые требования и определяют новые задачи для системы аппаратного контроля и обеспечения отказоустойчивости устройств ВСАРР.
Цель и задачи работы.
Настоящая диссертационная работа посвящена решению задачи организации обеспечения отказоустойчивости вычислительной системы с автоматическим распределением ресурсов, разработке методов контроля вычислительных процессов и созданию алгоритмов восстановления вычислений в исследуемой вычислительной системе.
Для достижения поставленной цели в работе поставлены и решаются следующие основные задачи:
Исследование и анализ методов контроля вычислений и обеспечения отказоустойчивости современных вычислительных систем, позволяющий определить возможность их применения для вычислительной системы принципиально новой архитектуры.
Исследование архитектуры вычислительной системы с автоматическим распределением ресурсов с целью выявления проблем контроля вычислений, присущих исследуемой вычислительной системе.
Разработка методов контроля вычислительных процессов для исследуемой вычислительной системы, позволяющих обеспечить высокую достоверность выдаваемых результатов.
Разработка алгоритмов восстановления вычислений в исследуемой вычислительной системе в случае возникновения отказа какого-либо из устройств системы.
Создание аппаратных средств контроля выполнения операций в блоке вещественной арифметики исполнительного устройства макета вычислительной системы и аппаратных средств выдачи сообщений о возникающих неисправностях на HOST-машину.
Объект и предмет исследования.
Объектом исследования является вычислительная система новой нетрадиционной архитектуры с автоматическим распределением ресурсов. Предметом исследования является организация аппаратного контроля параллельных вычислительных процессов с целью обеспечения отказоустойчивого функционирования и достоверности выдаваемой информации ВСАРР.
Методы исследования.
Исследования проводились с использованием теории отказоустойчивости, надежности и технической диагностики вычислительных систем, теории высокопроизводительных параллельных вычислений и методик проектирования сложных вычислительных комплексов с применением систем автоматизированного проектирования. Алпаратная реализация макета ВСАРР велась с применением принципов нисходящего проектирования электронных систем с использованием объектно-ориентированного подхода.
Научная новизна.
Впервые предложены и разработаны методы аппаратного контроля параллельных вычислительных процессов и обеспечения отказоустойчивости вычислительной системы с нетрадиционным подходом к организации процесса вычислений. Научная новизна работы состоит в следующем:
в результате проведенного исследования принципиально новой архитектуры вычислительной системы с автоматическим распределением ресурсов определены роль и задачи системы контроля вычислений в исследуемой вычислительной системе;
предложены принципы и разработаны методы организации аппаратного контроля вычислительных процессов и обеспечения отказоустойчивого функционирования устройств, входящих в состав ВСАРР;
разработаны алгоритмы восстановления параллельных вычислительных процессов в исследуемой вычислительной системе в случае возникновения отказа устройств системы;
в системе контроля вычислительных процессов и обеспечения отказоустойчивой работы устройств ВСАРР учтены особенности новой архитектуры при применении традиционных методов аппаратного контроля вычислительных процессов, наряду с оригинальными разработками.
Положения, выносимые на защиту.
Разработанные методы контроля вычислительных процессов для вычислительной системы принципиально новой архитектуры, позволяющие обеспечить высокую достоверность выдаваемых результатов.
Предложенная методика проектирования встроенного аппаратного контроля устройств вычислительной системы с автоматическим распределением ресурсов.
Разработанные алгоритмы, обеспечивающие восстановление параллельных вычислительных процессов в вычислительной системе с автоматическим распределением ресурсов в случае возникновения отказа какого-либо из устройств системы, а также в случае возникновения отказа какого-либо из блоков внутри устройств системы;
Созданные аппаратные средства для контроля выполнения операций в блоке вещественной арифметики исполнительного устройства макета ВСАРР и выдачи сообщений о возникающих неисправностях на HOST-машину.
Публикации. По материалам диссертационной работы опубликовано 9 научных работ.
Структура и объем диссертации.
Диссертационная работа состоит из введения, четырех глав, списка литературы из 75 наименований. Работа изложена на 176 страницах машинописного текста, включая 69 рисунков и 10 таблиц.
Аннотация работы по главам.
Во введении обоснована актуальность темы диссертации, определены научная новизна и практическая значимость работы, сформулированы цель и основные задачи исследований, приведено краткое описание структуры диссертации.
В первой главе диссертационной работы даны основные понятия теории отказоустойчивости, введена терминология и проведено исследование существующих методов аппаратного обнаружения ошибок и системные действия по восстановлению нормальной работы вычислительной системы после обнаружения ошибки. Рассмотрены и проанализированы архитектуры однопроцессорных и многопроцессорных отказоустойчивых вычислительных систем. Выявлена необходимость специализированного подхода к определению понятия отказоустойчивости при проектировании любой конкретной вычислительной системы из-за специфики архитектурных решений, применяемых для реализации конкретной вычислительной системы и особенностей организации вычислительных процессов в ней.
Во второй главе проводится анализ особенностей архитектуры и функционирования вычислительной системы нетрадиционной архитектуры с автоматическим распределением ресурсов (ВСАРР). Исследованы возможные варианты реализации отказоустойчивых структур устройств ВСАРР. Проанализированы возможности организации системы аппаратного контроля и обеспечения отказоустойчивости функционирования исследуемой системы. Сформулированы задачи и роль системы контроля и обеспечения отказоустойчивости устройств ВСАРР.
В третьей главе описана система встроенного аппаратного контроля МИУ и МАП. Предложены алгоритмы и разработаны механизмы повтора операций в случае возникновения сбоя, обнаруживаемого системой встроенного контроля, восстановления вычислительных процессов в МИУ в случае отказа одного из модулей, восстановление вычислений в случае полного отказа МИУ. Так же предложен алгоритм реализации контрольных точек в графе задачи, вьшолняемой в ВСАРР, применяемый в случае отказа систем встроенного контроля устройств и механизмов восстановления вычислительных процессов в ВСАРР или отказа устройств коммутации и каналов связи между устройствами.
В четвертой главе приведены материалы по разработке макета ВСАРР. Рассмотрены используемые для разработки элементная база и методы проектирования, разработана структура макета блока вещественной арифметики исполнительного устройства ВСАРР со встроенным аппаратным контролем. Разработаны встроенные аппаратные средства для обнаружения возникающих неисправностей и передачи сообщений об их характере на HOST-машину.
9 В заключении обобщены основные результаты проведенных автором исследований и разработок, сформулированы основные вьшоды по работе, намечены пути дальнейшего исследования методов организации аппаратного контроля и обеспечение отказоустойчивости устройств ВСАРР при выполнении параллельных вычислений.
Исследование методов обнаружения ошибок и восстановления функционирования вычислительных систем после обнаружения сбоя
В этом параграфе дается общая характеристика системы обнаружения ошибок в вычислительных машинах, а так же приводятся предъявляемые к ней требования. Проведен сравнительный анализ программного и аппаратного подходов к контролю правильного функционирования вычислительных систем, а так же проведено исследование современных методов аппаратного обнаружения ошибок и дальнейших системных действий по восстановлению нормальной работы вычислительной машины после обнаружения сбоя.
Общая характеристика системы обнаружения ошибок и предъявляемые к ней требования. Обнаружение ошибок — это процесс обнаружения сигналов, отличающихся от тех, которые должны иметь место при нормальной работе вычислительной системы. Неисправностью считается искажение или отклонение от нормы одного или нескольких параметров сигнала.
Ошибка — это выходной сигнал какой-либо схемы, логически отличающийся от нормального. Однако необходимо отметить, что не всякая неисправность приводит к ошибке. Некоторые неисправности вызовут ошибки только при определенных последовательностях входных сигналов, подаваемых на блок вычислительной системы, содержащий неисправный элемент.
Как правило система контроля имеет аппаратную и программную составляющие. Обнаружение и локализация неисправности осуществляется аппаратурой. После этого в программное ядро операционной системы, отвечающее за контроль хода вычислительных процессов, передается информация об устройстве, где возникла неисправность и характеристики этой неисправности. Затем программная часть системы контроля анализирует полученную информацию и принимает решение о дальнейших действиях по осуществлению реакции системы на возникновение неисправности: В диалоговых системах она посылает оператору сообщение о возникшей неисправности и выдает ее характеристики. Далее оператор принимает решение о замене или ремонте неисправного устройства и осуществляет восстановление вычислительного процесса (либо повторный запуск программы, либо запуск программы с контрольной точки).В системах с автоматическим восстановлением она дает команду аппаратной части системы контроля произвести реконфигурацию с целью исключения отказавшего устройства из состава системы. Далее проводятся мероприятия по восстановлению вычислительного процесса.
Функции системы контроля, выполняемые при обнаружении ошибки, должны быть четко определены на ранней стадии проектирования всей вычислительной системы. Если оператор или сама система не в состоянии принять соответствующие меры при обнаружении ошибки, то вся система обнаружения ошибок теряет свое значение. Если, например, перед системой контроля ставится задача произвести повторный пуск вычислений, прерванных обнаруженной ошибкой, то система повтора нуждается в информации о точке, в которой произошла ошибка, и о данных, которые могли быть искажены в результате ошибки. Если конструкция системы не предоставляет возможности получения такой информации, то не выполняется основной функции системы контроля.
При работе с вычислительной системой, снабженной системой контроля, пользователю необходимо взаимодействовать с ней, так как после обнаружения сбоя он должен исправить все возникшие искажения рабочей информации и. произвести повторный запуск (в том случае если в системе не предусмотрено автоматическое исправления ошибок и повторный пуск вычислительного процесса). Необходимо, чтобы система обеспечила пользователя достаточной информацией об обнаружении ошибки с целью выбора оптимального варианта восстановления неискаженной информации и завершения решения задачи. Кроме того, пользователь должен знать, какая часть программы выполнялась в момент обнаружения ошибки. Как правило, нет необходимости снабжать пользователя подробной информацией о состоянии всей системы, подобно той, какая необходима для обслуживающего персонала, однако следует предусмотреть возможность получения им такой информации при желании. Известно, что избыточная информация усложняет работу, поэтому данные, передаваемые пользователю, необходимо свести к минимуму, который он в состоянии использовать в своих действиях.
Сравнение систем программного и аппаратного контроля. Существует два вида контроля функционирования вычислительной системы: программный и аппаратный. Кроме выполнения всех тех же функций, которые осуществляются программным методом, аппаратный метод обнаружения ошибок может выполнить еще ряд функций, которые трудно осуществить программными методами.
Аппаратным методом ошибка обнаруживается ближе к месту ее возникновения, чем программными методами, поэтому аппаратное обнаружение ошибок может быть использовано для предоставления оператору более точной информации об искажениях информации, вызванных неисправностью. Аппаратным методом можно обнаружить ошибки, недоступные программным средствам (например, перемежающиеся ошибки).
Если значительная часть ошибок системы обнаруживается аппаратно, то на долю программного обеспечения приходится выявление и обработка лишь очень незначительной части из общего числа ошибок. Это упрощает программирование и в некоторых случаях уменьшает время выполнения программы. Сравнение систем программного и аппаратного контроля приведено в таблице 1.2.
Наиболее простой способ сопоставления. В этом случае автомат В идентичен автомату А, их входы объединены и оба они работают от единой системы синхронизации. Сопоставление процессов их работы производится сравнением одинаковых сигналов на выходе, либо в различных внутренних точках этих автоматов (рисунок 1.5.). При наличии
Такие способы контроля заключаются в параллельной работе нечетного (не менее трех) количества устройств и сравнении выходных сигналов (см. рисунок 1.6.). В случае различия выходных сигналов фиксируется ошибка того устройства, сигнал которого отличается от сигнала, совпадающего у большинства контролируемых блоков. На выход блока голосования вьвдается выходной сигнал результата работы блока А, совпадающий у большинства
Числовой контроль по модулю. Этот метод контроля широко используется в устройствах переработки цифровой информации. В этом случае автомат А представляет собой устройство, вьшолняющее
арифметические операции (сложение, вычитание, умножение и т.д.). Автомат В выполняет операции над контрольными словами, которые являются вычетами входных операндов. Блок С вычисляет вычет результата операции, производимой в блоке А. Результаты выполнения операций сравниваются, при этом при их совпадении считается, что операция выполнена верно. На рисунке 1.7. представлена структурная схема устройства, контролируемого по модулю.
Анализ архитектуры и определение роли и задач системы контроля и обеспечения отказоустойчивости вычислительной системы с автоматическим распределением ресурсов
В состав ВСАРР входят несколько типов устройств (каждое устройство в свою очередь представляет собой иерархическую структуру из нескольких блоков): Ассоциативная память - устройство формирования пар и хранения токенов. Исполнительное устройство - устройство, исполняющее программы узлов. Коммутатор готовых пар - распределяет готовые пары по исполнительным устройствам. Коммутатор токенов - распределяет токены, полученные от исполнительных устройств, по модулям ассоциативной памяти. ЦУП (центральный управляющий процессор) - выполняет ряд функций, направленных на организацию вычислительных процессов в ВСАРР и временное хранение токенов задач. ООЗУ (общее ОЗУ) - хранит токены задач. Адаптер ВСАРР - устройство сопряжения ВСАРР с ХОСТ - машиной. Система контроля ВСАРР — осуществляет контроль вычислительных процессов ВСАРР, обнаруживает сбои/отказы в составных блоках системы, локализует и изолирует отказавшие устройства, осуществляет реконфигурацию системы и восстанавливает ход вычислительного процесса. Ниже рассмотрена структура и особенности функционирования каждого типа устройств. Ассоциативная память. Ассоциативная память играет одну из центральных ролей в ВСАРР. Ее основные задачи — синхронизация вычислительных процессов по данным и хранение данных. Положительным побочным эффектом такой синхронизации является динамическое распределение вычислительных ресурсов и выявление скрытого параллелизма задачи.
Модуль ассоциативной памяти - это устройство для приема, хранения, ассоциативного поиска токенов и формирования пар, которые передаются в ИУ для обработки. Токен, поступивший на вход АП, обрабатывается в соответствии с алгоритмом работы АП. Сначала анализируется вид операции токена, затем ключ сравнивается с ключами, записанными ранее в ассоциативную память. Сравнение идет с учетом масок токенов. Если совпадений ключей нет, то ключ токена, вместе с маской, записывается в ассоциативную память, а остальные поля токена записываются в прямоадресусмую память АП по адресу, совпадающему с адресом ключа этого токена в ассоциативной памяти. Если совпадение ключей есть, то АП формирует пару, которую направляет в коммутатор пар.
В состав модуля ассоциативной памяти входят: і Входной регистр токена- предназначен для приема входного токена, пришедшего из ИУ через коммутатор токенов.
Блок дешифрации токена - осуществляет дешифрацию типа токена и проводит анализ кратности токена. Передает маску ключ и признаки токена в блок АЗУ.
Блок АЗУ (память ключей) предназначен для: хранения 64-ч разрядных ключей с их 7-ми разрядными масками; фиксации записанных ключей в регистре занятости; формирования адреса свободного места для будущей записи и его запоминание на регистре адреса записи; поиска по входному ключу с маской совпадающего с ним ключа; фиксации адреса совпадений на регистре совпадений; последовательной обработки совпадений в соответствии с приоритетом от старшего к младшему; выработки двоичного адреса места совпадений; гашения отработанных совпадений путем уменьшения на единицу заданной кратности; автоматического стирания из памяти ключей, кратность которых исчерпана (равна 0). Устройство управления МАП - вырабатывает сигнал пуска МАП, осуществляет анализ основной информации о входном токене, формирует соответствующую временную диаграмму и вырабатывает необходимые управляющие сигналы в зависимости от складывающейся ситуации по обработке входного и хранимого токена. Блок ОЗУ (память токенов) — хранит токены целиком, работает по тем же адресам каждого токена, что и блок АЗУ. При совпадении ключей токенов в блоке АЗУ, соответствующие данные из блока 03 У передаются на формирователь пар. Формирователь пар - предназначен для формирования готовых пар из входного токена и хранившегося в модуле ассоциативной памяти (МАП) парного ему токена. Функции ассоциативной памяти: Выявление параллелизма вычислительных процессов на уровне операторов — элементарных операций и подпрограмм. Обеспечение возможности вычислений по программе, не дожидаясь поступления всех исходных данных (по мере их поступления). Синхронизация вычислительных процессов по данным. Организация вычислительного процесса. Организация групповой выборки операндов по маске. Аппаратное распределение ресурсов внутри задачи. Управление вычислительными ресурсами с помощью специальных операций, таких как «Пуск», «Останов» задачи, освобождение ее ресурсов и другие (аппаратная поддержка ОС). Мониторинг состояния ресурсов и интенсивности вычислительных процессов. Как уже было сказано выше, предлагаемая к рассмотрению вычислительная система с автоматическим распределением ресурсов (ВСАРР) использует принцип потока данных. Для эффективной реализации систем основанных на данном принципе необходимо применение ассоциативной памяти. В предлагаемой системе для хранения данных и организации вычислительных процессов используется ассоциативная память. Кратко принципы работы всей ВСАРР и ассоциативной памяти были изложены в предыдущем параграфе. Стоит также отметить, что ассоциативная память, входящая в состав предлагаемой системы, позволяет проводить поиск с наложением маски на часть разрядов ассоциативного ключа. При этом разряды, закрьггые маской, будут считаться незначимыми, и поиск совпадения будет вестись только по открытым разрядам. В настоящее время, большинство пользователей вычислительной техники привыкли к использованию в вычислительных системах традиционно адресуемой памяти. В связи с этим, вопрос применения вычислительных систем с нетрадиционным построением вызывает опасение, что данные системы могут потребовать значительных усилий для обслуживания и использования предлагаемых нововведений. Со стороны пользователя системы может сложиться впечатление, что использование ассоциативной памяти в предлагаемой системе при программировании может оказаться громоздким и потребовать больших усилий при кодировании программы. Однако, это не так. Аспекты использования и управления ассоциативной памятью скрыты от пользователя системы, и все действия по работе с ассоциативной памятью выполняются автоматически аппаратными средствами системы. Пользователь не работает с ассоциативной памятью ни на языке высокого уровня, ни на языке ассемблера. Существует устройство управления, которое содержит в себе, как часть, ассоциативную память и это устройство управления решает, когда провести запись в ассоциативную память, когда поиск. Предлагаемая система принципиально не имеет адресов памяти.
Разработка алгоритма передачи информации, необходимой для восстановления вычислительного процесса, на исправный модуль МИУ в случае возникновения отказа одного из модулей
Выше была рассмотрена система встроенного аппаратного контроля МИУ. Фактически контролю подвергаются три типа блоков: память команд и констант, модули МИУ и функциональные устройства. В случае обнаружения ошибки системой контроля фиксируется возникновение неисправности, первоначально воспринимаемой как сбой работы аппаратуры. Мероприятия, проводимые для повтора операций в случае возникновения сбоя внутри модуля МИУ были рассмотрены выше: в таком случае предусмотрено повторение операций в модуле МИУ, что восстанавливает вычислительный процесс, практически не прерывая его, в результате чего падение производительности МИУ минимально. Теперь перейдем к алгоритму восстановления вычислительных процессов в МИУ в случае отказа одного из модулей.
Решение об отказе модуля принимается после троекратного повтора сбоя при повторе операций в данном модуле МИУ (повторы сбоев фиксирует счетчик сбоев данного модуля, находящийся в устройстве управления системой контроля). Далее производятся следующие действия (блок-схема алгоритма изображена на рисунке 3.7.): 1. Вычисления, производимые по программе узла, останавливаются, а все команды, следовавшие за командой, при выполнении которой произошел отказ модуля, и поступившие в исполнительный конвейер, но не достигшие стадии фиксации результата, аннулируются. Таким образом, за счет применения архитектурных решений, в МИУ реализуется точное прерывание вычислительного процесса в случае возникновения отказа. 2. УУСК изолирует отказавший модуль путем исключения его из рабочей конфигурации МИУ. Теперь при приходе новой входной пары токенов и проверке наличия свободных модулей обращение к отказавшему модулю производиться не будет. 3. Производится проверка исправности остальных модулей МИУ. В случае отсутствия в МИУ исправных модулей УУСК принимает решение о полном отказе всего МИУ и далее работает алгоритм передачи данных, необходимых для продолжения вычисления программы узла с отказавшего МИУ на исправное МИУ-Если исправные модули есть, то см. пункт 4. 4. Производится поиск свободного модуля МИУ способного начать повторное выполнение программы узла, ранее выполнявшегося на отказавшем ИУ (по сигналу от УУСК поиск осуществляется устройством входного интерфейса пары, так как оно отвечает за распределение пар токенов по вычислительным ресурсам внутри МИУ). Если такой модуль есть, то он переводится в режим обработки аварийной пары. Если, в данный момент, в МИУ нет ни одного свободного модуля способного приступить к обработке аварийной пары, то: Если имеются модули, в которых программа обработки узла вышла на линейный участок, то есть точно известно, что в теле программы узла больше нет возможных переходов назад по программе, то данный модуль резервируется для обработки возникшего прерывания, и пара токенов, которая возможно направлялась для обработки на данный модуль тормозится и в дальнейшем может быть направлена на другой модуль. Таким образом, обработка аварийной пары имеет приоритет перед обработкой пар токенов. Если ни в одном из модулей программа обработки узла не вышла на линейный участок, то происходит определение модуля МИУ в котором обрабатывается пара токенов, имеющая приоритет ниже чем пара, при обработке которой произошел отказ модуля ИУ. Если такой модуль найден, и он не участвует в обработке аварийной пары токенов или прерывания, то программа обработки пары с низшим приоритетом сбрасывается, при этом под сбросом надо понимать прекращение выполнения программы узла и сохранение информации о ее вьшолнении для последующей обработки с учетом предыдущего выполнения. Следует отметить, что программа обработки сброшенной пары может быть запущена сразу же на любом освободившемся МИУ. После этого модуль резервируется для обработки аварийной пары токенов. Сброшенная пара токенов считывается из схемы входной пары модуля МИУ и вновь поступает на вход МИУ в устройство входного интерфейса пары. В случае отсутствия в МИУ модулей, вышедших на линейный участок, и при этом имеющих более высокий приоритет, чем отказавший модуль (приоритет модулей определяется приоритетом обрабатываемых ими пар), УУСК ожидает выхода одним из модулей на линейный участок, с последующим его резервированием для обработки аварийной пары.
Далее свободный исправный модуль (либо зарезервированный исправный модуль после завершения выполнения программы узла) принимает на свои регистры пары токенов аварийную пару, которая обрабатывалась в отказавшем модуле. Пересылка осуществляется с регистров пар токенов УУСК, где их резервные копии хранятся с момента прихода на входной регистр пары до успешного завершения соответствующих им программ узлов. ІСак уже было сказано выше, при повторном выполнении программы узла, необходимо предотвратить повторную выдачу токенов, выданных в процессе выполнения программы узла. Для этого служит уже описанный ранее счетчик корректных выданных токенов. Значения счетчиков каждого модуля, так же как и копии входных пар токенов хранятся в специальных регистрах УУСК. Следом за пересылкой аварийной пары в модуль-обработчик пересылается значение счетчика выданных токенов, которое устанавливается в соответствующий регистр модуля-обработчика. Поскольку обработка пар токенов и вьтолнение их программ узла в МИУ на всех 4 направлениях производятся независимо друг от друга, то пересылка исходной пары токенов и счетчика выданных токенов является необходимой и достаточной информацией для повторного выполнения программы узла, при обработке которого возник отказ модуля МИУ. После пересылки на исправный модуль МИУ всех вышеперечисленных данных производится запуск модуля-обработчика. Работать он будет в режиме обработки аварийной пары токенов, который отличается от нормального режима тем, что при попытке выдачи токена в течение выполнения программы узла эта выдача будет блокироваться, а из значения счетчика выданных токенов будет вычитаться 1. И так до тех пор, пока это значение не станет равным О, после этого выдача токенов и работа модуля МИУ в целом будет проводиться в обычном режиме. Алгоритм работы счетчика выданных токенов наглядно представлен иг рисунке 3.8. 8. После восстановления вычислительного процесса внутри МИУ устройство управления системой контроля формирует токен-сообщение на HOST-машину, в котором передается значение регистра неисправностей данного МИУ. В данном случае, кроме всей прочей необходимой информации там будет указан номер МИУ и номер отказавшего модуля. Это необходимо для сбора статистики на HOST-машине о состоянии устройств системы. 9. Далее МИУ работает в режиме с ограниченными ресурсами. После каждого отказа модуля МИУ происходит постепенная деградация исполнительного устройства, но работа все равно продолжается, правда со снизившейся производительностью. Однако преимущества такой организации структуры и алгоритма восстановления нормальной работы МИУ налицо: Прежде всего, это сравнительно небольшое время для восстановления вычислительного процесса после отказа, так как реконфигурация и все пересылки необходимой информации производятся внутри одного МИУ. Восстановление после отказа производится за счет внутренних аппаратных ресурсов МИУ, причем до момента возникновения отказа эти "внутренние резервы" работают независимо и максимально эффективно используются, в отличие от структур с дублированием или мажорированием, рассмотренных во второй главе, где обрабатываются только две или одна пара токенов.
Выбор элементной базы и определение конструктивов для реализации макета ВСАРР
Проектирование устройств, входящих в состав ВСАРР, проводилось в САПР фирмы ALTERA - Quartos П. Данная система позволяет провести полный цикл проектирования и моделирования разрабатываемого устройства, от описания задания до программирования микросхем ПЛИС. Система Quartos П является дальнейшим развитием систем Quartos и MAX+Plus II и одновременно включает в себя множество нововведений и дополнений. САПР Quartos II позволяет использовать при разработке новые семейства микросхем — Apex II, Stratix и Stratix GX. Quartos II использует новый более мощный компилятор и новую систему синтеза. Компилятор анализирует проект и разбивает его в соответствии с типом внутренних устройств используемых в архитектуре выбранного семейства микросхем. Quartos П в отличие от предыдущих систем лучше воспринимает описания проектов созданные при помощи языков описания аппаратуры [58,59, 60,61].
Начальным этапом проектирования (рисунок 4.2.) является описание устройства, которое может производится, как графическим методом в графическом редакторе, так и путем описания устройства при помощи одного из языков описания аппаратуры (AHDL, VHDL и другие).
После создания логического описания разрабатываемого устройства проводится его компиляция, в ходе которой могут быть выявлены ошибки, допущенные при создании и редактировании описания проекта. В этом случае проводится откат на предыдущий этап проектирования, и разработчик исправляет допущенные ошибки.
В том случае, если компилятор САПР не обнаружил какие-либо ошибки в описании проекта, проводится логическое моделирование проекта, при котором проверяется соответствие между полученным и желаемым его логическим поведением. В случае не соответствия полученных временных диаграмм желаемым проводится исправление схематики проекта, и повторяются все предыдущие этапы проектирования.
В дальнейшем проводится окончательная компиляция проекта, при которой вырабатывается конфигурационный файл для загрузки в микросхему ПЛИС. При данной компиляции в модель устройства, используемую при моделировании проекта, включаются, помимо его логического описания, временные задержки, возникающие при выработке и передаче тех или иных логических сигналов устройства, с учетом размещения логических блоков разрабатываемого устройства внутри конкретной микросхемы ПЛИС.
Затем проводится моделирование проекта с учетом выявленных временных задержек. В случае не соответствия временных параметров разработанного устройства его заданным параметрам, разработчик вынужден искать пути установки данных параметров в требуемом диапазоне. Возможны следующие действия: изменение настроек автоматической трассировки при настройке компилятора САПР; откат на этап описания проекта и внесение изменений в его схемотехнику; ручной анализ размещения логических блоков устройства внутри микросхемы ПЛИС с учетом задержек внутри микросхемы; полная или частичная ручная трассировка ПЛИС. В итоге, когда в соответствии с результатами моделирования разработанное устройство полностью соответствует заданию, проводится загрузка в микросхему ПЛИС конфигурационного файла, полученного в результате компиляции проекта. И дальше начинается этап автономной отладки и тестирования разработанного устройства, на котором возможны откаты на любой из предыдущих этапов разработки. По окончанию автономной отладки и аппаратной готовности других устройств системы наступает этап комплексной отладки и тестирования всей системы. Таким образом, САПР Quartus II позволяет разработчику провести проектирование устройства с минимальными финансовыми и временными затратами, так как все ошибки, требующие значительных усилий для исправления, обнаруживаются на этапе моделирования в среде САПР и не требуют изменения конструктива аппаратуры.
В рамках аппаратной реализации макета ВСАРР автором был разработан блок вещественной арифметики (БВО), входящий в состав ИУ ВСАРР, со встроенным аппаратным контролем выполнения операций. Данный блок предназначен для обработки 32-разрядных вещественных чисел в соответствии со стандартом ШЕЕ 754-1985. Арифметические операции в БВО распадаются на автономно контролируемые микрооперации над мантиссой и смещенным порядком вещественных операндов.
Структурная схема блока вещественной арифметики изображена на рисунке 4.3. Рассмотрим алгоритмы функционирования и контроля его работы. Операнды вещественного типа принимаются соответственно на первый и второй входные регистры БВО. Кроме того, на специальный регистр принимается значение маски исключительных ситуаций, которые могут возникнуть при выполнении вычислений. Далее принимается значение кода операции (КОП). Все исходные данные, полученные на входные регистры БВО, хранятся на них до успешного завершения выполнения операций.
Контроль дешифрации кода операции и дешифрации осуществляется дублированием обоих дешифраторов с последующим сравнением результатов. Дешифрация и ее контроль производятся на обоих дешифраторах синхронно и в случае возникновения сбоя осуществляется троекратный повтор дешифрации кода операции под управлением устройства управления системой контроля (УУСК БВО), после чего, если сбой повторяется, фиксируется отказ дешифратора КОП БВО. Информация о сбоях и отказах дешифраторов БВО записывается в регистр неисправностей.
В блоке предварительного анализа (Pre_analyser) производится проверка входных данных на предмет исключительных ситуаций. В случае возникновения таковых в регистр флагов (Flagregister) записываются соответствующие флаги, а на выходные регистры выдаются соответствующие данной ситуации данные. В случае отсутствия исключительных ситуаций, в блоке предварительного анализа вырабатываются управляющие сигналы, идущие на входные регистры блока выполнения операций, соответствующего дешифрированному коду операции.
Контроль арифметических операций осуществляется с применением остаточного кода по модулю три, служащего для обнаружения всех одиночных и некоторых кратных ошибок. Подробно метод контроля с применением остаточного кода был описан в параграфе 3.1-главы 3. Для контроля по модулю три требуется всего лишь два дополнительных контрольных разряда.
Коды для исправления одиночных ошибок в макете не применялись, так как дополнительное оборудование при этом сравнимо с оборудованием самого контролируемого устройства, логической емкости микросхем ПЛИС, применяемых при реализации макета ВСАРР, просто бы не хватило. При этом исчезают преимущества исправления ошибок из-за таких больших затрат оборудования.