Память: SRAM, DRAM, Flash, EEPROM
Цель: Разобраться в основных типах памяти SRAM, DRAM, Flash и EEPROM, различать энергозависимость, способ хранения и особенности записи.
3 часа короткая теория, самостоятельная практика, проверка результата и тест.
Суть темы
Память хранит набор битов, организованных в адресуемые ячейки или слова. Для практического выбора важны не только объём и интерфейс, но и энергозависимость, время доступа, ресурс записи и необходимость специальных циклов обслуживания.
SRAM и DRAM относятся к оперативной энергозависимой памяти, но физически хранят бит по-разному. Flash и EEPROM сохраняют данные без питания, однако запись и стирание у них медленнее чтения и ограничены по числу циклов.
- SRAM хранит состояние в статической ячейке на транзисторах и не требует refresh, пока питание присутствует.
- DRAM хранит заряд в ёмкостной ячейке; заряд утрачивается и требует периодического refresh.
- EEPROM позволяет электрически изменять энергонезависимые данные обычно с более мелкой гранулярностью, чем Flash.
- Flash стирается блоками/секторами и подходит для кода и больших объёмов данных; запись и стирание организуются разными операциями.
- Любая память имеет адрес, данные и управляющие операции; последовательные микросхемы скрывают внутреннюю шину за SPI/I²C-подобным протоколом.
Ключевые связи и параметры
Статическая память ценится за быстродействие и простоту доступа, но ячейка занимает больше площади. DRAM даёт высокую плотность, поэтому используется как основная память больших объёмов, но требует контроллера refresh и более сложных временных циклов.
У Flash/EEPROM изменение заряда в изолированном затворе требует повышенных внутренних напряжений и занимает время. Контроллер должен дождаться окончания программирования и учитывать ресурс ячеек; частую запись переменных данных распределяют по памяти или используют wear leveling.
address space = 2^A locations for A address bitscapacity = number of words × bits per wordРазбор примера
Память 32K×8 содержит 32768 адресов по 8 бит, то есть 262144 бит = 32 KiB данных. Для прямого адресования 32768 ячеек требуется 15 адресных бит, потому что 2^15=32768.
Если лог записывается во Flash каждую секунду в один и тот же сектор, ресурс стирания может быть исчерпан намного раньше срока службы устройства. Буферизация и циклическое распределение записей уменьшают износ.
Практическая работа и проверка
Сравните техническое описание небольшой SRAM, SPI Flash и I²C EEPROM по тем же параметрам, а не только по объёму.
- Для каждой памяти найдите напряжение, организацию слов и интерфейс.
- Определите, сохраняются ли данные без питания.
- Найдите время чтения и время записи/стирания.
- Запишите минимальную единицу программирования и стирания.
- Найдите заявленный endurance и правила ожидания завершения записи.
Типичные ошибки и диагностика
- Считать SRAM энергонезависимой из-за слова static.
- Путать refresh DRAM с операцией стирания Flash.
- Записывать Flash как обычный байтовый RAM без учёта erase block.
- Игнорировать ресурс циклов записи EEPROM/Flash.
Повреждённые настройки после отключения питания могут быть следствием прерванной записи, неверного контроля busy или износа ячейки, а не только ошибки программы чтения.
Связь с реальным устройством
Тип памяти определяется физикой хранения и режимом использования: скорость, плотность, энергозависимость и ресурс записи связаны между собой.
Что нужно запомнить
- SRAM не требует refresh, но теряет данные без питания.
- DRAM хранит заряд и требует refresh.
- Flash и EEPROM энергонезависимы.
- Flash обычно стирается блоками.
- Ресурс записи энергонезависимой памяти конечен.