Каждая электронная система, имеющая какой-либо микроконтроллер или микропроцессор, должна иметь подключенную к ней память.

Эта память хранит программу, которую выполняет процессор. Он также содержит данные, которые требуются или производятся программой. Эти данные могут поступать с датчиков, или являются промежуточным результатом работающей программы, или просто должны быть сохранены или отображены. В идеальном мире должна быть только одна память.

Однако доступные в настоящее время технологии памяти требуют от пользователя компромисса между несколькими факторами: скоростью доступа, стоимостью за бит и производительностью хранения данных.

Например, на жестком диске большинства ПК можно хранить большой объем данных при относительно низкой стоимости, и данные на нем не теряются при выключении ПК. Однако это довольно медленно.

Эта статья изначально была опубликована на PredictableDesigns.com. Загрузите их бесплатную шпаргалку 15 шагов к разработке нового электронного оборудования.

ПРИМЕЧАНИЕ. Это длинная и очень подробная статья, поэтому вот ее бесплатная версия в формате PDF для удобного чтения и использования в будущем.

Основная память ПК более дорогая по сравнению с объемом данных, которые она может хранить, и она теряет данные при выключении ПК. Однако он намного быстрее жесткого диска.

Воспоминания можно условно разделить на две основные категории: непостоянные и энергонезависимые. Энергозависимая память потеряет свое содержимое при отключении питания. С другой стороны, энергонезависимая память сохранит свое содержимое при отключении питания.

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

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

Энергонезависимая память

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

Значение каждого бита по существу определяется наличием или отсутствием заряда, удерживаемого в небольшом изолированном блоке кремния, который, в свою очередь, действует как затвор полевого МОП-транзистора. Заряд на этом плавающем затворе определяет, является ли канал MOSFET проводящим или нет, следовательно, его логический уровень.

Инжекция заряда в этот изолированный затвор или снятие с него осуществляется путем подачи высокого напряжения правильной полярности через другой затвор. Из-за этого у всех энергонезависимых запоминающих устройств есть некоторые общие характеристики.

Во-первых, чтобы перезаписать бит памяти, его необходимо сначала стереть перед записью. Кроме того, у него есть механизм износа, который в конечном итоге приводит к его выходу из строя после многих циклов записи.

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

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

Флэш-память

Они используются в качестве основной памяти программ в микроконтроллерах и в качестве хранилища программ запуска в ПК. Память обычно организована в виде страниц вызова основных единиц, каждая из которых содержит заданное количество байтов.

Эти страницы затем объединяются в блоки. Перед записью какой-либо информации ее содержащая страница должна быть полностью стерта, что вызывает некоторые задержки.

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

Флэш-память NOR используется в качестве памяти для выполнения на месте (XIP). То есть программы могут храниться и запускаться непосредственно из памяти этого типа. Обычно это быстрее, чем флэш-память NAND, но и дороже.

Флэш-память NAND обычно используется в твердотельных накопителях, USB-накопителях, а также является основным типом, используемым в SD-картах.

EEPROM

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

SSD и SD

Твердотельные накопители (SSD) и карты SD (Secure Digital) используют флэш-память NAND, и доступ к данным осуществляется большими порциями. Основное отличие состоит в том, что твердотельные накопители более надежны, особенно при частом обращении к обычному жесткому диску.

Специальная схема обнаружения и исправления ошибок и выравнивания износа используется для уменьшения присущих базовой технологии недостатков.

SD-карты, в силу своего размера, обычно не обладают емкостью хранения или сложными улучшениями надежности своих аналогов SSD. Следовательно, они в основном используются в приложениях, требующих менее частого доступа к данным.

Дискретные микросхемы флэш-памяти становятся исключительно дорогими при умеренных объемах, когда вы превышаете несколько МБ хранилища.

Таким образом, если вашему продукту требуется ГБ флэш-памяти, то в большинстве случаев будет более экономичным встраивать карту памяти SD, по крайней мере, до тех пор, пока вы не достигнете объема производства, достаточно высокого для получения разумной цены на дискретные микросхемы флэш-памяти высокой плотности.

Другие типы энергонезависимой памяти

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

Первый - это постоянная память или ПЗУ. Это был чип, который был запрограммирован во время производства и не мог быть изменен впоследствии.

Затем было программируемое ПЗУ или ППЗУ. PROM был в основном одноразовым программируемым чипом памяти.

Затем появилась память EPROM (Erasable Programmable ROM). На этом чипе есть маленькое окошко, позволяющее стирать содержимое с помощью ультрафиолетового света. После стирания EPROM можно было перепрограммировать.

Летучие воспоминания

Энергозависимая память или оперативная память (RAM) - это память, содержимое которой сохраняется только до тех пор, пока на них остается питание. В этой категории есть две широкие классификации: статические и динамические.

Ячейка динамического ОЗУ или DRAM не только нуждается в питании для сохранения своего содержимого, но даже в этом случае она будет постепенно терять свое содержимое, если не будет периодически обновляться.

Статическая RAM или SRAM, с другой стороны, просто сохранит свое содержимое до тех пор, пока подается питание. Итак, почему приложение должно использовать SRAM или DRAM вместо любого из ранее описанных энергонезависимых типов?

Ответ - скорость и простота доступа. ОЗУ намного быстрее, и к ним можно обращаться произвольно. Можно просто писать или читать из любой области памяти, не беспокоясь о страницах или блоках, и на очень высоких скоростях.

Обратной стороной является то, что оперативная память в целом стоит дороже за бит. Таким образом, большинство вычислительных систем обычно имеют комбинацию ОЗУ и флэш-памяти, каждая из которых выполняет роли, в которых их атрибуты могут быть оптимально использованы.

В широкой категории RAM SRAM по-прежнему быстрее DRAM, но при этом стоит дороже за бит. Это потому, что ячейке SRAM требуется от четырех до шести транзисторов, тогда как ячейке DRAM требуется только один. Следовательно, в микросхеме заданного размера может быть упаковано намного больше ячеек DRAM, чем ячеек SRAM.

Однако для памяти DRAM требуется контроллер, который автоматически выполняет периодическое обновление. Таким образом, использование DRAM вместо SRAM имеет смысл только в том случае, если стоимость этого контроллера может быть покрыта за счет достаточно большого размера памяти.

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

Таким образом, SRAM используется в микроконтроллерах, где небольшой объем статической памяти не оправдывает дополнительных затрат на контроллер DRAM. SRAM также используется в качестве высокоскоростной кэш-памяти внутри микропроцессоров из-за высокой скорости доступа.

Типы DRAM

DRAM бывают разных типов, последний из которых - DDR4. Первоначальная DRAM была заменена FPRAM (Fast Page RAM), затем EDO RAM (Extended Data Output RAM) и, наконец, синхронной DRAM или SDRAM.

Последующие поколения SDRAM включали SDRAM с двойной скоростью передачи данных (DDR), за которыми следовали DDR2, DDR3 и, в настоящее время, DDR4.

Хотя каждое новое поколение SDRAM вносило некоторые улучшения по сравнению с предыдущими поколениями, следует отметить, что сама базовая ячейка динамической RAM лишь незначительно увеличивалась в скорости от поколения к поколению.

С другой стороны, плотность упаковки или общее количество бит, упакованных в один чип, действительно сильно увеличилась. Однако основные улучшения, произошедшие от SDRAM до DDR4, были достигнуты с точки зрения скорости передачи данных и энергопотребления на бит.

SDRAM - это основа для всей современной памяти DRAM. Память DRAM до SDRAM была асинхронной, что означало, что после запроса на чтение запрошенные данные появлялись всякий раз, когда они появлялись. В SDRAM данные синхронизируются с часами доступа к памяти.

Например, после того, как SDRAM получает команду чтения, она начинает доставку данных после определенного количества тактов. Это число известно как строб адреса столбца, или CAS, задержка, и является фиксированным числом для данного модуля памяти.

Более того, в SDRAM эта доставка данных всегда синхронизируется с фронтом тактовой частоты памяти. Таким образом, процессор точно знает, когда ожидать запрошенных данных.

DDR DRAM

Ранее описанная SDRAM была также известна задним числом как SDR или Single Data Rate, SDRAM. Следующим эволюционным шагом стала DDR, или SDRAM с удвоенной скоростью передачи данных.

На рисунке 3 показана разница во времени SDR и DDR SDRAM. Обратите внимание, что на этом рисунке задержка CAS не показана. Сигнал чтения должен был быть на несколько тактов раньше, чем фактическое начало показанной передачи данных.

DDR2, DDR3 и DDR4

В то время как переход от SDR к DDR включал передачу данных как по нарастающему, так и по спадающему фронту тактовой частоты, DDR2 к DDR4 SDRAM получают все более высокие скорости передачи данных, в основном за счет использования некоторых хитрых уловок.

Ранее упоминалось, что скорость доступа к технологии DRAM не сильно изменилась из-за ограничений базовой технологии. В лучшем случае эта базовая скорость доступа увеличилась вдвое.

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

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

Следовательно, еще одна уловка заключается в том, чтобы память была организована таким образом, чтобы контроллер памяти мог выполнять несколько операций чтения или выполнять предварительную выборку последующих данных. Это позволяет микросхеме памяти раньше подготовить следующий блок данных для следующей передачи.

Наконец, достижения в области кремниевых технологий означают, что рабочее напряжение может быть снижено, что, следовательно, снижает потребляемую мощность на бит, позволяя увеличить объем памяти при том же энергопотреблении.

Вывод

Для большинства продуктов потребуется как энергонезависимая, так и энергозависимая память. Но требуемые конкретные типы памяти будут зависеть от конкретного продукта.

Выбор памяти для вашего продукта существенно повлияет на производительность, стоимость и энергопотребление. Выбор правильного типа памяти для вашего нового продукта - важное решение.

Как и во всем в инженерии, всегда приходится идти на компромисс между различными вариантами дизайна. Теперь, когда у вас есть четкое представление об основах различных типов памяти, вы должны быть в состоянии выбрать лучшие типы памяти для вашего нового продукта.

Чтобы узнать больше о статьях, подобных этой, направленных на то, чтобы помочь предпринимателям и стартапам разрабатывать новое электронное оборудование, обязательно загляните в мой Блог о предсказуемом дизайне.

Первоначально опубликовано на https://predictabledesigns.com 6 июня 2019 г.