Выравнивание износа NAND памяти, где храниться указатель?

Здесь принимаются все самые невообразимые вопросы... Главное - не стесняйтесь. Поверьте, у нас поначалу вопросы были еще глупее :)
Ответить
Родился
Сообщения: 8
Зарегистрирован: Пн фев 11, 2019 20:31:04

Сообщение just_lad »

Доброго времени суток!
Вопрос следующий: где контроллер памяти хранит указатель на блок, в который ему следует записывать следующую пачку информации?

В процессе изнурительного гугления и чтения статей (по алгоритмам организации выравнивания износа (wear leveling)) мне удалось узнать следующее, а именно что контроллер памяти битые блоки (bad blocks) таки использует, но только в своих целях (в каких именно мне понять не получилось). Также контроллер хранит не просто указатель (wear leveling pointer?) в какой блок ему писать данные дальше, а имеет целую таблицу (wear leveling table) в которой записаны какие блоки битые, и сколько циклов записи/стирания проведено для каждого блока. Исходя из данных таблицы он и вычисляет куда писать данные (правильно ли я понимаю?). Однако абсолютно неясно где контроллер памяти хранит свои данные, будь то указатель или целая таблица. При хранении в ОЗУ после обесточивания системы контроллер просто забудет всё. Если хранить в своей отдельной памяти, то возникает необходимость выравнивать износ в ней и рекурсия. Если хранить внутри используемой памяти, то как быть при загрузке носителя данными под завязку? Если в памяти имеется некоторая область доступная лишь контроллеру (а она имеется, насколько я смог выяснить), то каким образом выравнивается износ там?

Если это нечто очевидное, то прошу ткнуть носом где или хотя бы подсказать как мне стоит искать эту информацию.
Реклама
Родился
Сообщения: 8
Зарегистрирован: Пн фев 11, 2019 20:31:04

Сообщение just_lad »

СпойлерНашёл следующую информацию: "Once created, the bad block table is saved to a good block so that on rebooting the NAND Flash memory the bad block table is loaded into RAM. The blocks contained in the bad block table are not addressable. So, if the flash translation layer (FTL) addresses one of the bad blocks, the bad block management software redirects it to a good block."
То есть указатель (таблица указателей) на битый блок(-и) хранится в отдельном блоке памяти, но во время работы системы все операции над указателем (или таблицей) производятся в ОЗУ. Это частично отвечает на мой вопрос, однако в документе (Micron TN-29-59) не раскрывается как именно происходит обновление данных в блоке с указателем, а именно неясно когда копировать обновленные данные из ОЗУ в блок с указателем.

В "PXA3xx Processors and Tavor Processor Boot ROM Reference Manual", раздел 3.3 я нашёл информацию о том, что таблица битых блоков хранится в конце блока 0, какова структура этой таблицы и что существуют резервные блоки для замещения битых и для создания резервной таблицы битых блоков. Тем не менее вопрос о том, как происходит обновление, а именно в какие моменты времени таблица в ПЗУ обновляется данными из таблицы в ОЗУ (если это вообще правильно мной понято) остается открытым.
UPD1 Видимо мозги поплыли и я принял таблицу битых блоков за таблицу с счётчиком записей/стирания. Вопрос остается открытым.
Реклама
Друг Кота
Аватара пользователя
Сообщения: 26551
Зарегистрирован: Пн фев 09, 2009 22:19:49
Откуда: Когда-то был прекрасный город для людей

Сообщение Муркиз »

С какой ноги производитель встанет, там и будет храниться
Друг Кота
Аватара пользователя
Сообщения: 15706
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Сообщение BOB51 »

Скорее всего ответ может дать документация на конкретный контроллер, применяемый для накопителя...
Только вот где ее накопать?
:dont_know:
Реклама
Эиком - электронные компоненты и радиодетали
Друг Кота
Аватара пользователя
Сообщения: 7077
Зарегистрирован: Пт ноя 11, 2016 05:48:09
Откуда: Сердце Пармы

Сообщение Ivanoff-iv »

обычно основная память идет TLC или MLC и есть небольшая область SLC работа с ней происходит быстрее а надёжность её много выше (достигается за счёт снижения плотности информации) разумно и служебные таблицы держать в этой же области.
Для тех, кто не учил магию мир полон физики :)
Безграмотно вопрошающим про силовую или высоковольтную электронику я не отвечаю, а то ещё посадят за участие в (само)убиении оболтуса...
Реклама
Родился
Сообщения: 8
Зарегистрирован: Пн фев 11, 2019 20:31:04

Сообщение just_lad »

[uquote="Ivanoff-iv",url="/forum/viewtopic.php?p=3989504#p3989504"]есть небольшая область SLC[/uquote]
Ну в простейшем случае все ячейки блока однобитные, то есть SLC, что тогда? Про register page мне известно, но достоверной информации о её предназначении не нашёл.
BOB51 писал(а):документация на конкретный контроллер
Всё что мне удавалось найти это datasheet без подробного описания логики работы. Максимальная детализация это разрядность ECC.
Реклама
Ответить

Вернуться в «Теория»