Организация вычислительных систем

       

Подсистема прямого доступа к памяти


Прямой доступ к памяти (ПДП) - Direct Memory Access (DMA) - используется для высокоскоростной передачи данных между устройствами ввода-вывода и оперативной памятью без вмешательства ЦП. Типичным примером использования DMA являются контроллеры дисководов и винчестера. В системах IBM PC XT/AT используется контроллер DMA Intel 8237A (рис. 13.5), обеспечивающий четыре 8-битных канала DMA. В IBM PC AT применяется каскадное включение двух контроллеров DMA (рис. 13.6): 8237A, обеспечивающего четыре 8-битных канала, и 8237A-5, обеспечивающего четыре 16-битных канала (см. табл. 13.2).

Таблица 13.2. Каналы DMA в IBM PC AT

КаналНазначениеРазрядность
0Устройство на шине ISA8
1Контроллер интерфейса SDLC8
2Контроллер дисковода8
3Контроллер винчестера8
4Используется для каскадирования16
5Устройство на шине ISA16
6Устройство на шине ISA16
7Устройство на шине ISA16


увеличить изображение
Рис. 13.5.  Структура контроллера DMA Intel 8237A


увеличить изображение
Рис. 13.6.  Каскадное включение контроллеров в IBM PC AT

В активном цикле обслуживание подсистемы DMA возможно в одном из четырех режимов:

  • режим одиночной передачи (Single Transfer Mode);
  • режим передачи блока (Block Transfer Mode);
  • режим передачи по требованию (Demand Transfer Mode);
  • каскадный режим (Cascade Mode).

Для формирования 24-разрядного адреса используется регистр страницы, который определяет старшие биты адреса. Младшие 16 бит задаются регистром базы соответствующего канала контроллера. Такая схема обеспечивает передачу данных в пределах адресного пространства 16 Мбайт.

Для 8-битных каналов DMA регистр страницы определяет биты 16-23 физического адреса, а регистр базы - биты 0-15:

регистр страницырегистр базы
2 16 3 8 7 0 5

Для 16-битных каналов DMA используется только 7 бит регистра страницы, определяющих биты 17-23 физического адреса. При этом регистр базы канала задает биты 1-16. Бит A0 всегда выставляется в 0, чтобы гарантировать выровненную передачу слова памяти:

регистр страницырегистр базы0
23 1716 15 8 7 10

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

  • SI - неактивное состояние;
  • S0 - первое состояние обслуживания подсистемы DMA, возникающее по действительному запросу (DREQ);
  • S1, S2, S3, S4 - рабочие состояния;
  • SW - состояние ожидания.



Содержание раздела