Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
54
Добавлен:
03.06.2014
Размер:
2.63 Mб
Скачать

Контроллер прямого доступа ibm pc/xt

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

Номер канала

Для чего применяется

0

Обновление содержимого динамической памяти компьютера.

Этот канал имеет наивысший приоритет

1

Не используется

2

Адаптер накопителя на гибком магнитном диске НГМД

3

Адаптер накопителя на магнитном диске НМД.

Этот канал имеет низший приоритет

Регистры каналов dma

Каждый канал DMA содержит следующие 16-разрядные регистры:

  • регистр текущего адреса CAR, содержит текущий адрес ячейки памяти при выполнении операции обмена данными с использованием DMA;

  • регистр циклов прямого доступа к памяти CWR, содержит число слов, предназначенных для передачи минус единица. При выполнении обмена данными регистр работает в режиме вычитания;

  • регистр хранения базового адреса BAR, используется для хранения базового адреса памяти, используемого при передачи данных. В процессе работы канала DMA содержимое этого регистра не изменяется;

  • регистр хранения базового числа циклов прямого доступа к памяти WCR. Этот регистр хранит число циклов DMA и его содержимое также не изменяестя;

  • регистр режима MR, определяющий режим работы канала.

Приведем адреса регистров и их форматы для компьютеров IBM PC/XT.

Порты 00h - 07h

Эти регистры содержат базовые адреса и счетчики передаваемых данных каналов 0 - 3. Их назначение приводится в следующей таблице:

Порт

Операция

Назначение

00h

Запись:

Базовый адрес канала 0

Чтение:

Текущий адрес

01h

Запись:

Счетчик канала 0

Чтение:

Текущий адрес

02h

Запись:

Базовый адрес канала 1

Чтение:

Текущий адрес

03h

Запись:

Счетчик канала 1

Чтение:

Текущий адрес

04h

Запись:

Базовый адрес канала 2

Чтение:

Текущий адрес

05h

Запись:

Счетчик канала 2

Чтение:

Текущий адрес

06h

Запись:

Базовый адрес канала 3

Чтение:

Текущий адрес

07h

Запись:

Счетчик канала 3

Чтение:

Текущий адрес

Порт 08h

Этот порт используется при записи в качестве управляющего регистра и при чтении как регистр состояния.

Формат управляющего регистра:

Поле

Описание

0

1 - использование режима память-память;

0 - обычный режим работы

1

Если используется режим память-память, то 1 в этом разряде разрешает захват канала, 0 – запрещает. В обычном режиме работы состояние этого бита безразлично

2

1 - запрет работы DMA;

0 - разрешение работы DMA

3

1 - использование сжатия во времени, если установлен бит обычного режима работы;

0 - обычный режим работы

4

1 – циклическое изменение приоритетов;

0 - фиксированные приоритеты

5

1 - удлиненный цикл записи;

0 - нормальный цикл записи

6

1 - для сигнала запроса на DMA используется низкий уровень DREQ;

0 – для этого сигнала используется высокий уровень

7

1 - для сигнала подтверждения DMA DACK используется высокий уровень;

0 - для этого сигнала используется низкий уровень

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

При чтении из порта 08h программа получает слово состояния контроллера DMA:

Поле

Описание

0-3

Биты 0-3 устанавливаются при достижении счетчиками каналов 0-3 конечных значений;

4-7

Биты 4-7 установлены, если имеется разрешение на DMA, соответственно, каналов 0-3

Соседние файлы в папке несколько программ