Постоянное запоминающее устройство (пзу).

      Комментарии к записи Постоянное запоминающее устройство (пзу). отключены

Память.

Основные положения.

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

Информация в памяти хранится в ячейках, количество разрядов которых равно количеству разрядов шины данных процессора. Обычно оно кратно восьми. Это связано с тем, что байт является восьмиразрядной единицей измерения. Поэтому объём памяти чаще всего измеряется в байтах независимо от разрядности ячейки памяти.

Допустимое количество ячеек памяти определяется количеством разрядов шины адреса как 2N, где N — количество разрядов шины адреса.

Используются также следующие более крупные единицы объема памяти: килобайт — 210=1024 байта (обозначается Кбайт), мегабайт – 220=1 048 576 байт (обозначается Мбайт), гигабайт — 230 байт (обозначается Гбайт), терабайт — 240 (обозначается Тбайт). Например, если память имеет 65 536 ячеек, каждая из которых 16-разрядная, то говорят, что память имеет объем 128 Кбайт. Совокупность ячеек памяти называется обычно пространством памятисистемы.

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

Обычно в составе системы имеется несколько модулей памяти, каждый из которых работает в своей области пространства памяти. Селектор адреса как раз и определяет, какая область адресов пространства памяти отведена данному модулю памяти. Схема управления вырабатывает в нужные моменты сигналы разрешения работы памяти (CS – Chip Select) и сигналы разрешения записи в память (WR — Write-Read). Буферы данных передают данные от памяти к магистрали или от магистрали к памяти. В пространстве памяти микропроцессорной системы обычно выделяются несколько особых областей, которые выполняют специальные функции.

Классификация модулей памяти.

Классификация памяти необходима для более чёткого понимания того, для чего та или иная память будет использоваться.

Прежде всего, память делится на две основные подгруппы: постоянное запоминающее устройство (ПЗУ) и оперативное запоминающее устройство (ОЗУ).

Постоянное запоминающее устройство (ПЗУ).

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

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

Существует множество различных реализаций ПЗУ. В микроконтроллерах наибольшую популярность получили две технологии. Это – EEPROM (Electronically Erasable Programmable ROM – электрически стираемая программируемая энергонезависимая память) и flash (Flash Erase EEPROM).

EEPROM была разработана в 1979 году фирмой Intel. Эта память имеет возможность перепрограммирования при подключении её к стандартной шине процессора. Причём стирание любой ячейки памяти происходит автоматически при записи в неё новых данных. Т.о. в этом типе памяти существует возможность изменить информацию в одной ячейке без затрагивания соседних ячеек.

Flash память является дальнейшим развитием EEPROM. В ней используется несколько отличный от EEPROM тип ячейки-транзистора. И другая организация доступа к ячейкам памяти. В результате чего доступ к ячейкам стал быстрее. Но стирание в flash памяти производится только для определённого блока данных, либо для всей микросхемы в целом. Стереть один элемент в ней невозможно. А так как запись в этом типе микросхемы (для типа памяти NAND) производится поэлементным «И» текущего состояния ячейки с данными которые надо записать, то верные данные будут записаны в ячейку только в том случае, если в ней будут записаны только одни единицы. Установить в ячейке единицу можно только функцией стирания. Никакой записью данных этого сделать нельзя. Следовательно, для того, чтобы записать данные в одну ячейку памяти, надо скопировать в стороннюю память весь блок, который будет стёрт, стереть его. В памяти поменять значение нужной ячейки и уже изменённый блок записать обратно.

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

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

Flash память бывает двух типов – это NOR и NAND. NOR (Not OR) имеет быстрый произвольный доступ к ячейкам памяти и возможность побайтовой записи. NAND (Not AND) позволяет производить быструю запись и стирание данных, но имеет несколько большее время произвольного доступа к данным по сравнению с NOR.

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

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

Память программы начального запускавсегда выполняется на ПЗУ. Именно с этой области процессор начинает работу после включения питания и после сброса его с помощью сигнала RESET. При наличии у микроконтроллера нескольких типов ПЗУ, зачастую существует выбор с какой из них стартовать программу. Для этого наружу выводится несколько ножек, комбинация сигналов на которых идентифицирует ту или иную ПЗУ.

Рис 8.1

Адресация в NAND.

Для примера работы с ПЗУ рассмотрим организацию памяти и обращение к ней на примере микросхемы памяти NAND.

Структура памяти NAND представлена на рис 8.2.

Рис 8.2

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

Общая ёмкость памяти в этом случае равна произведению ёмкости страницы на количество страниц в блоке и на количество блоков в микросхеме памяти. Если у нас, как показано на рис 8.2, микросхема состоит из 2000 блоков, содержащих 128 страниц каждый. В странице содержится 8192 байта памяти. В итоге получаем: 8192*128*2000 = 2 Гбайта памяти. Обычно размер памяти указывают в битах. Т.е. размер рассматриваемой микросхемы составляет 16Гбит, что и будет указано у неё в документации.

Соответственно, для получения одного байта информации на выводе R/W, отвечающем за чтение запись, устанавливается сигнал, говорящий, что будет чтение. Отправляется команда запроса на чтение байта данных. Затем формируется пакет вида, как показано на рис 8.3.

Рис 8.3

В этом пакете А13-А0 – это адрес байта в странице, А20-А14 – это номер страницы, А32-А21 – это номер блока.

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

Статьи к прочтению:

ПЗУ — Постоянное Запоминающее Устройство


Похожие статьи: