Банк памяти быстрого доступа

СТРУКТУРА ПАМЯТИ

Вся память контроллеров делится на регистры

• общего назначения (РОН)

• специальные

• конфигурационные

Cспециальные регистры предназначены для обслуживания контроллера.

Конфигурационные регистры являются специальными регистрами, которые изменяют конфигурацию контроллера.

Память делится на разные области:

память программ

• память данных

• энергонезависимая память (ЕЕРRОМ)

Виды адресации:

• прямая или непосредственная

• относительная

• косвенная

При прямой адресации адрес заключен в команде.

Относительная: GОТО $+2; переход на две строки ниже.

Косвенная: FSR [адрес]

INDF [значение по адресу]

Банк памяти быстрого доступа - архитектурное решение, которое является особенно полезно для оптимизации кода при написании программ на языке С. Методы, используемые компилятором С, могут быть также полезны для программ, написанных на ассемблере.

Эта область памяти может использоваться для:

• хранения промежуточных значений вычислений

• хранения отдельных служебных переменных

• быстрого доступа к отдельным переменным

• хранения обычных переменных

• быстрого доступа к регистрам специального назначения

Банк памяти быстрого доступа содержит старших 128 байт банка 15 (регистры специального назначения) и нижних 128 байт банка 0 памяти данных.

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

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

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

Регистр выбора банка памяти данных BSR (18 серия)

Потребность в большем объеме памяти данных определяет наличие разделения ОЗУ на банки памяти. Вся память данных разделена на 16 банков.

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

ВSR<3:0> содержит 4 старших бита 12-разрядного адреса регистра в памяти данных.

ВSR<7:4> всегда читаются как '0', а запись не будет иметь никакого эффекта.

С помощью команды МОVLВ можно выбрать необходимый банк памяти данных. Если выбранный банк не реализован, то чтение будет давать результат '0', а любая запись игнорируется. Биты регистра STATUS будут изменяться в соответствии с выполняемой командой.

Каждый банк памяти данных имеет внутренние адреса от ООh до FFh (256 байт). Вся память данных реализована как статическое ОЗУ.

Команда МОVFF игнорирует содержимое регистра ВSR, т.к. значение 12-разрядных адресов содержитсяв коде команды.

Метод косвенной адресации позволяет линейно адресовать всю область памяти данных.