Память микропроцессорной системы выполняет функцию временного или постоянного хранения данных и команд. Объем памяти определяет допустимую сложность выполняемых системой алгоритмов, а также в некоторой степени и скорость работы системы в целом. Модули памяти выполняются на микросхемах памяти (оперативной или постоянной).

Информация в памяти хранится в ячейках, количество разрядов которых равно количеству разрядов шины данных процессора. Допустимое количество ячеек памяти определяется количеством разрядов шины адреса как 2N, где N – количество разрядов шины адреса. Чаще всего объем памяти измеряется в байтах независимо от разрядности ячейки памяти.

Используются также следующие более крупные единицы объема памяти:

- килобайт – 210 или 1024 байта (обозначается Кбайт),

- мегабайт – 220 или 1 048 576 байт (обозначается Мбайт),

- гигабайт – 230 байт (обозначается Гбайт),

- терабайт – 240 (обозначается Тбайт).

Например, если память имеет 65 536 ячеек, каждая из которых 16-разрядная, то говорят, что память имеет объем 128 Кбайт. Совокупность ячеек памяти называется обычно пространством памяти системы.

Для подключения модуля памяти к системной магистрали используются блоки сопряжения, которые включают в себя (рис. 3.1):

- дешифратор (селектор) адреса; селектор адреса как раз и определяет, какая область адресов пространства памяти отведена данному модулю памяти.

- схему обработки управляющих сигналов магистрали; схема управления вырабатывает в нужные моменты сигналы разрешения работы памяти (CS) и сигналы разрешения записи в память (WR).

- буферы данных; буферы данных передают данные от памяти к магистрали или от магистрали к памяти.

Структура модуля памяти. Рисунок 3.1 – Структура модуля памяти

Оперативная память общается с системной магистралью в циклах чтения и записи, постоянная память – только в циклах чтения.

В пространстве памяти микропроцессорной системы обычно выделяются несколько особых областей, которые выполняют специальные функции:

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

- память для стека или стек (Stack) – это часть оперативной памяти, предназначенная для временного хранения данных в режиме LIFO (Last In – First Out);

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

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

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

Остановимся на проблеме разделения адресов памяти и адресов устройств ввода/вывода. Существует два основных подхода к решению этой проблемы:

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

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