Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
90
Добавлен:
23.02.2015
Размер:
6.18 Mб
Скачать

4.6. Средства обеспечения отладки

Процессоры семейства Р6 реализуют широкий набор вариантов от­ладки:

•программный останов,

•пошаговый режим,

•отладка с использованием регистров отладки,

•отладка с использованием специализированных MSR-регистров,

•режим зондовой отладки.

Программный останов. Этот способ отладки реализуется с помо­щью однобайтной команды INT3, которая вводится программистом в кри­тические точки программы, где необходимо выполнить контроль текущего состояния. Команда INT3 устанавливает безусловную программную точку останова, при выполнении которой процессор реализует исключение #ВР. Команда INT3 выполняется при любых значениях уровня привилегий про­граммы CPL и содержимого поля IOPL. Исключение #ВР всегда вызывает­ся через таблицу IDT. При работе процессора в режиме виртуального 8086 на выполнение команды INT3 не оказывает влияние значение битов в кар­те перенаправления прерываний (при установленном значении бита VME=1 в регистре CR4). При вызове подпрограммы обслуживания через шлюз уровень приоритета этого шлюза gDPL должен быть больше или равен CPL

Пошаговый режим. Пошаговый режим имеет место, когда установ­лено значение признака TF=1 в регистре EFLAGS. В этом случае процес­сор после выполнения каждой команды (ловушка) реализует исключение типа #DB, вызывая соответствующую подпрограмму обслуживания. Перед вызовом этой подпрограммы процессор устанавливает значение признака TF=0, чтобы обеспечить выполнение обработки без пошаговых остановов.

Команда IRET, завершающая подпрограмму обработки, восстанавливает из стека содержимое регистра EFLAGS (где значение TF=1), передавая управление следующей команде программы, после которой снова реали­зуется прерывание #DB.

Отладка с помощью регистров отладки DRO-DR7. Регистры от­ладки имеют следующее назначение:

•DR3-0 - содержат линейные адреса четырех контрольных точек оста­нова;

•DR6 - регистр состояния, указывающий причину останова в контроль­ной точке;

•DR7 - регистр управления, задающий условия останова в контрольных

точках.

Доступ к регистрам отладки разрешен только программам с уровнем привилегий CPL=0. Попытка обратиться к этим регистрам на другом уров­не привилегий (CPL>0) приводит к исключению #GP.

Регистры DR4, DR5 в выпускаемых моделях процессоров не ис­пользуются. Если в регистре управления CR4 установлено значение бита DE=1 (расширение отладки), то обращение к регистрам DR4, DR5 приво­дит к исключению #UD. Если бит DE=0, то при вызове DR4, DR5 произво­дится обращение к регистрам DR6, DR7.

Формат содержимого регистров управления DR7 и состояния DR6 отладки [1,4].

4.7. Реализация тестирования и контроля функционирования

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

•самотестирование в процессе начальной установки (RESET) состоя­ния процессора,

•тестирование при работе в составе целевой системы в соответствии с международным стандартом JTAG (IEEE 1149.1),

•контроль функционирования с помощью исключения типа #МС («ма­шинный контроль»).

Самотестирование при начальной установке процессора после по­ступления сигнала RESET реализуется, если в процессе выполнения этой процедуры на вход INIT# подается 0. В этом случае выполняется доста­точно сложная программа проверки функционирования основных блоков процессоров Р6, которая занимает около 5,5 миллионов тактов. Если под­тверждается правильность их функционирования, то в регистре ЕАХ уста­навливается значение 00000000h. Любое другое содержимое регистра ЕАХ указывает на обнаружение ошибок в ходе самотестирования.

Согласно международному стандарту JTAG (IEEE 1149.1) для вы­полнения тестирования цифровое устройство должно иметь последовательный специальный порт ТАР (test access port), через который производит­ся ввод тестовых комбинаций (входных сигналов) и вывод данных об от­ветной реакции (состоянии выходов) устройства. При тестировании ис­пользуются следующие выводы ТАР:

•ТСК - вход синхросигналов, используемых в режиме тестирования;

•TMS - вход управляющего сигнала, определяющего режим работы ТАР;

•TDI - вход для последовательного ввода тестовых команд и сигналов;

•ТDО - выход для последовательного вывода данных о состоянии вхо­дов и выходов тестируемого устройства;

• TRST# - вход для подачи сигнала сброса (установки в начальное со­стояние) в процессе тестирования.

Тестирование выполняется методом сканирования границ (boundary scan), при котором все входы и выходы процессора подключаются к от­дельным разрядам общего сдвигового регистра тестовых данных, вход которого соединен с выводом TDI, выход - с выводом ТDО. Таким образом обеспечивается возможность подачи на входы процессора необходимых тестовых сигналов, которые последовательно вводятся через вход TDI, и считывания получаемых при этом выходных сигналов, которые последова­тельно выводятся через выход ТDО. Различные процедуры тестирования осуществляются при поступлении определенных тестовых команд, кото­рые предварительно последовательно вводятся через вывод TDI.

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

Рис. 4.6. Использование портов TAP при тестировании цифровых систем

В состав порта ТАР входят два основных сдвиговых регистра: ре­гистр команд IR и регистр тестовых данных BSR. В зависимости от значе­ния сигнала TMS производится выбор одного из этих регистров, в резуль­тате чего обеспечивается последовательный ввод (через TDI) и вывод (через ТDО) тестовых команд или данных. Ввод и вывод выполняются при поступлении синхросигналов ТСК.

При вводе в регистр команд соответствующего кода процессор вы­полняет одну из тестовых команд. В их состав входят команды, опреде­ляемые стандартом JTAG, и дополнительные команды, введенные для тестирования определенных моделей процессоров.

Расширение возможностей порта ТАР обеспечивается в режиме «зондовой» отладки (Probe Mode). Для реализации этого режима в состав порта ТАР введены дополнительные регистры команд PIR (Probe Instruc­tion Register) и данных PDR (Probe Data Register), с помощью которых по­следовательно вводятся команды и данные, выводятся полученные ре­зультаты и информация о текущем состоянии процессора. При этом для управления портом используются дополнительные выводы PREQ# и PRDY#. В зондовом режиме процессор выполняет команды, последова­тельно вводимые в регистр PIR: При этом не производится контроль при­вилегий, то есть выполняются все поступающие команды. Обслуживание прерываний и исключений не реализуется. Обеспечивается возможность записи и считывания содержимого всех регистров процессора, что позво­ляет контролировать и корректировать их текущее состояние.

Вход и выход в зондовый режим обеспечивается с помощью специ­альных команд, вводимых в регистр IP порта ТАР, или подачей сигнала запроса на вход RREQ#. При поступлении внешнего сигнала RREQ#=0 процессор входит в этот режим, устанавливая на выходе PRDY# сигнал готовности PRDY#=0. Выход из зондового режима происходит при подаче сигнала RREQ#=1. Возможен также вход в зондовый режим при реализа­ции исключения отладки #ВР. В этом случае не производит­ся вызов подпрограммы обслуживания, а выдается сигнал готовности PRDY#=0, который инициирует последовательный ввод команд обработки исключения в регистр PIR через порт ТАР. Такой способ входа в зондовый режим разрешается после подачи специальной команды ICEBP, вводимой в регистр IP порта ТАР.

Процессоры семейства Р6 обладают возможностями обнаружения ряда аппаратных ошибок, возникающих при функционировании систем. Эти возможности реализуются с помощью средств машинного контроля (machine-check architecture), которые выявляют следующие виды ошибок:

•ошибка обращения к системной шине, которая фиксируется внешней схемой контроля шины, подающей сигнал BINIT#=0 на соответствую­щий вход процессора,

•ошибка ЕСС (Error Checking and Correcting) при обращении к памяти, которая выявляется внешним устройством контроля памятью; код этой ошибки подается на входы DEP7-0# процессора,

•ошибка контроля четности при передаче адреса или данных,

•ошибка в кэш-памяти или буферах страничной трансляции TLB.

При выявлении этих ошибок реализуется исключение #МС «машин­ный контроль», если в регистре CR4 установлено значение бита МСЕ=1. Программа обработки данного исключения может получить информацию о происшедшей ошибке из специальных MSR-регистров, со­став и содержимое которых зависят от модели процессора [1,4].

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

Соседние файлы в папке УчПосбЧ-3