курсовой проект / УСТРОЙСТВО УПРАВЛЕНИЯ РАСШИРЕННОЙ ПАМЯТЬЮ / схема управления памятью
.docОРГАНИЗАЦИЯ УПРАВЛЕНИЯ РАСШИРЕННОЙ ПАМЯТЬЮ ДЛЯ ПРОЦЕССОРА КР580ИК80А
Предлагаемый способ организации управления расширенной памятью позволяет использовать модули памяти, разрядность адресной тины которых больше, чем непосредственно адресует процессор, сохраняя непрерывность адресного пространства модулей. При этом модули системной памяти и «электронного диска» (1—3) могут быть идентичны или даже совмещены на одной плате.
Для организации обмена между банками используется прямой доступ к памяти (ПДП). При этом не нужно заботиться о том, чтобы активная программа оставалась постоянно подключенной к процессору, так как регистр расширенного адреса будет менять свое значение только при операциях с ПДП, а при процессорных обращениях на старшие (расширенные) разряды адреса включен регистр системного балка. Его значение устанавливается программно процессором при включении питания или рестарте ЭВМ, когда определяются номера подключенных банков ОЗУ и их количество.
Приведенная на рис. 1 схема позволяет обслужить до 1 Мбайта ОЗУ. Можно дополнительно расширить адресное пространство процессора до 16 Мбайт путем замены 4-разрядных регистров (Do, D6) на 8-разрядные или удвоением их количества. Схема состоит из контроллера ПДП (D1), регистра стробирования старших разрядов адреса АВ8... АВ15 (D2), буфера управляющих сигналов системной магистрали (D3), буферного регистра данных (D4), через который происходит обмен данными при ПДП в циклах чтения и записи в память. Микросхемы К555ИР22 можно заменять на КР580ИР82. Регистры D5 и D6 с тремя состояниями на выходе предназначены для хранения и выдачи старших (расширенных) разрядов адреса АВ16... АВ19 на системную магистраль. Микросхема D7 — ПЗУ — использована для дешифрации адреса и может быть запрограммирована на любые свободные в ЭВМ адреса внешних устройств.
Кроме того, в ЭВМ должен быть системный регистр, выставляющий на старшие разряды адреса АВ16... АВ19 номер банка системного ОЗУ, которое выбирается при процессорных обращениях' и переводится в третье состояние при работе в режиме ПДП, т.: е. каждый канал контроллера ПДП дополняется регистрами расширенного адреса и, таким образом, контроллер выставляет на шину сразу 20-разрядный адрес памяти, старшие биты которого содержат номер выбранного банка.
Канал 0 контроллера программируется на чтение из памяти во внешнее устройство, которым является буферный регистр D4, а канал 1—' на запись из внешнего устройства (D4) в память. На рис. 2 приведен фрагмент программы-драйвера «электронного диска» такой системы, включенной в секцию ввода-вывода (BIOS) ОС (стандарт для СР/М), которая выполняет чтение и запись сектора длиной 128 байт. Входными данными ^являются: в регистре В — номер дорожки, в регистре С — номер сектора на дорожке, в регистровой паре HL — адрес начала буферной области объемом 128 байт в системном банке памяти, куда считывается сектор «электронного диска» или откуда записывается сектор на «электронный диск».
Как видно hi рисунков, в регистр адреса канала 0 контроллера ПДП выводятся младшие 16 бит адреса, с которого будет читаться информация, а в регистр адреса капала 1 контроллера—16 бит адреса, на который будут записываться прочитанные данные, а старшие 4 бита адреса (номера банков) читаемой и записываемой областей компонуются в один байт и выводятся в регистры расширения адреса (D5 и D6). Длина передаваемой области задается одинаковой для обоих каналов и может быть произвольной вплоть до 16 Кбайт. Эти числа записываются в регистры управления каналов контроллера ПДП. Режим контроллера (байт 73Н) задает циклический приоритет с расширенной записью и автоматическим окончанием работы для двух каналов (нулевого и первого).
После вывода начальных адресов и размеров передаваемых массивов, а также управляющего слона, задающего режим и разрешающего работу каналов, первым начинает работать канал 0, так как он имеет более высокий приоритет. При появлении единичного уровня сигнала BUSEN системный регистр отключает старшие биты адреса системной памяти и процессор переводит свои сигналы на системной магистрали в третье состояние. Нулевой канал контроллера выставляет на шипу адреса все 20 разрядов адреса (на АВ16... А819 открывается регистр D5, так как установлен сигнал DACKO)", по которому считывается байт в буферный регистр D4.
Контроллер запрограммирован на циклический приоритет. Поэтому после прочтения одного байта по адресу, на который запрограммирован канал 0, он переходит к обслуживанию запроса от канала 1, т. е. записи по адресу памяти, установленному в канале 1 и регистре D6, открывающемся при появлении сигнала DACK.1. Затем по сигналу чтения порта на шину данных откроется буферный регистр D4 и появится информация, прочитанная в предыдущем цикле ПДП по адресу канала 0. После обслуживания канала 1 контроллер опять переходит к обслуживанию канала 0 и так до тех пор, пока заданный массив не передастся до конца.
По концу передачи снимается единичный сигнал BUSKN и для считывания процессором следующей команды открывается системный регистр, который выдает на разряды расширенного адреса номер банка системной памяти и подключает ее.
Таким образом, время пересылки одного байта без учета тактов ожидания памяти равняется восьми тактам опорной частоты Ф2 (один цикл контроллер;) ПДП равен четырем тактам), т. е. при максимальной
частоте процессора (2,5 МГи) – 3,2мкс, а скорость обмена 300 Кбайт/с.
При разбиении на секторы и дорожки под управлением ОС СР/М учитывались некоторые особенности дисковых устройств, работающих под этой ОС, и минимизация обслуживающей программы-драйвера. Было выбрано такое разбиение, при котором на одной дорожке находится 32 сектора, т. е. одна «дорожка» включает в себя 4 Кбайта ОЗУ, а один банк памяти состоит из 16 «дорожек».
При включении питания программно проверяются на наличие все банки ОЗУ, помер системного банка, номера банков и размер «электронного диска». Полученная информация помещается в ячейку BANK (см. рис. 2) и номер банка системной памяти выводится в системный порт.
Как показывает практика работы с таким «электронным диском» под управлением ОС СР/М, достаточным для работы практически со всеми программами является общий объем ОЗУ в 256 Кбайт, из которых 64 отводится под системное ОЗУ, а 192 — под «электронный диск». Время работы системы и программ существенно уменьшилось и ГМД стали необходимы только для хранения разрабатываемых программ и начальной загрузки ОС и программ-утилит. Для микроЭВМ, снабженной накопителем на кассетном магнитофоне, вообще отпадает необходимость в применении НГМД, так как указанные функции НГМД можно производить и с НКМЛ.
Кроме описанного применения данный контроллер можно использовать для регенерации динамического ОЗУ, а также при использовании только канала 1 для быстрого заполнения областей памяти константой, например для очистки экрана дисплея.