реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Некромантия (восстановление DDR2 памяти), Как определить битый чип?
Сергей Борщ
сообщение Mar 7 2008, 12:46
Сообщение #1


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Досталось штук 20 битых модулей DDR2 памяти. Битая не совсем, т.е. комп с ними стартует, но MemTest86 вылетает с ошибкой (unexpected interrupt) в самом начале теста. На живой памяти тест проходит.
Смею предположить, что на каждой из плашек выбита какая-то одна микросхема и какое-то количество можно оживить, заменяя битые на исправные с других плашек (оборудование для перепайки доступно, микросхемы на плашках одинаковые). В задачнике спрашивается - как определить, какую именно микросхему надо менять? Боюсь, что поиск методом Монте Карло (научного тыка) будет малоэффективен. Есть ли какой-то алгоритм, позволяющий найти битые чипы минимальным количеством перепаек, исходя из того, что на каждой плашке по 8 микросхем и считаем, что битая из них только одна?


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
vetal
сообщение Mar 7 2008, 13:53
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 2 095
Регистрация: 27-08-04
Из: Россия, СПб
Пользователь №: 553



может для начала определить по маркировки точное наименование микросхемы, затем скачать даташит выставить правильные тайминги?
Go to the top of the page
 
+Quote Post
TinyQ
сообщение Mar 7 2008, 22:18
Сообщение #3


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 29-04-07
Из: Минск
Пользователь №: 27 397



Я делал так:
в первый слот вставлял заведомо рабочую планку, а во второй неисправную.
грузился с CD-ROM и с сд-диска запускал программу теста памяти(возможно туже что и вы).
программа на тестах запись-чтение четко показывала в каких битах постоянные ошибки.
планки 64бит -> 8бит на микросхему. стоят они по порядку. младший бит со стороны первого контакта.
попадалось что неисправны были не микросхемы а резисторы которые стоят по шине данных.
удачи.
Go to the top of the page
 
+Quote Post
DRUID3
сообщение Mar 8 2008, 00:33
Сообщение #4


山伏
*****

Группа: Свой
Сообщений: 1 827
Регистрация: 3-08-06
Из: Kyyiv
Пользователь №: 19 294



Кстати, где-то читал что толи Knoppix, то ли еще какой дистрибутив работает с такими планками на ура)))...


--------------------
Нас помнят пока мы мешаем другим...
//--------------------------------------------------------
Хороший блатной - мертвый...
//--------------------------------------------------------
Нет старик, это те дроиды которых я ищу...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 8 2008, 09:13
Сообщение #5


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Извиняюсь, памяти DDR, а как менять название темы я что-то не нашел. Но думаю это не сильно меняет расклад.

Спасибо всем откликнувшемся.
Цитата(TinyQ @ Mar 8 2008, 00:18) *
в первый слот вставлял заведомо рабочую планку, а во второй неисправную.
О! А я чего-то только одну планку вставлял. Мысль о том, что неизвестно, какой из слотов попадает в младшие адреса и неизвестно, куда попадет программа поставили меня в тупик. После вашего сообщения понял, что вариантов всего два, можно и метод Монте-Карло применить.
Цитата(TinyQ @ Mar 8 2008, 00:18) *
планки 64бит -> 8бит на микросхему. стоят они по порядку. младший бит со стороны первого контакта.
Спасибо! В понедельник попробую.
Цитата(TinyQ @ Mar 8 2008, 00:18) *
попадалось что неисправны были не микросхемы а резисторы которые стоят по шине данных.
Резисторы прозвонил. Они сделаны напылением прямо на плате. Звонятся все. В понедельник буду пробовать с живой планкой в первом слоте. Отпишусь
Цитата(vetal @ Mar 7 2008, 15:53) *
может для начала определить по маркировки точное наименование микросхемы, затем скачать даташит выставить правильные тайминги?
Я полагаю, что тайминки берутся из eeprom на самой плашке и производитель туда записал самые лучшие значения. Или есть какая-то веская причина выставлять тайминги вручную? Если проверка по методу, предложенному TinyQ покажет "плавающие" ошибки, можно будет считать и сравнить eeprom на разных плашках. Не исключаю их слета, но для чтения надо будет выпаивать слот из дохлой материнки, писать на меге программатор 24L02 или паять железо для чего-то типа лошади... хотелось бы по возможности этого избежать.
Цитата(DRUID3 @ Mar 8 2008, 02:33) *
Кстати, где-то читал что толи Knoppix, то ли еще какой дистрибутив работает с такими планками на ура)))...
Мм... пожалуй, если вопрос встанет так, я лучше куплю новую память smile.gif


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 8 2008, 13:48
Сообщение #6


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(TinyQ @ Mar 8 2008, 01:18) *
планки 64бит -> 8бит на микросхему. стоят они по порядку. младший бит со стороны первого контакта.
Это далеко не всегда так, бывают и 16бит микросхемы и даже 32, порядок бывает
тоже очень разным, иногда даже чередуется первая и вторая стороны дима,
иногда на дешевых модулях используют половинки микросхем причем как по размеру так и по
разрядности(типа половина битая половина целая).

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

2 Сергей Борщ напишите точное название чипов, размер модуля Мб, ....
А лучше сфоткайте модуль с двух сторон с высоким разрешением и приатачте здесь или в PM
тогда можно будет сказать о алгоритме поиска дохлых чипов по выводу memtest86

Я просто в свое время занимался ремонтом памяти в промышленных масштабах... smile.gif
Go to the top of the page
 
+Quote Post
makc
сообщение Mar 8 2008, 18:57
Сообщение #7


Гуру
******

Группа: Админы
Сообщений: 3 621
Регистрация: 18-10-04
Из: Москва
Пользователь №: 904



Цитата(DRUID3 @ Mar 8 2008, 03:33) *
Кстати, где-то читал что толи Knoppix, то ли еще какой дистрибутив работает с такими планками на ура)))...


Есть патчи для ядра, с помощью которых можно на основе результатов тестирования памяти обеспечить нормальную работу системы путем исключения некоторой области памяти.
Читать здесь:
http://rick.vanrein.org/linux/badram/
http://fgouget.free.fr/misc/badram.shtml


--------------------
BR, Makc
В недуге рождены, вскормлены тленом, подлежим распаду. (с) У.Фолкнер.
Go to the top of the page
 
+Quote Post
TinyQ
сообщение Mar 8 2008, 23:07
Сообщение #8


Участник
*

Группа: Свой
Сообщений: 33
Регистрация: 29-04-07
Из: Минск
Пользователь №: 27 397



Прикрепленный файл  Elixir_DDR1_256Mb_Die_B_Draco_UDIMM_R2.2.pdf ( 247.57 килобайт ) Кол-во скачиваний: 1291


Когда я этим занимался, то руководствовался этим PDF.
Других планок не попадалось, так что спорить не буду.
У меня тоже были DDR, а DDR2 по идее не сильно отличается.
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 8 2008, 23:21
Сообщение #9


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(TinyQ @ Mar 9 2008, 02:07) *
Когда я этим занимался, то руководствовался этим PDF.
Дык в приатаченном Вами pdf черным по монитору написанно:
Unbuffered DDR DIMM based on 256M bit die B device,
organized as either 32Mbx8 or 16Mbx16
...............................
M2U51264DS8HB3G is 512MB modules organized as dual ranks using sixteen 32Mx8
TSOP devices. M2U25664DS88B3G is 256MB modules organized as single rank using eight 32Mx8 TSOP devices. M2U12864DSH4B3G
is 128MB modules, organized as single rank using four 16Mx16 TSOP devices.


Но документик кстати зачетный, я брал даташиты от Micron и Samsung, там
описание хуже и приходилось инфу собирать из разных даташитов.

А вариантов разводки дима на самом деле очень много.
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 10 2008, 18:12
Сообщение #10


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(singlskv @ Mar 8 2008, 15:48) *
2 Сергей Борщ напишите точное название чипов, размер модуля Мб, ....
А лучше сфоткайте модуль с двух сторон с высоким разрешением и приатачте здесь или в PM
тогда можно будет сказать о алгоритме поиска дохлых чипов по выводу memtest86
Докладываю о проделанной работе.
1) Фотки двух типов модулей сделал, прилагаю.
2) Все модули пропустил через конвекционную печку. При этом на части модулей наклейка съежилась и утянула микросхемы с мест. "- Болван! -Согласен "(с) Операция "Ы". Поставить их на место не проблема, если будет результат с неповрежденными модулями.
3) Десяток неповредившихся модулей попытался проверить.
Результ: два живы (можно использовать как доноры заведомо исправных микросхем).
Один модуль не дает компу даже включить мониотор.
Один модуль (на картинке DDR_1.jpg) выдал ошибку в тесте №1 (Address test, own test), при этом bit pattern был 00100000. Переставил на него третью справа микросхему с живого - результат не изменился.
Остальные модули, даже в паре с живой памятью в младших адресах, выдают в течении секунды-двух какие-то ошибки в тесте №2 (moving inversion), после чего на pattern 00000000 происходит Unexpected interrupt и на экран выводится содержимое регистров процесcора (всегда одинаковое насколько запомнил ключевые регистры, PC=003C1A). Успевал заметить, что для одного модуля пишется error pattern 033DFF40, для некоторых 0xFFFFFFFF. После этого программа реагирует на перечисленные в нижней строке клавиши, но попытка запустить тест снова приводит к повисанию системы.

Что делать дальше?


P.S. Нашел вот у себя еще такой документ - PC1600 and PC2100 DDR SDRAM Unbuffered DIMM Design Specification rev 1.1. Может кому пригодится. Сам я пока не пойму, каким местом его приложить к моей проблеме
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
 

Прикрепленные файлы
Прикрепленный файл  Unbuffered_DDR_design_spec_1.1.pdf ( 597.36 килобайт ) Кол-во скачиваний: 83
 


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 10 2008, 19:13
Сообщение #11


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Сергей Борщ @ Mar 10 2008, 21:12) *
1) Фотки двух типов модулей сделал, прилагаю.
к сожалению маркировку микросхем на фото видно не очень, но из того что удалось разглядеть,
у Вас все модули однотипные и с чипами 32мбитX8 и одна линия на модуль(вторая не запаянна)
Вариант разводки у Вас самый простой, те все подряд
Цитата
При этом на части модулей наклейка съежилась и утянула микросхемы с мест.
Да, снимать наклейки и отмывать следы от них, это обычно самая утомительная часть
всего процесса.
Цитата
3) Десяток неповредившихся модулей попытался проверить.
Результ: два живы (можно использовать как доноры заведомо исправных микросхем).
Возможно, кривая пайка всей серии, посмотреть пайки под мелкоскопом, плохие
пайки часто визуально отличаются от хороших, можно при этом в подозрительных местах легонько
пошевелить иголкой.
Цитата
Один модуль не дает компу даже включить мониотор.
Или залип в адресных линиях или неправильный eeprom, или совсем сдохший чип который
держит шину, проверьте температуру чипов
Цитата
Один модуль (на картинке DDR_1.jpg) выдал ошибку в тесте №1 (Address test, own test), при этом bit pattern был 00100000. Переставил на него третью справа микросхему с живого - результат не изменился.
Вот это самый правильный результат которого нужно добиться на остальных модулях,
те нужно получить Error pattern и адрес по которому он произошел, замена вероятно не помогла,
потому что каждый error pattern это 2 микросхеммы и нужно смотреть адрес
Цитата
Остальные модули, даже в паре с живой памятью в младших адресах, выдают в течении секунды-двух какие-то ошибки в тесте №2 (moving inversion), после чего на pattern 00000000 происходит Unexpected interrupt и на экран выводится содержимое регистров процесcора (всегда одинаковое насколько запомнил ключевые регистры, PC=003C1A). Успевал заметить, что для одного модуля пишется error pattern 033DFF40, для некоторых 0xFFFFFFFF. После этого программа реагирует на перечисленные в нижней строке клавиши, но попытка запустить тест снова приводит к повисанию системы.
При старте memtest нужно усиленно жать С(сменить настройки, ну или как оно там вызывается
в последних версиях) и методом перебора найти те номера тестов на которых будет показывать
вразумительный error pattern, вразумительный это макс байт, ну иногда 2
для того чтобы прога не вываливалась можно еще жать пробел для тормозов при заполнении всего
экрана ошибками

P.S. Чуть по позже найду у себя файлик с описанием для такого типа модулей...
Go to the top of the page
 
+Quote Post
Сергей Борщ
сообщение Mar 10 2008, 20:32
Сообщение #12


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



Цитата(singlskv @ Mar 10 2008, 21:13) *
к сожалению маркировку микросхем на фото видно не очень, но из того что удалось разглядеть, у Вас все модули однотипные и с чипами 32мбитX8 и одна линия на модуль(вторая не запаянна)
Да. Есть какое-то количество с двухсторонним монтажем, но их я оставил "на потом".
Цитата(singlskv @ Mar 10 2008, 21:13) *
Вот это самый правильный результат которого нужно добиться на остальных модулях, те нужно получить Error pattern и адрес по которому он произошел, замена вероятно не помогла, потому что каждый error pattern это 2 микросхеммы и нужно смотреть адрес
Можно подробнее, какие два корпуса соответствуют этому паттерну? Ошибок он там насчитал много, но паттерн оставался один и тот же. Если я правильно понял описание этого теста, в каждую ячейку пишется ее адрес. И сбой в 24 бите, получается, указывает на микросхему, которая подключена к 24 биту шины данных. В чем моя ошибка? Адрес я завтра посмотрю, но поменять даже два (если я с третьим слева не угадал) корпуса будет быстрее, чем постить сюда адрес и ждать ответа.
Цитата(singlskv @ Mar 10 2008, 21:13) *
При старте memtest нужно усиленно жать С(сменить настройки, ну или как оно там вызывается в последних версиях) и методом перебора найти те номера тестов на которых будет показывать вразумительный error pattern, вразумительный это макс байт, ну иногда 2 для того чтобы прога не вываливалась можно еще жать пробел для тормозов при заполнении всего экрана ошибками
Пробел жать пробовал, но, видимо, не успел.

Спасибо за помощь! Будут новые результаты - отпишусь.


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
singlskv
сообщение Mar 10 2008, 21:48
Сообщение #13


дятел
*****

Группа: Свой
Сообщений: 1 681
Регистрация: 13-05-06
Из: Питер
Пользователь №: 17 065



Цитата(Сергей Борщ @ Mar 10 2008, 23:32) *
Можно подробнее,
Ответил на email
Go to the top of the page
 
+Quote Post
Harbour
сообщение Mar 11 2008, 05:50
Сообщение #14


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Есть мем-тест написанный русским программером - он из spd вычитывает характеристики dimm'а и рисует его на экране - битые микросхемы просто подсвечиваются красным цветом. поищите - была довольно известная в свое время прога.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 00:04
Рейтинг@Mail.ru


Страница сгенерированна за 0.01551 секунд с 7
ELECTRONIX ©2004-2016