Не энергозависимая память компьютера

Обновлено: 19.05.2024

Любая микропроцессорная система, вне зависимости от типа используемого микроконтроллера или процессора, в обязательном порядке требует памяти (рис. 1). В памяти хранится исполняемая процессором программа. Там же помещаются данные, используемые при вычислениях. Данные могут поступать от датчиков или появляться в результате расчетов, они также могут изначально размещаться в памяти при программировании.

Процессор использует память для хранения программ и данных

Рис. 1. Процессор использует память для хранения программ и данных

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

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

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

Память можно разделить на две основные категории: энергозависимую (volatile) и энергонезависимую (non-volatile). Энергозависимая память теряет свое содержимое при отключении питания. Энергонезависимая память сохраняет данные даже при отключении питания.

В общем случае энергонезависимая память работает медленнее, но стоит дешевле, чем энергозависимая память. Чаще всего энергонезависимая память используется для хранения программ и пользовательских данных. Энергозависимая память в основном необходима для хранения часто используемых данных. Кроме того, в высокопроизводительных устройствах после запуска процессора программа копируется из энергонезависимой памяти в ОЗУ и далее выполняется оттуда.

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

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

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

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

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

Flash

Flash чаще всего используется для хранения программ и констант в микроконтроллерах, а также для хранения загрузчика в ПК.

Существует два основных типа Flash: NAND и NOR. Оба типа Flash имеют свои достоинства и недостатки и применяются в различных приложениях.

NOR Flash, как правило, выступает в роли XIP-памяти (Execute In Place), то есть может использоваться как для хранения, так и для выполнения программ. В большинстве случаев, NOR Flash оказывается дороже и быстрее, чем NAND Flash.

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

EEPROM

EEPROM (Electrically Erasable Programmable Read Only Memory) – достаточно медленный и относительно дорогой тип памяти. Вместе с тем EEPROM обеспечивает простоту доступа к данным. Если во Flash организован постраничный доступ к памяти, то EEPROM позволяет записывать и стирать отдельные байты. Таким образом, EEPROM является оптимальным вариантом для хранения данных конфигурации и пользовательской информации во встраиваемых системах.

SSD и SD

В SSD-накопителях (Solid State Drives) и SD-картах (Secure Digital) используется NAND Flash (рис. 2). В таких накопителях работа ведется с большими блоками данных. SSD-накопители и SD-карты обеспечивают более высокую надежность, по сравнению традиционными жесткими дисками (HDD).

Карта памяти SD (32 ГБ)

Рис. 2. Карта памяти SD (32 ГБ)

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

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

Дискретные микросхемы Flash-памяти большого объема (более нескольких Мбайт) оказываются весьма дорогими, если речь идет о мелком и среднесерийном производстве.

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

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

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

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

Однократно программируемая пользователем память PROM (Programmable ROM). Содержимое этой памяти может быть однократно запрограммировано пользователем.

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

Пример устаревшей микросхемы EPROM с окном для стирания УФ-светом

Рис. 3. Пример устаревшей микросхемы EPROM с окном для стирания УФ-светом

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

Энергозависимая память RAM (Random Access Memory) или оперативное запоминающее устройство (ОЗУ) – это запоминающее устройство, которое сохраняет свое содержимое только при наличии напряжения питания. Существует два типа RAM: статическая и динамическая.

Ячейка динамического RAM или DRAM не только нуждается в присутствии напряжения питания, но и отличается постоянной потерей заряда, из-за чего содержимое DRAM требует периодической регенерации.

Статическая RAM или SRAM не требует регенерации и сохраняет свое содержимое при наличии напряжения питания.

В каких же случаях необходимо использовать SRAM или DRAM вместо любого из описанных выше энергонезависимых типов памяти? Ответ прост – в тех случаях, когда необходима высокая скорость и простота доступа к данным. Оперативная память оказывается не только намного быстрее энергонезависимых типов памяти, но и обеспечивает произвольный доступ к хранящимся в ней данным. Можно записывать или читать данные из любой области памяти с очень высокой скоростью, не беспокоясь о стирании страниц или блоков. Вместе с тем основным недостатком RAM является высокая стоимость. Таким образом, в большинстве вычислительных систем обычно используют комбинацию из RAM и flash-памяти. При этом каждый из этих типов памяти решает конкретные задачи, с учетом оптимального использования их преимуществ.

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

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

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

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

Виды DRAM

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

Новые поколения SDRAM используют двойную скорость передачи данных (SDRAM included Double Data Rate). Речь идет о DDR2, DDR3 и DDR4.

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

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

Например, после того, как SDRAM-память получает команду чтения, она начинает выставлять данные спустя определенное количество тактов. Эта задержка известна как строб адреса столбца CAS (Column Address Strobe). Она имеет фиксированное значение для каждого модуля памяти.

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

DDR DRAM

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

На рис. 4 показана разница в обмене данными при работе с SDR и DDR SDRAM. Обратите внимание, что на этом рисунке задержка CAS не показана.

Передача данных при работе с SDR и DDR

Рис. 4. Передача данных при работе с SDR и DDR. Прием данных DDR выполняется как по фронту, так и по срезу тактового сигнала

DDR2, DDR3 и DDR4

При переходе от SDR к DDR передача данных стала вестись как по фронту, так и по срезу тактового сигнала. Далее при переходе от DDR2 к DDR4 SDRAM скорость передачи возрастала за счет использования некоторых хитрых приемов. При этом, как уже упоминалось ранее, скорость доступа к содержимому ячейки памяти DRAM не сильно изменилась из-за ограничений базовой технологии. В реальности эту скорость удалось увеличить всего в два раза.

Модуль DDR-памяти, используемый в компьютерах

Рис. 5. Модуль DDR-памяти, используемый в компьютерах

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

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

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

Заключение

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

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

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

Читайте также: