Содержание к диссертации
Введение
Глава 1. Обзор современных высокопроизводительных вычислительных комплексов и методов их отладки 8
Архитектуры современных многопроцессорных систем 9
Сравнительный анализ современных многопроцессорных вычислительных систем 20
Вычислительные системы, управляемые потоком данных 23
Основные проблемы, связанные с отладкой задач и аппаратуры современных вычислительных систем 28
Общая методика отладки аппаратных средств вычислительных систем 29
Трудности при отладке задач на многопроцессорных вычислительных системах традиционных архитектур 39
Обзор средств для отладки программ на современных многопроцессорных вычислительных системах 41
Методы отладки многопоточных программ на вычислительных системах с массовым
параллелизмом 42
Выводы 45
Глава 2. Особенности организации вычислительных процессов и архитектура вычислительной системы с автоматическим распределением ресурсов 46
Исследование принципов организации вычислений при автоматическом распределении ресурсов 46
Основные архитектурные особенности вычислительной системы с автоматическим распределением ресурсов 50
Исследование и разработка принципов взаимодействия между вычислительной системой с автоматическим распределением ресурсов и ХОСТ - машиной 72
Выводы 74
Глава 3. Методы отладки вычислительной системы с автоматическим распределением ресурсов 75
Исследование необходимых аппаратных средств для отладки устройств вычислительной системы с автоматическим распределением ресурсов 75
Обоснование дополнительной аппаратной поддержки в вычислительной системе с автоматическим распределением ресурсов для отладки задач пользователей и аппаратуры самой системы 79
Обоснование методики автономной отладки аппаратуры вычислительной системы с автоматическим распределением ресурсов 82
Обоснование необходимых средств для отладки задач в вычислительной системе с автоматическим распределением ресурсов 87
Исследование подходов к отладке задач на вычислительной системе с автоматическим распределением ресурсов 92
Выводы 97
Глава 4 Реализация предложенных методов в виде набора сервисных программ для вычислительной системы с автоматическим распределением ресурсов 98
Состав и функциональные возможности разработанных программных средств для обмена информацией между макетом вычислительной системы с автоматическим распределением ресурсов и инженерным персональным компьютером 107
Особенности реализации программного обеспечение инженерного персонального компьютера 111
Особенности реализации программных средств для отладки макета вычислительной системы с автоматическим распределением ресурсов 112
Особенности реализации программного обеспечения для отладки задач, выполняемых на макете вычислительной системы с автоматическим распределением ресурсов 123
Заключение 137
Основные результаты работы 138
Список рисунков 139
Расшифровка аббревиатур 141
- Сравнительный анализ современных многопроцессорных вычислительных систем
- Основные архитектурные особенности вычислительной системы с автоматическим распределением ресурсов
- Обоснование дополнительной аппаратной поддержки в вычислительной системе с автоматическим распределением ресурсов для отладки задач пользователей и аппаратуры самой системы
- Особенности реализации программного обеспечение инженерного персонального компьютера
Введение к работе
Актуальность темы
В настоящее время в различных областях науки и техники, таких как энергетика, аэродинамика, биология, информатика, экономика и других существует большое количество сложных вычислительных задач. Эти задачи требуют огромных вычислительных мощностей и, как правило, имеют большое количество глобальных (разделяемых) данных, что приводит к снижению реальной производительность суперЭВМ и вычислительных комплексов. Можно назвать две основные проблемы, тормозящие рост реальной производительности вычислительных комплексов:
Необходимость поддержки когерентности КЭШ памяти.
Необходимость синхронизации вычислительных процессов по данным.
Это приводит к тому, что реальная производительность универсальных суперЭВМ и многопроцессорных вычислительных комплексов на задачах с относительно большим количеством глобальных данных составляет в среднем лишь 12-15 процентов от пиковой производительности комплексов [37, 38]. Для устранения этих серьезных недостатков необходима разработка совершенно новых методов организации вычислительного процесса и аппаратных средств, реализующих эти методы.
В этой связи весьма перспективным выглядит подход, в котором вычислительный процесс управляется потоками готовых к обработке данных [35, 36]. Этот подход в течение длительного времени привлекает к себе внимание разработчиков компьютеров многими весьма ценными для получения предельной производительности особенностями. В первую очередь, это связано с тем, что уже на стадии изложения алгоритма в максимальной степени исключается взаимосвязь операций, и провозглашается принцип «можно выполнять одновременно все операции, для которых в этот момент готовы операнды». Выполнение этого принципа обеспечивает предельную степень параллелизма, который имеется у конкретной задачи.
В настоящее время спроектирован, изготовлен, отлажен и прошел всесторонние испытания макет вычислительной системы с автоматическим распределением ресурсов (ВСАРР), который позволил исследовать, как на программном, так и на аппаратном уровнях большинство проблем, возникающих при разработке полномасштабной ВСАРР. Одной из основных таких проблем является исследование и разработка современных методов отладки аппаратуры ВСАРР и выполняемых на ней задач. Эти вопросы рассматриваются в настоящей работе.
Отличительной особенностью ВСАРР является автоматическое (без вмешательства программиста) распределение ресурсов системы и распараллеливание вычислительных процессов. Еще одной отличительной особенностью ВСАРР является то, что организацию параллельных вычислительных процессов выполняет ассоциативная память. Проведенные исследования на имитационной модели и макете ВСАРР на задачах с относительно большим количеством глобальных данных показали, что при увеличении числа исполнительных устройств и модулей ассоциативной памяти производительность всей системы в целом возрастает пропорционально количеству процессоров, если параллелизм самой задачи достаточно высок. ВСАРР может эффективно работать, как в многозадачном режиме, так и в режиме управления процессами внутри большой задачи. На аппаратном уровне, без затраты времени исполнительных устройств, решена проблема синхронизации вычислительных процессов как по данным внутри системы, так и по данным, которые приходят от внешних объектов, работающих в реальном масштабе времени.
Исполняемая на ВСАРР задача может быть представлена в виде графа вычислений, каждый узел которого имеет не более двух входов и практически неограниченное количество выходов. Так как в ВСАРР последовательность выполнения большинства операций не определена и ход их выполнения может изменяться при различных запусках одной и той же задачи, то отладка задач на ВСАРРР требует принципиально новых подходов, которые исследуются в настоящей работе. Весьма актуальными являются следующие новые вопросы, возникающие при отладке задач: разработка методов отладки задач на ВСАРР; разработка принципов организации системного программного обеспечения для отладки задач на ВСАРР; разработка методов отладки аппаратуры ВСАРР; аппаратная поддержка методов отладки задач, проходящих на ВСАРР; аппаратная поддержка методов отладки системного программного обеспечения, расположенного на ВСАРР.
Наряду со средствами отладки задач необходимо разработать средства для автономной отладки следующих компонентов аппаратуры ВСАРР: ассоциативной памяти; многопоточных исполнительных устройств; всей системы в целом. Цель диссертационной работы
Цель работы - исследовать новые методы отладки системного программного обеспечения и прикладных задач для новой вычислительной системы с автоматическим распределением ресурсов. Разработать принципы отладки задач для указанной архитектуры. Создать программное обеспечение для отладки прикладных задач, выполняемых на рассматриваемой архитектуре, а также для отладки аппаратуры указанной вычислительной системы. Создать необходимую аппаратную поддержку разработанных методов отладки.
Методы исследования
Исследования проводились с использованием теории операционных систем, теории параллельных вычислительных процессов. Программное обеспечение для отладки ВСАРР создавалось на основе современных принципов объектно-ориентированного программирования.
Степень научной новизны
Впервые исследованы и разработаны методы, позволяющие отлаживать программное обеспечение и аппаратуру для новой вычислительной системы с автоматическим распределением ресурсов и с новыми подходами к организации процесса вычислений. Научная новизна работы состоит в следующем: предложены методы отладки системных и прикладных задач на ВСАРР; предложена аппаратная поддержка для методов отладки системных и прикладных задач; выявлены специфические компоненты системного программного обеспечения, необходимые для отладки задач на ВСАРР; сформулированы принципы разработки программно-аппаратных средств для отладки аппаратуры ВСАРР; исследованы и разработаны структура и алгоритмы функционирования сервисных программ, выполняющих следующие функции: о получение и визуализация результатов; о сбор статистики о работе ВСАРР; о загрузка данных и кода программ в память рассматриваемой вычислительной системы, а также их модификации; о считывание содержимого логических анализаторов с устройств ВСАРР. Практическая значимость Практическая значимость заключается в следующем: разработано программное обеспечение для отладки системных и прикладных задач запускаемых на ВСАРР; определены особенности аппаратной поддержки ВСАРР, необходимые для обеспечения эффективной отладки системных и прикладных задач; реализовано и апробировано на макете разработанное программное обеспечение для отладки аппаратуры макета ВСАРР.
Все перечисленное выше было разработано, отлажено и практически апробировано при отладке макета ВСАРР.
Полученные результаты диссертационной работы могут быть использованы при отладке аппаратуры полномасштабной суперЭВМ с автоматическим распределением ресурсов, а также сложных задач, требующих больших объемов вычислений, выполняемых на этой суперЭВМ. Кроме того, полученные результаты могут быть использованы при отладке аппаратуры и задач на суперЭВМ подобной архитектуры.
Апробация результатов
Основные положения и результаты работы докладывались и обсуждались на научных семинарах в ИПИ РАН 2000-2003 г., на международных конференциях «Информационные технологии в науки, образовании, телекоммуникации, бизнесе» 2001 и 2002 годах, на международной конференции «Интеллектуальные и многопроцессорные системы ИМС'2003» в 2003 году. Исследование разработанных методик и механизмов отладки проводилось в Институте проблем информатики РАН при отладке макета ВСАРР.
Объем работы
Диссертационная работа состоит из введения, четырех глав, заключения, списка литературы и приложения. Объем диссертации: всего 178 с, из них основного текста 147с, список литературы из 80 наименований, 50 рисунков.
Сравнительный анализ современных многопроцессорных вычислительных систем
Чтобы сравнить вышеупомянутые архитектуры, необходимо выбрать основной критерий сопоставимости комплексов. Например, можно неограниченное число персональных компьютеров (PC) соединить локальными сетями и иметь почти любую максимальную производительность комплекса, построенного по многомашинному принципу. Причем, для целого спектра задач такой вариант решения будет вполне оправданным — на определенном классе задач его производительность будет близка к максимально возможной.
Действительно, в том случае, когда данные задачи хорошо локализуются по параллельным вычислительным процессам и обмен данными между PC не тормозит общий вычислительный процесс, производительность такого многомашинного комплекса будет близка к максимальной [63]. В том случае, когда задача имеет большие массивы глобальных данных, производительность такого комплекса может упасть практически до нуля. Поэтому только величина производительности не полностью характеризует требования, предъявляемые к высокопроизводительным вычислительным комплексам (суперЭВМ): должен быть указан и объем данных, с которыми должен оперировать весь комплекс вычислительных средств, чтобы иметь требуемую производительность.
На практике реальная производительность комплексов, построенных по той или иной архитектуре, сильно отличается от максимальной производительности комплексов. В то же время наиболее объективным параметром сравнения эффективности работы различных суперЭВМ может быть показатель т, равный отношению реальной производительности к максимальной производительности комплексов на представительном спектре задач.
Анализ снижения реальной производительности суперЭВМ с ростом числа процессоров позволяет выявить две причины, вызывающие эту закономерность: одна из них связана с пространством: недозагрузка процессоров из-за того, что запаздывают данные при передаче их из памяти к процессору или от процессора к процессору; другая связана со временем: недозагрузка процессора из-за отсутствия данных, поставляемых другими вычислительными процессорами (синхронизация по данным). Первая причина достаточно подробно исследована в [37, 38, 46, 50]. В результате сделаны следующие качественные сравнения двух архитектур построения суперЭВМ (с распределенной и распределяемой памятью). 1.Реальная производительность Преалмм многомашинного комплекса пропорциональна производительности процессоров (Ппр) и пропускной способности внешних запоминающих устройств Е и обратно пропорциональна числу процессоров N. Преалмм Ппр ЕЛЧ 2.Реальная производительность многопроцессорных комплексов. Преалмп пропорциональна производительности базового процессора комплекса Ппр и пропускной способности внешних запоминающих устройств и оперативно запоминающих устройств (ОЗУ) всего комплекса Е. Преалм„ Ппр Е Как видно, архитектура многопроцессорных систем (распределяемая память) имеет определенные преимущества в виду того, что не во всех задачах возможно локализовать данные при процессорах многомашинного комплекса, имеющих объем ОЗУ в N раз меньше, чем в комплексах с распределяемой памятью.
Однако эти качественные сравнительные оценки двух архитектур сделаны без учета задержки в системах коммутации вычислительных комплексов. Поэтому, преимущества многопроцессорных комплексов справедливы только для сравнительно малых N. С увеличением N свыше 32 построение многопроцессорных комплексов существенно затруднено тем, что задержка коммутатора (процессор-ОЗУ) дважды входит во время выполнения каждой операции процессора. Комплексы могут работать только с использованием сверхоперативной памяти КЭШ при каждом процессоре. Использование КЭШ в многопроцессорных системах решает проблему нивелирования задержки только для работы с локальными данными. Работа КЭШ с глобальными данными, доступными в едином адресном пространстве другим процессорам, требует обеспечения когерентности работы КЭШ. Существующие методы обеспечения когерентности КЭШ при увеличении числа процессоров N, работающих на общую память, существенно в десятки и сотни раз увеличивает время доступа процессора к данным ОЗУ.
Второй причиной неэффективной работы суперЭВМ на больших задачах является временной фактор — синхронизация данных параллельных вычислительных процессов. Фактически программист, реализующий на вычислительных комплексах задачу с большим количеством параллельных процессов, должен разработать сложнейшую программу реального масштаба времени: - каждый параллельный процесс выполняется на выделенном для него процессоре, объеме оперативной памяти, канале передачи данных и так далее. Время реализации вычислительных процессов на аппаратуре, как правило, неизвестно, так как оно зависит от данных и от ситуации прохождения задачи внутри системы. Единственным способом синхронизации процессов по данным является использование самих процессоров комплекса для слежения за появлением данных того или другого процесса, необходимых для продолжения вычислительных процессов. Использование процессоров комплекса (для синхронизации данных) приводит к дополнительному нерациональному использованию процессорного времени и снижению эффективности работы всего вычислительного комплекса.
Если такого контроля не производить, а попытаться для синхронизации по данным использовать ячейки памяти, задача может выполниться с искаженным результатом, так как велика вероятность использования вместо новых устаревших данных, находящихся в ячейке памяти. К сожалению, память в данном случае не помогает, а ухудшает ситуацию -ячейка памяти не имеет информации о том, в какое время данное было записано.
В своих новых проектах по пентафлопному суперкомпьютеру вопрос увеличения производительности США решают путем сокращения длин линий связи между устройствами и увеличения количества процессоров за счет улучшения технологических возможностей изготовления элементной базы. В 2008 году США планируют перейти на технологические нормы 0,05 мкм, в три раза увеличив разрешающую способность при изготовлении сверхбольших интегральных схем (СБИС) по сравнению с сегодняшним днем (0,18-0,13). Это существенно сокращает выделение энергии на одно логическое срабатывание и позволяет в одном кристалле размещать 32-64 процессоров. Необходимо принимать во внимание то обстоятельство, что выделяемая на одно логическое срабатывание энергия пропорциональна отношению (Л]/ Дг)3, где Ді и Дг это технологическое разрешение соответственно старой и новой элементной базы.
Появляется возможность более плотной компоновки устройств и увеличения их количества, что, конечно, увеличит пиковую производительность новых американских суперЭВМ. Однако, оставаясь в рамках старой архитектуры, с ростом количества процессоров показатель Т будет уменьшаться. Эта проблема на сегодняшний день остается нерешенной.
В компьютерах архитектуры фон-Неймана последовательность выполняемых инструкций образует поток управления, который создается с помощью счетчика инструкций и глобальной памяти, откуда инструкции извлекаются. В этих компьютерах инструкция выполняется, когда на нее указывает счетчик инструкций. В машинах потока данных никаких указателей на инструкции нет, и принцип активизации операций совсем другой: операция объявляется готовой к исполнению, как только на ее входные дуги поступит полный набор величин (токенов). Например, инструкция сложения будет готовой к исполнению как только на ее входные две дуги поступят и первое, и второе слагаемое. Пока набор входных токенов не содержит полного набора операндов для данной операции, она будет ожидать поступления остальных. Правило активизации операции в машинах потока данных предельно локализовано, операция запускается тогда, когда откуда-то извне, вообще говоря, даже неважно откуда, поступают все необходимые данные.
Основные архитектурные особенности вычислительной системы с автоматическим распределением ресурсов
ВСАРР органично сочетает в себе два принципа организации вычислений: принцип потока данных и принцип фон-Неймана. «Отход от традиционных принципов обработки информации и переход к организации вычислительного процесса по мере готовности данных позволяет решить вопрос максимального распараллеливания вычислительного процесса во времени.»[39] В состав ВСАРР входят семь типов устройств (каждое устройство содержит по несколько функциональных блоков): Исполнительное устройство - устройство, исполняющее программы узлов. Ассоциативная памяти - устройство формирования пар и хранения токенов. Коммутатор пар - распределяет готовые пары по исполнительным устройствам. Коммутатор токенов - распределяет токены, полученные от исполнительных устройств, по модулям ассоциативной памяти. Устройство управление ассоциативной памятью - выполняет ряд функций, направленных на организацию вычислительных процессов в ВСАРР и временное хранение токенов задач. ООЗУ (общее ОЗУ) — хранит токены задач. Адаптер ВСАРР - устройство сопряжения ВСАРР с ХОСТ - машиной. Исполнительное устройство
В рассматриваемой архитектуре под активацией узла понимается не элементарная операция, а вызов программы обработки входных данных (программа узла). Программа узла в основном реализует последовательные участки программы пользователя, которые сильно снижают производительность архитектур "чистого" dataflow. Таким образом, небольшие последовательные участки программы пользователя выполняются на традиционной фон - Неймановской архитектуре, а параллельные участки - на архитектуре dataflow, что позволяет использовать все преимущества dataflow архитектуры и снижает проявление части её недостатков. Все устройства ИУ идентичны. Программа имеет в памяти ВСАРР столько копий, сколько в ней устройств ИУ.
ИУ обеспечивает параллельное независимое выполнение четырех потоков команд. Для этого предназначены четыре модуля ИУ (МИУ). Каждый МИУ содержит аппаратуру, необходимую для организации вычислительного процесса: буфер команд, устройство выборки и декодирования команд, регистровый файл и т.д. (см. рис. 2.3)
Эти четыре модуля имеют в совместном использовании общий набор функциональных устройств. Таким образом, при выполнении команды одной из нитей, операнды поступают на общие функциональные устройства, обрабатываются и результат возвращается в МИУ, организующий выполнение данной нити. В общем случае, если не будет возникать конфликтов при распределении функциональных устройств по разнымнитям, возможно одновременное выполнение четырех команд из разных нитей.
Структурная схема исполнительного устройства. Все четыре МИУ разделяют общую память команд/констант, которая содержит полный набор команд для обработки всех узлов программы. Общим для всех модулей является устройство входного интерфейса пар, которое принимает пары токенов от ассоциативной памяти и распределяет их на обработку между МИУ. Общим является устройство выходного интерфейса токенов, которое обеспечивает сбор готовых результирующих токенов из МИУ и отправку их на коммутатор токенов. Также общим является устройство интерфейса с ХОСТ - машиной, предназначенное для тестирования и отладки ИУ.
Каждое исполнительное устройство содержит следующие блоки: БВО (блок вещественных операций) - исполнительный блок, выполняющий операции над данными, представленными в формате с плавающей точкой; БЦО (блок целочисленных операций) - исполнительный блок, выполняющий операции над данными, представленными в формате целых чисел; блок выполнения специальных операций; блок буферов; блок памяти команд и констант; блок адресуемых регистров; блок выборки и дешифрации команд; блок управления выполнением операций; регистр сумматора, регистр младших разрядов и регистр флагов (на схеме эти узлы собраны в отдельный блок); регистр констант; блок приема входной пары; блок формирования и выдачи токена.
В каждом из перечисленных блоков встроен пультовой контроллер, поддерживающий взаимосвязь функциональных блоков ИУ с ХОСТ - машиной и обеспечивающий с помощью ХОСТ - машины управление режимами работы ИУ, индикацию состояний схем, ввод/вывод данных, проведение начальной отладки ИУ и вьшолнение некоторых других вспомогательных операций.
Прерывания в вычислительной системе с автоматическим распределением ресурсов Те средства обработки прерываний, которые имеются в составе ИУ, предназначены для поддержки основных операций, выполняемых уже операционной системой. Они позволяют приостановить выполнение программы узла, обработать прерывание и в дальнейшем вернуться к выполнению прерванной программы. Аппаратура "сообщает" о прерывании асинхронно (в любой момент времени). Прерывания представляют собой механизм, позволяющий координировать параллельное функционирование отдельных устройств вычислительной системы и реагировать на особые состояния, возникающие при работе ВСАРР. Таким образом, прерывание — это принудительная передача управления, происходящая при возникновении определенного события от выполняемой программы к системе (а через нее - к соответствующей программе обработки прерывания). Основная цель введения прерываний - реализация доступа к функциям операционной системы (ОС) ВСАРР и обработки исключительных ситуаций. Механизм прерываний реализуется аппаратно-программными средствами. На механизм прерываний возложено выполнение следующих функций: распознавание или классификация прерываний; передача управления соответственно обработчику прерываний; корректное возвращение к прерванной программе.
Время перехода от прерываемой программы к обработчику и обратно должно быть минимально возможным. Одним из методов, обеспечивающих выполнение этого требования, является использование таблицы, содержащей перечень всех допустимых для ВСАРР прерываний и адреса соответствующих обработчиков. Такая таблица называется таблица векторов прерываний.
Обоснование дополнительной аппаратной поддержки в вычислительной системе с автоматическим распределением ресурсов для отладки задач пользователей и аппаратуры самой системы
Анализ функций, которые должны выполняться в процессе отладки, показывает, что в аппаратуру ВСАРР должны быть включены дополнительные аппаратные средства, которые рассмотрены в настоящем разделе. Остановы в графе вычислений задачи 1. Выдача токена из исполнительного устройства Рисунок 3.3 (1). Останов ИУ осуществляется перед выдачей результата от одного узла графа вычислений задачи другому узлу. Состояние и данные токена могут маскироваться. При этом останов может осуществляться перед выдачей результата какому-то конкретному узлу или группе узлов, а также при определенном значении результата. 2. Вход в узел графа вычислений задачи. Рисунок 3.3 (2). Останов производится по приходу данных в каждый узел графа вычислений задачи. На состояние и данные пришедшей пары может быть наложена маска. Имеется возможность произвести останов ИУ ВСАРР по приходу конкретных данных в конкретный узел. Накладывая маску на данные и состояние можно останавливаться в интересующих узлах графа вычислений задачи. 3. По контексту (поле в токене или паре). Рисунок 3.3 (3). Останов производится перед выдачей токена из ИУ или по приему пары в ИУ по заданному контексту. Контекст токена или пары может маскироваться. При помощи этого останова можно узнать, какие данные входили в определенный узел графа вычислений задачи и какие выходили. Следовательно, зная содержимое ассоциативной памяти, можно прогнозировать дельнейшие вычисления задачи и влиять на ход вычислений. То же может быть выполнено и для группы узлов. Рис. 3.3 Виды остановов в графе вычислений задачи. Остановы внутри узла графа вычислений задачи 1. Покомандный. В покомандном режиме, остановы производятся внутри узлов графа вычислений задачи, состоящих из последовательного набора команд. При помощи этого вида останова выявляются ошибки в программе узла. Существует возможность просмотра и изменения функциональных регистров ИУ, памяти команд и констант. Останов может происходить и по определенному значению РОНа или РОНов, что бывает полезно в больших программах узла. 2. Останов по номеру команды в программе узла. Этот вид останова полезен при отладке программы внутри узла, в котором были исключительные ситуации или переходы. Останов производится перед началом выполнения команды, на которую был установлен останов. Как правило, этот режим останова применяется в паре с имеющим маску поузловым остановом или с остановом по состоянию с маской.
Если отладка задачи производилась на ВСАРР, то после останова пользователь может произвести сброс интересующей информации о задаче на ХОСТ - машину.
Отладочные аппаратные средства должны быть встроены также и в ассоциативную память. К ним относятся: логический анализатор, специальный просмотровый режим, в котором, накладывая маску на ключ токена, можно выводить любую интересующую информацию о задаче, и некоторая аппаратура по сбору статистики работы АП. Рассмотренные программно — аппаратные отладочные средства превосходят по функциональности и удобству средства, имеющиеся в стандартных архитектурах по следующим основным причинам: Существует возможность проследить любую ветвь графа вычислений задачи задав только один останов с маской. 1. Остановится на определенной активации узла графа вычислений задачи (по определенному контексту). 2. Останавливаться на выдачи в память не только одного данного, а целого вектора. 3. Остановится на входе в узел или выходе из узла по определенному контексту и данному. Перечисленные выше преимущества можно комбинировать между собой. При помощи предложенных остановов можно выполнять следующие действия: Отлаживать граф вычислений задачи, останавливаясь только на интересующих узлах этого графа; Устанавливать точки останова на обращение к памяти, как по чтению, так и по записи (в исследуемой архитектуре можно останавливаться при обращении к целому вектору или группе данных), в отличие от традиционных архитектур, в которых можно останавливаться только по конкретному адресу в памяти или адресу и данному; Просматривать ассоциативную память специальными средствами и выбирать только необходимую информацию, задавая маску на просмотр. Устанавливать точки останова на сообщениях от ОС (все обработчики прерываний ОС представлены в виде узлов, поэтому очень легко организовать этот вид останова) для ВСАРР; Обрабатывать исключительные ситуации в исполнительных устройствах ВСАРР. Кроме того было предложено организовать специальные режимы работы ВСАРР, при которых возможна отладка выполняемых задач. ВСАРР может работать в одном из следующих режим ах: Нормальный многозадачный режим. (В этом режиме на ВСАРР выполняется несколько прикладных задач, все ИУ работают без каких либо видов остановов. Задачи выполняются в зависимости от приоритета задачи). Нормальный однозадачный (в этом режиме все ресурсы ВСАРР отданы только одной задаче. ИУ работают без каких либо остановов). Отладочный. На ВСАРР может выполняться много задач, но одна задача имеет бит трассировки. По этой задаче ИУ собирают трассу выполнения задачи т.е. при обработке пары этой задачи на ХОСТ - машину при необходимости посылаются регистры общего назначения, регистры флагов, выходные токены и много другой отладочной информации. На ХОСТ - машине специальная программа (анализатор трассы) собирает трассу этой задачи, и программист может отлаживать задачу не в интерактивном режиме (не в режиме реального времени), а на собственной PC.
Отладочный интерактивный. На ВСАРР выполняется только одна задача, которая имеет бит трассировки и бит интерактивной отладки. Пользователь заранее задает режимы остановов ИУ. При возникновении установленного пользователем события, ИУ ВСАРР останавливается, и пользователь может производить различные действия. Например, считывать содержимое МАП, посылать дополнительные токены в МАП, изменять программу узла, обработчика прерывания или функции ОС. Изменять ход вычислений задачи и считывать интересующие регистры аппаратуры. Этот режим необходим только для разработчиков ОС и аппаратуры. Обоснование методики автономной отладки аппаратуры вычислительной системы с автоматическим распределением ресурсов Исследовав архитектуру ВСАРР и существующие подходы к отладке аппаратуры, была обоснована и предложена следующая методика отладки аппаратуры, которая состоит из следующих пяти этапов. Автономная отладка математической модели каждого блока устройства ВСАРР. Автономная отладка блоков устройств ВСАРР на отладочном стенде. Автономная отладка взаимосвязанных блоков и устройств ВСАРР. Комплексная отладка пар устройств ИУІ и АПІ. Комплексная отладка всей аппаратуры ВСАРР. Эти этапы проиллюстрированы на рисунке 3.4. Автономная отладка каждого устройства BCAPF Автономная отладка каждой модели блока устройств ВСАРР.
Особенности реализации программного обеспечение инженерного персонального компьютера
Программное обеспечение инженерного персонального компьютера (Engineering consol - ЕС) было разработано для отладки и контроля аппаратуры макета ВСАРР и запускаемых на нем задач. ЕС представляет собой сложный комплекс системных, прикладных программ и библиотек, предназначенных для обеспечения удобной и эффективной работы как инженеров - разработчиков аппаратуры макета ВСАРР, так и программистов, создающих для него программное обеспечение. Структурная схема программного обеспечения инженерного персонального компьютера. ЕС разработана в системе программирования «Delphi» и адаптируется к операционным системам Windows 95 / 98 / NT / 2000 / ХР [31, 73]. В целях обеспечения корректной работы с коммутационной средой, использующей LPT порт ИПК. В первой версии ЕС был написан специальный системный драйвер. ЕС поддерживает работу с последовательным интерфейсом JTAG, для загрузки ПЛИС конфигурационными потоками и для тестирования интерфейсов между микросхемами. Также в ЕС имеется возможность работать с специально разработанным для инструментального комплекса последовательным ISI - интерфейсом. Для реализации мониторинга состояния и управления ВСАРР разработан специальный ISI - интерфейс, позволяющий взаимодействовать ИПК с каждым блоком устройства макета ВСАРР.
Программное обеспечение инженерного персонального компьютера состоит из следующих модулей: Модуль конфигурации и реконфигурации ПЛИС — предназначен для обеспечения связи устройств макета ВСАРР с САПР QUARTUS II и MAX+PLUS 2 . С помощью этих САПР осуществляется загрузка ПЛИС, из которых состоит макет ВСАРР, конфигурационными потоками и использование встроенного логического анализатора этих САПР для отладки устройств макета ВСАРР. Также с помощью этого модуля можно управлять частотой центрального тактового генератора макета ВСАРР.
Модуль обработки прерываний — предназначен для обработки прерываний от макета ВСАРР на ИПК и обработки исключительных ситуаций макета ВСАРР. Модули отладки ИУ, АП и коммутаторов пар и токенов в принципе можно объединить в один модуль отладки устройств макета ВСАРР (позволяют отлаживать устройства ВСАРР, отдельные блоки устройств и весь макет ВСАРР вцелом). Модуль со встроенными средствами тестирования макета ВСАРР (содержит встроенные в ЕС средства тестирования и тесты блоков устройств макета ВСАРР, которые позволяют обнаружить неисправное устройство. Встроенные тесты для ИУ и АП). Особенности реализации программных средств для отладки макета вычислительной системы с автоматическим распределением ресурсов Отладка моделей блоков устройств макета ВСАРР в САПР Программное обеспечение системы QUARTUS И, представляющее собой единое целое, обеспечивает пользователю управление средой логического проектирования и помогает достичь максимальной эффективности и производительности.
Для ввода описания проекта (Design Entry) возможно описание проекта в виде файла на языке описания аппаратуры, созданного либо во внешнем редакторе, либо в текстовом редакторе QUARTUS II (Text Editor), в виде схемы электрической принципиальной с помощью графического редактора Graphic Editor, в виде временной диаграммы, созданной в сигнальном редакторе Waveform Editor. Для удобства работы со сложными иерархическими проектами каждому поддизайну может быть сопоставлен символ, редактирование которого производится с помощью графического редактора Symbol Editor. Размещение узлов по логическим блокам и выводам ПЛИС выполняют с помощью поуровневого планировщика Floorplan Editor.
Верификация проекта (Project verification) выполняется с помощью симулятора (simulator), результаты работы которого удобно просмотреть в сигнальном редакторе Waveform Editor, в нем же создаются тестовые воздействия на модели.
Сигнальный редактор (Waveform Editor) (рис. 4.14) выполняет две функции: служит инструментом создания дизайна и инструментом ввода тестовых векторов и просмотра результатов тестирования. Пользователь может создавать сигнальные файлы проекта, которые содержат логику дизайна для проекта, а также файлы каналов тестирования, которые содержат входные вектора для тестирования и функциональной отладки.
Редактор временных диаграмм позволяет для любого проекта создавать файл входных воздействий, которые используются как векторы входных значений для моделирования и функционального тестирования.
Отладочный стенд сопряжен с инженерным персональным компьютером при помощи специального устройства. На ИПК расположено специально разработанное на основе приведенных в Главе 3 методик отладочное ПО [31]. Оно позволяет производить автономную отладку любого блока устройства макета ВСАРР. Это ПО имеет доступ ко всем внутренним регистрам отлаживаемого функционального блока и устройства. Разумеется, в отлаживаемом функциональном блоке или устройстве для этого должна быть специальная аппаратная поддержка.
При возникновении неправильного результата разбор ситуации осуществляется при помощи встроенного логического анализатора и аппаратуры протоколирования событий в блоке. После выявления ошибки производится исправление схемы блока в САПР. Аналогичные действия отладки применяются по отношению ко всем функциональным блокам макета ВСАРР с поправкой на специфику отлаживаемого блока.