Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Прямой доступ к памяти. Организация прямого доступа к памяти. Контроллер ПДП.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте
Прямой доступ к памяти (ПДП) является одним из способов обмена данными с ПУ. В этом режиме обмен данными между ПУ и памятью микропроцессорной системы происходит без участия процессора. Обменом в режиме ПДП управляет не программа, выполняемая процессором, а внешнее по отношению к процессору специальное устройство, называемое контроллером ПДП (КПДП). ПДП используется для быстрого ввода/вывода блоков данных и разгрузки процессора от управления операциями ввода/вывода. Обмен блоками данных с помощью программно-управляемого обмена осуществляется относительно медленно, так как на обмен каждым байтом затрачивается несколько команд процессора. ПДП освобождает процессор от управления операциями ввода/вывода, позволяя тем самым осуществлять параллельно во времени выполнение процессором программы с обменом данными между ПУ и памятью, производить этот обмен со скоростью, ограниченной только пропускной способностью памяти или ПУ. Таким образом, ПДП, разгружая процессор от обслуживания операций ввода/вывода, способствует возрастанию общей производительности микропроцессорной системы. Для реализации режима ПДП необходимо обеспечить непосредственную связь контроллера ПДП и памяти микропроцессорной системы, т.е. специальный информационный канал, по которому осуществляется обмен в режиме ПДП, – канал ПДП. Для этой цели можно использовать специально выделенную магистраль, связывающую контроллер ПДП с памятью. Однако такое решение нельзя признать оптимальным, так как это приведет к значительному усложнению микропроцессорной системы в целом, особенно при подключении нескольких ПУ. С целью сокращения количества линий в шинах микропроцессорной системы контроллер ПДП подключается к памяти посредством шин системной магистрали. При этом возникает проблема совместного использования шин системной магистрали процессором и контроллером ПДП. Можно выделить два основных способа ее решения: - реализация обмена в режиме ПДП с захватом цикла; - реализация обмена в режиме ПДП с блокировкой процессора. Существует две разновидности прямого доступа к памяти с захватом цикла. Наиболее простой способ организации ПДП состоит в том, что для обмена используются те циклы процессора, в которых он не обменивается данными с памятью. В такие циклы контроллер ПДП может обмениваться данными с памятью, не мешая работе процессора. Однако возникает необходимость выделения таких циклов, чтобы не произошло временного перекрытия обмена ПДП с операциями обмена, инициируемыми процессором. В некоторых процессорах формируется специальный управляющий сигнал, указывающий циклы, в которых процессор не использует память. Если процессор не формирует такого сигнала, то для выделения свободных циклов необходимо применение в контроллере ПДП специальной схемы, что приводит к усложнению последнего. Применение этого способа организации ПДП не снижает производительности системы, но при этом обмен в режиме ПДП возможен только в случайные моменты времени одиночными словами. Наиболее распространенным является ПДП с захватом цикла и принудительным отключением процессора от шин системной магистрали. Для реализации такого режима ПДП системная магистраль дополняется двумя управляющими сигналами – «Требование прямого доступа к памяти» HOLD и «Предоставление прямого доступа к памяти» HLDA. Управляющий сигнал HOLD формируется контроллером ПДП. Процессор, получив этот сигнал, приостанавливает выполнение текущей команды, не дожидаясь ее завершения, отключается от шин системной магистрали и выдает контроллеру ПДП управляющий сигнал HLDA. С этого момента все шины системной магистрали управляются контроллером ПДП. Контроллер ПДП, используя шины системной магистрали, осуществляет обмен одним словом данных с памятью и затем, сняв сигнал HOLD, возвращает управление системной магистралью процессору. Как только контроллер ПДП будет готов к обмену следующим словом данных, он вновь захватывает цикл процессора и т.д. В промежутках между захватами циклов контроллером ПДП процессор продолжает выполнять команды программы. Тем самым выполнение программы замедляется, но значительно в меньшей степени, чем при обмене в режиме прерывания. Передача блока данных с использованием ПДП предполагает выполнение определенной последовательности действий (рис. 32): 1) начальная установка (предварительная подготовка) контроллера ПДП; 2) запуск контроллера ПДП; 3) многократное занятие цикла процессора; 4) завершение обмена. Рис. 32 – Алгоритм передачи блока данных с использованием контроллера ПДП
Программа используется только для начальной установки и пуска обмена через канал ПДП. После этого процессор может выполнять основную программу, которая не связана с обменом. Во время выполнения этой программы каждый раз при поступлении запроса на ПДП контроллер ПДП будет занимать цикл процессора, и осуществлять передачу. После окончания обмена для передачи управления программе завершения обмена в режиме ПДП используется прерывание. Затем основная программа может быть продолжена. Рассмотрим организацию контроллера ПДП, обеспечивающего ввод данных в память микропроцессорной системы в режиме ПДП (рис. 33). Рис. 33 – Организация контроллера ПДП
Начальная подготовка к обмену в режиме ПДП состоит в выделении ПУ области памяти, используемой при обмене, и указании ее размера, т.е. количества записываемых в память или читаемых из памяти слов информации. Следовательно, контроллер ПДП должен иметь в своем составе регистр адреса и счетчик слов. Перед началом обмена с ПУ в режиме ПДП процессор должен выполнить программу загрузки, которая обеспечивает запись в указанные регистры контроллера ПДП начального адреса выделенной ПУ памяти и ее размера в словах заданной разрядности. Таким образом, перед началом ввода из ПУ очередного блока данных процессор загружает в регистры контроллера ПДП следующую информацию: в счетчик слов – количество принимаемых слов, а в регистр адреса – начальный адрес области памяти для вводимых данных. Тем самым контроллер подготавливается к выполнению операции ввода данных из ПУ в память в режиме ПДП. Запуск контроллера ПДП осуществляется командой вывода, по которой устанавливается в 1 триггер пуска. Триггер пуска подключает ПУ к контроллеру ПДП. После команды пуска контроллера ПДП должна быть команда разрешения прерывания. В дальнейшем ввод блока данных через канал ПДП осуществляется без участия команд программы. Когда ПУ подготовит слово данных, оно посылается в регистр данных контроллера. При этом каждое слово сопровождается управляющим сигналом из ПУ «Ввод данных», который обеспечивает запись слова данных в регистр данных контроллера. По этому же сигналу (при установленном в 1 триггере пуска) устанавливается в 1 триггер запроса, сигнал с выхода которого поступает на вход процессора «Требование прямого доступа к памяти» HOLD. После формирования процессором ответного сигнала «Предоставление прямого доступа к памяти» HLDA следующий машинный цикл занимается под обмен. При этом осуществляется одна пересылка слова данных в ячейку памяти по адресу, находящемуся в регистре адреса контроллера. По сигналу HLDA контроллер выставляет на шины адреса и данных системной магистрали содержимое своих регистров адреса и данных соответственно. Формируя управляющий сигнал MEMWR, контроллер ПДП обеспечивает запись слова данных из своего регистра данных в память. Сигнал «Предоставление прямого доступа к памяти» HLDA используется в контроллере также для выполнения трех операций: - сброса триггера запроса; - увеличения содержимого регистра адреса на 1; - уменьшения содержимого счетчика слов на 1. По каждому сигналу HLDA из содержимого счетчика слов вычитается 1, и когда оно становится равным 0, устанавливается в 1 триггер окончания передачи блока данных, сигнал с выхода которого используется в качестве запроса на прерывание и поступает на соответствующий вход процессора. Процессор прерывает выполнение программы и передает управление подпрограмме обработки прерывания для завершения обмена. Завершение обмена осуществляется путем отключения ПУ от контроллера ПДП командой вывода, по которой сбрасывается в 0 триггер пуска. Кроме того, аналогичным образом сбрасывается в 0 триггер окончания передачи блока данных. По окончании обработки прерывания управление возвращается основной программе. Если нет необходимости продолжать выполнение некоторой программы параллельно с передачей в режиме ПДП, используется в качестве сигнала готовности, который доступен процессору через регистр состояния контроллера ПДП. В этом случае прерывание не используется (выход триггера окончания передачи не подключается к входу запроса на прерывание процессора или прерывание в процессоре запрещается). В течение обмена через канал ПДП процессор находится в цикле ожидания окончания передачи, опрашивая соответствующий разряд готовности регистра состояния контроллера ПДП по команде ввода. Как только процессор обнаружит готовность, он переходит к процедуре завершения обмена (шаг 4 рассмотренной выше последовательности), после чего выполнение программы продолжается. Завершение обмена путем отключения ПУ от контроллера ПДП – сброс в 0 триггера пуска – может осуществляться не по команде вывода в подпрограмме обработки прерывания, а автоматически, когда содержимое счетчика слов становится равным 0 (также как и установка в 1 триггера окончания передачи). В этом случае в контроллере ПДП отпадает необходимость в триггере пуска, а подключение/отключение ПУ к контроллеру осуществляется в зависимости от состояния счетчика слов. При загрузке в счетчик количества принимаемых слов сигнал «0=» устанавливается в 1 и подключает ко входу S триггера запроса управляющий сигнал из ПУ «Ввод данных». После передачи всех слов содержимое счетчика становится равным 0, сигнал «0=» сбрасывается в 0 и запрещает поступление управляющего сигнала из ПУ «Ввод данных» на вход S триггера запроса, отключая тем самым ПУ от контроллера ПДП. Выше были рассмотрены только процесс подготовки контроллера ПДП и непосредственно передача данных в режиме ПДП. На практике любой сеанс обмена данными с ПУ в режиме ПДП всегда включает также и этап подготовки ПУ к обмену. На этом этапе процессор в режиме программно-управляемого обмена опрашивает состояние ПУ, проверяя его готовность к обмену, и посылает в ПУ команды, обеспечивающие его подготовку к обмену данными по каналу ПДП. Такая подготовка может сводиться, например, к перемещению головок на требуемую дорожку в НМД. Затем выполняется загрузка регистров контроллера ПДП, после чего обмен данными в режиме ПДП начинается либо по инициативе контроллера ПДП, как это было рассмотрено выше, либо по инициативе ПУ. Следует отметить, что использование в микропроцессорной системе обмена в режиме ПДП с захватом цикла требует от программиста очень ясного понимания процессов, происходящих в системе при выполнении программы, и четкой синхронизации процесса выполнения программы и ввода /вывода по каналу ПДП. Прямой доступ к памяти с блокировкой процессора отличается от режима ПДП с захватом цикла тем, что управление системной магистралью передается контроллеру ПДП не на время передачи одного слова, а на время обмена блоком данных. Такой режим ПДП необходим в тех случаях, когда время между двумя сигналами «Требование прямого доступа к памяти» HOLD сопоставимо с циклом процессора. В этом случае процессор не успевает выполнить хотя бы одну команду между очередными операциями обмена в режиме ПДП. В микропроцессорной системе можно использовать несколько ПУ, работающих в режиме ПДП. Предоставление таким ПУ шин системной магистрали для обмена данными производится на приоритетной основе. В этом случае приоритеты ПУ реализуются так же, как и при обмене данными в режиме прерывания. Как правило, для каждого ПУ используется своя пара управляющих сигналов «Требование прямого доступа к памяти» HOLD и «Предоставление прямого доступа к памяти» HLDA и отдельный канал в контроллере ПДП.
|
||||
Последнее изменение этой страницы: 2016-08-12; просмотров: 1149; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.147.81.186 (0.008 с.) |