Захват шины (bus mastering)




В шинах MicroChannel, SBus, разработанной под их большим влиянием PCI и её концептуальных производных AGP и PCI-X, используется иная реализация DMA. Эти шины позволяют любому устройству заявить о возникновении потребности к захвату шины, таковая потребность удовлетворяется так называемым арбитром при первой возможности. Устройство, успешно осуществившее захват шины, самостоятельно выставляет на шину сигналы адреса и управления и исполняет в течение какого-то времени ту же ведущую роль на шине, что и ЦП. Доступ ЦП к шине при этом кратковременно блокируется.

В такой реализации DMA не существует контроллера DMA, а также номера входа контроллера DMA.

Некоторые старые устройства с интерфейсом PCI, а именно, реализации звуковых карт семейства Sound Blaster, использовали DMA-контроллер 8237 из оригинальной архитектуры IBM PC. Такое использование, безусловно, является устаревшим для PCI, но поддерживалось с целью обеспечения полной совместимости по ПО и драйверам со звуковыми картами Sound Blaster для шины ISA.

Данная поддержка называется «Distributed DMA» (D-DMA) и реализована аппаратно как в устройстве, так и в логике моста PCI-ISA, в которой на PCI-системах размещена и логика DMA-контроллера 8237 (оригинального для IBM PC). В реализации используется два запроса: первый запрос от устройства к мосту PCI-ISA, второй — от моста к оперативной памяти ПК.

Кроме упомянутых реализаций Sound Blaster, практически никакие устройства PCI не используют понятие «номер входа DMA-контроллера», как и 8237 вообще.

Контроллер прямого доступа к памяти (КПДП) предназначен для организации скоростного обмена данными между памятью и внешними устройствами, причем обмен инициируется внешним устройством.

В персональном компьютере применяется два четырехканальных контроллера ПДП типа i8237, обеспечивающих 7 каналов ПДП (один канал задействован под каскадирование контроллеров). Помимо собственно контроллеров ПДП в подсистему ПДП входят также программно доступные регистр старшего байта адреса и регистры страниц ПДП.

Получив сигнал запроса ПДП по одной из линий DRQ, контроллер формирует запрос процессору на захват шины и, получив разрешение от процессора, сообщает о предоставлении ПДП запросившему прямой доступ устройству по соответствующей линии DACK. После этого производится цикл ПДП, пересылающий данные из устройства ввода/вывода в память или наоборот. При этом сам контроллер ПДП формирует только 16 младших разрядов адреса памяти, а восемь старших разрядов содержатся в регистре страниц. Свой собственный регистр страниц соответствует каждому из каналов ПДП.

Передача данных в случае ПДП возможна по одному из следующих режимов:

· Режим одиночной (поцикловой) передачи. В этом случае за время предоставления ПДП выполняется только один цикл передачи данных, и для следующей передачи надо опять же запросить ПДП. Однако адрес памяти, с которым осуществляется обмен, автоматически меняется после каждого цикла. Этот режим позволяет процессору вставлять свои циклы обмена после каждого цикла ПДП.

· Режим передачи блока (режим блочной передачи). В этом режиме за один раз передается целый блок данных определенной длины (до 64 Кбайт). Режим обеспечивает более высокую скорость передачи по сравнению с режимом одиночной передачи, но может на длительное время захватить системную шину, не допуская к ее управлению процессор.

· Режим передачи по требованию. Этот режим позволяет продолжать ПДП до тех пор, пока устройство, запросившее ПДП, не исчерпает весь объем данных.

· Каскадный режим позволяет объединять контроллеры для увеличения количества каналов ПДП.

· Возможен также режим передачи в режиме ПДП из памяти в память.

Возможны две схемы приоритетов каналов ПДП, выбираемые программно, - фиксированный и циклический. Исходная схема - фиксированные приоритеты, причем нулевой канал имеет максимальный приоритет, а седьмой - минимальный. Во время обслуживания любого запроса ПДП остальные запросы не могут вмешаться, но после завершения обслуживания данного запроса будет обслуживаться запрос с наибольшим приоритетом. Возможно также программное маскирование каждого канала ПДП.

Перед началом работы каждому из каналов контроллера процессор должен указать режим, в котором он будет работать, базовый адрес памяти, с которого начнется обмен, количество передаваемых байтов или слов, направление записи в память или чтения из памяти (от старших адресов к младшим или наоборот). Возможен режим автоинициализации, при котором после окончания пересылки всего массива данных контроллер автоматически восстанавливает все параметры, и для этого не требуется вмешательство процессора. Предусмотрена также возможность программного запроса ПДП, обслуживаемого так же, как и аппаратный запрос.

 

27. Архитектурные особенности защищенного режима. Регистры общего назначения, сегментные, регистр флагов, указатель команд, управляющие регистры и регистры системных адресов.

28. Архитектурные особенности защищенного режима. Изолированные адресные пространства. Дескрипторные таблицы, селекторы.

29. Архитектурные особенности защищенного режима. Цепочка преобразований виртуального адреса в физический. (Сегментное и страничное преобразование)

30. Архитектурные особенности защищенного режима. Глобальное и локальное адресные пространства.

 



Поделиться:




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

©2015-2024 poisk-ru.ru
Все права принадлежать их авторам. Данный сайт не претендует на авторства, а предоставляет бесплатное использование.
Дата создания страницы: 2019-06-16 Нарушение авторских прав и Нарушение персональных данных


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