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