Каковы различия между NAND и NOR вспышкой?

37

Каковы различия и где бы вы использовали каждый?

JeffV
источник

Ответы:

22

В этом есть много компромиссов.

Википедия также:

Несмотря на наличие дополнительных транзисторов, уменьшение проводов заземления и разрядных линий обеспечивает более плотную компоновку и большую емкость памяти на микросхему. Кроме того, флэш-память NAND, как правило, может содержать определенное количество неисправностей (ожидается, что флэш-память NOR, используемая для ПЗУ BIOS, будет безошибочной). Производители пытаются максимизировать объем полезного хранилища, уменьшая размер транзистора ниже размера, в котором они могут быть надежно сделаны, до размера, при котором дальнейшее уменьшение увеличит число неисправностей быстрее, чем увеличит общий объем доступной памяти.

Таким образом, флэш-память NOR может быть проще, но даже не настолько плотна.

Если взглянуть на довольно приличное сравнение PDF.

NOR имеет более низкое энергопотребление в режиме ожидания, прост для выполнения кода и имеет высокую скорость чтения.

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

Процитирую небольшой раздел с большой таблицей над ним ...

Характеристики NAND Flash: высокая плотность, средняя скорость чтения, высокая скорость записи, высокая скорость стирания и косвенный или аналогичный вводу / выводу доступ. Характеристики NOR Flash: низкая плотность, высокая скорость чтения, низкая скорость записи, низкая скорость стирания и интерфейс произвольного доступа.

Kortuk
источник
22

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

Большинство встроенных операционных систем содержат код для исправления ошибок в NAND Flash. Есть также микроконтроллеры с аппаратной коррекцией ошибок. Настоящая проблема возникает во время загрузки - загрузчики первого уровня не имеют кода, исправляющего ошибки, и они еще не настроили контроллер памяти для запуска аппаратного ECC. Это небольшая проблема: вы не можете загрузить код ECC без ошибок, потому что вы еще не загрузили код ECC.

Чтобы обойти эту проблему, некоторые производители памяти указывают определенную область чипа, которая гарантированно не содержит ошибок (первые 4 КБ или что-то в этом роде). Вы помещаете туда загрузчик с программным обеспечением ECC (например, U-boot ), считываете его без ошибок, а затем используете его для считывания ядра вашей ОС, исправляя ошибки по мере продвижения. Вы также можете хранить загрузчик в последовательной флэш-памяти и просто использовать флэш-память NAND для больших объектов, таких как ядро ​​ОС или файловая система.

Я нашел эту заметку о применении Atmel полезной: http://www.atmel.com/dyn/resources/prod_documents/doc6255.pdf

pingswept
источник
2
Одним из следствий более низкой надежности флэш-памяти NAND является то, что, хотя флэш-устройства NAND допускают случайное чтение отдельных байтов (с небольшим временем установки), на самом деле невозможно прочитать меньше страницы, если не включить информацию с исправлением ошибок в более мелкие порции ( например, каждый байт можно записать как 16 битов и иметь возможность обнаруживать все одно- и двухбитные ошибки, за счет возможности хранить только половину информации).
суперкат
5

NOR допускает произвольный доступ, а NAND - нет (только доступ к странице).

Из Википедии :

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

Томас О
источник