Перейти к тексту

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Вся введенная информация защищена.

  • Закрыть [x]

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

Вся введенная информация защищена.

  • Закрыть [x]

Методика ввода ошибок в модули памяти DDR и DDR2

Кристиан Медина (Cristian Medina), ведущий инженер-тестировщик, IBM
Кристиан Медина (Cristian Medina) работает инженером вычислительной аппаратуры и в настоящее время занимается функциональной проверкой и тестированием разработки IBM System x. Он является участником группы EMET Test, занимающейся проверкой надежности, готовности и обслуживаемости серверов System x. Отвечает за разработку устройств, требуемых для выполнения такой проверки. Владеет языками логического проектирования и HDL (VHDL и Verilog), а также иногда программирует (Visual Basic, C++ и Java™). Связаться с ним можно по адресу cmedina@us.ibm.com.

Описание:  Создайте модуль памяти с двухрядным расположением выводов - DIMM, способный вводить ошибки в сервер IBM System x и другие системы с модулями памяти с удвоенной скоростью передачи данных - DDR и DDR2, для облегчения тестирования надежности сетей, grid-сетей и центров обработки данных.

Дата:  21.02.2007
Уровень сложности:  сложный
Активность:  1056 просмотров
Комментарии:  


Примечание редактора: Приведенные ниже инструкции предназначены для опытных инженеров. Если у вас нет опыта в распайке модулей памяти - не пытайтесь создать это устройство. Также настоятельно рекомендуется прочитать эту статью полностью перед попыткой выполнить какое-либо из описанных здесь действий. Читатель принимает на себя всю ответственность за результаты выполнения этих инструкций.

Введение: Создание неисправности

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

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

В данной короткой статье обсуждаются методики проверки ситуаций неисправности модулей памяти с удвоенной скоростью передачи данных (double data rate - DDR). Я рассмотрю возможные ошибки, методы для их генерирования и ожидаемую реакцию системных компонентов. Если вы интересуетесь аналогичными методиками для ввода ошибок при использовании модулей памяти с двухрядным расположением выводов с полной буферизацией (FBD), прочтите статью "Устройства ввода ошибок FBD-памяти для компьютеров IBM System x ".

Проект устройства

Поскольку архитектура DDR-памяти требует наличия шины, используемой для доступа к более чем одному модулю памяти с двухрядным расположением выводов (dual in-line memory module - DIMM), метод простого заземления линии данных не подходит для ввода ошибок этого типа. Следование этому методу вызовет возникновение ошибки во всех модулях памяти DIMM, подключенных к этой шине, что аннулирует цель тестирования - изолировать конкретный DIMM-модуль.

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

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

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

Ошибки, вводимые устройством

Вот ошибки, которые вы будете вводить в систему, и некоторые подробности о каждой из них:

  • Одноразрядные ошибки. Этот тип ошибок обычно возникает при повреждении линий данных, выходящих из микросхемы памяти в DIMM. Они вызываются несколькими причинами, такими как физическое повреждение, перегрев, или электростатический разряд (electro-static discharge - ESD). Исправить такую ошибку и уведомить пользователя о поврежденном DIMM-модуле могут только те системы, которые поддерживают контроль ECC.
  • Многоразрядные или двухразрядные ошибки. По тем же причинам, что и в предыдущем случае, многоразрядные или двухразрядные ошибки возникают при повреждении более одной линии данных. Эти ошибки не восстанавливаются, если только система не работает с определенной конфигурацией памяти, спроектированной для решения этой проблемы (например, зеркалирование).

Реализация

ВАЖНО: Описанные здесь технические приемы должны выполняться исправными инструментами тем, кто способен проводить микроскопическую пайку. Неправильное создание этого устройства может привести к поломке DIMM-модуля и к повреждению системы, в которую он вставлен. Прочитайте внимательно всю статью и осмыслите все действия перед началом работы над своим собственным устройством.

Чтобы изменить DDR/DDR2 DIMM для одноразрядных и двухразрядных ошибок, выполните следующие действия:

  1. Возьмите DIMM-модуль памяти и убедитесь в том, что он находится в рабочем состоянии, путем подключения в сервер и проверки нормальной загрузки и работы операционной системы без появления ошибки в журнале ошибок или исключения модуля из работы. Завершения процедуры POST недостаточно. Если DIMM-модуль просто сбоит, POST необязательно обнаружит проблему, а загрузка Windows® может вызвать синий экран. Причина этого заключается в том, что память не тестируется тщательно во время выполнения процедуры POST.
  2. Найдите блок резисторов (Rpacks). Это обычно 8-ножечные микросхемы, содержащие 22-омные резисторы. На рисунке 1 показан типичный Rpack.

    Рисунок 1. Блок резисторов
    Рисунок 1. Блок резисторов

  3. Теперь определитесь, какие ножки будут изменены. Попробуйте выбрать DQ-дорожки, соединенные с самыми левыми ножками Rpacks. Для возможности генерирования SB-ошибки (когда включен один тумблер) и DB-ошибки (когда включены оба тумблера) нам понадобятся два тумблера. Важно также выбрать DQ-линии, находящиеся подальше. Для генерирования DB-ошибки второй повреждаемый разряд должен быть расположен в другой микросхеме DRAM. Обычно ножки 3 (DQ0) и 33 (DQ24) можно использовать для DDR2 вместе с ножками 2 (DQ0) и 31 (DQ19).
  4. На следующем шаге нужно использовать хорошие кусачки для перекусывания самой левой секции блока резисторов (которая эквивалентна одному из резисторов внутри микросхемы). При этом откроются две контактныеплощадки: одна соединяется с позолоченным контактом, находящимся в DIMM-гнезде, а вторая соединяется с дорожкой, ведущей к микросхемам DRAM. На рисунке 2 изображена схема того, как это может выглядеть.

    Рисунок 2. Блок резисторов после откусывания
    Рисунок 2. Блок резисторов после откусывания

  5. Припаяйте четыре кусочка как можно более короткого провода ко всем четырем контактным площадкам, рассмотренным выше. ВНИМАНИЕ: НЕ ИСПОЛЬЗУЙТЕ ПАЯЛЬНИК С ТЕМПЕРАТУРОЙ БОЛЕЕ 500 ГРАДУСОВ ПО ФАРЕНГЕЙТУ. Иначе можно повредить или отделить контактную площадку и оставить следы на DIMM. Более низкая температура облегчает формирование паяного соединения так, чтобы площадка соединилась с проводом. Высокая температура делает припой жидким, а низкая позволяет некоторым участкам припоя оставаться в твердом состоянии (это полезно для удлинения соединения и легкого присоединения провода).
  6. Разместите тумблеры на DIMM-модуле. Используйте эпоксидную смолу для их фиксации.
  7. Припаяйте провода к тумблерам так, чтобы при замыкании тумблеров разрешался проход данных через DRAM к DIMM-гнезду, а при размыкании данные не могли проходить, и генерировалась бы ошибка.
  8. Устройство готово (см. рисунок 3). Вставьте его в сервер, проверьте, что операционная система может загрузиться. Запустите программу тестирования памяти. Затем включите один тумблер. Это вызовет возникновение одноразрядной ошибки - система должна остаться в рабочем состоянии. Подождите 15 секунд и включите второй тумблер. Система должна перезагрузиться, если она использует линейную конфигурацию памяти.

    Рисунок 3. Готовое устройство для тестирования
    Рисунок 3. Готовое устройство для тестирования

Использовать это устройство довольно просто: размыкание каждого тумблера по отдельности генерирует одноразрядную ошибку. Размыкание обоих тумблеров генерирует многоразрядную ошибку.


Резюме

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


Ресурсы

Научиться

Получить продукты и технологии

Обсудить

Об авторе

Кристиан Медина (Cristian Medina) работает инженером вычислительной аппаратуры и в настоящее время занимается функциональной проверкой и тестированием разработки IBM System x. Он является участником группы EMET Test, занимающейся проверкой надежности, готовности и обслуживаемости серверов System x. Отвечает за разработку устройств, требуемых для выполнения такой проверки. Владеет языками логического проектирования и HDL (VHDL и Verilog), а также иногда программирует (Visual Basic, C++ и Java™). Связаться с ним можно по адресу cmedina@us.ibm.com.

Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Спасибо. Эта запись была помечена для модератора.


Помощь по сообщениям о нарушениях

Сообщение о нарушениях

Сообщение о нарушении не было отправлено. Попробуйте, пожалуйста, позже.


developerWorks: вход


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


При первом входе в developerWorks для Вас будет создан профиль. Выберите информацию отображаемую в Вашем профиле — скрыть или отобразить поля можно в любой момент.

Выберите ваше отображаемое имя

При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

(Должно содержать от 3 до 31 символа.)


Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Оценить эту статью

Комментарии

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Linux
ArticleID=197081
ArticleTitle=Методика ввода ошибок в модули памяти DDR и DDR2
publish-date=02212007
author1-email=cmedina@us.ibm.com
author1-email-cc=

Теги

Help
Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Используйте ползунок, чтобы отразить больше или меньше тегов.

КнопкаПопулярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere).

Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).

Используйте форму поиска, чтобы найти любой контент с данным тегом в My developerWorks. Кнопка Популярные теги отображает самые распространенные теги для данной области контента (например: Java, Linux, WebSphere). Кнопка Мои теги отображает Ваши теги для данной области контента (например: Java, Linux, WebSphere).