Segment 3 21 июня, 2022 Опубликовано 21 июня, 2022 (изменено) · Жалоба Вопрос по битым блокам в NOR/NAND памяти. Есть несколько ситуаций: Во время записи или стирания блока можно получить ошибку и блок можно отметить как Bad Block. Во время чтения можно получить информацию о том, что была исправлена ошибка (ECC). Где-то читал, что в такой ситуации переносят данные, помечают блок как Bad Block, чтобы избежать дальнейших потерь. Нужно ли переносить валидные данные из битого блока после обнаружения подобных ошибок? Рационально ли перемещать валидные данные из битого блока, если во время чтения возникла коррекция ошибки? Или блок, хоть и помеченный как Bad Block, может работать в виде Read-Only блока? Нет ли деградации блока просто от чтения или со временем? PS: не нашел более подходящего раздела, создал тему где больше было обсужения работы с flash памятью. Изменено 21 июня, 2022 пользователем Segment Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
mantech 34 21 июня, 2022 Опубликовано 21 июня, 2022 · Жалоба В 21.06.2022 в 20:50, Segment сказал: битым блокам в NOR/Flash В NOR разве бывают битые блоки?? Ну наверно, если заметно превысить ресурс, то она начнет разваливаться, но тут уже только менять... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Arlleex 131 21 июня, 2022 Опубликовано 21 июня, 2022 · Жалоба Какие bad-блоки в NOR? NOR это не NAND. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 21 июня, 2022 Опубликовано 21 июня, 2022 · Жалоба NOR всего лишь гарантирует отсутствие битых блоков в поставляемом чипе. Никто не застрахован от проблем на кристалле чипа памяти, в этом случае запись или стирание может завершиться ошибкой. Ну а про ресурс тут уже написали. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 21 июня, 2022 Опубликовано 21 июня, 2022 · Жалоба Не обратил внимание, опечатался в названии темы, я говорю про NOR и NAND в том числе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 21 июня, 2022 Опубликовано 21 июня, 2022 · Жалоба On 6/21/2022 at 8:50 PM, Segment said: Где-то читал, что в такой ситуации переносят данные, помечают блок как Bad Block, чтобы избежать дальнейших потерь. При единичной ошибке данные переносят, но блок не бракуют, используют дальше после стирания. Это в случае классической SLC NAND. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 22 июня, 2022 Опубликовано 22 июня, 2022 · Жалоба В 22.06.2022 в 01:12, aaarrr сказал: При единичной ошибке данные переносят, но блок не бракуют, используют дальше после стирания. Это в случае классической SLC NAND. Тут не совсем понятно из Вашего сообщения, переносят весь блок или страницу с ошибкой? Вы говорите про обнаружение восстановленной ошибки? Чем это объясняется? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 22 июня, 2022 Опубликовано 22 июня, 2022 · Жалоба On 6/22/2022 at 11:31 AM, Segment said: Тут не совсем понятно из Вашего сообщения, переносят весь блок или страницу с ошибкой? Блок. On 6/22/2022 at 11:31 AM, Segment said: Вы говорите про обнаружение восстановленной ошибки? Чем это объясняется? Если браковать блок после единичной ошибки, то они довольно скоро кончатся. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 22 июня, 2022 Опубликовано 22 июня, 2022 · Жалоба В 22.06.2022 в 12:24, aaarrr сказал: Если браковать блок после единичной ошибки, то они довольно скоро кончатся. Тут понятно, если у нас восстанавливаемая разовая ошибка, то при последующем стирании блока с ним может быть все в порядке. Но мне непонятно зачем переносить весь блок? Подразумевается, что данные начнут деградировать и со временем там будет больше ошибок? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 22 июня, 2022 Опубликовано 22 июня, 2022 · Жалоба On 6/22/2022 at 12:31 PM, Segment said: зачем переносить весь блок? Блок - минимальный стираемый объем. Виртуальная адресация обычно тоже идет поблочно. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 22 июня, 2022 Опубликовано 22 июня, 2022 · Жалоба В 22.06.2022 в 14:37, aaarrr сказал: Блок - минимальный стираемый объем. Виртуальная адресация обычно тоже идет поблочно. То есть это программная реализация, не относящаяся к особенностям NAND памяти как таковой? Если в моей файловой системе виртуальная адресация идет постранично, а не поблочно, то при обнаружении скорректированной ошибки в странице, мне необходимо и достаточно просто перенести саму эту страницу (не перенося остальные страницы в этом блоке), верно? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 22 июня, 2022 Опубликовано 22 июня, 2022 · Жалоба On 6/22/2022 at 2:46 PM, Segment said: мне необходимо и достаточно просто перенести саму эту страницу Если программная организация позволяет, должно быть достаточно. Еще раз оговорюсь, что речь об "обычной" SLC со скромными требованиями к коррекции одного бита на 512 байт. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 22 июня, 2022 Опубликовано 22 июня, 2022 · Жалоба В 22.06.2022 в 15:38, aaarrr сказал: Если программная организация позволяет, должно быть достаточно. Еще раз оговорюсь, что речь об "обычной" SLC со скромными требованиями к коррекции одного бита на 512 байт. Понятно. Я просто пытался понять, есть ли какая-то взаимосвязь скорректированной страницы с блоком в котором она находится. Перенос самой страницы понятен, нам нужно избежать появления последующих ошибок в этой странице, т.к. в самом примитивном варианте исправить можно только один бит. Но вот перенос остальных страниц, если они без ошибок, для меня было загадкой, я предполагал что тут возможна какая-то деградация остальных страниц, но тогда она распространилась бы на весь физический блок, а не стираемый логический. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Segment 3 22 июня, 2022 Опубликовано 22 июня, 2022 · Жалоба @aaarrr А вот если блок помечен как битый, например у его не смогла записаться последняя страница и мы пометили блок как Bad Block, и если остальные страницы читаются без ошибок (и без коррекций), то я могу оставить его как Read Only? И перенести страницы только тогда, когда уже при чтении будет проявляться коррекция ECC? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
aaarrr 63 22 июня, 2022 Опубликовано 22 июня, 2022 · Жалоба On 6/22/2022 at 4:20 PM, Segment said: могу оставить его как Read Only? Можно, наверное, только зачем усложнять себе жизнь? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться