Методы и средства отладки микропроцессорных систем

 

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

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

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

Рассмотрим в первую очередь особенности МП БИС и микропроцессорной системы в целом как объекта контроля, которые затрудняют процедуру контроля и поиска неисправностей.

Высокая сложность БИС. Полная проверка схемы должна обеспечивать проверку ее работоспособности при всех возможных состояниях.

Число возможных состояний определяется количеством внутренних элементов памяти. Взяв для примера только регистровую память однокристального микроконтроллера (32 регистра по 8 разрядов), получим 2256 состояний. Для полного их перебора с частотой 100 МГц потребуется время порядка 1067 лет! Очевидно, что такой вариант неприемлем и никогда на практике не реализуется. Следовательно, любая МП БИС может содержать неисправности. Самое неприятное в этой ситуации то, что эти неисправности носят характер сбоев, то есть проявляются только при определенном сочетании данных внутри БИС, и поэтому весьма трудно поддаются выявлению.

Самой известной ошибкой этого рода является, безусловно, ошибка в процессоре обработки чисел с плавающей точкой микропроцессора Pentium, выпущенного в 1993 году. Она проявлялась в неточном выполнении операции деления (погрешность в 8-м десятичном знаке после запятой) для некоторых операндов. Ошибка проявлялась, только если делитель содержал шесть последовательных бит, с 5-го по 10-й, установленныхв единицу. Она была вызвана дефектами в микрокоде реализации алгоритма деления. Вероятность обнаружения ошибки оценивалась как один к девяти миллионам, а вероятность встречи с ней - 1 раз в 27 000 лет. Однако несмотря на это, фирма Intel пошла на то, чтобы заменить по требованию все дефектные процессоры, понеся при этом, естественно, значительные убытки.

Аналогичная ошибка была выявлена в конце 2007 года в четырехъядерных серверных процессорах Barcelona, а также в чипах Phenom для настольных компьютеров компании AMD. Она была связана с особенностями реализации буфера быстрого преобразования адреса ( TLB ) кэш-памяти третьего уровня. Ошибка в отдельных ситуациях приводила к зависанию системы.

Иногда отдельные неисправности проявляют себя только на высоких частотах работы БИС. Поэтому некоторые производители схем, определив в ходе тестирования, что отдельные БИС из некоторой партии схем дают сбои на начальной, самой высокой частоте, проверяют ее работоспособность на более низких частотах, где схемы этой партии могут оказаться вполне работоспособными. Именно с указанием такой частоты работы эти БИС и поступают на рынок. Такой подход служит одной из основ "разгона" схем.

Малое количество контрольных точек схем. Несмотря на то что корпуса современных микропроцессорных БИС имеют до 1,5 тыс. выводов, сложность микропроцессоров такова, что непосредственно подать тестовое воздействие на любую точку схемы невозможно. Также невозможно напрямую проверить состояние какого-либо узла БИС. Это требует подачи сложных последовательностей сигналов на доступные для воздействия точки схемы и синхронного анализа длинных последовательностей состояний в точках, доступных для прямого контроля. Поэтому воздействия и представления результатов носят косвенный, опосредованный характер, что может привести к неверной интерпретации получаемых при тестировании данных.

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

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

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

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

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

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

Наряду с имеющимися трудностями в процессе контроля и отладки микропроцессорная система имеет ряд достоинств, облегчающих этот процесс.

Способность к самоконтролю, то есть способность МП под действием программы сравнительно небольшого объема генерировать очень большие тестовые последовательности. В этом случае используется метод раскрутки. Сначала отлаживается синхронизация МПС и создается некоторое ядро из микропроцессора и памяти небольшой емкости. В память записывается программа, которая под управлением микропроцессора генерирует тесты для контроля всего ОЗУ, а затем, по мере подключения новых блоков памяти, - и для других узлов микропроцессорной системы.

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