автореферат диссертации по информатике, вычислительной технике и управлению, 05.13.13, диссертация на тему:Исследование и разработка метода функционального тестирования RISC-микропроцессоров

кандидата технических наук
Кошевенко, Александр Владимирович
город
Владивосток
год
1997
специальность ВАК РФ
05.13.13
Автореферат по информатике, вычислительной технике и управлению на тему «Исследование и разработка метода функционального тестирования RISC-микропроцессоров»

Автореферат диссертации по теме "Исследование и разработка метода функционального тестирования RISC-микропроцессоров"

Дальневосточный государственный технический университет

Г 8 ОД

На правах рукописи

Коа'рвенко Ачексавдр Владимирович

ИССЛЕДОВАНИЕ И РАЗРАБОТКА МЕТОДА ФУНКЦИОНАЛЬНОГО ТЕСТИРОВАНИЯ ИКС-МИКРОПРОЦЕССОРОВ

05.13.13 - Вычислительные машины, комплексы, системы и сети

Автореферат

диссертации на соискание ученой степени кандидата технических наук

Владивосток 1997

Работа выполнена в Дальневосточном государственном техническом университете

Научный руководитель: доктор технических наук, профессор С.Г.Шаршунов.

Официальные оппоненты: доктор технических наук, профессор В.П.Чипулис

кандидат технических наук., с.н.с. С.С.Вознесенский

Ведущее предприятие: Междугородняя телефонная станция г.Владивостока

диссертационного совета К 064.01.11 в Дальневосточном государственном техническом университете (ДВГТУ) по адресу: 690600, г.Владивосток, ул.Пушкинская, 10.

С диссертацией можно.ознакомиться в библиотеке Дальневосточного государственного технического университета.

Защита состоится

'ода в х часов на заседании

Автореферат разослан

Ученый секретарь специализированного совета, кандидат технических наук

Гамаюнов Е.Л.

ОБЩАЯ ХАРАКТЕРИСТИКА РАБОТЫ

Актуальность темы. При создании современных микропроцессорных систем широко применяются принципы RISC-архитектуры (RISC- Reduced Instruction Set Computer - архитектура микропроцессора с сокращенным набором команд). Эти принципы, признанные современными, эффективными и перспективными, воплощены в мощных серверах, рабочих станциях и персональных компьютерах, а также используются при проектировании контроллеров и специализированных процессоров в системах автоматического управления и телекоммуникации. Более того, развитие традиционных CISC-архитектур часто идет по пути вовлечения принципов RISC на микроархитектурном уровне.

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

-функциональная декомпозиция модели устройства с выделением механизмов и функциональна* модутг.й. говные фун»цни и в совокупное H

покрывающих аппаратную часть устройства;

-определение моделей механизмов и модулей как объектов тестирования. нк:1ючаюин;.х модели и,ч деф-кгои (кеисираин^стей)-

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

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

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

Методы анализа и построения тестов RISC-микропроцессоров, архитектура и организация которых постоянно развиваются и совершенствуются, являются мало изученными, в связи с чем тема исследования представляется весьма актуальной и перспективной.

Цель и основные задачи работы. Целью диссертационной работы является исследование и разработка метода тестирования микропроцессоров с RISC-архитектурой.

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

-разработка концепции функционального тестирования, ориентированной на принципы RISC-архитектуры;

-построение общих концептуальных моделей RISC-микропроцессора как объекта тестирования;

-определение этапов построения тестов RISC-микропроцессоров и их содержания;

-разработка практических рекомендаций по построению тестов RISC-микропроцессоров и программных реализаций процедур построения гестов.

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

Научная __ новизна работы заключается в разработке, обосновании и теоретическом исследовании метода пост^ое^ия гестов проверки работоспособности RISC-микропроцессоров. В работе были получены следующие основные научные результаты:

-на основе анализа архитектур современных RISC-микропроцессоров определена концепция функционального тестирования;

-разработаны общие модели RISC-микропроцессора как объекта тестирования в виде обобщенных блок-схемы и г^рафа регистровых передач;

-определены модели основных механизмов и функциональных модулей, включая модели их дефектов;

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

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

-фуккцмпгльиг.-; дс:.'. ::п:зац::я ,«одели RIUC-мйкропродессора "с выделением механизмов и функциональных модулей, реализующих основные функции и в совокупности покрывающих аппаратную часть устройства;

-построение моделей копкретныл микрснроцсссоров, моделей их механизмов и функциональных модулей как объектов тестирования;

-построение минимальных или близких к ним тестов для выделенных Механизмов. и функциональных" модулей с обнаружением всех неисправностей," удовлетворяющих введенным моделям;

-формирование тестовых программ конкретных микропроцессоров. Результаты диссертационной работы могут быть использованы для создания программных комплексов автоматизации синтеза тестов микропроцессоров.

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

Реализация___результатов работы. Материалы диссертационной работы

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

Разработанный метод может использоваться при тестировании различных микропроцессорных систем. В качестве примера в диссертации показано применение метода к построению тестов микроконтроллера PIC16C57 фирмы Microchip Technology Inc.

Апробация работы. Научные и практические результаты работы докладывались и обсуждались на .следующих конференциях и семинарах:

-Международные конференции "Автоматизация проектирования дискретных систем"- CAD DD (г.Минск, 1995,1997гг.);

-Научно-технические конференции преподавателей и сотрудников ДВГТУ (г.Владивосток,1995-1997 гг.);

-Научно-техническая конференция "Диагностика, информатика, метрология, экология, безопасность" (г.Санкт-ГТ'ггербург, 1996 г.);

-2nd IEEE International On-line Testing Workshop (Франция, 1996 г.); -Международный студенческий форум стран азиатско-тихоокеанского региона (диплом 1 степени, г.Владивосток, 1997 г.);

-Юбилейная научно-Meiодическая конференция "Развитие системы высшего образования на Дальнем Востоке на основе интеграции высшей школы и академическоуЧ науки" (г.Владивосток, ВГУЭС, 1997г.);

-Научные семинары кафедры "Электронной и компьютерной техники" ДВГТУ ,'г.Владивосток, 1995-1997 гт.).

Публикации. По материалам диссертации опубликовано 7 печатных работ.

Структура и объем диссертации. Диссертация состоит из введения, пяти глав, заключения, списка литературы и приложения. Основное содержание составляет страниц, в том числе иллюстраций. Список литературы включает наименований.

СОДЕРЖАНИЕ РАБОТЫ

Во сведении обосновывается актуальность исследуемой в диссертации проблемы, формулируются цель и основные задачи работы, описываются методы исследований и практическая ценность работы.

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

Из большого разнообразия подходов выделен ряд работ, внесших наиболее ощутимый вклад в развитие методики функционального тестирования. Это модульный, М1«крос:т-?р-циоккь'4: подходи, а тгкжс псдтюд, основиншчл одели регистровьг/. передач. Указанные подходы имеют ряд недостатков, затрудняющих их практическое применение вследствие ограниченности модели неисправностей, громоздкости и трудоемкости процедур построения тестов."

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

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

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

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

Проведенный анализ позволил сделать следующие выводы.

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

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

3)Из всего многообразия функций оборудования микропроцессоров наиболее сложными с позиции проверки работоспособности представляются функции управления.

4)Целесообразно сосредоточить внимание на микропроцессорах, отвечающих современным тенденциям развития архитектуры и организации.

Исходя из отмеченных положений формулируются цели и задачи диссертационной работы.

Во старой гласе на основе детального анализа микропроцессоров с RISC-архитектурой определены их основные характеристики с ориентацией на последующее функциональное тестирование.

В начале главы объясняется, почему за последние годы сформировалось 8яь'1«рн.!ткв:?"е ¡¡о с iHomeH:-.:v-î: гр.-.::"—■ .тур: процессоров С13С (Ca:npisx Instruction Set Computer) направление, получившее название RISC (Reduced Instruction Set Computer -компьютер с сокращенным набором команд). Преимущественное использование в программе простейших -омакд фермам "регкегр-рбгк'".ф" (--"гранды г*:6ираютсл из оперативных рлистров МП, и результат операции также записывается в регистр) позволяет повысить скорость выполнения большинства задач вычислительного типа в 2-3 раза. Более того, в типовом случае 80% кода программы использует всего 20% простейших команд типа "регистр-регистр" из полного набора инструкций CISC. Наконец, рациональное ограничение числа команд небольшим набором наиболее употребительных операций в сочетании с архитектурой, ориентированной на быстрое выполнение всех команд этого набора, обеспечивает весьма эффективное использование дефицитных ресурсов (естественно, за счет сокращения аппаратуры центрального управления в несколько раз) и построение вычислительных машин с высокой производительностью.

Анализ архитектурных особенностей RISC-микропроцессоров позволил сформулировать три основных признака (принципа) RISC :

1) Любая операция, вне зависимости от ее типа, должна выполняться за один

такт.

2) Система команд должна содержать минимальное количество наиболее часто используемых простейших команд одинаковой длины.

3) Операции обработки данных реализуются только в формате "регистр-регистр". Обмен данными между оперативными регистрами и памятью выполняется только с помощью команд загруз::и/записи.

Далее детально рассматриваются особенности RISC-архитектуры, а также аппаратные средства, позволяющие реализовать их в реальных процессорах. Выполнение команды как минимум за один такт требует обязательного наличия конвейера. Причем все современные RISC-процессоры отличает высокая степень дробления конвейера (до 10 ступеней)- суггерконвейерность. Более того, вследствие сокращения объема оборудования управления и возросших возможностей технологии, стало реальным размещение на одном кристалле значительно большего числа устройств с различным функциональным назначением. Такие суперскалярные процессоры, имеющие несколько конвейеров обработки команд (до четырех), могут выполнять за один такт более одной команды.

Для обеспечения безостановочной работы конвейерных арифметических устройств ':ес''ходимо применение следующих средств:

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

-механизм изменения приоритетов выполнения команд;

-механизм "продвижения данных" или "обход чтения";

-встроенная кэш-память первого уровня и возможность быстрого доступа к данным кэш-памяти второго уровня;

-большое количество оперативных регистров и т.п.

В главе раскрываются указанные особенности.

В заключение приводятся основные характеристики некоторых представителей микропроцессоров семейства RISC, разработанных фирмами DEC (Alpha 21064,21164), ÎBM/Motorola/Apple (PowerPC620), Hewlett-Packard (PA-RISC8000), SUN Microsystems (SPARC), MIPS Technologies, Intel (¡80960), Microchip (PIC 16c**).

Л тгет/.е:? глэче формулируются основные концепт:::: функционального тестирования RISC-объектов, существенно определяемые особенностями их архитектуры и организации.

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

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

-анализ оборудования микропроцессора, соответствующего данному механизму;

-построение математической модели механизма;

-построение математической модели дефектов механизма;

-разработка процедуры построения проверяющего теста механизма (при стремлении к его минимальности) и обоснование полноты теста относительно введенных неисправностей.

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

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

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

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

Res:=f(0„0,)/Res':=f(0; ,0/), (1)

где О,' О,' ,f и Res'- значения операндов, результата и фунгц'-::<, имеющих место при произвольном дефекте аппаратуры. В этой записи используется принятая форма А/А' , где левая часть соответствует исправной работе, а правая-некоторой неисправности.

Теперь, обращаясь к МП как совокупности механизмов, мы можем конкретизировать модель (1), связывая неисправность с неисправной работой выделенных выше групп механизмов.

Операнд или результат может быть искажен (О/О'или Res/Res') из-за неисправности, затрагивающей функционирование отдельных механизмов МЛ- в силу следующих причин:

1)искажение информации при хранении или передаче по шинам данных (механизмы хранения и передачи данных); 2)неправильная дешифрация источника или приемника данных (механизмы выборки регистров, дешифрации памяти, управления межрегистровым обменом); 3)нарушение последовательности и характера микроопераций при реализации требуемого вида адресации (механизмы адресации, адресной арифметики).

Операция (фу:,.чт:я) может гь явлена - яикггр-гнссти,

затрагивающей функционирование отдельных механизмов МП, в силу следующих причин:

1)неис»й^;ь;:ос • у;■ кцяониг.or2н>• АЛУ иди к-ioro Гл..::г, гсализую.чгго соответствующую функциональную обработку (механизмы обработки дак.ч^х); 2)неправильная дешифрация кода операции или активизация аппаратуры обработки (механизмы дешифрации и активизации операций); 3)нарушение последовательности и характера микроопераций при реализации сложной (многотактной) операции (механизм управления многотактной обработкой).

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

Обособление и отдельная проверка механизмов хранения и передачи данных и механизмов обработки (при допущении об исправности управления) позволяет перейти от модели (1) к модели:

d:=f(s„s2) / cf:=f(s,',s:') ; f/f (2)

В этой записи s,,s, - содержимое источников, ad- приемника информации (регистры, ячейки памяти); сГ ,s',s' - та же информация, искаженная из-за неисправности, затрагивающей механизмы хранения и передачи данных; / и f -соответственно правильное и неправильное (из-за неисправности механизмов обработки) преобразование данных.

Отдельное рассмотрение механизмов управления передачей данных и управления обработкой (при допущении об исправности хранения, передачи и непосредственно обработки) позволяет перейти от модели (1) к модели (3).

cf<=f(s,J,s2k) / ld<=/( Ъ, Ъ ) ; /'/ if. (3) deD seStseS2 / eF

Здесь вместо символа присвоения используется символ <=, подчеркивающий

передачу соответствующих сигналов. Выражение подразумевает объединение

аеА

некоторой совокупности объектов а из множества А, в частности, пустое множество, при определенном соглашении об операции объединения. Например, выражение У/

j&S

можно определить так: вместо источника s1 выбирается произвольное подмножество

всех потенциальнмх источников; при этом, если 5> = 0, то на шин? чанных

формируется константа "00...О" , а если то формируется поразрядная

геЛ

дизъюнкция содержимых источников. В модели (3) предполагается также, что декодирование функции j может быть выполнено независимо от декодирования источников и приемников. Дальнейшее упрощение моделей неисправностей и связанных с ними процедур тестирования обусловлено свойствами Я[БС-архитектуры, перечисленными во второй главе.

Свойство 1) позволяет ограничиться в модели (3) неисправностями дешифрации/активизации однотактных (микро)операций <р:

/'/ £/ -> <рЧ £?>, (4) / <реФ

свойство 2) позволяет рассматривать вместо ооще« :.:сдсли (3) ее отдельные составляющие (подразумевается раздельное кодирование источников и приемников):

-.(/ Ъ, ¿ЧЪ. (5) -

¿ей

Свойство 3) позволяет сформулировать модель (5) применительно к регистровой обработке: ~ '

Ь, гЧ Ъ. (б)

ге^ " геЯ;

где г(г, )-содержимое регистра (источника, приемника).

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

В четвертой^.главе на основе анализа архитектурных элементов Ю2С-микропроцессоров, выполненного во второй главе, строятся обобщенные модели этих объектов. Описываемые ниже модели могут быть полезными для понимания основных принципов Ш5С-архитектуры и, что более важно, они составляют основу последующей функциональной декомпозиции, предусматриваемой настоящим подходом к тестированию МП. Определяются этапы выделения механизмов и функциональных модулей микропроцессора как объектов тестирования, формулируются модели неисправностей и процедуры тестирования.

На рис. 1 приведена блок-схема ШЗС-микропроцессора. В архитектуре МП выделяются группы функций ПОДДЕРЖКА и ОБРАБОТКА. В соответствии с рассматриваемым подходом отдельно рассматривается группа функций УПРАВЛЕНИЕ. Блок-схема согласуется с классическим представлением ЭВМ в виде композиции операционного и управляющего блоков, связанных управляющими и оповещающими сигналами (модель Глушкова), а также с общей моделью микропроцессора в виде совокупности функций. Модули, объединенные в группу "локальная память" соответствуют функциям хранения/передачи данных, а группа "функциональные модули" реализует функции обработки данных. Фиксация состоянии МП реализуется этими модулями совместно. Разделение функций управления на управление обработкой и передачей данных отражено на блок-схеме соответствующими связями.

Блог-схема явно отражает главные принципы Я^С-архитектуры: обработка данных, размещаемых только в регистрах, и стремление получить результат любой

команды по крайней мере за один такт (суперконвейерность, суперскалярность, встроенное кэширование).

А

ГЛАВНАЯ ПАМЯТЬ

Н- • ► * - • ►

пггнс..

УСТР-ВА

V

СИСТЕМНЫЙ ИНТЕРФЕЙС

н! »

1— -I

ПОДДЕРЖКА

КЭШ ДАННЫХ

БЛОК УПРАВЛ. ПАМЯТЬЮ

кэш

КОМАНД

МИКРОПРОЦЕССОР

локальная память

РОН

РУС

БУФ

ОБРАБОТКА I

•1-

ФУНКЦИОНАЛЬНЫЕ МОДУЛИ

_АЛУ_

АЛУ1 | |АЛУ2 |

сдв

I "3' I | П32 |

АДРЕСАЦИЯ

тС

'-ДРЕС ДАННЫХ

■=И- АДРЕС -я» ГСОМ^НЛ

УПРАВЛЕНИЕ | ВЫЕ 1~|свМвУг{ ДЕК -1 ОД 1-1 ОП Ы РЕЗ |

си—сп

Рис.1 Блок-схема ШБС-микропроцессора

Рассмотрим кратко назначение модулей блок-схемы и отдельных (неочевидных) связей между ними. На схеме сплошными линиями обозначены передачи данных и команд, штриховыми-управляющей и оповещающей информации, штрих-пунктирными-адресной информации. Примем для определенности простейшие форматы команд (рис.2) и виды адресации. Операционный формат предусматривает прямую регистровую и непосредственную адресацию. Формат Память/Ветвление использует косвенную регистровую адресацию с индексированием из кода команды:

ЕА=(ЯА I РС 10) +ОРР5ЕТ, и с индексированием из регистра: ЕА=(ЯА|РС|0) +ЯВ.

Здесь ЕА-исполнительный (логический) адрес; 11А | РС 10-содержимое некоторого регистра из группы РОН, счетчика команд из группы РУС или значение 0; ОРРЙЕТ-целое число из кода команды, которое также может быть нулем.

В группе модулей ПОДДЕРЖКА отражена "гарвардская" система кэширования с раздельными кэш для данных и команд. Это не принципиально: устройства группы не являются объектами дальнейших исследований (в силу изученности вопросов их тестирования), так что может быть отражена и общая кэш-память, и встроенное двухуровневсз кэширование, и разновидности управления внс1Ш:ч>й памятью (страничность, си ментация, блочность).

Операционный формат

ОР RA LITERAL FUNCTION RC

RB FUNCTION

Формат Память/Ветвление

ОР RA RB OFFSET

Рис.2 Формат команд

Группа модулей УПРАВЛЕНИЕ предполагает любой вариант конвейерного управления 'чсчто'.-.-.т суперк?нг?Яернсстъ (боль!1-ае1 чем обычно, число ступеней конвейера) и суперскалярность (несколько конвейеров одного или разных типов). Принципиальной особенностью является четкое отделение в аппаратуре конвейеров функций упгаЕл;:::1я. Буферы i: сооттетстт.ухсщиз информационные связи вынесены а - блок БУФ; это касается и связен по данным через шинные формирователи конвейеров. При этом информационные связи рассматриваются в широком смысле, т.е. для обрабатываемых данных, а также для команд, адресов и данных о состоянии МП; формирование которых программно доступно. Тогда отраженный на схеме конвейер представляет собой автомат, состояния которого определяют множества параллельно активизируемых функций, соответствующих отдельным фазам обработки команд; сама обработка данных и адресов реализуется функциональными модулями. В некоторых вариантах в составе конвейера подразумевается наличие так называемых накопителей (reservation station), т.е. буферов для декодированной управляющей информации на входах в отдельные блоки конвейера; они используются для обеспечения неупорядоченной обработки команд с целью уменьшения блокировок конвейера.

На рис. 1 выделены типичные ступени конвейерного управления. Перед тем как попасть в конвейер, команды, как правило, извлекаются из кэш и выстраиваются в очередь в небольшом буфере выборки (связь 1). На этапе ВЫБ из этого буфера извлекается несколько команд (связь 2) и направляются каждая в свой конвейер (при суперскалярной организации). На этапе СВ/ПВ (свопинг, предсказание ветвлений) команды могут поменяться повторным обращением к буферу выборки (swapping) с целью достижения возможного ихпараллельного выполнения. Если такая возможность полностью или частично исключена, организуется их последовательная обработка (serialization). При обнаружении процедурной зависимости (procedural dependency) осуществляется предсказание ветвления (branch prediction) а этически, по заданному правилу, или динамически, на основе предыдущей истории. Этот же этап индексирует счетчик команд и управляет буфером выборки.

На этапе ДЕК завершается декодирование (дешифрация) полей команды и запускается ступень ОД, активизирующая выборку операндов из регистров. Здесь же разрешаются зависимости по данным. При истинной зависимости (true data dependency) организуется обход (data bypassing), т.е. передача данных от одной команды к следующей через шинные формирователи (для немедленного выполнения) и/или продвижения (data forwarding), т.е. передача данных от одного конвейера к другому (для выполнения нь последующих этапах). Ложная зависимость (false data dependency) разрешается путем переименования регистров (register renaming), т.е. временным размещением конфликтующих данных в специальных буферных регистрах.

На этапе ОП выполняется однотактная операция (или первый шаг многотаутнпй). Для команд LOAD/STORE вычисляется логический адрес, направляемый в кэш данных. Если полученный признак результата (связь5) противоречит предсказанному ранее направлению ветвления (branch misprediction), то буфер выборки корректируется, соответствующие буферы конвейера очищаются и осуществляется переход на первую ступень (misprediction penalty).

Этап РЕЗ завершает выполнение команды. Результат выполнения большинства команд записывается в регистр-приемник из РОН или в регистр переименования из БУФ.

Группа модулей ОБРАБОТКА разделена на группу функциональных модулей и локальную память. Функциональные модули данных могут включать сумматоры/компараторы, логические блоки, сдвигатели, умножители/делители и т.п., реализующие обработку данных различных типов (целые, действительные, символьные, графические). Функциональные модули адресов реализуют адресную арифметику для данных и команд, а также включают модули динамического предсказания ветвлений (связь 8). Естественный, особенно для суперскалярной организации, функциональный параллелизм . с5услс:лиЕ«£т структурно-: (dev-ii-iing)- Сочьщняпнг

функциональных модулей.

В локальной памяти выделены три блока. Блок регистров общего назначения РОН (GPR-Gou-.ru; Turposc Regis;."! s) '.одержит регистровое ф г^'г.у- (обычпе многопортовые) для данных различных типов, включая адреса (связь 3), используемых ь качестве операндов и результатов при их обработке. Блок РУС включает регистры управления/состояния, применяемые как в пользовательском, так и в. супервизорам режимах. Как правило, имеется счетчик команд (PC-Program Counter), один или несколько регистров состояния (SR-Status Register), разряды которого (флаги) устанавливаются, в частности, в результате обработки (связь 4)."

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

Буфер выборки (PR-Prefetcher) обеспечивает предвыборку команд из кэш, этап СВ, ПВ конвейеров, а также уменьшает количество обращений к кэш. Буферы команд/состояний (IB-instruction/status Buffers) заполняются на этапе ВЫБ, корректируются на этапе СВ, ПВ и используются для продвижения команд и состояний по конвейерам, с извлечением при необходимости данных из кода команды (связи 6,7).

Группа буферов зависимости по данным (DDB-Data Dependency Buffers) включает шинные формирователи результата, обеспечивающие обход, буферы продвижения данных, регистры переименования. Буферы процедурной зависимости (PDB-Procedural Dependency Buffers) включают так называемую таблицу истории переходов (branch history table) для накопления и обновления данных о результатах последних предсказаний ветвлений (при динамическом предсказании), а также стек возвратов (return stack), в котором отслеживаются переходы в парах команд CALL/RETURN. Описанную блок-схему можно рассматривать как концептуальную модель RISC-архитектуры для понимания основных принципов и функций безотносительно к конкретному RISC-микропроцессору. С другой стороны, модель не обходима при синтезе тестовых программ на основе функциональной декомпозиции.

В качестве более формализованной модели можно использовать обобщенный граф регистровых передач (ОГРП) (рис.3), который не трудно построить на основе анализа блок-схемы (рис.1). В отличие от уже традиционной модели ГРП в состав графа включены вершины, соответствующие той или ¡¡ной функциональной обработке. Эти вершины на рис.3 обозначены квадратами и представляют соответственно: DFU-функциональные модули обработки данных; AFU- функциональные модули обработки адресной информации; SUP-преобразование логических адресов в физические (в кэш-

памяти и блоке управления памятью), которые непосредственно адресуют запоминающие мгссивы (сами эти массивы по уже упомянутым причинам вынесены в вершины IN и OUT); CU-конвейерную обработку команд и состояний процессора с выработкой управляющих сигналов, активизирующих все остальные вершины.

Рис.3 Обобщенный граф регистровых передач

i

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

Под активизацией вершины, отраженной в ОГРП пунктирной стрелкой, подразумевается для квадратных, вершин инициирование выбранной функциональной обработки, а для круглых- инициирование выбранных регистров-источников с выдачей для тех и других данных соответственно исходящим дугам вершин. Для уточнения содержательного смысла ОГРП ниже, в табл.1, перечислены действия, выполняемые при активизации каждой вершины. Эти действия (активизируемые функции) пронумерованы согласно номерам исходящих дуг вершины. В скобках отмечены ступени (этапы) конвейерного управления, на которых осуществляется данная активизация.

Рассмотрим основные группы механизмов как объектов тестирования. Обработка данных обычно исключается из рассмотрения в работах по функциональному тестированию. В обоснование этого отмечаются следующие обстоятельства:

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

1) Основу работы механизмов составляет комбинационная обработка. При известной структуре функциональных модулей могут бы^ь использованы широко известные структурные алгоритмы построения тестов комбинационных схем.

Таблица 1

Управляющая связь Вершина Активизируемые функции

1 IN 1.1. Загрузка данных из кэш-памяти в регистр общего назначения из GPR при операции LOAD (ст.РЕЗ). 1.2. Установка флагов SR по команде, если таковая имеется (ст. РЕЗ). 1.3. Загрузка команд из кэш-памяти в буфер выборки PR (ст. СВ/ПВ):

2 GPR 2.1.Запись данных из выбранного регистра GPR в кэшпамять при операции STORE (ст.РЕЗ). Í.2. Передач;-. ».ч »ыбр<-.«-;«х регистров для обработки в DFU (ст.ОД). 2.3. Передача адресной информации из выбранных регис -рев д.-'« фс-^Ш'ровакия ::сг,>чсг:ого ядргса в A FU при операциях LOAD/STORE (ст. ОП).

3 DDB 3.1 .Передача данных из регистров переименования DDB в регистры-приемники результата из GPR при разрешении ложной зависимости по данным (ст. ВЫБ). 3.2. Передача данных на обработку в DFU с шинных формирователей результата или буферов продвижения данных при разрешении истинной зависимости по данным (ст. ОП, РЕЗ).

4 DFU -Активизация выбранного функционального модуля обработки данных в DFU (ст.ОП). 4.1. Передача результатов обработки в регистры GPR (ст. РЕЗ). 4.2. Передача результатов обработки в буферы DDB при разрешении зависимости по данным (ст. ОП, РЕЗ). 4.3. Передача флагов в регистр(ы) состояния SR (ст. ОП).

5 SR 5.1. Выдача флагов SR по команде, если таковая имеется (ст. РЕЗ). 5.2. Передача флагов SR на обработку в AFU процедурой формирования таблицы истории переходов (ст. ОП, РЕЗ). 5.3. Передача содержимого SR в буферы IB (ст. ВЫБ). 5.4. Передача содержимого SR (оповещающей информации) в блок CU.

6 PC 6.1. Передача адреса команды в SUP для извлечения команды из кэш-памяти (ст.СВ/ПВ). 6.2. Передача адреса команды для индексирования в AFU (ст. СВ/ПВ).

7 SUP -Активизация выбранного модуля преобразования адресов (ст. СВ/ПВ, РЕЗ). 7.1. Выдача физического адреса в OUT для обращения к запоминающим массива. '.

Таблица 1 (продолжение)

Управляющая связь Вершина Активизируемые функции

8 AFU -Активизация выбранного модуля обработки адресной или оповещающей информации (ст. ОП, РЕЗ). 8.1. Передача адреса команды в PC после индексирования (ст. СВ/ПВ). 8.2. Передача логического адреса в SUP (ст. СВ/ПВ, РЕЗ). 8.3. Передача результата предсказания ветвления для модификации таблицы истории переходов в буфере PDB; передача адреса возврата (для команд CALL/ RETURN) в стек возврата буфера PDI! (ст. РЕЗ).

9 PDB 9.1. Передача таблицы истории переходов в AFU для обеспечения динамического предсказания ветвлений; передача адреса возврата из стека (ст. СВ/ПВ).

10 - IB ЮЛ. Передала кс-маг^ «упрзвля;-.;:;«>4 блок (ст.ВЫБ) 10.2. Передача поля LITERAL команды в DFU при непосредственной адресации (ст.ОП). 10.3. Пепрдач;-. п.ол> OFFSET команды л AFT" ¡ч:у. косвенна? регистровой адресации (ст.ОД). 10.4. Передача команд в PR при свопинге (если программно доступна) (ст. СВ/ПВ). .

11 PR 11.1. Передача команд в IB при выборке (ст.ВЫБ) и при свопинге (ст. СВ/ПВ) (если программно доступна).

2) Почти всегда имеются частичные сведения о структуре функционального модуля. Примерами таких сведений могут быть регулярность (логические модули поразрядной обработки; итеративные структуры сумматоров с последовательным переносом) и рекурсивность (сумматоры с параллельным переносом).

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

Для представления механизма передачи данных можно воспользоваться моделью графа регистровых передач ГРП, Поскольку в качестве концептуальной модели МП мы уже построили обобщенный граб (рнс.З), то выделение из него непосредственно ГРП не вызывает затруднений: достаточно удалить квадратные вершины, замыкая дуги естественным образом. Оптимальность связей может быть достигнута, следуя определенным правилам, описанным в диссертации. Пример ГРП для принятой модели МП также приведен в диссертации. Условия активизации дуг могут быть получены из табл. 1.

Проверка механизма регистровых передач может быть выполнена в два этапа. Сначала отыскивается подмножество путей графа из IN в OUT, покрывающее все дуги ГРП (желательно минимальное). Второй этап состоит в конструировании последовательностей команд, активизирующих передачи данных, соответствующих найденным путям. В качестве операндов команд можно использовать наборы теста переноса, обнаруживающего произвольные сочетания констант 0 и I на разрядных линиях шин и перемычек между этими линиями. Проверка регистровых файлов может

быть выполнена отдельно тестами памяти или совокупностью теста переноса и приведенного в диссертации теста выборки рггг:огров (что в большинстве вариантов дает более экономный тест).

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

Команда I* (к-го типа) может быть представлена последовательностью микрокоманд in,k, т.е. произведением П микрокоманд. Микрокоманда ти,*, в свою очередь, представляется совокупностью параллельно выполняемых микроопераций д/, т.е. суммой S микроопераций.Это можно представить так:

к "Л к к Щ к

Г = Т\т: . т? = £ jtij , ' _ > = 1 ' 7 = 1 "

где пк -число микрокоманд к-й команды, а -число микроопераций i-й микрокоманды

7- iî

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

^П(Ь/ )=П(£ I /V }), (7)

г 1 = 1 г ¡=1 j=1 1

где r-индекс последовательности выполняемых команд (г>п), п-число ступеней конвейера, q¿-число микроопераций fc-команды, выполняемых на /-Й ступени конвейера. При суперскалярной организации МП параллельно выполняется несколько аналогичных процессов.

Хотя выражение (7) является всего лишь компактной записью функционирования конвейерного управления, оно позволяет сформулировать некоторые выводы:

а)для обнаружения неисправности управления МП достаточно обнаружить неисправность механизма, активизирующего хотя бы одну микрооперацию последовательности (7);

б)суперконвейерность и суперскалярность позволяют осуществить более детальную декомпозицию механизмов управления и сосредоточить внимание на проверке механизмов управления выполнением достаточно простых микроопераций (см. табл. 1).

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

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

до искажения соответствующих полей кодов команд. Отмеченные особенности RISC-архитектуры не требуют привлечения более сложных алгоритмов проверки управления межрегистровым обменом.

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

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

В пятой главе приведен пример применения описанной методики к построению тестов однокристального RISC-микроконтроллера PIC16C57 фирмы Microchip Technology Inc., который используется в несложных контроллерах с ограниченным током потребления (телефонная приставка с автоматическим определителем номера; система „-хра;:ы с саове:цен::гм пс тсдефоакой линии; автоматический телефонный коммутатор и т.п.).

В основе PIC лежит высокопроизводительное RISC-подобное ядро с гарвардской архитектурой с фкзичес:::1М и логическим разделением памяти' данни:-: и команд. Отметим некоторые его особенности:

-концепция регистрового файла с возможностью прямой и косвенной адресации любой ячейки; '

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

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

Программа тестирования основных механизмов и функциональных модулей микро-ЭВМ PIC16C57 приведена в приложении к диссертационной работе.

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

ОСНОВНЫЕ РЕЗУЛЬТАТЫ РАБОТЫ

В диссертационной работе получены следующие основные результаты. 1. Исследованы функциональный подход к тестированию программно-управляемых цифровых устройств и принципы RISC-архитектуры.

2.Предложена новая концепция функционального тестирования микропроцессоров, основанная на п>,:ледовательной конкретизации обобщенной модели неисправности. Концепция развита в применении к объектам с RISC-архитектурои.

3.На основе анализа современных RISC-микропроцессоров создана общая модель RISC-архитектуры.

4.Разработана формализованная модель RISC-микропроцессора в виде обобщенного графа регистровых передач, являющаяся базовой для синтеза тестов.

5.Определены основные механизмы и функциональные модули RISC-микропроцессора, их модели как объектов тестирования, а также процедуры проверки.

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

7.Разработанный метод функционального тестирования иллюстрирован примером его применения к конкретному RISC-микроконтроллеру.

• ' ilV-t.'iü'^AUiu: Ii О TLME ДИССЕРТАЦИИ

¡.Кошевенко A.B., Шаршунов С.Г. Проблемы функционального тестирования макропроцессоре;; RloC архитекторы /7 Международная ко:-:фере1":ц:1Я "А^томаг)иаш>я проектирования дискретных систем" CAD-DD'95 г. Минск, ноябрь 1995 г., тез. докл.. с.60.

2. Кошевенко A.B., Шаршунов С.Г. Функциональное тестирование микропроцессоров RISC-архитектуры ¡1 XXXV научно-техническая конференция ДВГТУ, г.Владивосток, 1995 г., тез. докл., с.65-66.

3.Кошевенко A.B., Шаршунов С.Г. Функциональное тестирование RISC-микропроцессоров И Научно-техническая конференция "Диагностика, информатика, метрология, безопасность - 1996", г.Санкт-Петербург, июнь 1996 г., тез. докл., с.66.

4. Кошевенко A.B., Шаршунов С.Г. Методология тестирования современных микропроцессоров // Вестник ДВО РАН, N 4,1996 г.,с.92-96.

5.Koshevenko A.V. A Functional Approach to Testing RISC Microprocessors // Second Int. Students' Congress of the Asia-Pacific Region Countries, Vladivostok, April, 1997, pp. 128129.

6. Кошевенко A.B., Шаршунов С.Г. Концептуальные модели RISC-микропроцессора как обекта функционального тестирования // Труды ДВГТУ, 1997 г.(в печати).

7. Кошевенко A.B.. Шаршунов С.Г. Концепция функционального тестирования RISC-микропроцессоров // Международная конференция "Автоматизация проектирования дискретных систем" CAD-DD'97,r. Минск, ноябрь 1997 г. Материалы конференции(в печати).

Личный вклад автора

Все результаты, составляющие основное содержание диссертации, получены автором самостоятельно. Среди указанных работ шесть написаны в соавторстве с научным руководителем. В работах [2,3,4,7] автору принадлежат формулировки концепции функционального тестирования, в [6] - описание моделей RISC-микропроцессора как объе.<та тестирования и этапов формирования тестовы-. программ.