- •Лекция 8: Память.
- •Память. Основные положения.
- •Классификация модулей памяти.
- •Постоянное запоминающее устройство (пзу).
- •Адресация в nand.
- •Оперативное запоминающее устройство (озу).
- •Статическая озу (sram).
- •Устройство триггера.
- •Стек (Stack).
- •Внешняя память.
- •Адресация операндов
- •Методы адресации
- •3.1.3. Адресация байтов и слов.
Лекция 8: Память.
ОЗУ, ПЗУ, DRAM, SRAM, NAND FLASH. Методы адресации. Стек, очередь. Адресация байтов и слов (big-endian, little-endian).
Память. Основные положения.
Память в микропроцессорной системе выполняет функцию хранения данных. Различные типы памяти предназначены для хранения различных типов данных. Подробнее это будет рассмотрено ниже.
Информация в памяти хранится в ячейках, количество разрядов которых равно количеству разрядов шины данных процессора. Обычно оно кратно восьми. Это связано с тем, что байт является восьмиразрядной единицей измерения. Поэтому объём памяти чаще всего измеряется в байтах независимо от разрядности ячейки памяти.
Допустимое количество ячеек памяти определяется количеством разрядов шины адреса как 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
