[Из песочницы] Технология FRAM
Память в современных микроконтроллерах принято разделять по признаку зависимости от энергоснабжения. К энергозависимой памяти относятся технологии DRAM и SRAM, к энергонезависимой — EEPROM/Flash Это разделение существует за счет того, что DRAM/SRAM обладают гораздо лучшим быстродействием по сравнению с энергонезависимой памятью. Но что было бы, если бы существовала энергонезависимая память, не уступающая энергозависимой памяти по скорости чтения/записи и энергопотреблению? Оказывается, такие технологии существуют. Одним из представителей этого класса памяти является технология FRAM или FeRAM. За подробностями прошу под кат.
Итак, FeRAM или Ferromagnetic Random Access non-volatile Memory — тип памяти, принцип работы которого основывается на эффекте гистерезиса в сегнетоэлектрике. При приложении к ячейке электрического поля она меняет свою поляризацию, переходя на другой участок петли гистерезиса. За счет этого можно получить два хорошо различимых по энергии состояния, а это достаточно для создания памяти на основе такой ячейки. Это хорошо иллюстрируется гифками с сайта Fujitsu — одного из основных производителей FRAM.
Рис. 1 Принцип работы FRAM
Для того, чтобы понять, какие преимущества это дает перед классическими видами памяти, необходимо также вспомнить основные принципы работы других видов памяти.
Принцип работы DRAM (Dynamic RAM) основан на считывании и изменении заряда конденсатора. Если конденсатор заряжен — ячейка находится в состоянии »1», если разряжен — в состоянии »0». Просто как зонтик. Для увеличения быстродействия в ячейках памяти применяются конденсаторы небольшой ёмкости, заряд с которых относительно быстро утекает. Поэтому для обеспечения сохранности информации информацию приходится регенерировать. DRAM применяется в качестве оперативной памяти на современных компьютерах из-за дешевизны (в сравнении с SRAM) и высокого быстродействия (в сравнении с дисковыми накопителями).
Рис. 2 Типичная ячейка памяти DRAM
Память SRAM (Static RAM) гораздо сложнее DRAM, и поэтому гораздо дороже. Ее принцип действия основан на применении КМОП-транзисторов. При объединении нескольких транзисторов можно получить триггер — ячейку, сохраняющую определенное логическое состояние. Для этого вида памяти нет необходимости в регенерации состояний, но тем не менее в отсутствие питания данные теряются, т.е. память остается энергозависимой. Этот вид памяти быстрее DRAM. Поскольку такая память стоит гораздо дороже DRAM, ее применяют там, где требуется очень малое время отклика — в кэш-памяти процессора.
Рис. 3 Шеститранзисторная ячейка SRAM
Современные Flash и EEPROM основаны на применении транзисторов с так называемым плавающим затвором. Электроны инжектируются в «карман» полупроводниковой структуры, и их наличие/отсутствие может быть зарегистрировано извне. Это и есть свойство, которое позволяет применять такие структуры в качестве памяти. Заряд из кармана хоть и утекает, но происходит это достаточно медленно (~10–20 лет), что позволяет применять EEPROM/Flash в качестве энергонезависимой памяти. Flash применяется для хранения кода программ в микроконтроллерных устройств, а также в картах памяти.
Рис. 4 Транзистор с плавающим затвором
Чем же FRAM лучше этих видов памяти?
Основное преимущество FRAM перед SRAM — это энергонезависимость. При прекращении подачи питания на микросхему памяти она сохраняет свое предыдущее состояние. При это быстродействие этих видов памяти сравнимо между собой — цикл записи на FRAM занимает 150 наносекунд против 55 наносекунд в SRAM согласно сайту Fujitsu. Но FRAM обладает ограниченным (хотя и огромным — 10^13) числом циклов перезаписи, тогда как у SRAM нет таких ограничений. DRAM сильно проигрывает FRAM по энергопотреблению из-за необходимости регенерации данных. Поэтому DRAM не применяется в устройствах, чувствительных к энергопотреблению.
Тем не менее, хотя FRAM по характеристикам сравнима с SRAM, основной потенциал применения завязан на значительных преимуществах перед Flash-памятью. В первую очередь, это огромное быстродействие. Из той же ссылки на сайт Fujitsu время одного цикла записи на Flash порядка 10 микросекунд. Здесь следует упомянуть особенность применения flash-памяти — запись и стирание в ней производится достаточно большими блоками. Поэтому перезаписывать один байт во флеше — очень дорогое удовольствие как по времени, так и по энергопотреблению — нужно куда-то сохранить блок данных, изменить в нем байт, полностью стереть соответствующий участок блока и перезаписать в него обновленные данные. Здесь, кстати, еще одно преимущество FRAM — это память с произвольным доступом, а значит в ней можно менять отдельные биты, не задевая соседние. Но даже при записи больших блоков данных FRAM на порядок быстрее. Так, в контроллерах Texas Instrument запись блока размера 13 кБ занимает 10 мс в FRAM против 1 секунды в Flash (пруф). Еще один недостаток Flash — сильно ограниченное число циклов перезаписи — порядка 10^5.
Когда я узнал про все эти свойства, у меня остался один вопрос — почему FRAM до сих пор не убил Flash? Действительно, все характеристики FRAM на порядки лучше характеристик флеша. Вот тут и всплыли основные недостатки ферромагнитной RAM. В первую очередь это низкая плотность размещения информации в силу особенностей технологии. Из этого недостатка вытекает другой — ёмкость накопителей типа FRAM не может быть сделана достаточно большой. Fujitsu предлагает схемы памяти объемом до 4 Мбит, что не сравнить с многогигабайтными флешками. Еще один недостаток — достаточно высокая стоимость памяти. Сегодня FRAM занимает совершенно мизерную долю рынка полупроводниковых устройств.
Для каких же применений оптимальна память типа FRAM? Достаточно хороша FRAM в микроконтроллерах в комбинации с небольшим объёмом SRAM. Собственно, это то самое применение, которое привлекло меня к данному типу памяти. Например, компания Texas Instruments выпустила линейку FRAM-микроконтроллеров с полностью отсутствующими Flash/EEPROM. Код в них записывается в FRAM сегмент, а к данным в том же FRAM можно обращаться также, как к обычной RAM-памяти. Такое применение удобно там, где есть значительное количество данных, которое может часто переписываться. Например, портативный логгер, для которого важно энергопотребление. Можно записывать данные в FRAM в течение определенного времени, затем анализировать и, например, отправлять данные о средних величинах по беспроводному каналу. Flash память при таком использовании неудобна — она быстро посадит аккумулятор, а из-за ограниченности циклов записи через какое-то время могут появиться проблемы с поврежденными ячейками памяти. Таким образом, FRAM выгодна для low-power приложений с относительно большим объемом и высокой частотой записи в энергонезависимую память. Вообще, TI на своем сайте указывает, в каких областях по их мнению такая память наиболее удобна.
Надеюсь, мне удалось привлечь ваше внимание к этой интересной и необычной технологии, про которую, к сожалению, на Хабре/Гиктаймс практически нет никакой информации.