2,3K подписчиков

Особенности работы с микросхемами памяти

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

Суть данного метода не нуждается в особых комментариях и сводится лишь к тому, что на ядро микросхемы памяти необходимо подавать напряжение ниже или выше штатного. Напомню, что штатным напряжением для большинства микросхем является диапазон 2.7-3.6 вольта, но в то же время многие микросхемы допускают подъём напряжения до 4.6 вольта, что является теоритическим максимумом, но на практике больше 4 вольт повышать напряжение не стоит, что бы не подвергать выходу из строя массив ячеек и внутреннюю логику микросхем. Что нам даёт такое изменение напряжения. Для этого обратимся к нашей блок схеме и вспомним, что основой работы самых важных модулей является HV генератор, который как уже упоминалось работает по некому табличному методу, следовательно при пониженном и повышенном напряжении питания относительно штатных значений стабильность его работы нарушается, иными словами если мы к примеру опустили значение напряжения питания ядра до двух вольт, то все расчётные напряжения HV генератора так же уменьшатся в следствие того, что стабилизация HV генератора не в состоянии скорректировать такое падение напряжение. В некоторых случаях при большом износе ячеек, когда пороги детектирования Sence amplifier находятся далеко за пределами актуальных для текущего состояния микросхемы, такой подход может помочь корректно вычитать проблемные участки микросхемы, что положительно сказывается на результате восстановления данных. Аналогичная ситуация происходит и при повышении напряжения питания с той лишь разницей, что выходное напряжение HV генератора будет выше расчётного. При применении данного метода так же стоит обратить Ваше внимание на то, что методика помогает далеко не всем микросхемам, так как у многих из них, особенно имеющих 2 раздельных канала питания (VCC и VCCQ), понижение напряжения ядра ниже документированного нижнего предела приводит к блокировке HV генератора и соответственно чтение данных становится невозможным.

Кроме того данная методика несёт в себе и большие опасности при восстановлении информации. Для этого ещё раз обратимся к нашей блок схеме и посмотрим с какими подсистемами он связан. Всё было бы хорошо, если бы генератор был связан только с Sence amplifier как это сделано у SLC памяти, но он ещё связан и с декодером строк, то есть по уровням напряжений одного из каналов HV генератора определяется какую страницу из группы парных мы читаем и при нестабильной работе HV генератора работа декодера строк не гарантируется. Иными словами, если мы к примеру установили напряжение 2.5 вольта или ниже, то уже нет никаких гарантий, что декодер строк сделает «правильный выбор» и прочитает то, что мы попросили. Программными средствами такую проверку так же сделать невозможно, потому что мы заранее не знаем что должно быть в прочитанной странице и соответственно наличие зелёных строк при перечитывании микросхемы не означает, что данные в казалось бы корректно перечитанных страницах будут достоверные, хоть при этом и валидные с точки зрения ECC. По этой причине, уважаемые пользователи пользуйтесь данной методикой очень осторожно ни в коем случае не отключая оценку степени различия по которой у некоторых контроллеров можно понять читается то, что нужно или нет. Так же стоит помнить, что применение данной методики крайне не желательно при работе технологии Read Retry !!!

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

Для охлаждения микросхемы требуется холодильник или морозильная камера позволяющие охлаждать устройство считывания с установленной микросхемой в диапазоне температур от -20 до +5, при этом бывают случаи, когда нижняя температура требуется гораздо ниже и приходится использовать охлаждение жидким азотом. При этом стоит учесть риск выхода из строя устройства считывания, так как оно не рассчитано на работу при таких температурах. Для нагрева микросхемы так же необходимо пользоваться сторонними приборами, такими как термовоздушная паяльная станция или обычный паяльник приложенный к микросхеме напрямую или через маленький радиатор. Обращу Выше внимание на то, что температуры требующиеся для некоторых микросхем находятся в пределах 100-350 градусов, в некоторых редких случаях могут доходить даже до 400-420 градусов, что накладывает серьёзные ограничения на применение данной технологии по причине порчи устройства считывания и большой вероятности выхода из строя микросхемы, так как нормальная (штатная) температура в процессе работы микросхемы не должна превышать +70 без риска выхода из строя, а к примеру температуры +260 допускаются не более чем на 10 секунд и то в процессе пайки. Пожалуй самый важный недостаток метода заключается в том, что он работает на очень ограниченном наборе микросхем, то есть подавляющее большинство современной памяти не улучшает чтение при охлаждении или нагреве, что так же справедливо и для микросхем с одним ID из разных партий, в результате чего в каждом конкретном случае приходится проверять работоспособность данной методики при этом очень сильно рискуя повредить как данным хранящимся в микросхеме, так и самой микросхеме. Особую проблему создаёт необходимость нагрева монолитов для решения проблемы качества дампов, что в подавляющем числе случаев требует наличия специализированного игольчатого адаптера, так как пайка тонкими проводами не выдерживает, припой плавится и контакт в зоне пайки исчезает. При изменении температуры отличной от штатной крайне не желательно применение технологии Read Retry, так как уже были достоверно зафиксированы случаи выхода из строя системы управления HV генератора либо самого HV генератора микросхемы со всеми вытекающими из этого последствиями. Последняя технология из нашего списка Read Retry. Скажу честно, очень долгое время в существование данной технологии практически никто не верил и можно даже сказать, что людей продвигавших идею о существовании подобной технологии иногда мягко говоря считали неразумными и все проблемы чтения списывали именно на неисправность памяти, на перегрев в процессе выпаивания, на плохо зачищенные контакты и т.д. и т.п. … Но вот однажды, если память не изменяет, во второй половине 2012 года нам всё же удалось получить информацию об этой технологии для нескольких типов микросхем, одной из которых были TLC и MLC микросхемы Micron (Intel), и во вторую очередь это были микросхемы Hynix. Испытания естественно проводились на тех экземплярах, которым не помогали ранее описанные методики, то есть охлаждение/нагрев и уменьшение/увеличение напряжение ядра. После первых же испытаний стало ясно, что технология действительно существует у всех без исключения TLC микросхем и у всех более менее современных MLC микросхем. С MLC правда оказалось вне намного интереснее, то есть выяснилось, что данную технологию производители начали применять в основном с появлением норм 32 нанометра, у более старых MLC выпущенных по тех. процессу 43/45 нанометров использование Read Retry практически не встречалось. Причина по которой данная технология вообще появилась кроется именно в уменьшении технологических норм и как следствии увеличения плотности компоновки транзисторов в массиве ячеек и смысл проблем заключается в следующем — как надеюсь всем известно принцип работы памяти типа NAND основан в некотором смысле на хранении электрического заряда, следовательно там где есть заряд, есть и электрическое поле, при этом при плотной компоновке сделать расстояние транзисторами идентичным достаточно проблематично и в некоторых местах возникает «пересечение» полей, оказывающее взаимное влияние друг на друга, что обуславливает появление так называемых нестабильных бит, которые только усугубляют ситуацию вызванную неисправными транзисторами (постоянно неверные биты). Естественно производители конечных изделий уже достаточно давно научились обходить эту проблему из без технологии Read Retry применения методики Wear Leveling, одну из частей которой в нашем комплексе мы устраняем применением преобразования XOR для страницы. Как показала практика применение технологии Wear Leveling до поры до времени было очень даже оправдано, но это происходило до тех пор, пока с очередным изменением технологических норм не произошёл резкий скачок числа постоянно неверных и нестабильных бит, число которых в процессе эксплуатации неизменно растёт. Вот тогда то и появилась эта не побоюсь слова — уникальная технология , которая в переводе означает повторное чтение, но что бы не было заблуждение на этот счёт могу сказать, что это не простая попытка повторного, третьего или ещё какого то чтения одной и тоже страницы, это целая система команд микросхемы памяти, которая временно приводит к изменениям в некоторых подсистемах микросхемы, работа которых связана с работой HV генератора.

Как я уже писал ранее у современных HV генераторов есть три канала. Один канал обеспечивает питание массива ячеек и этот канал статичен, то есть его напряжение постоянно. Второй канал управляет режимом выбора страницы из группы парных страниц, а вот третий канал самый интересный, он так же как и второй канал управляется модулем Control Circuit и формирует напряжения, которые считаются нулевой точкой для компараторов определяющих и преобразующих напряжение выходящее с транзистора в логические нули и единицы, ведь логично предположить, что у изношенной ячейки в следствие изменения ёмкости или сопротивления или у транзистора находящегося под «влиянием» поля соседа элементарно может измениться уровень заряда плавающего затвора, в следствие чего может измениться и режим работы транзистора, то есть он может не открыться либо может открыться/закрыться не полностью, что повлечёт за собой ошибки в определении результата и именно по этой причине в современной памяти предусмотрена возможность установки нулевой точки детектирования уровня напряжения транзистора (как это работает можно почитать в документации на любой компаратор). К слову о ошибках детектирования напряжения ячеек. Многие пользователи уже сталкивались современной TLC памятью и так же сталкивались со страницами, которые не перечитываются ни при каких обстоятельствах, но при этом мало кто смотрел содержимое таких страниц… Они как правило преимущественно заполнены FF, а преимущественно потому, что честь байтов таких страниц заполнена значениями 7F, BF, DF, EF, F7, FB, FD, FE, то есть байтами отличающимися от FF на один бит и эти различия как раз и вызваны ошибками детектирования уровней напряжения транзисторов.

Как в этом случае работает технология Read Retry:

Прочитали страницу и попытались скорректировать ошибки. На одном или более из регионов страницы защищённом ECC обнаружили слишком большое кол-во шибок, превышающих корректирующую способность применяемого в конкретном случае алгоритма коррекции. Микросхеме подаётся специальная команда, которая меняет напряжение на третьем канале HV генератора по специальному алгоритму. Делается чтение нескорректированных участков страницы и делается попытка коррекции. Если после перечитывания фрагмента коррекция происходит успешно, то переходим к следующей странице, если же нет, то продолжаем менять напряжение на третьем канале HV генератора и перечитывать/корректировать до тех пор, пока либо страница не скорректируется, либо не закончатся допустимые для данной микросхемы диапазоны изменения напряжения на третьем канале HV генератора. Если какой то диапазон страницы так и не был скорректирован, то с точки зрения логики контроллера такая страница должна быть исключена из трансляции, точнее должен быть исключён целый блок и его должны заменить блоком из резервной области, но это само собой только в случае, если такая микросхема работает в составе накопителя, в нашем комплексе естественно процедура замещения блока не происходит и мы в протоколе перечитывания получаем сообщение содержащее статусе коррекции один или более знаков » — «. С точки зрения теории и практики технология просто замечательная, так как позволяет решать проблемы чтения без изменения условий эксплуатации и это бесспорно удобнее и эффективнее чем альтернативные методики, что подтверждает очень даже внушительная статистика по решению задач, которые ранее практически невозможно было решить альтернативными методами, такими как изменение температуры и напряжения ядра микросхемы, но тем не менее данная технология имеет ряд ограничений и нюансов:

Данная технология не является универсальной для всех микросхем. Каждый производитель делает свою собственную реализацию даже в пределах разного поколения микросхем, что приводит к ситуации, когда на новое поколение микросхем, к примеру Toshiba приходится заниматься исследованиями и изысканиями практически с нуля. Почему исследованиями… Ответ прост. Производители микросхем данную технологию держат в секрете и дают её только тем клиентам, которые покупают продукцию (микросхемы) очень большими партиями, как правило это производители контроллеров и накопителей на базе памяти типа NAND, гораздо реже производители прочего оборудования. Данная технология, так же как и альтернативные методики не может решить проблемы чтения «убитой памяти», при этом при относительно живой памяти она зачастую является единственным вариантом для улучшения качества дампов, потому что как показала практика, изменение температуры и напряжения ядра микросхемы далеко не всегда оказывают какое либо значительное воздействие на качество чтения, если конечно не брать в расчёт микросхемы некоторых типов, которых не так уж и много. Данная технология не очень сильно совместима с альтернативными методиками улучшения качества чтения. Это обусловлено привязкой данной технологии к работе HV генератора, который находясь в нестабильном режиме работы не сможет достаточно точно изменять пороги детектирования напряжений транзисторов. Но тем не менее это совсем не означает, что нельзя при использовании Read Retry применять к примеру понижение или повышение напряжение питания микросхемы. Просто при применении альтернативных методик в качестве дополнительных мер необходимо учитывать риски выхода из строя микросхемы памяти и такие случаи уже встречались несколько раз. При этом в некоторых случаях комбинирование Read Retry и альтернативных методов позволяет добиться гораздо лучших результатов, чем просто при использовании Read Retry, так что в принципе комбинирование методик имеет право на жизнь и может оказаться очень полезным.