Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ZH 2011 - ОРГАНИЗАЦИЯ ЭВМ.doc
Скачиваний:
42
Добавлен:
20.09.2019
Размер:
5.4 Mб
Скачать

26. Прямой доступ к памяти

DMA (Direct Memory Access) – режим прямого доступа к памяти, особый режим работы устройств, при котором устройства пишут в память и читают из памяти без участия центрального процессора. Это позволяет во многих случаях очень сильно повысить производительность. В этом режиме активным устройством является контроллер прямого доступа к памяти (КПДП). Процессор, получив от КПДП заявку на прямой доступ, прерывает свою работу и отключается от интерфейса, передавая его задатчику, т.е. КПДП. Процессор при этом не выполняет контекстного переключения, а может продолжать свою работу, если она не требует интерфейса. Управление интерфейсом переходит к КПДП, который посредством выполнения операций чтения и записи передает информацию между ОЗУ и ПУ с соответствующим заданием адресов памяти. В этом режиме используется механизм задания уровня приоритетов для тех ПУ, которые работают с прямым доступом к памяти. Этот режим также должен быть предусмотрен в интерфейсах.

ПДП

Это доступ без участия процессора между устройствами вв./выв. и памятью, между отдельными блоками памяти.

Ц ентральный процессор и др. устройства должны уметь отключаться при ПДП. Для этого – запрос и ответ. Процесс инициируется по сигналу ПУ. Как только разрешен ПДП, шиной начинает управлять контроллер ПДП. При этом отключается адресация ПУ. При обмене между блоками памяти используется 2 адреса – источник и приемник. Этот процесс инициируется процессором. Запускать обмен может таймер: цикл чтения и цикл записи (2 цикла). Так было раньше почти во всех процессорах. В настоящее время, как такового, контроллера ПДП почти не стало.

В режиме ПДП "степень свободы" больше.

Общий алгоритм ПДП.

Для осуществления прямого доступа к памяти контроллер должен выполнить ряд последовательных операций:

  • принять запрос (DREQ) от устройства ввода-вывода;

  • сформировать запрос (HRQ) в процессор на захват шины;

  • принять сигнал (HLDA), подтверждающий захват шины;

  • сформировать сигнал (DACK), сообщающий устройству о начале обмена данными;

  • выдать адрес ячейки памяти, предназначенной для обмена;

  • выработать сигналы (MEMR, IOW или MEMW, IOR), обеспечивающие управление обменом;

  • по окончании цикла DMA либо повторить цикл DMA, изменив адрес, либо прекратить цикл.

При прямом доступе к памяти процессор и контроллер DMA по очереди управляют локальной магистралью. Это, конечно, несколько снижает производительность процессора, так как при выполнении некоторых команд или при чтении очередной порции команд во внутренний кэш он должен поджидать освобождения магистрали, но в целом производительность вычислительной системы существенно возрастает.

При подключении к системе нового устройства, которое умеет использовать прямой доступ к памяти, обычно необходимо программно или аппаратно задать номер канала DMA, к которому будет приписано устройство. В отличие от прерываний, где один номер прерывания мог соответствовать нескольким устройствам, каналы DMA всегда находятся в монопольном владении устройств.

27. Устройства ввода-вывода: адресация, организация доступа.

Использование механизма прерываний позволяет разумно загружать процессор в то время, когда устройство ввода-вывода занимается своей работой. Однако запись или чтение большого количества информации из адресного пространства ввода-вывода (например, с диска) приводят к большому количеству операций ввода-вывода, которые должен выполнять процессор. Для освобождения процессора от операций последовательного вывода данных из оперативной памяти или последовательного ввода в нее был предложен механизм прямого доступа внешних устройств к памяти – ПДП или Direct Memory Access – DMA. Прямой доступ к памяти (DMA) - это метод непосредственного обращения к памяти, минуя процессор. Процессор отвечает только за программирование DMA: настройку на определенный тип передачи, задание начального адреса и размера массива обмениваемых данных. Обычно DMA используется для обмена массивами данных между системной памятью и устройствами ввода-вывода.

Обмен данными между процессором и устройствами ввода-вывода осуществляется по системной шине, "хозяином" которой является процессор. При использовании контроллера DMA на время обмена данными он должен получить управление системной шиной, т.е. стать ее "хозяином". По окончании обмена подсистема DMA возвращает процессору право управления шиной.

Распространены два типа контроллеров DMA - контроллеры для IBM PC/XT и контроллеры для IBM AT. Вначале мы расскажем о первом типе контроллеров, затем займемся контроллером DMA компьютера IBM AT.

Контроллер прямого доступа для IBM PC/XT реализован на базе микросхемы Intel 8237A и содержит четыре канала.

Архитектура компьютера PC AT включает в себя подсистему DMA, состоящую из двух контроллеров DMA Intel 8237, регистра старшего адреса DMA и регистров страниц DMA. Эти контроллеры обеспечивают 7 каналов DMA.

Система обеспечивает передачу данных по каналам DMA как по одному байту за цикл DMA, так и по два байта за цикл, исходя из возможностей архитектуры процессора (двухбайтной шины данных). Чтобы сохранить преемственность подсистемы DMA в PC AT с аналогичной подсистемой в PC XT каскадирование "байтного" контроллера DMA с распределением каналов XT осуществляется через "словный" контроллер DMA.

Общий алгоритм ПДП.

Для осуществления прямого доступа к памяти контроллер должен выполнить ряд последовательных операций:

  • принять запрос (DREQ) от устройства ввода-вывода;

  • сформировать запрос (HRQ) в процессор на захват шины;

  • принять сигнал (HLDA), подтверждающий захват шины;

  • сформировать сигнал (DACK), сообщающий устройству о начале обмена данными;

  • выдать адрес ячейки памяти, предназначенной для обмена;

  • выработать сигналы (MEMR, IOW или MEMW, IOR), обеспечивающие управление обменом;

  • по окончании цикла DMA либо повторить цикл DMA, изменив адрес, либо прекратить цикл.

Режимы обслуживания.

Режим одиночной передачи (Single Transfer Mode)

В этом режиме контроллер DMA выполняет только одну передачу. Адрес и счетчик слов будут изменяться при каждой передаче. DREQ должен быть активным, пока не активизируется соответствующий DACK.

Режим передачи блока (Blok Transfer Mode)

В этом режиме передается блок информации во время обслуживания подсистемы DMA. DREQ должен быть активным, пока не появиться активный DACK.

Режим передачи по требованию (Demand Transfer Mode)

В этом режиме передача данных выполняется до тех пор, пока не появится TC или внешний -EOP, либо когда DREQ станет неактивным

Каскадный режим (Cascade Mode)

Этот режим использует объединение нескольких контроллеров DMA для расширения числа подключаемых каналов. Выходы HRQ и входы HLDA от дополнительных контроллеров соединяются соответственно со входами DREQ и выходами DACK первичного контроллера DMA .

Режим память-память

Этот режим предназначен для передачи блоков данных из одного адресного пространства памяти в другое с минимальными программными и временными затратами, но в PC AT не используется.

2

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]