Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебник Микропроцессоры.doc
Скачиваний:
524
Добавлен:
13.05.2015
Размер:
2.99 Mб
Скачать
  1. Подсистема памяти мпс

    1. Распределение адресного пространства

Объем адресного пространства МПС с интерфейсом "Общая шина" определяется главным образом разрядностью шины адреса и, кроме того, номенклатурой управляющих сигналов интерфейса. Управляющие сигналы могут определять тип объекта, к которому производится обращение (ОЗУ, ВУ, стек, специализированные ПЗУ и др.). В случае, если МП не выдает сигналов, идентифицирующих пассивное устройство (или они не используются в МПС), - для селекции используются только адресные линии. Число адресуемых объектов составляет в этом случае 2k, гдеk- разрядность шины адреса. Будем называть такое адресное пространство "единым". Иногда говорят, что ВУ в едином адресном пространстве "отображены на память", т.е. адреса ВУ занимают адреса ячеек памяти. Пример организации селекции устройств в едином адресном пространстве МПС на базе i8080 и распределение адресного пространства показаны на Рис. 5 .25 и Рис. 5 .26 соответственно.

Рис.5.25. Структура единого адресного пространства

0000 0FFF

1000 FEFF

FF00 FFFF

ПЗУ

ОЗУ

до 59,75К

ВУ

0,25К

Рис.5.26. Пример распределения единого адресного пространства

При небольших объемах памяти в МПС целесообразно использовать некоторые адресные линии непосредственно в качестве селектирующих (Рис. 5 .27), что позволяет уменьшить объем оборудования МПС за счет исключения селектора адреса. При этом, однако, адресное пространство используется крайне неэффективно (Рис. 5 .28).

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

Так, большинство МП выдают в той или иной форме информацию о типе обращения. В результате в большинстве интерфейсов присутствуют отдельные управляющие линии для обращения к памяти и вводу/ выводу, реже - стеку или специализированному ПЗУ. В результате суммарный объем адресного пространства МПС может превышать величину 2k.

Рис.5.27. Использование адресных линий для прямой селекции устройств

Например, используя информацию PSW МП i8080 (см. разд. 4.1.3), можно располагать в МПС следующим объемом памяти и УВВ: 64K ЗУ (адреса 0000..FFFF) + 64K стек (0000..FFFF) + 256 УВв (00..FF) + 256 УВыв (00..FF) = 128,5K байт. Для этого необходимо включить в состав МПС системный контроллер, фиксирующий PSW и формирующий управляющие сигналы чтения и записи стека, памяти и ВУ.

0 3FF

400 7FF

800 FFF

1000 13FF

2000 23FF

ПЗУ

ОЗУ

ВУ1

ВУ2

- неиспользуемое адресное пространство

Рис.5.28. Распределение адресного пространства для структуры, изображенной на Рис. 5 .27

Характерно, что серийный системный контроллер К580ВК28 не выделяет область стека (формирует только сигналы RDM, WRM, RDIO и WRIO), поэтому при необходимости отводить под стек большой объем памяти можно синтезировать на ИС системный контроллер, аналогичный по функциям ..ВК28, но формирующий дополнительно управляющие сигналы RDS и WRS.

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

Диспетчер памяти. При необходимости расширить объем памяти за пределы адресного пространства можно воспользоваться т.н. "диспетчером памяти". В простейшем случае он представляет собой программно-доступный регистр, который должен располагаться в пространстве ввода/вывода. В него заносится номер активного в данный момент банка памяти, причем объем банка может равняться объему адресного пространства МП (2k).

Очевидно, в каждый момент времени процессору доступен только один банк. При необходимости перехода в другой банк памяти МП должен предварительно выполнить программную процедуру (часто всего одну команду) перезагрузки содержимого номера банка. Сказанное иллюстрируется Рис. 5 .29. К развитию этой идеи можно отнести механизм сегментации памяти в 16- и 32-разрядных МП фирмы INTEL (см. разделы 2.2 и 2.3).

Рис.5.29. Использование диспетчера памяти