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

Подсистема памяти МПС

 
 

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

 

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

 

0000 0FFF 1000 FEFF FF00 FFFF
ПЗУ 4К ОЗУ до 59,75К ВУ 0,25К

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

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

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

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

 

 

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

 

 
 

Например, используя информацию 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К ОЗУ 1К   ВУ1   ВУ2  
         
        - неиспользуемое адресное пространство

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

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

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

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

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

 

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

5.2.
Регенерация динамической памяти

Запоминающая ячейка динамического типа хранит информацию в виде заряда емкости. Ток утечки обратно смещенного p-n перехода составляет не более 10-10 A (0,1 нA), а емкость - 0,1..0,2 пФ, следовательно постоянная времени разряда - более 1 мС. Поэтому через каждые 1..2 мС требуется производить подзаряд емкостей запоминающих элементов - регенерацию динамической памяти.

 
 

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

Рис. 5.6. Управление регенерацией динамической памяти

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

В большинство динамических ОЗУ адрес ячейки подается за два приема : сначала - адрес строки, который запоминается во внутреннем регистре ОЗУ, потом по тем же линиям - адрес столбца. Каждая передаваемая по мультиплексированным линиям часть адреса сопровождается соответствующим управляющим сигналом (RAS, CAS).

Для регенерации накопителя достаточно провести обращение только к последовательным строкам - каждый цикл обращения для регенерации может состоять только из передачи адреса строки. Поэтому для полной регенерации накопителя объемом 16K (матрица 128 ´ 128) достаточно 128 тактов. Накопители большего объема реализуют на неквадратных матрицах, чтобы уменьшить число строк и сократить время регенерации. Так, накопитель объемом 64K имеет матрицу 128 ´ 512.

Различают несколько способов организации регенерации динамических ОЗУ в МПС.

5.2.1. Регенерация "по таймеру". В состав МПС включается таймер регенерации, который каждые 2 мС формирует сигнал, блокирующий обращение МП к памяти и запускающий процедуру регенерации. Схема управления регенерацией (

) включает в себя счетчик адреса регенерации, триггер регенерации и мультиплексор адреса.

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

5.2.2. "Прозрачная" регенерация. Главным достоинством метода прозрачной регенерации является отсутствие простоев МП при регенерации ОЗУ, поскольку для регенерации выбираются такие моменты времени, когда МП не занимает системную шину. Однажды начав регенерацию, совсем не обязательно проводить ее полностью. Циклы регенерации могут чередоваться с процессорными циклами, главное, чтобы процесс регенерации накопителя завершился за время, не превышающее 2 мС. Многие МП формируют специальные сигналы, отмечающие занятость шины. Эти сигналы можно использовать для управления триггером регенерации. Если МП (например, i8080) не формирует сигнала занятости магистрали, то такой сигнал можно сформировать специальной внешней схемой.

Так, в машинном цикле МП i8080 могут появляться такты T4, T5, в которых МП не занимает системную шину. Эти моменты времени можно выделять специальной схемой и использовать для регенерации.

Микропроцессор Z80 имеет встроенный счетчик регенерации и обеспечивает этот процесс самостоятельно параллельно с внутренней обработкой информации на кристалле.


В большинстве МП не предусмотрены средства обеспечения регенерации, т.к. в МПС может и отсутствовать динамическая память. Однако, в составе микропроцессорных комплектов выпускаются специальные БИС контроллеров регенерации. В качестве примера кратко рассмотрим структуру и функционирование БИС К1818ВТ03 - "Контроллер динамической памяти". На Рис. 5.7 показана структура БИС 565РУ5 (64К´1), а на Рис. 5.8 - временная диаграмма ее работы.

Рис. 5.7. Структура БИС динамического ОЗУ

 
 

БИС динамических ЗУ имеют объемы от 16К´1 (565РУ3) до 1М´1 (..РУ9), но имеют одинаковую структуру и линии управления (за исключением числа адресных).

Рис. 5.8. Временная диаграмма работы БИС динамического ОЗУ

Из Рис. 5.7 и Рис. 5.8 видно, что адрес ячейки подается в ОЗУ последовательно двумя порциями по одним и тем же линиям в сопровождении управляющих сигналов RAS (строб адреса строки) и CAS (строб адреса столбца). Поэтому адрес на системной шине, формируемый МП, должен мультиплексироваться, одновременно вырабатываться управляющие сигналы RAS и CAS.

Кристалл ОЗУ бывает выбран только при условии RAS = CAS = 0, что позволяет осуществлять селекцию блоков по двум координатам.

Контроллер динамической памяти (КДП) обеспечивает мультиплексирование адреса системной шины, выработку управляющих сигналов CAS и RAS[3:0] (для селекции модулей ОЗУ), а также внутреннюю (по таймеру) или внешнюю (прозрачную) регенерацию.

Структурная схема контроллера (Рис. 5.9) включает в себя :

· буферные схемы Буф.1,2,3 для подключения системной шины адреса и управления;

· счетчик адреса регенерации;

· мультиплексоры MUX1,2;

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

КДП обеспечивает преобразование сигналов системной шины МПС в сигналы управления динамическим ОЗУ (см. Рис. 5.8), причем может работать в двух режимах : "16/64" (на память 16K или 64K соответственно). В режиме "16" две старшие линии адреса используются для формирования одного из сигналов RAS[0..3], в режиме "64" КДП может управлять двумя банками по 64K, причем сигнал RAS появляется на одном из выходов RAS0 или RAS1 - в зависимости от состояния линии RAS3/B0, которая в режиме "64" становится входом, определяющим номер банка ОЗУ.

Регенерация может осуществляться в двух режимах - внутреннем и внешнем. Если вход REFR остается неактивным 10..16 мкС, то формируется запрос на цикл регенерации от внутреннего таймера, причем в случае конфликта арбитр отдает предпочтение циклу памяти. Таким образом, и при регенерации по таймеру используются свободные такты шины. При внешней регенерации запрос должен быть сформирован на входе REFR.

Сигнал PCS - "Защищенный выбор кристалла" отличается от традиционного CS тем, что если PCS сформирован, то цикл ЗУ аннулировать нельзя.

 
 

 

Рис. 5.9. Контроллер динамического ОЗУ

 

RD, WR - запросы на циклы чтения и записи соответственно.

X0, X1 - выводы для подключения кварцевого резонатора при работе с внутренним генератором. При работе с внешним генератором на вход X0 подается высокий потенциал, а на X1 - частота CLK внешнего генератора.

Выходной сигнал SACK вырабатывается КДП в начале цикла обращения к памяти. Если запрос от МП приходится на цикл регенерации, то SACK задерживается до начала цикла чтения/записи.

Выходной сигнал XACK ("Готовность данных") вырабатывается в конце цикла чтения/записи.

Сигналы SACK и XACK можно использовать для управления потенциалом на входе READY микропроцессора.

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

6. Подсистема ввода/вывода МПС

Подсистема ввода/вывода (ПВВ) обеспечивает связь МП с внешними устройствами, к которым будем относить:

· устройства ввода/вывода (УВВ) : клавиатура, дисплей, принтер, датчики и исполнительные механизмы, АЦП, ЦАП, таймеры и т.п.

· внешние запоминающие устройства (ВЗУ): накопители на магнитных дисках, "электронные диски" и др.

В рамках рассмотрения ПВВ будем полагать термины "УВВ" и "ВУ" синонимами, т.к. обращение к ним со стороны процессора осуществляется по одним законам.

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

1) согласование форматов данных, т.к. процессор всегда выдает/принимает данные в параллельной форме, а некоторые ВУ (например, НМД) - в последовательной. С этой точки зрения различают устройства параллельного и последовательного обмена. В рамках параллельного обмена не производится преобразование форматов передаваемых слов, в то время как при последовательном обмене осуществляется преобразования параллельного кода в последовательный и наоборот. Все варианты, когда длина слова ВУ (больше 1 бита) не совпадает с длиной слова МП, сводятся к разновидностям параллельного обмена;

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

3) адресную селекцию внешнего устройства.