Emmc память в телевизоре что это

Обновлено: 05.07.2024

Память eMMC (embedded MultiMediaCard) – это не просто микросхема памяти, это твердотельный накопитель со встроенным контроллером, конструктивно выполненный в виде микросхемы. Внутри eMMC представляет из себя блок микросхем NAND памяти с управляющим контроллером. Такое решение очень приглянулось разработчикам аппаратуры, поскольку встроенный в eMMC микроконтроллер скрывает все тонкости работы с NAND, связанные с исправлением ошибок и управлением плохими блоками. Кроме того, интерфейс eMMC полностью совместим с "внешними" накопителями: MMC картами. Именно благодаря компактным размерам и удобствам применения накопители eMMC широко используются в самой разной аппаратуре.

Особенностью eMMC памяти является:

  1. Очень большой объем хранимых данных.
  2. Стандартизованный физический и логический интерфейс (спецификация JEDEC Embedded Multi-Media Card).

Фактически eMMC является периферийным устройством хранения информации.

Микросхемы eMMC могут работать в нескольких режимах шины данных. Режимы отличаются лишь скоростью передачи данных. Самый медленный: 1-bit bus (однобитный режим), однако в этом режиме наиболее удобно читать и записывать микросхему внутрисхемно, не выпаивая ее из аппаратуры. Поскольку микросхемы eMMC выпускаются в корпусах типа BGA, то режим внутрисхемного программирования может оказаться весьма привлекательным не смотря на значительно более низкую скорость.

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

Выбор программатора для семейства eMMC по названию микросхемы

Результаты поиска программатора для семейства "eMMC"

Для семейства eMMC микросхемы легко САМОСТОЯТЕЛЬНО ДОБАВИТЬ в список программируемых.

Сравнение разных моделей программаторов ChipStar для eMMC
МикросхемаJa­nusLy­nx+TAUPho­bosMTMT+MT­X+MT­++Ma­rs
H26M31001HPR - - +* - - - - - -
H26M31003GMR - - +* - - - - - -
KLM2G1HE3F - - +* - - - - - -
KLM2G1HE3F-B001 - - +* - - - - - -
KLM4G1FE3B - - +* - - - - - -
KLM4G1FE3B-B001 - - +* - - - - - -
KLM4G1FEAC - - +* - - - - - -
KLM4G1FEPD - - +* - - - - - -
ИТОГИJa­nusLy­nx+TAUPho­bosMTMT+MT­X+MT­++Ma­rs
- - +* - - - - - -

Примечание: + программирует, +* программирует, возможно требуется адаптер, - не программирует

Микросхемы семейства eMMC, которые скоро будут программироваться

Микросхемы, помеченные *** , легко САМОСТОЯТЕЛЬНО ДОБАВИТЬ в список программируемых.

D93C16GM525 *** FEMC004GMFE5-D12-13 *** FEMC004GMFG5-D12-13 *** FEMC008GMFE5-D12-23 *** FEMC008GMFG5-D12-23 *** FEMC016GMFE5-D12-43 *** FEMC016GMFG5-D12-43 *** GLS85VM0512P-S-I-E1 *** GLS85VM0512P-S-I-E2 *** GLS85VM0512P-S-I-LFW *** GLS85VM1001P-S-I-E1 *** GLS85VM1001P-S-I-E2 *** GLS85VM1001P-S-I-LFW *** GLS85VM1002E-S-I-BZY *** GLS85VM1002P-S-I-LFW *** GLS85VM1004A-M-I-LFW *** GLS85VM1004E-S-I-BZY *** GLS85VM1004G-S-I-BZY *** GLS85VM1004G-S-I-LFW *** GLS85VM1004Q-S-I-BZY *** GLS85VM1004Q-S-I-LFW *** GLS85VM1008A-M-I-LFW *** GLS85VM1008C-M-I-BZY *** GLS85VM1008E-S-I-BZY *** GLS85VM1008G-S-I-BZY *** GLS85VM1008Q-S-I-BZY *** GLS85VM1016A-M-I-LFW *** GLS85VM1016B-M-I-LFW *** GLS85VM1016C-M-I-BZY *** GLS85VM1016E-S-I-BZY *** GLS85VM1016G-S-I-BZY *** GLS85VM1016Q-S-I-BZY *** GLS85VM1032A-M-I-LFW *** GLS85VM1032B-M-I-LFW *** GLS85VM1032C-M-I-BZY *** GLS85VM1032G-S-I-BZY *** GLS85VM1032Q-S-I-BZY *** GLS85VM1064B-M-I-LFW *** GLS85VM1064C-M-I-BZY *** H26M31002GPR *** H9DP32A4JJBCGR *** IS21ES04G *** IS21ES08G *** IS21ES16G *** IS21ES32G *** IS21ES64G *** IS22ES04G *** IS22ES08G *** IS22ES16G *** IS22ES32G *** IS22ES64G *** KLM1G1CEHC *** KLM2G1DEHE *** KLM4G1FE3A *** KLM4G1YE4C *** KLM4G1YEMD *** KLM4G2DEHE *** KLM8G1GEAC *** KLM8G1GESD *** KLM8G1GETF *** KLM8G1WE4A *** KLM8G1WEMB *** KLM8G2FE3B *** KLM8G4DEHE *** KLMAG1JETD *** KLMAG2GE2A *** KLMAG2GE4A *** KLMAG2GEAC *** KLMAG2GESD *** KLMAG2WE4A *** KLMAG2WEMB *** KLMAG4FE3B *** KLMAG8DEHE *** KLMBG2JETD *** KLMBG4GE2A *** KLMBG4GE4A *** KLMBG4GEAC *** KLMBG4GESD *** KLMBG4WE4A *** KLMBG8FE3B *** KLMCG4JETD *** KLMCG8GE2A *** KLMCG8GE4A *** KLMCG8GEAC *** KLMCG8GESD *** KLMCG8WE4A *** KLMDGAGE2A *** KMDH6001DM *** MKEV008GCB-SS510 *** MTFC128GAPALNS-IT *** MTFC16GAKAECN-4M *** MTFC16GAKAENA-4M *** MTFC16GAPALBH-AAT *** MTFC16GAPALBH-AIT *** MTFC32GAKAECN-4M *** MTFC32GAKAENA-4M *** MTFC32GAPALBH-IT *** MTFC64GAKAEEY-4M *** MTFC64GAPALBH-IT *** MTFC8GAMALBH-AIT *** NAND02GAH0I *** NAND02GAH0L *** NAND08GAH0A *** NAND08GAH0B *** NAND08GAH0F *** NAND08GAH0J *** NAND08GAH0N *** NAND128AH0K *** NAND16GAH0D *** NAND16GAH0H *** NAND16GAH0P *** NAND16GAHAP *** NAND256AH0K *** NAND32GAH0H *** NAND32GAH0K *** NAND32GAH0P *** NAND32GAHAK *** NAND64GAH0H *** NAND64GAH0K *** NAND64GAH0P *** PPE2A0TA-02G *** PPE2A0TB-04G *** PPE2A0TC-08G *** PPE2A0TC-16G *** PPE2A0TC-32G *** RP-SEMC08 *** RP-SEMC16 *** RP-SEMC32 *** SDINADF4-128G-H *** SDINADF4-128G-L *** SDINADF4-16G-H *** SDINADF4-16G-L *** SDINADF4-32G *** SDINADF4-32G-H *** SDINADF4-32G-L *** SDINADF4-64G *** SDINADF4-64G-H *** SDINADF4-64G-L *** SDINBDA4-128G *** SDINBDA4-256G *** SDINBDA4-32G *** SDINBDA4-64G *** SDINBDA6-128G-XA *** SDINBDA6-128G-ZA *** SDINBDA6-256G-XA *** SDINBDA6-256G-ZA *** SDINBDA6-32G-XA *** SDINBDA6-32G-ZA *** SDINBDA6-64G-XA *** SDINBDA6-64G-ZA *** SDINBDD4-128G *** SDINBDD4-256G *** SDINBDD4-32G *** SDINBDD4-64G *** SDINBDG4-16G *** SDINBDG4-16G-H *** SDINBDG4-16G-I *** SDINBDG4-16G-I1 *** SDINBDG4-16G-XA *** SDINBDG4-16G-XI *** SDINBDG4-16G-XI1 *** SDINBDG4-16G-ZA *** SDINBDG4-32G *** SDINBDG4-32G-H *** SDINBDG4-32G-I *** SDINBDG4-32G-I1 *** SDINBDG4-32G-XA *** SDINBDG4-32G-XI *** SDINBDG4-32G-XI1 *** SDINBDG4-32G-ZA *** SDINBDG4-64G *** SDINBDG4-64G-H *** SDINBDG4-64G-I *** SDINBDG4-64G-I1 *** SDINBDG4-64G-XA *** SDINBDG4-64G-XI *** SDINBDG4-64G-XI1 *** SDINBDG4-64G-ZA *** SDINBDG4-8G *** SDINBDG4-8G-H *** SDINBDG4-8G-I *** SDINBDG4-8G-I1 *** SDINBDG4-8G-XA *** SDINBDG4-8G-XI *** SDINBDG4-8G-XI1 *** SDINBDG4-8G-ZA *** SFEM008GB1EA1TO-I-GE *** SFEM016GB1EA1TO-I-GE *** SFEM032GB1EA1TO-I-LF *** SFEM064GB1EA1TO-I-HG *** SFEM4096B1EA1TO-I-GE *** SH8M01TB *** SH8M01TC *** SH8M02GB *** SH8M02GC *** SH8M04GB *** SH8M04GC *** SH8M08GB *** SH8M08GC *** SH8M12GB *** SH8M12GC *** SH8M16GB *** SH8M16GC *** SH8M28GB *** SH8M28GC *** SH8M32GB *** SH8M32GC *** SH8M56GB *** SH8M56GC *** SH8M64GB *** SH8M64GC *** THGAMRG7T13BAIL *** THGAMRG8T13BAIL *** THGAMRG9T23BAIL *** THGAMRT0T43BAIR *** THGBM1G4D1EBAI7 *** THGBM1G5D2EBAI7 *** THGBM1G6D4EBAI4 *** THGBM1G7D4EBAI2 *** THGBM1G7D8EBAI0 *** THGBM1G8D8EBAI2 *** THGBM2G6D2FBAI9 *** THGBM2G7D4FBAI9 *** THGBM2G8D8FBAIB *** THGBM3G4D1FBAIG *** THGBM3G5D1FBAIE *** THGBM3G6D2FBAIE *** THGBM4G4D1HBAIR *** THGBM4G5D1HBAIR *** THGBM4G6D2HBAIR *** THGBM4G7D2GBAIE *** THGBM4G8D4GBAIE *** THGBM5G5A1JBAIR *** THGBM5G6A2JBAIR *** THGBM5G7A2JBAIR *** THGBMAG5A1JBAIR *** THGBMAG6A2JBAIR *** THGBMAG7A2JBAIR *** THGBMAG8A4JBA4R *** THGBMAG9A8JBA4G *** THGBMBG5D1KBAIL *** THGBMBG6D1KBAIL *** THGBMBG7D2KBAIL *** THGBMBG8D4KBAIR *** THGBMBG9D8KBAIG *** THGBMDG5D1LBAIT *** THGBMHG6C1LBAIL *** THGBMHG6C1LBAWL *** THGBMHG7C1LBAIL *** THGBMHG7C2LBAWR *** THGBMHG8C2LBAIL *** THGBMHG8C4LBAWR *** THGBMHG9C4LBAIR *** THGBMHG9C8LBAWG *** THGBMHT0C8LBAIG *** THGBMJG6C1LBAIL *** THGBMJG6C1LBAU7 *** THGBMJG7C1LBAIL *** THGBMJG7C2LBAU8 *** THGBMJG8C2LBAIL *** THGBMJG8C4LBAU8 *** THGBMJG9C8LBAU8 *** THGBMNG5D1BAIL *** THGBMNG5D1LBAIT *** THGBXS69T4LLFXG *** THGVN0G4D1DTG00 *** THGVN0G5D2DTG00 *** TS16GEMC210 *** TS32GEMC210 *** TS8GEMC210 ***

к началу поиска (новый поиск)

в процессе добавления - попросить ускорить
к началу поиска (новый поиск)

Рекомундуемая модель программатора для eMMC

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

Из программаторов линейки ChipStar самым быcтрым программатором является универсальный программатор ChipStar-TAU. Он оптимизирован под микросхемы большого объема. Программатор поддерживает различные способы программирования eMMC (внутрисхемное и в панельке программатора). Благодаря возможности самостоятельного добавления микросхем легко сконфигурировать программу для чтения/записи любой eMMC микросхемы.

Универсальный программатор ChipStar-TAU. Лучший программатор для eMMC


Цена программатора: 17160.00 Руб.


Телевизор LG 32LB650650V на ровном месте решил больше не включаться, точнее зависать на стартовой заставке. Работала только кнопка включение/выключения. Хозяин оценил стоимость ремонта и тратить деньги на восстановление порядком поработавшего телевизора не захотел. Но предложил мне, зная о моём хобби, поковыряться ради интереса, удастся восстановить его для просмотра каналов DVB-T2 и отлично.

Телевизор LG 32LB650650V зависает на логотипе фирмы изготовителя

Телевизор LG 32LB650650V зависает на логотипе фирмы изготовителя

Для начала разберем телевизор, посмотрим маркировку MAIN платы и микросхемы памяти.

Внутренности телевизора LG 32LB650650V

Внутренности телевизора LG 32LB650650V

Внутри всё без замечаний. Чисто и аккуратно, никаких проблем не видно.

MAIN плата EAX65384004 (1.5) c eMMC H26M31003GMR

MAIN плата EAX65384004 (1.5) c eMMC H26M31003GMR

В ТВ используется MAIN плата EAX65384004 (1.5) с микросхемой eMMC памяти H26M31003GMR. Будем искать прошивку в Интернет. Мне повезло, нашлась прошивка именно от этой платы и от этой диагонали телевизора.


Заливка прошивки считанной с другой платы, может привести к некорректной работе CI+ модуля и HDMI входов с некоторыми устройствам.

В моей случае, такой проблемой можно было пренебречь. От телевизора требовалось только показывать DVB-T2 каналы, по этому добро на смену ПО было получено.

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


ISP подключение на EAX65384004 ( 1.5 )

Спасибо добрым людям которые выложили эту полезную информацию в Интернет! Я нашёл её по маркировке платы в Яндекс картинках.

Все необходимые точки подключения (D0, CMD, CLK и питание 3.3 В) обозначены, а для программирования у меня завалялся программатор RT809H. Питание 3,3 вольта будем подавать от лабораторного блока питания, ток потребления 0,30А.

Кварцевый резонатор процессора

Кварцевый резонатор процессора


Точки подключения программатора

Точки подключения программатора

Все точки распаяны. Крепим провода на термоклей, дабы не сорвать контактные площадки, соединяем это все с кабелем от программатора и блоком питания и за дело!

Несколько тонкостей

  • внешнее питание программатору не нужно
  • USB кабель нужен родной или очень качественный
  • шить лучше с ноутбука (процесс долгий, мало ли напряжение скаканет)

С физическими подключениями у меня всё закончено, теперь будем запускать ПО программатора и скачивать dump c eMMC H26M31003GMR.


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

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

  • Попытки использовать для программатора неродной USB кабель приводили к сбоям в чтении памяти.
  • По разному формируются имена файлов дампов, считанных разными программаторами (допускаю, что именно это и стало причиной неудачи при первой записи исправного дампа).

Таким образом выглядели имена файлов исправного дампа скаченного программатором nand TT.


Имена файлов исправного дампа скаченных nand TT

А такие имена файлов создал мой RT809H при сохранении родного, но битого дампа с микросхемы телевизора.


Имена файлов дампа скаченных программатором RT809H

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


Кварцевый резонатор процессора телевизора LG 32LB650V

А файлы исправного дампа я решил переименовать по стандарту RT809H, во избежании дальнейших сюрпризов.


Имена файлов исправной прошивки по стандарту программатора RT809H

Теперь он снова радует своего хозяина, CI+ модуль в нем не используется и я его не проверял, а HDMI входы с простыми устройствами работают исправно.

(3643) 4.90 (10) Оценки, комментарии

2021-02-11 Дата последнего изменения: 2021-02-28


Автор: Линьков Е.А. — разработчик программаторов ChipStar .

В статье в предельно доступной форме рассматриваются особенности применения микросхем NAND FLASH.

CОДЕРЖАНИЕ:

NAND не совсем обычные микросхемы, поэтому те инженеры, которые с ними сталкиваются впервые, часто бывают обескуражены. Более подробно, хотя и очень примитивно, особенности NAND описаны в статьях "Программирование NAND FLASH" и "Программирование SPI NAND".

Здесь же я постараюсь изложить суть использования NAND еще проще.

Тому, кто собирается работать с NAND профессионально, материала из этой статьи будет явно недостаточно, но для любителя, который решил отремонтировать 2–3 прибора, в которых используется микросхема типа NAND, это может очень помочь.

1. Коварство NAND. Структура.

NAND организованы следующим образом: страницы > блоки –> логические модули –> кристаллы.

На рисунке ниже показан типичный пример организации микросхемы NAND с одним логическим модулем и одним кристаллом.

структура NAND?

В чем коварство NAND? В адресации.

Даже начинающий радиолюбитель знает, что к любой ячейке микросхемы памяти можно обратиться, указав её адрес. Перебирая по порядку все адреса с первого до последнего, можно считать или записать всю микросхему (именно так поступает программатор).

При считывании NAND всегда происходит чтение всей страницы целиком, страница перемещается во внутренний буфер (page register), а уже из буфера можно прочитать содержимое страницы байт за байтом или в произвольном порядке.

То же самое при записи — сначала заполняется внутренний буфер (целиком или частично), затем страница записывается целиком. Размер буфера равен размеру страницы. Коварство адресации в том, что размер страницы не кратен степени двух. То есть просматривать содержимое микросхемы байт за байтом не получится.

2. Коварство NAND. Ошибки.

При работе микросхемы NAND возникновение ошибок — это норма. "Как так? Как можно работать с такой микросхемой?!" — скажете вы. Как можно работать с такой памятью? Способы есть, но об этом позже, а сейчас о типичном заблуждении начинающих:

  • Пользователь ставит микросхему в программатор.
  • Читает её. Читает еще раз.
  • Сравнивает. О ужас! Обнаружено более тысячи ошибок!
  • Паника! Микросхема не работает. Программатор не работает.Ничего не работает.
  • Нужно срочно звонить нам (производителю) и требовать ремонта программатора!

Спокойно, дружище, спокойно. Это NAND, она так работает.

Сейчас типичная страница наиболее распространенных NAND равна двум килобайтам плюс дополнительные байты. Очень многие микросхемы при чтении дают до 16-ти одиночных ошибок на одну страницу. И это нормально. Берем, например, микросхему на 2 гигабайта. Нехитрое вычисление. Получаем, что при считывании микросхемы может быть до 16 777 216 ошибок!

Еще раз: 16 миллионов! Ошибок в микросхеме! Как с этим жить?! Как может что-то работать вообще? Об этом поговорим чуть позже.

А сейчас поясним понятие "одиночные ошибки".

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

3. Магия ЕСС.

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

Кратко опишем как выглядит работа кодера/декодера ЕСС:

  • Берется порция данных, например, 2048 байт, записывается в страницу NAND.
  • Рассчитывается код ЕСС и тоже записывается (назовем его ECC1) (именно для записи таких кодов страница сделана чуть больше!)
  • Затем читаем страницу 2048 байт.
  • Опять рассчитываем код ЕСС (назовем его ECC2).
  • Читаем записанный код ЕСС1 и сравниваем ECC1 и ECC2.
  • Если коды совпадают, значит ошибок нет.

Вот до этого места коды CRC и ECC не сильно отличаются, магия ЕСС начинается дальше:

Вот и вся магия. Мы просто исправляем ошибки.

4. Коварство NAND. Магия ЕСС есть, но она не работает.

"Так просто?" — скажете вы. "Тогда почему программатор не использует ЕСС для исправления ошибок?! Я из раза в раз читаю микросхему и все время ошибки".

Да. Действительно, почему?

  1. Какими порциями (128, 256, 512, 1024 или 2048) в вашем приборе (не в микросхеме NAND, а именно в приборе. ) разработчик прибора решил записывать данные и вычислять ЕСС.
  2. Какой алгоритм ЕСС он решил использовать.
  3. Какой порождающий полином он решил использовать.
  4. Как разработчик разбил страницу NAND на порции и куда решил записывать сами коды ЕСС.

Как? Вы это не знаете?! Вот и мы не знаем. И, возможно, никто, кроме разработчика прибора, не знает.

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

5. Почему алгоритмов расчета ECC так много.

На данный момент самые распространённые коды исправляющие ошибки это:

Математические теории кодов достаточно сложные, но основные приемы работы с кодами известны, порождающие полиномы легко найти. Казалось бы, мы легко сможем подобрать нужный алгоритм ECC, просто анализируя прошивку. Сначала мы тоже так решили, однако всё оказалось сложнее.

Большинство современных встроенных систем базируются на Linux. Linux для работы накопителей на основе FLASH памяти, как правило, использует драйвер MTD. В драйвере MTD реализовано программное кодирование для NAND кодом BCH с вполне известным набором полиномов. Всё будто просто, но в реальной жизни (в реальных прошивках) такое кодирование не встречается. Почему? Всё упирается в деньги. Вернее, в желание производителей аппаратуры их сэкономить.

Почему вместо обычной памяти FLASH, работающей безошибочно, используются NAND, производящие кучу ошибок? Потому что это в разы дешевле. За разработку алгоритма кодирования/декодирования ЕСС заплатить нужно ОДИН раз, за память без ошибок нужно платить КАЖДЫЙ раз в КАЖДОМ устройстве.

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

Поэтому декодированием ЕСС в современных системах занимаются специальные сопроцессоры или контроллеры. Придумываются и реализуются более совершенные коды ЕСС. Часто используются комбинированные коды CRC/ECC. Код CRC рассчитывается быстрее, чем ЕСС, это позволяет использовать CRC-часть для обнаружения ошибок, а полное декодирование ЕСС — только при их наличии.

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

Как итог — мы видим прошивку. Часто мы видим как страница разбита на подстраницы. Мы видим где находятся коды ЕСС подстраниц. Но не знаем, каким алгоритмом они рассчитаны, и поэтому не можем их использовать для исправления ошибок .

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

6. Коварство NAND. Магия ЕСС есть, но она не работает. Что делать?

Очень часто нам приходится слышать один и тот же вопрос: "Что делать, если NAND всегда читается с огромным количеством ошибок? Как прочитать без ошибок?"

Проблема может быть успешно преодолена, если вы нам скажете, какой алгоритм ЕСС использует ваше устройство. В этом случае мы сделаем расчет ЕСС по вашему алгоритму и у вас всё будет работать без ошибок при чтении NAND для этого устройства.

Вы не знаете алгоритм? Тогда есть только один способ: толерантность к ошибкам (и этот способ успешно работает).

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

Программа будет сверять микросхему и подсчитывать количество ошибок. Если количество ошибок не превысит заданное значение — значит всё в порядке. Ошибка сравнения не будет выдана, вы просто будете проинформированы о количестве "исправимых" ошибок.

Но не все так однозначно.

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

Понятно, что пример несколько искусственный, но на нём проще объяснить.

Случай 1:Запись эталона в NAND

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



Рисунок 1.

Если вы эту микросхему NAND поставите в ваш прибор, он исправно заработает, поскольку встроенный в прибор алгоритм ЕСС обязан(!) исправлять не менее 4-х ошибок на страницу (это паспортные характеристики данной NAND и прибор просто обязан справляться с таким количеством ошибок).

Случай 2:Чтение микросхемы NAND

Мы считали прошивку из исправной микросхемы, стоящей в приборе (напомню, мы получаем по 3 ошибки на страницу). Далее мы еще раз считывали прошивку. Мы опять получили 3 ошибки на страницу.



Рисунок 2.

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

Случай 3:Копирование микросхемы NAND

Мы считали прошивку из исправной микросхемы, стоящей в приборе (получая по 3 ошибки на страницу). Далее записали полученную прошивку в чистую микросхему.



Рисунок 3.

При верификации получим по 3 ошибки на страницу. Это вроде бы меньше 4-х. Но заработает ли прибор? Не факт. Всего ошибок может быть до 6-ти на страницу (3 при считывании образца плюс 3 при работе микросхемы в приборе), но ЕСС прибора исправит только 4.

На самом деле, в реальной жизни, количество ошибок по страницам в микросхемах сильно колеблется. В новых микросхемах количество ошибок не превышает одной-двух, да и то не на каждой странице. Заявленное число ошибок (в нашем примере 4) это уже в сильно изношенной микросхеме. Беда только в том, что в ремонт с формулировкой "слетела прошивка" именно такие приборы и попадают.

7. Практический совет по выбору порога ошибок.

Можно порекомендовать простой алгоритм выбора количества допустимых ошибок при верификации (настройка порога толерантности):

Случай 1. Очень оптимистичный. У вас есть эталонная прошивка и она точно без ошибок.

Такую прошивку можно писать и верифицировать с порогом ошибок, заданным в документации на микросхему (во всех наших примерах – это 4).

Случай 2. Реальный. У вас нет эталонной прошивки.

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



Рисунок 4.

Чем больше вы ошибок получаете при считывании эталона и верификации записи, тем меньше вероятность того, что алгоритм ЕСС справится с исправлением ошибок и прибор заработает. Здесь уже как повезет. :)

8. "Ваш программатор полный отстой, вот другие программаторы решают эту проблему".

Нет. У других производителей программаторов (во всяком случае у всех, которые нам известны на данный момент) всё точно так же. Те же предложения: "Cкажите какой ЕСС и мы все реализуем".

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

9. "Я все прочитал и ничего не понял.
Вы сможете наконец что-то сделать, чтобы NAND читались "нормально"?"

Мы над этим работаем. До сих пор мы не оставляем надежды на создание способа автоматического восстановления алгоритма ЕСС (хакинга) только на основании анализа прошивки.

Понятно, что для всех случаев его создать никогда не удастся, но если нам удастся восстановить алгоритм ЕСС хотя бы в четверти случаев, мы будем просто счастливы.

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

Всё что нас интересует — это название микросхемы, из которой прошивка считана. Для лучшей защиты своих интересов вы можете прислать прошивку не полностью. Если вы опасаетесь — не присылайте. Это только просьба.

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

Собрав достаточную базу прошивок, я надеюсь, нам удастся "хакнуть" ЕСС и сильно облегчить вам работу с NAND.

Только совместными усилиями мы сможем добиться значительных результатов в работе!

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

Что такое eMMC?

Что такое eMMC?

Преимущества и недостатки

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

eMMC и ssd

Технические различия

eMMC способен передавать данные со скоростью 400 Мб/с, почти как у бюджетных SSD. Но на SSD доступно несколько способов передачи информации, в то время как на eMMC только один. Чтение пакетов данных у eMMC происходит гораздо быстрее, чем у HDD, можно сказать, даже с отрывом. Основная причина такому явлению является различное время доступа к этим данным, и чем меньше их значение, тем быстрее происходит доступ.

Ограничивающим фактором для eMMC является максимальная емкость данных, которые достигают 128 ГБ, реже до 256 ГБ, это обусловлено строением самого модуля. eMMC показывает отличный результат при работе с файлами маленького объема. Но его трудно сравнить с SSD и его возможностями хранения до 2 ТБ информации и даже более. К тому же носитель SSD можно легко заменить на новый, как и HDD, в отличии от eMMC, который является встроенным и его даже невозможно улучшить.

Выберите тот, который соответствует потребностям

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

Читайте также: