Средства тестирования и отладки пэвм

Литература

1. Гук. М. Процессоры Intel: от 8086 до Pentium II – СПб: Питер, 1997. – 224 с.

2. Intel Corporation Intel Architecture Software Developer’s Manual Volume 3: System Programming – 1999, 658 с.

3. Intel Corporation Intel Architecture Software Developer’s Manual Volume 1: Basic Architecture – 1999, 369 с.

4. Intel Corporation Intel Architecture Software Developer’s Manual Volume 2: Instruction Set Reference – 1999, 854 с.

5. Гук. М. Аппаратные средства IBM PC. Энциклопедия – СПб: Питер Ком, 1999. – 816 с.

Средства тестирования и отладки ПЭВМ

([1], с.62)

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

Программные средства отладки

Внутренние средства отладки предназначены для облегчения выполнения отладочных процедур. Они подразделяются на 3 типа:

  • однобайтная команда прерывания INT3 (код 0CCh);

  • пошаговый режим работы (управляемый флагом ловушки TF);

  • остановы по командам и данным, задаваемые с помощью регистров отладки процессора.

Команда прерывания

Команда INT3 используется программными отладчиками. Выполнение этой команды вызывает исключение 3 (прерывание отладки).

В отличие от других команд прерывания, имеющих двухбайтный формат, команда INT3 однобайтная. Это делает ее удобной для использования в программных отладчиках при установке точек прерывания (например, путем подмены первого байта любой команды). Процессор, встречая в программе команду с кодом 0ССh, вызывает программу обработки прерывания с вектором 3, которая и используется для связи с отладчиком.

Кроме того, данная команда нечувствительна к значению привилегии IOPL как в защищенном режиме, так и в режиме виртуального процессора V86.

Пошаговый режим

В пошаговом режиме выполнение программы осуществляется по одной команде. После выполнения каждой команды вызывается исключение 1 (исключение отладки).

Пошаговый режим задается установкой в единицу флага TF (Trap Flag – флаг ловушки).

Регистры отладки

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

(В свое время, в ЭВМ первого-второго и даже третьего поколений такие точки останова можно было задать на переключателях пульта оператора или системного инженера).

Отладочных регистров у процессора восемь: DR0...DR7.

Первые четыре регистра: DR0...DR3 используются для задания до четырех 32-разрядных адресов точек останова. Заданный адрес указывает байт, слово или двойное слово, попадание в который(ое) вызывает срабатывание ловушки останова. Что именно указывает адрес определяется полем LENi (i = 0...3) в регистре DB7. В этом же регистре, но только в поле RWi, задается тип перехватываемого обращения к памяти:

00 – выборка команды из памяти

01 – запись данных в память

10 – обращение к портам ввода-вывода (только для Pentium и выше при включении расширения отладки: бит DE регистра CR4)

11 – чтение или запись данных памяти.

Генерируемые при этом исключения различаются по типу. При выборке команды исключение классифицируется как отказ (fault) и обрабатывается до выполнения (этой выбираемой из памяти) команды. В случае обращения к данным исключение рассматривается как ловушка (trap) и обрабатывается после передачи (читаемых или записываемых) данных.

Для управления установкой отладочных точек используются два младших байта регистра DR7, биты которого имеют следующее назначение:

бит GD (Global Debug Register Access Detect – обнаружение доступа к регистрам отладки), доступный только в реальном режиме или в защищенном режиме на уровне привилегии CPL = 0, позволяет отслеживать любые обращения к отладочным регистрам. При GD = 1 любая попытка обращения вызовет исключение 1 (отказ);

биты GE и LE (Global и Local Exact data breakpoint match – глобальная и локальная точка немедленного останова по совпадению данных) определяют будет ли исключение генерироваться сразу после завершения операции обмена при включенной ловушке на обращение к данным или оно произойдет несколько позже (возможно, никогда). Ловушка на обращения за командами срабатывает всегда сразу. Бит LE автоматически сбрасывается при переключении задач, бит GE не изменяет своего состояния при таких переключениях;

биты Gi и Li (Global и Local breakpoint enable – разрешение глобальной и локальной точек прерывания) разрешают срабатывание ловушек по отладочным точкам. Биты Li автоматически сбрасываются при переключении задач, биты Gi не изменяют своего состояния при таких переключениях. Автоматический сброс битов Li блокирует лишние срабатывания отладочных точек при переключениях задач.

Для упрощения определения отладчиком причины, вызвавшей срабатывание отладочной точки (исключение 1), могут использоваться биты регистра состояния отладки DR6 (Debug Status Register), идентифицирующие эти причины:

биты Bi – срабатывание точки останова по регистру DRi

бит BS – ловушка пошагового режима

бит BT – ловушка переключения задач (по биту T в TSS)

бит BD – отказ при попытке доступа к регистрам отладки при GD = 1

Значения флагов Bi действительны только для контрольных точек с установленными битами Li и/или Gi.

Генерация исключений по контрольным точкам может быть отключена флагом RF регистра флагов процессора.

Одним из мощных отладчиков, позволяющих работать с точками прерывания, управляемыми по аналогичной схеме, является отладчик SoftICE фирмы NuMega.

Аппаратные средства отладки

Начиная с ряда моделей 486, в процессоры стали включать тестовый интерфейс JTAG.

Стандарт IEEE 1149.1 Boundary Scan Architecture (архитектура сканирования границ), или интерфейс JTAG, разработан для тестирования сложных логических схем, установленных в целевое устройство. В данном случае тестированию подлежит внутренняя логика процессора.

Интерфейс имеет всего 4 сигнала:

TMS (TestModeSelect – Выбор режима тестирования) – сигнал выбора тестового режима

TDI (TestDataInput – Входные данные тестирования) – входные данные в последовательном двоичном коде

TDO (TestDataOutput) – выходные данные в последовательном двоичном коде

TCK (TestClock – Синхроимпульсы тестирования) – сигнал синхронизации последовательных данных.

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

Работой порта управляет TAP-контроллер, использующий несколько специальных регистров порта.

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

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

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

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

(В случае двунаправленных шин BS ячейка должна предварительно настраиваться на ввод или вывод, для чего для каждой такой шины имеется по дополнительной ячейке. На рис.3 такая ячейка обозначена как B/S’.)

Ячейки BS объединены в регистр BSR, обведенный на рис.3 пунктиром.

Кроме регистра BSR в схеме имеются регистры

DID – регистр идентификации устройства (DeviceIdentificationRegister), имеющий 32-битную разрядность и содержащий в себе код производителя и номер версии, по которым контроллер может определить тип устройства

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

IR – регистр команд (InstructionRegister) – четырехразрядный регистр, использующийся для получения и хранения команд для контроллера, определяющих выполняемый тест.

Все эти регистры представляют собой независимые сдвигающие регистры, соединенные параллельно. На их входы поступают сигналы TDI, а с выходов – снимаются сигналы TDO. По каждому синхросигналу TCK данные сдвигаются на один бит (при соответствующем разрешающем сигнале контроллера). Данные на вход регистра DID не поступают.

Управляет работой регистров контроллер, представляющий собой синхронный конечный автомат, изменяющий свое состояние по сигналу TCK. Граф переходов этого автомата можно найти в [1] или в[5].Основные исполняемые им команды

EXTESTпредназначенная для проверки внешних соединений тестируемого устройства

SAMPLEпозволяющая зафиксировать состояния всех внешних сигналов или загрузить данные в ячейки регистра BSR

IDCODEподключает к интерфейсу регистр DID для считывания содержимого регистра идентификации

BYPASS – предназначенная для подключения однобитного обходного регистра BPR и блокировки работы тестируемого устройства в режиме контроля

RUNBIST – запускающая встроенный тест процессора BISTYLE="(Build In Self Test, отдельный тест процессора, не увязываемый жестко с интерфейсом JTAG).

Контроллер TAP переводится в исходное состояние при включении питания или при удержании высокого уровня сигнала TMS не менее пяти тактов TCK.

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

Для интерфейса JТAG существует специальный язык описания устройств BSDL (Boundary Scan Description Language). Состав и порядок следования информационных и управляющих ячеек в регистре BSR специфичен для каждого устройства (для его определения и используется код идентификации устройства из регистра DID).

В процессорах, начиная с Pentium, имеется также дополнительный сигнал прерывания R/S#, по которому процессор переходит в зондовый режим отладки. В этом режиме с помощью дополнительных команд контроллера TAP возможен доступ к регистрам процессора.

Режим системного управления SMM

([1], с.88, [2,Ш], c.403)

Кроме обычных режимов (реального, защищенного и виртуального V86) современные процессоры имеют дополнительный режим системного управления SMM (System Management Mode). Этот режим предназначен, главным образом, для реализации системы управления энергопотреблением, а также для управления аппаратными средствами и для программ производителей (OEM). Причем он предоставляет возможность выполнения ряда действий с полной изоляцией их от прикладных программ и от операционной системы.

В режим SMM процессор переходит по сигналу на входе прерывания SMI# (System Management Interrupt) или по приему соответствующего сигнала от контроллера прерываний APIC (Advanced Programmable Interrupt Controller), обычно используемого в мультипроцессорных системах, если таковой имеется в процессоре.

Сигнал SMI# для процессора является запросом прерывания наивысшего приоритета. Обнаружив этот сигнал, процессор, по завершению текущей команды и выгрузки буферов записи, переключается в режим SMM, что отображает установка активного уровня на выводе процессора SMIACT# в процессорах 486 и Pentium или специальным сигналом состояния EXF4, генерируемым при каждом обращении к памяти в моделях процессоров семейства P6 (Pentium II и III).

При входе в режим SMM процессор сохраняет свое состояние (контекст): содержимое большинства регистров – в специальной памяти SMRAM. Эта память представляет собой выделенную область физической памяти, доступ к которой обеспечивается внешними, по отношению к процессору, схемами только при наличии сигнала SMIACT# или EXF4.

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

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

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

Такая схема позволяет реализовать функции энергосбережения “прозрачным” для программного обеспечения способом.

Память SMRAM должна быть физически или логически выделенной областью размером от 32 КБ до 4 ГБ. Эта область располагается, начиная с адреса SMIBASE (по умолчанию 30000h), и распределяется относительно этого адреса следующим образом:

FE00h – FFFFh – область сохранения контекста (распределяется , начиная со старших адресов), в которой по прерыванию SMI сохраняются практически все регистры процессора, в том числе и скрытые регистры дескрипторов сегментов и управляющие регистры (CR1, CR2, CR4). Не сохраняются автоматически регистры отладки DR0-DR5, TR3-TR7 и регистры сопроцессора;

8000h – точка входа в обработчик прерывания SMI;

  1. Учебно-методический комплекс основной образовательной программы по направлению подготовки бакалавров «Системный анализ и управление» Санкт-Петербург 2009 г

    Учебно-методический комплекс
    Нормативный срок освоения основной образовательной программы подготовки бакалавра по направлению 553 – Системный анализ и управление при очной форме обучения 4 года.
  2. Техническое задание 12 Архитектура web-портала 14 > Выбор средств проектирования 16 Обзор ресурсов 18

    Техническое задание
    Основополагающей является деятельность человека по поиску ответов на вопросы и достижение системного точного мировосприятия, с помощью которого эффективно решается множество проблем отдельной личности и всего общества.
  3. «Эконо­мика, разработка и использование программных средств»

    Методические указания
    Методические указания к курсовому проектированию по дисциплине «Эконо­мика, разработка и использование программных средств» / Сост.: Л.Б. Венчковский, И.
  4. Учебно-методический комплекс дисциплины (СД. Ф. 06) Технологии программирования (код и название дисциплины по учебному плану специальности)

    Учебно-методический комплекс
    Технологии разработки программного обеспечения: Разработка сложных программных систем: Учебное пособие для вузов / С. А. Орлов. - СПб.: Питер, 2002. - 464с.
  5. Программа собеседования по направлению «Информатика и вычислительная техника».

    Программа
    1.1. Множества, их спецификации; диаграммы Венна; отношения; свойства отношений; разбиения и отношение эквивалентности; отношение порядка; функции и отображения; операции.
  6. Е. А. Рудина Консультант по экономической части

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

    Документация об аукционе
    АКАДЕМИЯ ГОСУДАРСТВЕННОЙ ПРОТИВОПОЖАРНОЙ СЛУЖБЫ МИНИСТЕРСТВА РОССИЙСКОЙ ФЕДЕРАЦИИ ПО ДЕЛАМ ГРАЖДАНСКОЙ ОБОРОНЫ, ЧРЕЗВЫЧАЙНЫМ СИТУАЦИЯМ И ЛИКВИДАЦИИ ПОСЛЕДСТВИЙ СТИХИЙНЫХ БЕДСТВИЙ
  8. Предисловие (42)

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

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

Другие похожие документы..