Тестирование PCI Express с введением ошибок с целью повышения надежности

№ 3’2010
PDF версия
По мере совершенствования любой технологии возникает необходимость в повышении общей надежности системы — для обеспечения ее работоспособности и устойчивости к внешним воздействиям. Это требование относится и к шине Peripheral Component Interconnect (PCI) Express. По мере того как PCI Express начинает использоваться во все большем числе приложений и растет число устройств, поддерживающих эту шину, следует ожидать от нее большей устойчивости к сбоям и более надежной работы.

Разработанная комитетом PCI-SIG, спецификация для шины PCI Express предусматривает ряд механизмов извещения пользователя о возникновении ошибок. При обнаружении сбоев, в зависимости от их типов, они могут обрабатываться аппаратными средствами или передаваться драйверу либо прикладной программе. Например, прикладная программа может выполнить переключение на работающее устройство, избегая тем самым обращения к устройству, работающему со сбоями. Теоретически, это отличный метод повышения надежности системы в целом. Проблема состоит в том, как сгенерировать такие ошибки, чтобы протестировать реакцию системы на их возникновение. В статье обсуждаются некоторые традиционные методы тестирования с введением ошибок и некоторые инновации в методике испытаний.

Тестирование с введением ошибок

Спецификации PCI-SIG для шины PCI Express предусматривают два механизма оповещения пользователя об ошибках:

  • базовое оповещение об ошибках;
  • расширенное оповещение об ошибках.

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

  • исправимые;
  • неисправимые — не фатальные;
  • неисправимые — фатальные.

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

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

  • комплекты готовых тестов;
  • имитаторы;
  • генераторы помех.

Далее будут рассмотрены достоинства и преимущества каждой из этих категорий.

Комплекты готовых тестов

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

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

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

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

Рис. 1. Тестирование конечных точек устройства с помощью PTC

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

Конечно, на рынке имеются и другие продукты, охватывающие более широкий набор тестов, чем PTC, например, для PCI Express Gen2 имеются комплекты, включающие более 170 тестов. И хотя область тестирования была расширена, этот комплект тестов все-таки страдает от высокой степени статичности и неготовности адаптироваться к изменяющимся требованиям пользователей или к расширению области тестирования.

Имитаторы

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

Рис. 2. а) Схема включения имитатора для тестирования комплекса маршрутизации; б) имитатор с объединительной платой для тестирования конечной точки

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

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

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

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

Генераторы помех

Генераторы помех — это третья категория инструментов для тестирования с введением ошибок. Хотя в некоторых отраслях генераторы помех применяются уже давно (например, генераторы радиочастотных помех в оборонных приложениях), в технологии PCI Express они являются сравнительно новой концепцией. Базовая концепция генераторов помех заключается в том, что они устанавливаются между комплексом маршрутизации и конечным устройством и, следовательно, прозрачны для топологии системы. Это значит, что генератор помех не виден ни устройству, ни комплексу маршрутизации.

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

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

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

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

Заключение

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

Вторым фактором, который надо учитывать, является этап разработки тестируемого устройства: находится ли устройство на начальном этапе проектирования или вам нужно воссоздать инструмент, используемый в лаборатории PCI-SIG для тестирования на совместимость? Для раннего тестирования продукта, например, на этапе разработки, важно упростить рабочую среду. На этом этапе хорошим инструментом может оказаться имитатор, который эмулирует комплекс маршрутизации, обеспечивая полный контроль над тем, что он передает. Однако для тестирования системного уровня, или для создания ошибок в полной системе в лабораториях поддержки потребителей, или для воссоздания проблем, возникших у пользователя, лучшим выбором может оказаться генератор помех.

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

xosotin chelseathông tin chuyển nhượngcâu lạc bộ bóng đá arsenalbóng đá atalantabundesligacầu thủ haalandUEFAevertonxosofutebol ao vivofutemaxmulticanaisonbetbóng đá world cupbóng đá inter milantin juventusbenzemala ligaclb leicester cityMUman citymessi lionelsalahnapolineymarpsgronaldoserie atottenhamvalenciaAS ROMALeverkusenac milanmbappenapolinewcastleaston villaliverpoolfa cupreal madridpremier leagueAjaxbao bong da247EPLbarcelonabournemouthaff cupasean footballbên lề sân cỏbáo bóng đá mớibóng đá cúp thế giớitin bóng đá ViệtUEFAbáo bóng đá việt namHuyền thoại bóng đágiải ngoại hạng anhSeagametap chi bong da the gioitin bong da lutrận đấu hôm nayviệt nam bóng đátin nong bong daBóng đá nữthể thao 7m24h bóng đábóng đá hôm naythe thao ngoai hang anhtin nhanh bóng đáphòng thay đồ bóng đábóng đá phủikèo nhà cái onbetbóng đá lu 2thông tin phòng thay đồthe thao vuaapp đánh lô đềdudoanxosoxổ số giải đặc biệthôm nay xổ sốkèo đẹp hôm nayketquaxosokq xskqxsmnsoi cầu ba miềnsoi cau thong kesxkt hôm naythế giới xổ sốxổ số 24hxo.soxoso3mienxo so ba mienxoso dac bietxosodientoanxổ số dự đoánvé số chiều xổxoso ket quaxosokienthietxoso kq hôm nayxoso ktxổ số megaxổ số mới nhất hôm nayxoso truc tiepxoso ViệtSX3MIENxs dự đoánxs mien bac hom nayxs miên namxsmientrungxsmn thu 7con số may mắn hôm nayKQXS 3 miền Bắc Trung Nam Nhanhdự đoán xổ số 3 miềndò vé sốdu doan xo so hom nayket qua xo xoket qua xo so.vntrúng thưởng xo sokq xoso trực tiếpket qua xskqxs 247số miền nams0x0 mienbacxosobamien hôm naysố đẹp hôm naysố đẹp trực tuyếnnuôi số đẹpxo so hom quaxoso ketquaxstruc tiep hom nayxổ số kiến thiết trực tiếpxổ số kq hôm nayso xo kq trực tuyenkết quả xổ số miền bắc trực tiếpxo so miền namxổ số miền nam trực tiếptrực tiếp xổ số hôm nayket wa xsKQ XOSOxoso onlinexo so truc tiep hom nayxsttso mien bac trong ngàyKQXS3Msố so mien bacdu doan xo so onlinedu doan cau loxổ số kenokqxs vnKQXOSOKQXS hôm naytrực tiếp kết quả xổ số ba miềncap lo dep nhat hom naysoi cầu chuẩn hôm nayso ket qua xo soXem kết quả xổ số nhanh nhấtSX3MIENXSMB chủ nhậtKQXSMNkết quả mở giải trực tuyếnGiờ vàng chốt số OnlineĐánh Đề Con Gìdò số miền namdò vé số hôm nayso mo so debach thủ lô đẹp nhất hôm naycầu đề hôm naykết quả xổ số kiến thiết toàn quốccau dep 88xsmb rong bach kimket qua xs 2023dự đoán xổ số hàng ngàyBạch thủ đề miền BắcSoi Cầu MB thần tàisoi cau vip 247soi cầu tốtsoi cầu miễn phísoi cau mb vipxsmb hom nayxs vietlottxsmn hôm naycầu lô đẹpthống kê lô kép xổ số miền Bắcquay thử xsmnxổ số thần tàiQuay thử XSMTxổ số chiều nayxo so mien nam hom nayweb đánh lô đề trực tuyến uy tínKQXS hôm nayxsmb ngày hôm nayXSMT chủ nhậtxổ số Power 6/55KQXS A trúng roycao thủ chốt sốbảng xổ số đặc biệtsoi cầu 247 vipsoi cầu wap 666Soi cầu miễn phí 888 VIPSoi Cau Chuan MBđộc thủ desố miền bắcthần tài cho sốKết quả xổ số thần tàiXem trực tiếp xổ sốXIN SỐ THẦN TÀI THỔ ĐỊACầu lô số đẹplô đẹp vip 24hsoi cầu miễn phí 888xổ số kiến thiết chiều nayXSMN thứ 7 hàng tuầnKết quả Xổ số Hồ Chí Minhnhà cái xổ số Việt NamXổ Số Đại PhátXổ số mới nhất Hôm Nayso xo mb hom nayxxmb88quay thu mbXo so Minh ChinhXS Minh Ngọc trực tiếp hôm nayXSMN 88XSTDxs than taixổ số UY TIN NHẤTxs vietlott 88SOI CẦU SIÊU CHUẨNSoiCauVietlô đẹp hôm nay vipket qua so xo hom naykqxsmb 30 ngàydự đoán xổ số 3 miềnSoi cầu 3 càng chuẩn xácbạch thủ lônuoi lo chuanbắt lô chuẩn theo ngàykq xo-solô 3 càngnuôi lô đề siêu vipcầu Lô Xiên XSMBđề về bao nhiêuSoi cầu x3xổ số kiến thiết ngày hôm nayquay thử xsmttruc tiep kết quả sxmntrực tiếp miền bắckết quả xổ số chấm vnbảng xs đặc biệt năm 2023soi cau xsmbxổ số hà nội hôm naysxmtxsmt hôm nayxs truc tiep mbketqua xo so onlinekqxs onlinexo số hôm nayXS3MTin xs hôm nayxsmn thu2XSMN hom nayxổ số miền bắc trực tiếp hôm naySO XOxsmbsxmn hôm nay188betlink188 xo sosoi cầu vip 88lô tô việtsoi lô việtXS247xs ba miềnchốt lô đẹp nhất hôm naychốt số xsmbCHƠI LÔ TÔsoi cau mn hom naychốt lô chuẩndu doan sxmtdự đoán xổ số onlinerồng bạch kim chốt 3 càng miễn phí hôm naythống kê lô gan miền bắcdàn đề lôCầu Kèo Đặc Biệtchốt cầu may mắnkết quả xổ số miền bắc hômSoi cầu vàng 777thẻ bài onlinedu doan mn 888soi cầu miền nam vipsoi cầu mt vipdàn de hôm nay7 cao thủ chốt sốsoi cau mien phi 7777 cao thủ chốt số nức tiếng3 càng miền bắcrồng bạch kim 777dàn de bất bạion newsddxsmn188betw88w88789bettf88sin88suvipsunwintf88five8812betsv88vn88Top 10 nhà cái uy tínsky88iwinlucky88nhacaisin88oxbetm88vn88w88789betiwinf8betrio66rio66lucky88oxbetvn88188bet789betMay-88five88one88sin88bk88xbetoxbetMU88188BETSV88RIO66ONBET88188betM88M88SV88Jun-68Jun-88one88iwinv9betw388OXBETw388w388onbetonbetonbetonbet88onbet88onbet88onbet88onbetonbetonbetonbetqh88mu88Nhà cái uy tínpog79vp777vp777vipbetvipbetuk88uk88typhu88typhu88tk88tk88sm66sm66me88me888live8live8livesm66me88win798livesm66me88win79pog79pog79vp777vp777uk88uk88tk88tk88luck8luck8kingbet86kingbet86k188k188hr99hr99123b8xbetvnvipbetsv66zbettaisunwin-vntyphu88vn138vwinvwinvi68ee881xbetrio66zbetvn138i9betvipfi88clubcf68onbet88ee88typhu88onbetonbetkhuyenmai12bet-moblie12betmoblietaimienphi247vi68clupcf68clupvipbeti9betqh88onb123onbefsoi cầunổ hũbắn cáđá gàđá gàgame bàicasinosoi cầuxóc đĩagame bàigiải mã giấc mơbầu cuaslot gamecasinonổ hủdàn đềBắn cácasinodàn đềnổ hũtài xỉuslot gamecasinobắn cáđá gàgame bàithể thaogame bàisoi cầukqsssoi cầucờ tướngbắn cágame bàixóc đĩaAG百家乐AG百家乐AG真人AG真人爱游戏华体会华体会im体育kok体育开云体育开云体育开云体育乐鱼体育乐鱼体育欧宝体育ob体育亚博体育亚博体育亚博体育亚博体育亚博体育亚博体育开云体育开云体育棋牌棋牌沙巴体育买球平台新葡京娱乐开云体育mu88qh88

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *