Методы и средства отладки микропроцессорных
систем
В жизненном цикле микропроцессорной
системы выделяются три основных
этапа: проектирование, изготовление и
эксплуатация. Для поддержания микропроцессорной
системы в работоспособном состоянии
необходимо учитывать как специфику
каждого этапа ее жизненного цикла, так
и особенности МПС как объекта контроля.
Прежде всего, рассмотрим некоторые
основные понятия, связанные с контролем
и диагностикой цифровых вычислительных
устройств.
Процедура проверки правильности
функционирования объекта называется контролем или тестированием. В результате контроля
определяется, находится ли объект в исправном
состоянии. Если объект находится в неисправном
состоянии, то возникает задача поиска
неисправности - диагностирования. Процесс устранения
найденных неисправностей называется отладкой.
Рассмотрим в первую очередь особенности МП БИС и микропроцессорной
системы в целом как объекта контроля,
которые затрудняют процедуру контроля
и поиска неисправностей.
- Высокая сложность БИС. Полная проверка схемы
должна обеспечивать проверку ее работоспособности
при всех возможных состояниях.
Число возможных состояний определяется
количеством внутренних элементов
памяти. Взяв для примера только
регистровую память однокристального
микроконтроллера (32 регистра по 8
разрядов), получим 2256 состояний. Для полного
их перебора с частотой 100 МГц потребуется
время порядка 1067 лет! Очевидно, что такой
вариант неприемлем и никогда на практике
не реализуется. Следовательно, любая
МП БИС может содержать неисправности.
Самое неприятное в этой ситуации то, что
эти неисправности носят характер сбоев,
то есть проявляются только при определенном
сочетании данных внутри БИС, и поэтому
весьма трудно поддаются выявлению.
Самой известной ошибкой этого
рода является, безусловно, ошибка
в процессоре обработки чисел с плавающей
точкой микропроцессора Pentium, выпущенного
в 1993 году. Она проявлялась в неточном
выполнении операции деления (погрешность
в 8-м десятичном знаке после запятой) для
некоторых операндов. Ошибка проявлялась,
только если делитель содержал шесть последовательных
бит, с 5-го по 10-й, установленныхв единицу.
Она была вызвана дефектами в микрокоде
реализации алгоритма деления. Вероятность
обнаружения ошибки оценивалась как один
к девяти миллионам, а вероятность встречи
с ней - 1 раз в 27 000 лет. Однако несмотря
на это, фирма Intel пошла на то, чтобы заменить
по требованию все дефектные процессоры,
понеся при этом, естественно, значительные
убытки.
Аналогичная ошибка была выявлена в
конце 2007 года в четырехъядерных
серверных процессорах Barcelona, а также в
чипах Phenom для настольных компьютеров
компании AMD. Она была связана с особенностями
реализации буфера быстрого преобразования
адреса ( TLB ) кэш-памяти
третьего уровня. Ошибка в отдельных ситуациях
приводила к зависанию системы.
Иногда отдельные неисправности
проявляют себя только на высоких
частотах работы БИС. Поэтому некоторые
производители схем, определив в
ходе тестирования, что отдельные БИС
из некоторой партии схем дают сбои на
начальной, самой высокой частоте, проверяют
ее работоспособность на более низких
частотах, где схемы этой партии могут
оказаться вполне работоспособными. Именно
с указанием такой частоты работы эти
БИС и поступают на рынок. Такой подход
служит одной из основ "разгона" схем.
- Малое количество контрольных точек схем. Несмотря на то что
корпуса современных микропроцессорных
БИС имеют до 1,5 тыс. выводов, сложность
микропроцессоров такова, что непосредственно
подать тестовое воздействие на любую
точку схемы невозможно. Также невозможно
напрямую проверить состояние какого-либо
узла БИС. Это требует подачи сложных последовательностей
сигналов на доступные для воздействия
точки схемы и синхронного анализа длинных
последовательностей состояний в точках,
доступных для прямого контроля. Поэтому
воздействия и представления результатов
носят косвенный, опосредованный характер,
что может привести к неверной интерпретации
получаемых при тестировании данных.
- Неразделимость аппаратуры и программного обеспечения. Аппаратура и программное
обеспечение МПС представляют собой единый
комплекс. Свои функции микропроцессорная
система выполняет под воздействием программ,
часть из которых к тому же хранится в
постоянной памяти БИС и системы. Ошибки
в работе системы могут быть обусловлены
как неисправностями аппаратной части,
так и ошибками, допущенными при разработке
ПО.
- Сложность и неразделимость аппаратуры, составляющей микропроцессорную систему. МПС, особенно на этапе
ее эксплуатации, невозможно разделить
на функциональные узлы для их автономной
проверки. Это объясняется конструктивными
и схемотехническими особенностями микропроцессорных
средств. Во-первых, чисто конструктивно
подключить тестирующую аппаратуру к
отдельным БИС, составляющим систему,
весьма сложно. Во-вторых, разделение микропроцессорной
системы на отдельные функциональные
узлы при современном уровне интеграции
элементов на кристалле невозможно. Сам
микропроцессор содержит широкий набор
функционально различных устройств от
целочисленного АЛУ до запоминающих устройств
различного вида и назначения. В то же
время одни и те же функции распределяются
по различным БИС. Например, обработкой
прерываний занимается как сам микропроцессор,
так и контроллер приоритетных прерываний, входящий в состав схем чипсета,
которые, в свою очередь, выполняют множество
других функций. Поэтому проверка выполнения
той или иной функции в микропроцессорной
системе затрагивает работу всех составляющих
ее схем и предъявляет высокие требования
к квалификации обслуживаемого персонала.
- Необходимость одновременного контроля состояния большого числа многоразрядных шин. Общая разрядность шин, по которым
происходит взаимодействие между компонентами
микропроцессорной системы, весьма велика.
Но главную проблему составляет не только
количество точек, в которых требуется
анализировать сигналы. Простая регистрация
их поведения мало что даст для определения
места и характера неисправности.
Обычно требуется регистрация
и анализ сигналов на протяжении значительного
временного интервала и в связи
с редкими и однократными событиями.
К числу таких событий, идентификация
которых необходима в процессе контроля,
относится появление заданных комбинаций
сигналов на шинах МПС и даже появление
заданной последовательности таких комбинаций:
обращение по определенному адресу на
запись определенных данных, появление
сигнала запроса прерывания определенного
типа или даже сигнал помехи. При наступлении
такой ситуации следует проанализировать,
а следовательно, предварительно запомнить
состояние шин на протяжении как нескольких
предшествующих тактов, так и нескольких
тактов, которые следуют за указанным
событием. В то же время для МПС на основе
однокристальных микроконтроллеров и
ЦСП эта проблема не столь остра, так как
реализация большинства функций системы
осуществляется внутренними средствами
этих микропроцессоров. Поэтому такие
системы имеют малое число периферийных
схем, а обмен между ними и микропроцессором
часто выполняется по последовательным
интерфейсам.
- Высокое быстродействие схем, образующих МПС, которое
требует чрезвычайно быстродействующей
контрольной аппаратуры. Частоты, на которых
работают современные БИС, доходят до
нескольких гигагерц. В то же время чтобы
определить, например, факт переключения
какого-либо сигнала, частота контролирующей
аппаратуры должна быть как минимум в
два раза больше.
- Шинная организация микропроцессорной системы. Магистральномодульный
принцип построения МПС затрудняет определение
источника искажения информации в магистрали.
Неверное считывание информации из ОЗУ
в микропроцессор может быть вызвано не
поломкой какого-либо из этих двух устройств,
а неисправностью совершенно посторонней
для данного процесса схемы, при которой
ее выход постоянно заземляет одну из
линий общей магистрали.
Наряду с имеющимися трудностями
в процессе контроля и отладки
микропроцессорная система имеет ряд достоинств, облегчающих этот процесс.
- Способность к самоконтролю, то есть способность
МП под действием программы сравнительно
небольшого объема генерировать очень
большие тестовые последовательности.
В этом случае используется метод раскрутки.
Сначала отлаживается синхронизация МПС
и создается некоторое ядро из микропроцессора
и памяти небольшой емкости. В память записывается
программа, которая под управлением микропроцессора
генерирует тесты для контроля всего ОЗУ,
а затем, по мере подключения новых блоков
памяти, - и для других узлов микропроцессорной
системы.
- Способность микропроцессора к логической обработке информации, что позволяет сравнивать
отклики проверяемых узлов с эталонными
без применения дополнительной аппаратуры.
При этом значительно уменьшается объем
информации, которую должна зафиксировать
контрольноиспытательная аппаратура,
а весь анализ получаемой информации (например,
сравнение получаемых реакций с эталонными)
выполняет сам МП, который может не только
определить характер неисправности, но
иногда и точно указать ее место.
- Программная доступность всех узлов МПС позволяет микропроцессору
выдавать на них тестовые воздействия,
получать и анализировать реакции на эти
воздействия.
- При составлении тестовых и диагностических программ разработчик имеет дело не с новым языком
программирования контрольной аппаратуры,
а с привычными средствами программирования микропроцессора.
- Важной особенностью МПС, как и других цифровых систем, является стандартное представление электрических сигналов. Это позволяет упростить контроль состояния точек и свести его лишь
к определению принадлежности данного
состояния к зоне сигнала 0 или 1. Прибегать
к измерениям аналоговых величин - длительности
фронта импульса, амплитуды сигнала и
т. п. - приходится только при подозрении
на выход из строя одного из электронных
компонентов схемы.
Особенности контроля и отладки
МПС на различных этапах жизненного
цикла
Рассмотренные особенности тестирования
и отладки микропроцессорных
систем по-разному преломляются на
различных этапах их существования.
Этап разработки является наиболее
ответственным, трудоемким и требует высокой
квалификации разработчиков, так как ошибки,
допущенные на этом этапе, обычно обнаруживаются
лишь на стадии испытания законченного
образца и требуют длительной и дорогостоящей
переработки всей системы.
Одной
из главных задач этого этапа
является распределение функций, выполняемых
микропроцессорной системой, между
ее аппаратной и программной частями.
Максимальное использование аппаратных
средств упрощает разработку и обеспечивает
высокое быстродействие системы в целом,
но сопровождается, как правило, увеличением
стоимости и потребляемой мощности. В
то же время увеличение удельного веса
программного обеспечения позволяет сократить
число устройств системы, ее стоимость,
повышает возможность адаптации системы
к новым условиям применения, но приводит
к увеличению необходимой емкости памяти,
снижению быстродействия, увеличению
сроков проектирования.
Процесс
перераспределения функций между
аппаратной и программной частями
МПС носит итерационный характер. Критерием
выбора здесь является возможность максимальной
реализации заданных функций программными
средствами при условии обеспечения заданных
показателей (быстродействия, энергопотребления,
стоимости и т. д.).
С
точки зрения контроля и диагностики МПС данный этап имеет
следующие особенности:
- отсутствуют отработанные тестовые программы: проектирование аппаратной части МПС всегда идет параллельно с разработкой программ, а иногда и аппаратуры для ее тестирования и отладки ;
- построение тестовых программ и анализ результатов производятся разработчиком вручную на основании его представлений о принципах работы и структуре разрабатываемой системы;
- существует большая вероятность появления нескольких неисправностей одновременно; здесь могут присутствовать неисправности,
связанные как с дефектами электронных
компонентов, так и с ошибками монтажников
и программистов;
- связанная с предыдущим положением неопределенность причи ны неисправности: отказы в аппаратуре или ошибки в программе;
- возможные ошибки разработчиков: система может абсолютно правильно выполнять предписанные ей разработчиком действия, но сами эти предписания были неверны.
Все эти причины делают задачи контроля и диагностики на этапе разработки
МПС наиболее сложными, а требования к
квалификации персонала весьма высокими.
Инструментальные средства контроля
и диагностики на этом этапе должны
отвечать следующим требованиям:
- возможность измерений как цифровых, так и аналоговых сигналов;
- разнообразие режимов работы и оперативность настройки на заданный режим;
- оперативность и наглядность представления результатов измерений;
- возможность работы как с аппаратурой, так и с программным обеспечением.
На этапе производства
микропроцессорной системы на первый
план выдвигаются требования:
- высокой производительности,
- полноты контроля,
- высокой автоматизации с целью снижения требований к квалификации обслуживающего персонала.
Контроль на этом этапе
проводится с использованием отработанных
тестовых программ. Тестирование проводится
на специально разработанных контрольных
стендах (в случае достаточно большого
объема производства), предназначенных
для выдачи тестовых воздействий и автоматического
анализа реакций на них. Как правило, на
этом этапе проводится только контроль работоспособности системы
по принципу "годен - не годен". Определение
места и характера неисправности проводится
более высококвалифицированным персоналом
в ходе отдельного процесса.
Контроль в процессе
эксплуатации, как правило, проще,
чем на предыдущих этапах, по следующим
причинам:
- вероятность появления двух и более неисправностей одновременно весьма мала;
- обычно требуется контроль правильности работы только при
решении конкретных задач, при этом тесты
поставляются вместе с самим изделием.
Однако требования к инструментальным
средствам, предназначенным для эксплуатационного
обслуживания МПС, весьма противоречивы.
С одной стороны, это требование
компактности, а часто даже портативности
этих средств, с другой - требования
универсальности и автоматизации
процесса контроля, чтобы иметь возможность
использовать персонал невысокой квалификации.
Рассмотрим теперь собственно инструментальные
средства контроля и отладки микропроцессорных систем.
Точность, с которой тот или
иной тест локализует неисправности, называется
его разрешающей способностью.
Требуемая разрешающая способность определяется
конкретными целями испытаний. Например,
при отладке опытного образца необходимо
прежде всего определить природу неисправности
(аппаратная или программная). В заводских
условиях желательно осуществлять диагностику неисправности вплоть
до уровня наименьшего заменяемого элемента,
чтобы минимизировать стоимость ремонта.
При тестировании аппаратуры в процессе
эксплуатации для ее ремонта часто необходимо
установить, в каком сменном блоке изделия
имеется неисправность.