Прямой доступ к памяти
Классификация способов организации обмена информацией между устройствами ВМ приведена на рис. 8.1. В ВМ используются два основных способа обмена информацией: программно – управляемый обмен и прямой доступ к памяти (ПДП). Программно – управляемый обмен может инициироваться как микропроцессором, так и запросом прерывания от периферийного устройства (ПУ).
При программно – управляемом обмене (Programmed Input/Output - PIO), как это упрощенно показано на рис.8.2(а), передача слов происходит через регистры МП и производится соответствующими командами программы МП /2,4,13/. Процедура обмена по прерыванию имеет ряд существенных особенностей, которые будут изложены в дальнейшем.
При программно – управляемом обмене, например, пересылке блока байт данных из порта в оперативную память процессор выполняет следующие операции:
считывает байт данных из порта в один из регистров общего назначения;
записывает байт данных из регистра в ОЗУ по сформированному адресу;
модифицирует адрес ОЗУ и декрементирует содержимое счетчика байт.
Эти действия автоматически повторяются до завершения пересылки всех байт блока. Такой способ обмена сильно загружает процессор и замедляет выполнение основной задачи, что ухудшает динамические характеристики компьютерных систем управления.
Анализ несложной программы для МП, реализующей указанные операции, показывает, что для пересылки одного байта данных МП должен более десяти раз обратиться к оперативной памяти для чтения кода команд программы. Поэтому скорость передачи данных в этом режиме будет невысокой и может оказаться недостаточной для работы с высокоскоростными ПУ. Заметим, правда, что в современных процессорах скорость обмена в режиме PIO значительно увеличена за счет использования строковых команд ввода –вывода REP INS/OUTS.
Программно–управляемый обмен по инициативе процессора в зависимости от организации взаимодействия МП с периферийным устройством разделяется на прямой (безусловный) и условный.
При прямом или безусловном обмене процедура ввода-вывода выполняется МП независимо от состояния ПУ. Такой вид обмена возможен только с всегда готовыми к обмену простейшими ПУ, например, индикаторами, регистрами и т.п.
При условном обмене процедура ввода-вывода осуществляется МП только при выполнении условия готовности ПУ к обмену. Если условие готовности ПУ не выполняется, МП переходит в состояние ожидания готовности ПУ к обмену (рис.8.3.(а)) или возвращается к основной задаче без выполнения операции ввода-вывода (рис.8.3.(б)) с последующей повторной проверкой готовности ПУ.
Первый тип условного обмена называется с занятием цикла, а второй – совмещенный. Проверку условия готовности ПУ можно производить программно, считывая и анализируя биты регистра состояния ПУ, или аппаратно, анализируя специальный сигнал готовности RDY, генерируемый ПУ. После завершения процедуры ввода-вывода сигнал готовности RDY должен быть снят и сформирован снова только при новой готовности ПУ к обмену. С этой целью МП информирует ПУ об окончании ввода или вывода данных, для чего генерирует для ПУ сигнал подтверждения АСК. Таким образом, между МП и ПУ происходит обмен информацией двух типов: управляющей (синхронизирующей обмен) и собственно данными. Рассмотренный протокол обмена управляющей информацией называется квитированием и иллюстрируется рис.8.4.
Квитирование обеспечивает надежный асинхронный обмен данными со скоростями, определяемыми ПУ. Это вид обмена применяется для взаимодействия с ПУ, длительность рабочего цикла которых боль
ше командного цикла процессора или непостоянна во времени.
Прямым доступом к памяти (ПДП или DMA – Direct Memory Access) называется способ обмена данными, осуществляемый под управлением контроллера ПДП (контроллера DMA) автономно от МП /2,4,13/. Структурная схема обмена изображена на рис.8.2(б).
Контроллер ПДП (КПДП) может управлять в режиме прямого доступа передачей информации побайтно, пословно и блоками данных. С этой целью КПДП формирует и модифицирует адреса участвующих в обмене ячеек ОЗУ, задает размер блока данных, который подлежит передаче, ведет подсчет байт, передаваемых в ОЗУ или из ОЗУ, определяет момент завершения передачи, генерирует управляющие сигналы для МП, ОЗУ и периферийных устройств, обеспечивая их согласованную работу на шине в режиме ПДП. Управление обменом в этом режиме производится аппаратно, поэтому режим ПДП называют аппаратно-управляемым обменом.
В процессе функционирования в составе ВМ контроллер ПДП может находиться в одном из следующих состояний: исходное, программирование, ожидание и обслуживание.
В исходное состояние контроллер устанавливается после включения электропитания путем подачи сигнала сброса на вход RESET.
В состоянии программирования контролера МП по системной шине данных D0-D7 производит инициализацию контроллера. Для этого МП осуществляет запись в соответствующие регистры контроллера управляющих слов, определяющих режимы работы, и исходных данных, задающих начальные адреса областей памяти ОЗУ и размеры блоков передаваемых байт (до 64 Кбайт или слов). Адреса регистров определяются кодом А0-А3 на системной шине адреса. Обычный контроллер прямого доступа (интерфейсные БИС 8257 и 8237А) является четырехканальным, т.е. обслуживает четыре ПУ, поэтому каждый канал программируется индивидуально с учетом особенностей подключенного к каналу ПУ.
В состоянии ожидания контроллер осуществляет прием сигналов DRQ (0…3) запросов прямого доступа к памяти от ПУ и вырабатывает для МП сигнал HRQ «Запрос захвата», который поступает на вход HOLD микропроцессора. В этом состоянии системные шины находятся под управлением МП. В состояние ожидания контроллер переходит после завершения программирования.
В состояние обслуживания контроллер переходит после получения от МП сигнала HLDA «Подтверждение захвата», указывающего на возможность доступа к системным шинам со стороны контроллера. Контроллер формирует сигнал DACK подтверждения запроса прямого доступа к памяти запрашивающему ПУ и берет на себя управление системной шиной. В этом состоянии МП отключается от системной шины с помощью шинных формирователей. Если было несколько одновременных запросов DRQx, контроллер обслуживает канал с наивысшим приоритетом (0 – высший, 3 – самый низкий). Контроллер генерирует набор управляющих сигналов шины, необходимых для осуществления обмена данными между ОЗУ и ПУ в одном из запрограммируемых режимов прямого доступа. Контроллер модифицирует счетчик адреса и счетчик байт до тех пор, пока не будут выполнены все циклы ввода или вывода. В последнем цикле обмена контроллер формирует общий сигнал окончания ТС (Terminate Count), который может быть использован ПУ для формирования сигнала аппаратного прерывания.
Кроме ввода и вывода информации в состоянии обслуживания возможна проверка канала ПДП путем считывания содержимого канальных регистров для программного анализа процессором.
Как видно из описания ПДП, здесь МП при обмене занят только программированием контроллера ПДП. После этого в обмене задействованы только системная шина и контролер. Поэтому во время операций ПДП процессор может продолжать работу по выполнению основной программы. Это возможно, если выбранный режим обмена не занимает всей пропускной способности шины или имеется кэш-память, содержащая фрагменты программы и данных, которые процессор использует в вычислениях при занятой шине. Увеличения числа каналов ПДП в системе достигается за счет каскадного соединения контроллеров прямого доступа.
Способ прямого доступа к памяти целесообразно использовать при организации обмена большими (несколько Кбайт или слов) блоками данных, когда время, затрачиваемое на инициализацию контроллера мало по сравнению с временем собственно обмена.
Современные контролеры, работающие в режиме UltraDMA/33 на шине PCI, обеспечивают скорость обмена до 33 Мбайт/сек /14/. Наличие контролера ПДП также повышает производительность ВМ за счет распараллеливания во времени процессов обработки и обмена.
Дата добавления: 2016-06-13; просмотров: 1302;