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

кандидата технических наук
Чибисов, Петр Александрович
город
Москва
год
2013
специальность ВАК РФ
05.13.11
Диссертация по информатике, вычислительной технике и управлению на тему «Встречное тестирование высокопроизводительных микропроцессоров»

Автореферат диссертации по теме "Встречное тестирование высокопроизводительных микропроцессоров"

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

Чибисов Петр Александрович

ВСТРЕЧНОЕ ТЕСТИРОВАНИЕ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ МИКРОПРОЦЕССОРОВ

Специальность 05.13.11 —

математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

АВТОРЕФЕРАТ диссертации на соискание ученой степени кандидата технических наук

005538445

14 КОЯ ¿013

Москва 2013

005538445

Работа выполнена в Федеральном государственном бюджетном учреждении науки Научно-исследовательском институте системных исследований РАН.

Научный руководитель: Бобков Сергей Геннадьевич,

доктор технических наук, профессор

Официальные оппоненты: Петросянц Константин Орестович, доктор

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

Краснюк Андрей Анатольевич, кандидат технических наук, доцент, заместитель заведующего кафедрой электроники Национального исследовательского ядерного университета «МИФИ» (НИЯУ МИФИ)

Ведущая организация: Открытое акционерное общество «Центральный

научно-исследовательский институт автоматики и гидравлики»

Защита диссертации состоится 5 декабря 2013 г. в 15:00 на заседании диссертационного совета Д 002.087.01 при Федеральном государственном бюджетном учреждении науки Институте системного программирования Российской академии наук по адресу: 109004, Москва, ул. Александра Солженицына, д.25, конференц-зал (комн. 110).

С диссертацией можно ознакомиться в библиотеке Федерального государственного бюджетного учреждения науки Института системного программирования Российской академии наук.

Автореферат разослан 1 ноября 2013 г.

Ученый секретарь диссертационного совета, кандидат ф из .-мат. наук

Общая характеристика работы

Актуальность темы

Число транзисторов в современных высокопроизводительных микропроцессорах достигает нескольких миллиардов. Большие объемы СБИС неизбежно приводят к наличию ошибок в микропроцессорах. Непрерывная погоня за повышением производительности и требование сохранения программной совместимости приводит к неизбежному усложнению микропроцессоров и, соответственно, к появлению всё новых и новых ошибок. В микропроцессоре Intel Core i7-600 на декабрь 2011 г. найдено 123 ошибки, из которых не планируется исправлять 118, неизвестны пути обхода 62 ошибок. Таким образом, задача повышения эффективности тестирования микропроцессоров на этапе их создания является актуальной задачей, сложность которой растет по мере усложнения микропроцессоров. При этом функциональная верификация сложна с одной стороны тем, что она не может быть выполнена с гарантией отсутствия ошибок в проекте ни за какое осмысленное время, с другой стороны, цена имеющейся ошибки в уже изготовленной СБИС может превышать стоимость разработки и изготовления самой СБИС. Особенно это справедливо в тех случаях, когда речь идет об ответственных применениях вычислительных и управляющих модулей, в основе которых лежит разработанный микропроцессор, а также в случаях, требующих повышенной надежности функционирования микропроцессора, когда стоимость аппаратуры превышает стоимость всего цикла разработки микропроцессора.

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

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

Особое внимание при проектировании микропроцессоров уделяется тестированию их RTL-модели, так как: 1) поиск ошибок ведется параллельно с продвижением разработки, 2) стоимость ошибки на этом этапе проектирования минимальна.

Все методы верификации моделей на этапе RTL-проектирования можно разделить на формальные и динамические. Формальные методы позволяют математически доказать правильность работы какого-либо блока микропроцессора, но являются крайне трудоемкими. Например, при разработке микропроцессора Pentium 4 фирмой Intel была проведена формальная верификация модуля вещественной арифметики (FPU), модуля декодирования инструкций, а также модуля динамического планирования потока инструкций. При этом на эту работу было затрачено 60 человеко-лет.

Динамические методы верификации (имитационное тестирование) моделей микропроцессоров широко применяются для верификации RTL-моделей. Как правило, качество (полноту) тестирования оценивают по величине покрытия кода разрабатываемой RTL-модели (так называемое структурное покрытие). Однако даже 100% покрытия не гарантирует отсутствие ошибок.

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

4

оптимизация» аппаратно-программных комплексов (предложен в НИИСИ РАН). Так как уже на начальных этапах проектирования, когда цена исправления ошибки в модели микропроцессора минимальна, уже известны и доступны программы и приложения пользователя, полезно использовать знания о коде выделенных приложений для повышения качества тестирования. В связи с этим представляется, что разработка метода функциональной верификации RTL-моделей микропроцессоров, учитывающего результаты анализа функционального тестового покрытия выделенных приложений (метод «встречного» тестирования), является актуальной темой исследования.

Цель п задачи исследования

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

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

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

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

Научная новизна исследования

Научной новизной обладают следующие результаты исследования:

1. методика запуска кода готовых приложений под ОС, а также загрузки самой ОС на ранних стадиях проектирования ЯТЬ-модели;

2. метод тестирования микропроцессора с привлечением контрольных задач от потенциальных пользователей («встречное» тестирование);

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

Практическая значимость

Разработанные автором методы и методики использованы при проектировании в НИИСИ РАН микропроцессоров 1890ВМ5Ф, 1890ВМ6Я, а также успешно используются для выполнения ОКР «Процессор-5» и «Процессор-6» для создания микропроцессоров 1890ВМ8Я и 1890ВМ9Я. Благодаря комплексному применению созданных средств тестирования в серийно выпускаемых вычислительных системах на базе микропроцессоров 1890ВМ5Ф и 1890ВМ6Я не выявлено ни одной ошибки в выделенных областях применения. Результаты работы могут использоваться в НИИ системных исследований РАН, ЗАО «МЦСТ», ФГУП НИИМА «Прогресс», а также в других научных и промышленных организациях, занимающихся разработкой высокопроизводительных микропроцессоров.

Апробация

Основные положения диссертации доложены на следующих конференциях и семинарах:

• VI, VII, IX и XIII научно-технические конференции "Электроника, Микро- и Наноэлектроника" (г. Нижний Новгород, 2004, 2005, 2007, 2011гг.);

• Проблемы разработки перспективных микро- и наноэлектронных

систем (МЭС-2005, 2010, 2012, г. Истра Московской области);

б

• Семинарах НИИ системных исследований РАН (г. Москва, 2006, 2011, 2013 гг.);

• Семинаре Института системного программирования РАН (г.Москва, 2013г.).

Публикации

По теме диссертации автором опубликованы 14 работ, в том числе 6 в рецензируемых изданиях, входящих в перечень рекомендованных ВАК, полно отражающих основные результаты диссертации.

Структура и объем работы

Работа состоит из введения, четырех глав, заключения и списка литературы (114 наименований). Основной текст диссертации (без приложений и списка литературы) занимает 163 страницы.

Содержание работы

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

В первой главе приведен обзор и анализ существующих в настоящее время методов функциональной верификации микропроцессоров. Описываются достоинства и ограничения различных методов. Также даются определения основных терминов, связанных с верификацией и тестированием микропроцессоров. Основное внимание уделяется динамическому имитационному моделированию на RTL-уровне (pre-silicon verification), а также системному функциональному тестированию, как основным методам проверки корректности работы микропроцессоров.

В разделе 1.2 рассматриваются методы, применяемые для верификации микропроцессоров с использованием ПЛИС-прототипа. В разделе 1.3 приводится обзор методов тестирования СБИС микропроцессоров (post-

Silicon verification) и их тестовых кристаллов. В разделе 1.4 рассматриваются метрики тестового (функционального) покрытия, применяемые при верификации моделей микропроцессоров.

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

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

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

1. создание и отладка образцового (эталонного) эмулятора (С-модель);

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

3. портирование ядра ОС Linux на данную процессорную архитектуру;

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

5. разработка управляющих программ, позволяющих автоматически получать с помощью эмулятора «срезы» состояния в произвольные моменты времени с последующим конвертированием формата файлов состояния (если требуется) для применения файлов в качестве исходных для загрузки RTL-

8

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

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

Так как скорость выполнения программ на RTL-модели микропроцессора крайне мала, для повышения эффективности тестирования целесообразно использовать ШТИС-прототип, а также тестовые кристаллы микропроцессоров. В работе анализируется взаимосвязь объектов тестирования, а также рассматривается степень применимости обсуждаемой методики к каждому из них в контексте общего плана верификации.

На рис.1 рассмотренная методика тестирования RTL-модели, ПЛИС-прототипа и тестового кристалла представлена в графической форме. Сплошными линиями показаны переходы между уровнями тестирования для разных уровней абстракции проекта, пунктирными — переходы в случае нахождения ошибки. Методика охватывает практически все уровни абстракции представления модели; при этом, в случае нахождения ошибки, например, в ПЛИС-прототипе, требуется воспроизвести и исправить ее на более низком уровне, после чего повторить цикл тестирования. Под полевыми испытаниями понимается изучение стабильности работы СБИС микропроцессора вне лабораторных (нормальных) условий, то есть в полном рабочем диапазоне температур, в составе многопроцессорных кластеров под продолжительной вычислительной нагрузкой и тому подобное.

Рис.1. Методика тестирования микропроцессора на разных стадиях (уровнях) разработки кодом приложений пользователя под ОС

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

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

В конце главы описывается предлагаемая автором методика поиска и локализации ошибок в ГШИС-прототипе (тестовом кристалле).

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

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

Рис.2. Метод тестирования микропроцессора с привлечением контрольных (тестовых) задач от потенциальных пользователей («встречное» тестирование)

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

декодирование и дальнейшее суперскалярное исполнение в конвейере. Протестировать все возможные комбинации инструкций из всего набора А, очевидно, не представляется возможным (да и не требуется) за обозримое время, поэтому проведем редуцирование множества А к множеству В, опустив из рассмотрения инструкции, не создаваемые (либо создаваемые крайне редко в строго определенных ситуациях, поддающихся переборному тестированию) компиляторами программ, написанных на языках программирования высокого уровня (речь идет в основном о С,С++ и Fortran). Удаленные из рассмотрения инструкции и их комбинации тестируются обычными методами.

Проведем факторизацию групп инструкций множества В по классам эквивалентности, основываясь на спецификации микропроцессора, а также используя рекомендации группы разработчиков RTL-модели. Результатом факторизации будет множество С классов инструкций, в которое, например, будут входить 6-7 классов (такие как класс арифметических команд или класс команд ветвления), каждый из которых состоит из 1-4 групп инструкций, обозначенных как эквивалентные (в таком масштабе рассмотрения, инструкция сложения ADD будет эквивалентна инструкции вычитания SUB). Объединим получившиеся группы в множество D.

В итоге, наша исследовательская (отправная) модель пространства покрытия будет состоять из всех возможных комбинаций по 4 инструкции, каждая из которых берется из множества D. Такие комбинации являются, по сути, элементарными тестовыми воздействиями для модели микропроцессора, причем все такие комбинации регистрируются, используя тестовое покрытие, задаваемое на уровне инструкций. Так как у каждой инструкции может быть множество явных и неявных аргументов и параметров (так, для инструкции LOAD - это сегмент виртуальной памяти, адрес, смещение, разрядность загружаемых данных, попадание либо промах в кэш-память LI, L2, политика обращения в кэш-память и другие), то с их учетом суммарное количество подлежащих тестированию комбинаций в

13

одном окне выполнения инструкций микропроцессора будет слишком велико. Для ограничения сверху количества тестовых ситуаций и уменьшения избыточности в рамках встречного тестирования множество комбинаций параметризируется (уточняется) с учетом результатов, полученных в результате анализа листингов и трасс задач пользователя под ОС. Затем, исходя из заданных ограничений, создается метрика функционального покрытия, основанная на группах инструкций из рассмотренного выше множества Б с учетом выбранных аргументов и параметров.

Метрика задаётся следующим образом. Обозначим О - пространство всех допустимых элементарных тестовых воздействий в рамках нашей исследовательской модели. Пусть при прохождении набора тестов Т на тестируемую модель подаётся совокупность тестовых воздействий Тогда значение заданной этим пространством метрики будет составлять |С2т| / То есть мы получили функцию, ставящую в соответствие набору тестов число от 0 до 1. Тогда за один из критериев завершённости тестирования можно взять достижение этой метрикой некоторого порогового значения, например, 0,95 или 0,99.

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

Рпс.З. Получение метрики функционального покрытия для «встречного» тестирования модели микропроцессора

Как отмечалось выше, вводится и второй путь обратной связи, замыкающийся через расширение и уточнение модели функционального покрытия по результатам интерпретации результатов измерений (обозначен «II» на рис.3).

Я^), значение метрики функционального покрытия

Ю <£> со СО

о со см со

СО СО -Т -в-

время от начала проекта (дни}

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

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

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

2. классификация задач, решаемых с помощью комплекса в целом;

3. оценка разделения решаемых системой на кристалле задач на аппаратные и программные;

4. изучение спецификации на проектируемую аппаратуру;

5. получение исходных кодов ОС и приложений пользователя под ОС, выбор инструментальных средств (компиляторов, кросс-компиляторов, отладчиков и так далее);

6. сборка тестов, изучение кода (листинги, запуск на эталонном эмуляторе с получением фрагментов трасс выполнения, профилирование);

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

8. построение функциональных метрик покрытия на основе наборов инструкций микропроцессора (с учетом классов эквивалентности инструкций) по представленной на рис.5 схеме;

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

10. детализация метрик, разработка детального тестового плана.

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

Рис.5. Схема процедуры построения функциональных метрик

Функция плотности распределения вероятности возникновения ошибок в ЯТЬ-модели (или суммарно на разных уровнях абстракции) имеет вид:

,2

до=

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

„ количество строк кода модели составляет К л-----—;

150

td — общее время длительности проекта, то есть такое время, за которое выявлено 95% всех ошибок.

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

F(t) = K(\~e '").

При тестировании микропроцессора 1890ВМ5Ф, разрабатываемого в НИИ системных исследований РАН, информация о найденных ошибках протоколировалась в системе сбора ошибок. Эти данные («эксперимент»), собранные за 28 недель работ по проектированию и верификации RTL-модели микропроцессора, были отмечены на графике (см. рис. 6 и рис. 7 - в виде гистограммы), затем была получена оценочная кривая в виде распределения Рэлея («теория»). Из рис.6 и рис.7 можно сделать вывод о том, что выбранный вид кривой позволяет оценить количество находимых ошибок с течением времени. Теоретические оценки распределения плотности вероятности нахождения ошибок, полученные при тестировании микропроцессора 1890ВМ6Я, хорошо согласуются с экспериментальными данными.

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

1 3 5 7 Э 11 13 15 17 19 21 23 25 27

4, время от начала проекта (недели)

Рис. 6. Распределение плотности вероятности нахождения ошибок

Суммарное количество ошибок как функция от времени

1 3 5 7 9 11 13 15 17 19 21 23 26 27

Ъ время от начала проекта (недели)

Рис. 7. Суммарное количество найденных ошибок как функция от времени

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

результаты применения разработанных методик на практике. Показаны результаты сравнения производительности микропроцессоров 1890ВМ5Ф и 1890ВМ6Я на ряде стандартных тестов. Даётся практическое обоснование того, что предлагаемый автором метод встречного тестирования микропроцессоров соответствует поставленным в работе целям. В заключении перечисляются основные результаты работы.

Основные результаты работы

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

1. предложена методика запуска кода готовых приложений под ОС, а также загрузки самой ОС на ранних стадиях проектирования RTL-модели;

2. предложен метод тестирования микропроцессора с привлечением контрольных (тестовых) задач от потенциальных пользователей («встречное» тестирование);

3. разработана методика выбора набора тестов, учитывающая специфику определенного класса задач;

4. разработаны инструменты, поддерживающие предложенные методы.

Перечисленные результаты получены лично автором и были успешно

апробированы при создании микропроцессоров 1890ВМ5Ф и 1890ВМ6Я в НИИСИ РАН, а также при выполнении ОКР «Процессор-5» и «Процессор-6» по созданию высокопроизводительных микропроцессоров 1890ВМ8Я и 1890ВМ9Я.

Работы автора по теме диссертации

1. Чибисов П.А., Николина Н.В. Функциональная верификация RTL-модели суперскалярных микропроцессоров. Электроника, микро- и наноэлектроника // Сборник научных трудов. М.: МИФИ, 2004. С. 213-216.

2. Аряшев С.И., Николина Н.В., Чибисов П.А. Тесты аттестации архитектуры RTL-модели 64-разрядного суперскалярного микропроцессора // Проблемы разработки перспективных микроэлектронных систем - 2005. Сборник научных трудов / под общ. ред. А.Л.Стемпковского. М.:ИППМ РАН, 2005. С. 257-262.

3. Аряшев С.И., Красшок A.A., Чибисов П.А. Адаптация тестов для оценки производительности 64-разрядного универсального суперскалярного микропроцессора // Проблемы разработки перспективных микроэлектронных систем - 2005. Сборник научных трудов / под общ. ред. А.Л.Стемпковского. М.-.ИППМ РАН, 2005. С. 263-268.

4. Аряшев С.И., Зубковский П.С., Николина Н.В., Чибисов ПА. Основные подходы к верификации блока вещественной арифметики // Проблемы разработки перспективных микроэлектронных систем - 2005. Сборник научных трудов / под общ. ред. А.Л.Стемпковского. М.:ИППМ РАН, 2005. С. 269-274.

5. Аряшев С.И., Барских М.Е., Чибисов П.А. Оценка покрытия тестами машин состояний RTL-модели процессора // Электроника, микро- и наноэлектроника. Сборник научных трудов / под ред. В.Я.Стенина.-М.:МИФИ, 2007, с. 153-156.

6. Аряшев С.И., Николина Н.В., Чибисов П.А. Этапы тестирования моделей микропроцессора со встроенным системным контроллером. // Электроника, микро- и наноэлектроника. Сборник научных трудов. М: МИФИ, 2007. - С. 179-182.

7. Чибисов П.А., Трубицын Д.А., Баранов C.B. Алгоритмы тестирования памяти при проведении радиационных испытаний микропроцессорного модуля // Проблемы разработки перспективных микро- и наноэлектронных систем - 2010. Сборник трудов / под общ. ред. академика А.Л.Стемпковского. М.:ИППМ РАН, 2010. С. 257-260.

8. Николина Н.В., Зубковский П.С., Чибисов П.А. Сопроцессоры вещественной и комплексной арифметики и их тестирование // Проблемы

22

разработки перспективных микро- и наноэлектронных систем - 2010. Сборник трудов / под общ. ред. академика А.Л.Стемпковского. М.:ИППМ РАН, 2010. С. 360-363.

9. Аряшев С.И., Трубицын Д.А., Чибисов П.А. Оптимизация потребляемого тока, частоты функционирования и напряжения питания суперскалярных 64-разрядных микропроцессоров (на примере 1890ВМ5Ф) // Электроника, микро- и наноэлектроника. Сборник научных трудов. М: МИФИ, 2011, с.61-64.

10. Ровинский Б.В., Чибисов П. А. Запуск ОС Linux как этап функционального тестирования микропроцессоров // Проблемы разработки перспективных микро- и наноэлектронных систем - 2012. Сборник трудов / под общ. ред. академика РАН А.Л. Стемпковского. М.: ИППМ РАН, 2012. С. 125-128.

11. Николина Н.В., Чибисов П.А., Аряшев С.И. Современные тенденции оценки и контроля производительности микропроцессоров на стадии их разработки // Проблемы разработки перспективных микро- и наноэлектронных систем - 2012. Сборник трудов / под общ. ред. академика РАН А.Л. Стемпковского. М.: ИППМ РАН, 2012. С. 489-494.

12. Чибисов П.А. Тестирование микропроцессоров и их RTL-моделей приложениями пользователя под ОС Linux. // Программные продукты и системы, N23, 2012, с. 112-116.

13. Аряшев С. И., Николина Н. В., Чибисов П. А. Организация регрессионного процесса тестирования RTL-моделей микропроцессоров // Параллельные вычисления и задачи управления. Сборник трудов конференции РАСО'2012, с. 231-237.

14. Бобков С.Г., Чибисов П.А. Повышение качества тестирования высокопроизводительных микропроцессоров методами встречного тестирования с анализом функционального тестового покрытия выделенных приложений. // Информационные технологии, №8, 2013, с. 26-33.

Подписано в печать:

31.10.2013

Заказ № 8996 Тираж - 100 экз. Печать трафаретная. Типография «11-й ФОРМАТ» ИНН 7726330900 115230, Москва, Варшавское ш., 36 (499) 788-78-56 www.autoreferat.ru

Текст работы Чибисов, Петр Александрович, диссертация по теме Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ УЧРЕЖДЕНИЕ НАУКИ НАУЧНО-ИССЛЕДОВАТЕЛЬСКИЙ ИНСТИТУТ СИСТЕМНЫХ ИССЛЕДОВАНИЙ РОССИЙСКОЙ АКАДЕМИИ НАУК

(НИИСИ РАН)

04201450147

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

Чибисов Петр Александрович

ВСТРЕЧНОЕ ТЕСТИРОВАНИЕ ВЫСОКОПРОИЗВОДИТЕЛЬНЫХ МИКРОПРОЦЕССОРОВ

05.13.11 - Математическое и программное обеспечение вычислительных машин, комплексов и компьютерных сетей

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

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

С.Г. Бобков

Москва - 2013

СОДЕРЖАНИЕ

ВВЕДЕНИЕ......................................................5

ГЛАВА 1 ОБЗОР И АНАЛИЗ МЕТОДОВ И СРЕДСТВ ФУНКЦИОНАЛЬНОЙ ВЕРИФИКАЦИИ И ТЕСТИРОВАНИЯ СОВРЕМЕННЫХ МИКРОПРОЦЕССОРОВ..........................13

1.1 Обзор методов функциональной верификации

ЯТЬ-моделей разрабатываемых микропроцессоров............... 13

1.2 Обзор методов, применяемых для верификации

с использованием ПЛИС-прототипа...........................35

1.3 Обзор методов тестирования СБИС микропроцессоров

и их тестовых кристаллов.....................................39

1.4 Метрики тестового (функционального) покрытия, применяемые при верификации моделей........................44

1.5 Анализ текущего состояния проблемы......................51

1.6 Постановка задачи для верификации разрабатываемых микропроцессоров повышенной надежности для

ответственных применений...................................53

ГЛАВА 2 МЕТОДИКА ТЕСТИРОВАНИЯ МИКРОПРОЦЕССОРОВ И ИХ ЯТЬ-МОДЕЛЕЙ СУЩЕСТВУЮЩИМ ПО ПОЛЬЗОВАТЕЛЯ

ПОД ОС........................................................55

2.1 Методика тестирования существующим ПО под ОС на

разных уровнях абстракции модели............................56

2.1.1 Этап 1: ЯТЬ-модель ядра микропроцессора...........59

2.1.2 Этап 2: ЯТЬ-модель системы на кристалле............67

2.1.3 Этап 3: ПЛИС-прототип...........................70

2.1.4 Этап 4: тестовый кристалл, серийно выпускаемая

СБИС процессора......................................73

2.1.5 Функциональные ошибки микропроцессоров..........76

2.2 Выбор репрезентативного набора тестов.................... 78

2.3 Динамическое имитационное моделирование

(ко-симуляция) тестовых программ............................ 85

2.4 Разбиение трасс объемных тестов на подпоследовательности

для параллельного выполнения................................89

2.5 Методика поиска и локализации ошибок в ПЛИС,

тестовом кристалле..........................................91

ГЛАВА 3 МЕТОД ПОВЫШЕНИЯ КАЧЕСТВА ТЕСТИРОВАНИЯ МИКРОПРОЦЕССОРОВ (ВСТРЕЧНОЕ ТЕСТИРОВАНИЕ) ДЛЯ ВЫДЕЛЕННОГО КЛАССА ЗАДАЧ.................................95

3.1 Фазы тестирования.......................................95

3.2 Классификация и анализ задач пользователя.................99

3.3 Количественное определение полноты тестирования.........101

3.3.1 По графику вероятности возникновения ошибок......102

3.3.2 По покрытию тестами требований для конкретных

задач пользователя.................................... 110

3.3.3 По значениям функционального покрытия и покрытия кода, получаемым от САПР.............................112

3.3.4 Верификация, управляемая метриками тестового покрытия............................................ 116

3.3.5 Критерии готовности проекта к передаче в изготовление......................................... 119

3.4 Методика выбора набора тестов, учитывающая специфику определенного класса задач................................. 121

3.5 Исследовательская модель пространства покрытия...........125

3.6 Выбор метрик функционального покрытия инструкций МП . . . 130

3.7 Примеры метрик функционального покрытия для суперскалярного микропроцессора............................143

ГЛАВА 4 РЕЗУЛЬТАТЫ ПРИМЕНЕНИЯ РАЗРАБОТАННЫХ МЕТОДИК НА ПРАКТИКЕ.......................................152

4.1 Опыт применения разработанных методик на практике.......152

4.2 Спецификация верифицируемых микропроцессоров..........155

4.3 Встречное тестирование микропроцессоров ВМ5, ВМ6, ВМ9 . . 158

4.4 Результаты применения разработанных методик.............159

ЗАКЛЮЧЕНИЕ.................................................163

ЛИТЕРАТУРА..................................................164

ВВЕДЕНИЕ

Актуальность темы

За последние десятилетия микропроцессоры стали вычислительным и управляющим центром практически всех электронных устройств. В наше время микропроцессоры способны работать на весьма высоких тактовых частотах, с впечатляющей производительностью, будучи при этом устройствами с крайне высокой степенью интеграции - система на кристалле (СнК, system-on-chip, SoC) занимает всего несколько квадратных сантиметров кремниевого кристалла. Для того, чтобы обеспечить безошибочную работу этих сложных устройств, требуются огромные затраты времени и средств. При этом в [1] показано, что при проектировании СБИС сложных МП функциональная верификация логической модели занимает не менее 70% от общих трудозатрат. Сложность разрабатываемых микропроцессоров в течение времени лишь возрастает, однако время на разработку в жестких условиях конкуренции на рынке стараются уменьшить.

Непрерывное стремление за повышением производительности вместе с требованием сохранения программной совместимости приводят к неизбежному усложнению микропроцессоров и, соответственно, к появлению всё новых и новых ошибок. Так, по данным на апрель 2005 года у микропроцессора PENTIUM 4 [2] ошибок и несоответствий документации -100, не исправлено - 49, не будут исправляться - 40, неизвестны пути обхода

- 22. В микропроцессоре Intel Core i7-600 на декабрь 2011 г. найдено уже 123 ошибки, из которых не планируется исправлять 118, неизвестны пути обхода

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

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

Верификация проекта до изготовления первого тестового образца основывается, главным образом, на проведении динамического имитационного моделирования на разных уровнях абстракции. Несмотря на высокую степень завершенности проекта на этой стадии и использование колоссальных вычислительных ресурсов, невозможно гарантировать, что все ошибки проекта были исправлены до отправки проекта в производство. Основная причина - относительно небольшое количество функциональных тестовых сценариев, которое может быть выполнено во время верификации ЯТЬ-мод ели. Статистические данные показывают, что 12% пропущенных ошибок в проекте переходят в первые кремниевые прототипы [4], и почти 50% СБИС микропроцессоров требуют дополнительного незапланированного перезапуска в производство [5].

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

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

проектов (здесь и далее «проектом» мы называем высокоуровневую спецификацию логики микропроцессора - High Level Design, HDL -например, на языке Verilog). В публикациях ведущих мировых лидеров отрасли просматривается тенденция не разглашать информацию о текущих методиках и средствах, либо распространять информацию с задержкой, что объясняется высокой конкуренцией.

Все методы верификации моделей RTL-уровня можно разделить на формальные и динамические. Формальные методы позволяют математически доказать правильность работы какого-либо блока микропроцессора, но являются крайне трудоемкими. Например, при разработке микропроцессора Pentium 4 фирмой Intel была проведена формальная верификация модуля вещественной арифметики (FPU), модуля декодирования инструкций, а также модуля динамического планирования потока инструкций. При этом на работу было затрачено 60 человеко-лет [6].

Динамические методы верификации (имитационное тестирование) моделей микропроцессоров широко применяются для верификации RTL-моделей. Как правило, качество (полноту) тестирования оценивают по величине покрытия кода разрабатываемой RTL-модели (так называемое структурное покрытие). Однако даже 100% покрытия не гарантирует отсутствие ошибок.

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

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

Объект исследования

Объектом исследования является RTL-модель проектируемого микропроцессора, тестовая СБИС микропроцессора, а также процесс их функциональной верификации.

Цель и задачи исследования

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

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

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

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

для выделенного класса пользовательских задач и повышения производительности микропроцессоров.

Научная новизна исследования

Научной новизной обладают следующие результаты исследования:

1. методика запуска кода готовых приложений под ОС, а также загрузки самой ОС на ранних стадиях проектирования ШЪ-модели;

2. метод тестирования микропроцессора с привлечением контрольных задач от потенциальных пользователей («встречное» тестирование);

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

Практическая ценность

Разработанные автором методы и методики использованы при проектировании в НИИСИ РАН микропроцессоров 1890ВМ5Ф, 1890ВМ6Я, а также успешно используются для выполнения ОКР «Процессор-5» и «Процессор-6» для создания микропроцессоров 1890ВМ8Я и 1890ВМ9Я. Благодаря комплексному применению созданных средств тестирования в серийно выпускаемых вычислительных системах на базе микропроцессоров 1890ВМ5Ф и 1890ВМ6Я не выявлено ни одной ошибки в выделенных областях применения. Результаты работы могут использоваться в НИИ системных исследований РАН, ЗАО «МЦСТ», ФГУП НИИМА «Прогресс», а также в других научных и промышленных организациях, занимающихся разработкой высокопроизводительных микропроцессоров.

Доклады и публикации

Основные положения диссертации доложены на следующих конференциях и семинарах:

• VI, VII, IX и XIII научно-технические конференции "Электроника, Микро- и Наноэлектроника" (г. Нижний Новгород, 2004, 2005, 2007, 2011 гг.);

« Проблемы разработки перспективных микро- и наноэлектронных систем (МЭС-2005, 2010, 2012, г. Истра Московской области);

• Семинарах НИИ системных исследований РАН (г. Москва, 2006, 2011, 2013 гг.);

• Семинаре Института системного программирования РАН (г.Москва, 2013г.).

По теме диссертации автором опубликованы работы [7] - [20] (всего 14, из них 6 в изданиях по перечню ВАК), полно отражающие основные результаты диссертации.

Структура и объем работы

Работа состоит из введения, четырех глав, заключения и списка литературы (114 наименований). Основной текст диссертации (без приложений и списка литературы) занимает 163 страницы.

Краткое содержание диссертации

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

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

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

Во второй главе рассмотрена предлагаемая автором методика тестирования микропроцессоров существующим программным обеспечением под управлением операционной системы на разных уровнях абстракции модели. Особое внимание уделяется методу тестирования RTL-моделей (модель на уровне регистровых передач), а также ПЛИС-прототипов и тестовых кристаллов микропроцессоров реальными пользовательскими приложениями (программными продуктами) под операционной системой Linux (ко-верификация), рассматривается взаимосвязь объектов тестирования и степень применимости обсуждаемой методики к каждому из них в контексте общего плана верификации. Перечисляются достоинства и недостатки метода. Так как скорость выполнения программ на RTL-модели микропроцессора крайне мала, предлагается использовать механизм среза-восстановления состояния модели микропроцессора для разбиения всей последовательности команд загрузки операционной системы на множество подпоследовательностей, которые выполняются параллельно на разных вычислительных устройствах. Наличие огромного количества свободно распространяемых программ с открытым исходным кодом, большинство из которых имеют встроенные автоматизированные механизмы самопроверки, делает возможным выделить запуск приложений под ОС Linux в отдельный подход к тестированию универсальных микропроцессоров. В конце главы описывается предлагаемая автором методика поиска и локализации ошибок в ПЛИС-прототипе (тестовом кристалле).

Третья глава посвящена предлагаемому автором методу улучшения качества тестирования микропроцессоров («встречное» тестирование) для выделенного класса пользовательских задач. Фактически, метод является развитием подхода ко-верификации для микропроцессоров повышенной

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

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

ГЛАВА 1

ОБЗОР И АНАЛИЗ МЕТОДОВ И СРЕ