| Главная страница | | Архитектура микроЭВМ | | Принципы обмена данными | | Лабораторные работы | | Примеры систем | | Программно-логическая модель | | Справочная информация |
 
Однокристальная микроЭВМ МК51 Организация памяти

    Однокристальные микроЭВМ имеют гарвардскую архитектуру, одной из отличительных черт которой является наличие физически и логически отделенных друг от друга памяти программ и памяти данных. Память данных, в свою очередь, включает в себя блок регистров общего назначения, область стека, область прямоадресуемых битов ("битовая память"), блок специальных регистров и собственно память данных, организованную в виде традиционного ОЗУ. Различные модификации микроЭВМ семейства МК51 отличаются объемом и распределением памяти между внешними и внутренними блоками. Основные
функциональные узлы

Система команд
Организация памяти
Порты ввода-вывода
Система прерываний
Блок таймеров/счетчиков
Последовательный
порт

   ПАМЯТЬ ДАННЫХ

    Память данных К1816ВЕ51, расположенная на кристалле (внутренняя память данных), имеет объем 256 байт. Она может быть расширена до 64К байт за счет подключения блоков внешней памяти данных.

    Внутренняя память данных состоит из двух областей: 128 байт оперативной памяти (ОЗУ) с адресами 00h-7Fh и области регистров специальных функций, занимающей адреса 80h-FFh. Помимо возможности использования ОЗУ в качестве массива оперативной памяти, отдельные её области имеют самостоятельное значение. Часть ОЗУ используется в качестве регистров общего назначения, часть имеет прямо адресуемый доступ к отдельным битам, образуя так называемую битовую память. В ОЗУ располагается также и область стека.
    Младшие 32 байта внутреннего ОЗУ данных сгруппированы в 4 банка по 8 регистров общего назначения в каждом (БАНК0- БАНК3). Определение рабочего в данный момент банка, то есть банка регистров, к которому обращается программа при использовании имен R0-R7, осуществляется установкой битов RS0, RS1 в регистре слова состояния PSW. Начальное состояние (RS0=RS1=0) этих разрядов после прохождения сигнала RESET определяет БАНК0 в качестве рабочего. Наличие нескольких банков регистров сокращает длину команд, а также уменьшает время, необходимое для сохранения и восстановления регистров при работе с подпрограммами и обработчиками прерываний, что характерно для задач, решаемых однокристальными микроЭВМ.

Структура
памяти данных

    Область ОЗУ данных с адресами 20h-2Fh образует область ячеек, к которым возможна побитная адресация. Система команд МК51 содержит значительное количество инструкций, позволяющих работать с отдельными битами, используя при этом прямую адресацию. Область в 128 бит, составляющая рассматриваемую область внутреннего ОЗУ данных и имеющая адреса 00h-7Fh, предназначена для работы с такими инструкциями. Таким образом, к ячейке с адресом, например, 21h можно обратится как к байту, используя её прямой адрес 21h, а можно обратиться к её отдельным битам в командах, работающих с битовой информацией. При этом младший бит этого байта имеет адрес 08h, а старший - 0Fh.
Система команд

Битовая память

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

    Регистры, адрес которых кратен 8-ми, то есть заканчивается на 000b, допускают как байтовую, так и побитовую адресацию.
Побитовая
адресация

    Положение области стека во внутреннем ОЗУ не фиксировано, а определяется значением указателя стека SP. Начальное значение SP после системного сброса - 07h. SP указывает на верхнюю занятую ячейку стека. При обращении к стеку на запись сначала значение SP увеличивается на 1, а затем производится запись во внутреннюю память программ по адресу, хранящемуся в SP. Считывание из стека производится по адресу, хранящемуся в SP, после чего значение SP уменьшается на 1.
    Все ячейки внутреннего ОЗУ данных могут адресоваться с использованием прямой и косвенной адресации. Внутреннее ОЗУ, содержащее регистры специальных функций, адресуется с использованием только прямой адресации. К внешней памяти данных можно обращаться только с использованием специальных команд MOVX, которые осуществляют запись и считывание из неё информации и не влияют на внутреннюю память данных МК. Таким образом, в системе могут одновременно присутствовать внутренняя память данных с адресами 00h-0Fh и внешняя память данных с адресами 0000h-FFFFh.

   ПАМЯТЬ ПРОГРАММ

    В зависимости от модификации, различные типы БИС МК51 имеют разное распределение внутренней и внешней памяти программ, оставляя неизменным общий её объем в 64К байт. Память программ адресуется при помощи 16-разрядной адресной шины с использованием счетчика команд (PC) или инструкций, которые вырабатывают 16-разрядные адреса. Она имеет байтовую организацию и доступна только по чтению.
Память программ

    Обращение к внутренней или внешней памяти программ происходит автоматически с использованием аппаратных средств микроЭВМ. При этом, в зависимости от состояния управляющего входа DEMA , вся память трактуется либо как только внешняя (при DEMA=0), либо как внутренняя, занимающая младшие адреса адресного пространства, и внешняя, занимающая адреса от старшего адреса внутренней памяти до максимально допустимого FFFFh (при DEMA=1). С точки зрения программиста имеется только один массив памяти объемом 64К байт.

| На главную страницу | На начало раздела | На начало страницы | © КСиТ МИФИ, 2000 г.