Почему ячейки флэш-памяти NAND могут быть напрямую записаны, только когда они пусты? - PullRequest
0 голосов
/ 22 июля 2010

Я пытаюсь понять, почему вы должны стереть ячейки, прежде чем записывать в них информацию о твердотельных накопителях, и как они замедляются со временем.

Ответы [ 4 ]

1 голос
/ 04 сентября 2010

Я пытаюсь понять, почему вы должны стереть ячейки перед записью в них

Вам не нужно стирать ячейку флэш-памяти перед записью в нее.Тем не менее, вы можете записывать только один блок ячеек за раз.Обычно эти блоки ячеек имеют размер не менее 128 КБ.

Итак, предположим, что вы записываете файл 4 КБ на свой SSD.Ну, вы должны написать один блок 128 КБ за раз.Если в этом блоке 128 КБ уже есть данные, микропрограмма привода должна считать блок 128 КБ в его память, изменить раздел 4 КБ, в который вы записываете, а затем записать весь блок 128 КБ обратно во флэш-память.

0 голосов
/ 14 июня 2017

Вот как работает запись в NAND и стирание:

Когда стирается блок, все биты устанавливаются на 1. Чтобы изменить биты с 1 на 0, биты программируются (записываются в).Программа не может изменить биты с 0 на 1.

Предположим, вам нужно сохранить 11001100. Сначала необходимо стереть блок, чтобы получить все 1 с (11111111), затем запрограммировать конкретные биты (11001100).Теперь та же ячейка памяти не может быть запрограммирована на 11111100, потому что программирование не может изменить 0 на 1.

По этой причине NAND находит свободную / пустую страницу со всеми 1, а затем изменяет конкретные биты с 1 на0. Общепринятая идея, что запись может изменить значение от 1 до 0 и от 0 до 1, неверна для NAND flash.Тот факт, что работа программы NAND может изменять только биты с 1 на 0, означает, что нам нужно все 1 блок памяти, прежде чем мы начнем писать.

Источник:

https://flashdba.com/2014/06/20/understanding-flash-blocks-pages-and-program-erases/ https://www.micron.com/~/media/documents/products/technical-note/nand-flash/tn2919_nand_101.pdf

0 голосов
/ 01 февраля 2011

Как устроены современные флеш-чипы, проще программировать ячейку в одном направлении, чем в другом. Если чип, содержащий 16 777 216 байт в 256 блоках по 65 536 байт каждый, может быть удален только как единое целое, то потребуется ~ 128 миллионов «маленьких» схем, чтобы можно было программировать отдельные биты, и 256 «больших» схем, чтобы стереть эти блоки , Для того, чтобы чип позволил удалить страницы размером 256 байт, потребовалось бы 65 536 таких «больших» схем. Я не уверен, какая часть чипа будет использоваться таким количеством схем стирания страниц, но это было бы важно. Использование более крупных блоков стирания позволяет производить чипы дешевле; для многих приложений более дешевый чип с большими стираемыми блоками предпочтительнее, чем более дорогой чип с более мелкими.

0 голосов
/ 22 июля 2010

Статья Википедии , кажется, по крайней мере намекает на ответ.Похоже, что «туннельная инъекция» используется для записи, а «туннельная версия» для стирания.Я оставлю это физикам, чтобы объяснить, каковы последствия этого.

...