Помощничек
Главная | Обратная связь


Археология
Архитектура
Астрономия
Аудит
Биология
Ботаника
Бухгалтерский учёт
Войное дело
Генетика
География
Геология
Дизайн
Искусство
История
Кино
Кулинария
Культура
Литература
Математика
Медицина
Металлургия
Мифология
Музыка
Психология
Религия
Спорт
Строительство
Техника
Транспорт
Туризм
Усадьба
Физика
Фотография
Химия
Экология
Электричество
Электроника
Энергетика

Прямой доступ к памяти — DMA



Прямой доступ к памяти (Direct Memory Access, DMA) — это обмен между системной памятью (ОЗУ) и устройством, выполняемый без непосредственно­го участия процессора. Обмен осуществляет контроллер прямого доступа. Для устройств ISA в архитектуре PC/AT присутствует централизованный контрол­лер DMA, совместимый с «исторической» микросхемой i8237A. Для устройств шины PCI (и всех ее «родственников») контроллер является частью устрой­ства — мастера шины (bus master). Штатного централизованного контроллера DMA, как это было в архитектуре ISA, для шины PCI нет1.

Многоканальный контроллер DMA, программируемый по командам от цен­трального процессора, присутствует на системной плате PC-совместимого ком­пьютера. Первоначально он использовался устройствами шины ISA, теперь он используется интегрированной традиционной периферией: контроллером НГМД, портами LPT и СОМ и некоторыми встроенными аудиосредствами. Процессор при обмене по DMA занят только инициализацией контроллера, ко­торая сводится к записи в его регистры нескольких байтов, задающих началь­ный адрес и размер пересылаемого блока памяти, направление и режим обмена. Затем обмен производят системная шина и контроллер DMA, а инициатором обмена выступает устройство, сигнализирующее контроллеру DMA о своей го­товности к обмену. Во время операций DMA процессор может продолжать ра­боту, если выбранный режим обмена не занимает всей пропускной способности шин, задействованных процессором в данный момент (шины памяти, шины PCI, через которые подключается ISA в современных компьютерах). Контрол­лер DMA можно считать простейшим сопроцессором ввода-вывода, разгружаю­щим центральный процессор от рутинных операций обмена.

В PC/AT доступны 7 каналов DMA: четыре 8-битных (номера 0-3) и три 16-битных (5-7), подключенные к первичному и вторичному контроллерам соответственно. Канал 4 требуется для каскадирования (соединения контролле­ров), канал 2 — для контроллера НГМД. Контроллеры DMA программно со­вместимы с микросхемами i8237, используемыми в первых моделях PC/XT и AT. Стандартные каналы и адреса регистров приведены в табл. 4.3.

16-битные каналы DMA 5-7 обеспечивают передачу только 16-битных слов по четным адресам. Они могут быть использованы и интеллектуальными устрой­ствами для прямого управления шиной (bus mastering) ISA, при этом контроллер DMA, фактически, лишь играет роль арбитра шины. Интеллектуальный кон­троллер может выполнять более эффективные процедуры обмена, чем стан­дартный контроллер DMA. Однако архитектура шины ISA ограничивает дос­тупное пространство памяти областью в 16 Мбайт, что по нынешним меркам маловато. «Заботливые» операционные системы (например, Novell NetWare) для таких адаптеров позволяют под буферы резервировать область в пределах младших 16 Мбайт.

В контроллерах 8237А регистры адресов и счетчики передач являются 16-раз­рядными. Для расширения разрядности адреса применяются внешние регистры страниц, загружаемые программно (и не модифицируемые автоматически). Это сковывает свободу использования контроллера: передача не должна пересекать границ 64-килобайтных (для 8-битных каналов) или 128-килобайтных (для 16-битных) страниц. Стандартные регистры страниц расширяют адрес только до 24 бит (адресуемо только 16 Мбайт ОЗУ). Ограничения на доступную па­мять для режима DMA в новых машинах могут быть сняты применением рас­ширенных регистров страниц, но об этих не совсем стандартных возможностях, конечно же, должно «знать» и программное обеспечение.

Для интерфейса ПУ каждый канал DMA представляется парой сигналов: за­прос обмена — DRQx, подтверждение обмена — DACKx#. В операциях по каналу DMA адресуется текущая ячейка памяти, адрес порта не фигурирует, а исполь­зуется только пара сигналов, соответствующая номеру канала.

Стандартный контроллер DMA на шине ISA с частотой 8 МГц работает медлен­но, даже в блочных передачах пропускная способность не превышает 1 Мбайт/с для 8-битных каналов и 2 Мбайт/с для 16-битных. Программно-управляемый ввод-вывод, выполняемый инструкциями REP INS/OUTS на той же шине, может работать в два раза быстрее. По этой причине для обмена данными с контроллерами жестких дисков стандартные каналы DMA использовали редко, предпо­читая обмен РЮ.

С появлением шин МСА и EISA появился новый контроллер DMA, программ­но-совместимый с контроллером AT, но имеющий и дополнительные возмож­ности конфигурирования. Он может работать в более производительных режи­мах (Туре А, В, С) со скоростями до 33 Мбайт/с. В системах PCI для обмена с устройствами системной платы возможно использование контроллеров DMA с типом Type F (режим одиночной передачи или передачи по запросу и только с инкрементом адреса).

По стандартным каналам DMA возможно обращение как к системной памяти (расположенной на системной плате), так и к памяти, подключенной к шинам ISA и PCI. Обращение к 8-разрядной памяти, расположенной на адаптерах, до­пустимо только по 8-битным каналам (преобразование циклов выполнять неко­му). Однако ПУ, использующие эти каналы, могут располагаться лишь в слотах ISA/EISA или на системной плате (контроллер НГМД, LPT-порт в режиме ЕСР или Fast Centronics, аудиокодек). Если эти устройства системной платы ис­пользуют каналы DMA, то данные каналы становятся недоступными для або­нентов шины ISA. Контроллерам АТА, расположенным на системной плате, стандартные каналы DMA не требуются.

На время переходного периода, связанного с «изживанием» шины ISA, потре­бовалась возможность эмуляции каналов DMA для устройств шины PCI, что было обусловлено требованием совместимости звуковых карт PCI с сущест­вующим программным обеспечением, которое во многих случаях работает с ап­паратными средствами напрямую, без каких-либо драйверов. Фактический стандарт на программную модель звуковой карты SB 16 подразумевает доставку цифрового потока по каналу DMA. Существуют два механизма эмуляции кана­лов DMA: PC/PCI и DDMA (см. 14.3). Механизм PC/PCI был разработан фирмой Intel для обеспечения возможности использования слотов ISA блок­нотными ПК, подключаемыми к док-станции по шине PCI. Альтернативное ре­шение — механизм DDMA (Distributed Direct Memory Access — распределен­ный прямой доступ к памяти). Как известно, контроллеры DMA для шины ISA располагаются на системной плате, и управление несколькими каналами вы­полняется через одни и те же регистры. DDMA позволяет «расчленить» стан­дартный контроллер и отдельные его каналы эмулировать средствами карт PCI. Оба этих механизма реализуемы только как часть моста между первичной шиной PCI и шиной ISA, поэтому их поддержка может обеспечиваться (или не обеспечиваться) лишь на системной плате и разрешаться в CMOS Setup. Для других карт расширения (например, адаптеров локальных сетей, контроллеров интерфейсов) задача эмуляции DMA не возникает, поскольку с ними ПО, как правило, работает через драйверы, поставляемые вместе с этими картами.

 




Поиск по сайту:

©2015-2020 studopedya.ru Все права принадлежат авторам размещенных материалов.