Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
мпс с 1 по 294.doc
Скачиваний:
13
Добавлен:
16.04.2019
Размер:
6.2 Mб
Скачать

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

В число выполняемых команд стандарта JTAG входят SAMPLE/PRELOAD, EXTEST, BYPASS, IDCODE. После поступления команды SAMPLE/PRELOAD осуществляется пос­ледовательная загрузка регистра тестовых данных BSR при поступлении синхросигна­лов ТСК. В результате обеспечивается подача необходимых тестовых сигналов на вхо­ды процессора и предварительная установка состояния его выходов. После окончания загрузки регистра BSR устанавливается соответствующее состояние выходов процес­сора, которое фиксируется в определенных разрядах этого регистра. При последующей подаче синхросигналов ТСК производится последовательный вывод содержимого реги­стра данных, соответствующие разряды которого фиксируют реакцию процессора на поступление тестовых сигналов. Анализ выведенных данных позволяет определить пра­вильность функционирования процессора. Если после загрузки регистра BSR в процес­сор вводится команда EXTEST, то на внешние выводы процессора выдаются сигналы, значения которых установлены предыдущей командой SAMPLE/PRELOAD. Эти сигналы могут использоваться для тестирования других устройств, подключенных к процессору в данной системе. Команда BYPASS обеспечивает непосредственную передачу сигналов со входа TDI на выход ТОО. Таким образом, можно вводить тестовые команды и данные в другие устройства системы, минуя процессор. При поступлении команды IDCODE на выход ТОО последовательно выдается код, идентифицирующий тип процессора и реализованную версию JTAG. Этот код заносится в процессе изготовления процессора в 32-разрядный регистр идентификации DID, входящий в состав порта ТАР. Команда RUNBIST, специфическая для каждой модели процессора, запускает тестовую последо­вательность сигналов, аналогичную той, которая выполняется при установке начального состояния. После ее завершения производится считывание содержимого однобитового регистра RUNBIST, входящего в состав порта ТАР. Его нулевое значение указывает на успешное завершение самотестирования процессора.

Регистр тестовых данных BSR содержит различное число разрядов (150-200) в зависи­мости от модели процессора. Каждому выводу процессора соответствуют определенные разряды регистра BSR. Однонаправленные выводы подключены к одному из разрядов, а двунаправленные - к двум разрядам, один из которых задает значение входного сигнала, второй принимает значение выходного сигнала. Для двунаправленных выводов использу­ются также дополнительные разряды регистра, содержимое которых определяет исполь­зование этих выводов в качестве входов или выходов. Последовательный ввод данных в регистр BSR, выполняемый при поступлении синхросигналов ТСК, позволяет установить необходимое исходное состояние всех выходов, последовательный вывод данных обес­печивает возможность контроля их текущего состояния.

Расширение возможностей порта ТАР обеспечивается в режиме «зондовой» отладки (Probe Mode). Для реализации этого режима в состав порта ТАР введены дополнительные регистры команд PIR (Probe Instruction 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-регистров, состав и содержимое которых зависят от модели процессора. Полный набор этих 64-разрядных регистров содержит глобальные регистры MCG CAP, MCG CTL, опре­деляющие возможные режимы контроля, и MCG STATUS, указывающий текущее состоя­ние процессора после начала обработки исключения #МС, а также пять банков регист­ров сообщений об ошибках. Каждый из банков предназначен для контроля ошибок, про­исходящих в определенных устройствах системы. В состав i-ro банка входят регистры: MCi CTL, определяющий вид контролируемых ошибок, MCi STATUS, MCi MISC, указываю­щие вид обнаруженных ошибок, MCi ADDR, содержащий адрес, при обращении к которо­му была зафиксирована ошибка.

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