Государственное образовательное учреждение высшего профессионального образования «Комсомольский-на-Амуре государственный технический
по дисциплине «Операционные системы»
Тема: «Создание TSR программ в операционной
системе MS DOS»
Вариант №2
Руководитель работы
Тихомиров В.А.
Исполнитель
Горн М.А.
Группа 3ВТ-1
Комсомольск-на-Амуре
2005
Задание :
- изучить теоретический материал по аппаратной организации контроллеров НГМД и DMA
- приобрести навыки управления устройствами компьютера путем программирования их котроллеров.
Теоретические сведения
Контроллер прямого доступа к памяти (DMA)
Контроллер DMA выполняет в персональном компьютере очень важную функцию. Он предназначен для передачи информации между оперативной памятью компьютера и периферийным устройством. Применение DMA позволяет разгрузить процессор при работе с периферийными устройствами, так как во время обмена контроллера с внешним устройством процессор не задействован и может работать независимо. Иначе говоря, контроллер DMA выполняет роль канала ввода-вывода.
Общее описание
В персональных компьютерах используются контроллеры DMA типа Intel 8237. Контроллер имеет 4 независимых канала передачи данных, каждый из которых может обслуживать свое устройство. В машинах класса XT установлен один такой контроллер, а в машинах класса AT - два. Таким образом, в машинах класса XT доступны 4 канала DMA, а в машинах класса AT - семь (один канал задействован для подключения второго контроллера DMA).
Общая структура контроллера DMA приведена на рис.
СигналDREQx используется внешним устройством для запроса на обслуживание каналом DMA.
Сигнал DACKx используется каналом DMA для указания внешнему устройству, что запрос на обслуживание выполнен.
Сигналы HOLD и HLDA используются контроллером для взаимодействия с процессором, когда контроллеру DMA требуется запросить обслуживание со стороны шины.
Принцип работы контроллера DMA
Начало цикла передачи данных активизируется периферийным устройством. При получении запроса на передачу данных от периферийного устройства, контроллер DMA выполняет следующие операции.
· Передаст процессору запрос на захват шины. Суть захвата шины состоит в монопольном использовании шины контроллером DMA.
· После удовлетворения запроса на захват шины контроллер DMA выполняет передачу данных между памятью и периферийным устройством. Количество передаваемых данных зависит от режима работы контроллера DMA.
· Выполняется освобождение шины и в устройство передается подтверждение о завершении передачи данных. На этом цикл передачи завершается.
· Цикл передачи данных повторяется до тех пор, пока не будет исчерпан счетчик передаваемых данных или устройство не прекратит операцию.
Режимы работы
Контроллер DMA обеспечивает несколько режимов работы с периферийным устройством.
Передача байта.
Этот режим обеспечивает передачу одного байта по каждому запросу от периферийного устройства. При этом захват шины происходит только на время передачи одного байта.
Передача блока. Этот режим обеспечивает передачу блока по одному запросу периферийного устройства. При этом происходит захват шины на все время передачи блока.
Передача по требованию. Этот режим обеспечивает передачу блока по одному запросу периферийного устройства. Однако периферийное устройство может в любой момент прервать передачу и возобновить ее впоследствии с прерванного места. При этом происходит захват шины только на время активного цикла передачи блока.
Каскадирование.
Данный режим позволяет подключать несколько контроллеров DMA, когда требуется увеличение числа каналов в системе. В этом случае один из каналов ведущего контроллера используется для подключения ведомого контроллера.
Использование того или иного режима зависит от того, как периферийное устройство будет работать с DMA.
Code segment
assume cs:code,ds:code
;область данных
;рабочая область для форматирования, чтения, записи
WorkArea
db 512*3*2-1 dup(0) ; память для трех секторов и вырав-
;нивания в пределах страницы DMA
WorkOff dw 0 ;смещение начала рабочей области
;выравненной в пределах стр. DMA
FDCResult label byte ;область данных для результата
;выполнения операций контроллерa
ST0 db 0 ;регистр состояния О
ST1 db 0 ;регистр состояния 1
ST2 db 0 ;регистр состояния 2
ResCyl db 0 ;цилиндр
ResHead db 0 ;голова
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.