Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2011___лекция СВВ компьютера.doc
Скачиваний:
4
Добавлен:
22.11.2019
Размер:
169.47 Кб
Скачать

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

(Direct Memory Access – DMA)

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

Для освобождения процессора от операций последовательного вывода данных из оперативной памяти или последовательного ввода в нее был разработан механизм прямого доступа внешних устройств к памяти – ПДП или Direct Memory Access – DMA.

Рассмотрим, как работает этот механизм.

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

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

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

Активный доступ, Bus Master DMA, - устройство само является ведущим на своей шине и способно генерировать обращение к памяти (как правило, системной). Реализация активного DMA зависит от типа шины расширения, к которой подключается устройство.

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

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

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

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

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

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

Логические принципы организации ввода-вывода

Как должна быть построена подсистема управления вводом-выводом для легкого и безболезненного добавления новых устройств и какие функции вообще обычно на нее возлагаются.

Структура системы ввода-вывода

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

  • Скорость обмена информацией может варьироваться в диапазоне от нескольких байтов в секунду (клавиатура) до нескольких гигабайтов в секунду (сетевые карты).

  • Одни устройства могут использоваться несколькими процессами параллельно (являются разделяемыми), в то время как другие требуют монопольного захвата процессом.

  • Устройства могут запоминать выведенную информацию для ее последующего ввода или не обладать этой функцией.

  • Устройства, запоминающие информацию, в свою очередь, могут дифференцироваться по формам доступа к сохраненной информации: обеспечивать к ней последовательный доступ в жестко заданном порядке или уметь находить и передавать только необходимую порцию данных.

  • Часть устройств умеет передавать данные только по одному байту последовательно (символьные устройства), а часть устройств умеет передавать блок байтов как единое целое (блочные устройства).

  • Существуют устройства, предназначенные только для ввода информации, устройства, предназначенные только для вывода информации, и устройства, которые могут выполнять и ввод, и вывод.

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

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

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

  2. Специфицировать интерфейсы между ядром операционной системы, осуществляющим некоторую общую политику ввода-вывода, и программными частями, непосредственно управляющими устройствами, для каждого из таких типов.

Как следствие, имеем принцип уровневого или слоеного построения системы управления вводом-выводом для операционной системы

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

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

Структура системы ввода-вывода

IDEIntegrated Drive Electronics — «электроника, встроенная в привод») разработан в 1986 году фирмой Western Digital. Важное нововведение: контроллер привода располагается в нём самом, а не в виде отдельной платы расширения, как в существовавших тогда интерфейсах SCSI.

Это позволило:

- улучшить характеристики накопителей за счёт меньшего расстояния до контроллера,

- упростить управление им, так как контроллер канала IDE абстрагировался от деталей работы привода

- удешевить производство, так как контроллер привода мог быть рассчитан только на «свой» привод, а не на все возможные; контроллер канала же вообще становился стандартным.

Контроллер канала IDE правильнее называть хост-адаптером, поскольку он перешёл от прямого управления приводом к обмену данными с ним по протоколу.

В стандарте АТА определён интерфейс между контроллером и накопителем, а также передаваемые по нему команды.

Интерфейс имеет 8 регистров, занимающих 8 адресов в пространстве ввода-вывода.

Ширина шины данных составляет 16 бит.

Количество каналов, присутствующих в системе, может быть больше 2. Главное, чтобы адреса каналов не пересекались с адресами других устройств ввода-вывода. К каждому каналу можно подключить 2 устройства, но в каждый момент времени может работать лишь одно устройство.

Принцип адресации - CHS (заложен в названии). Сначала блок головок устанавливается позиционером на требуемую дорожку (Cylinder), после этого выбирается требуемая головка (Head), а затем считывается информация из требуемого сектора (Sector).

Стандарт EIDEEnhanced IDE — «расширенный IDE»), появившийся вслед за IDE, позволял использование приводов ёмкостью, превышающей 528 Мб, вплоть до 8,4 Гб.

Хотя эти аббревиатуры возникли как торговые, а не официальные названия стандарта, термины IDE и EIDE часто употребляются вместо термина ATA. После введения в 2003 году стандарта Serial ATA («последовательный ATA»), традиционный ATA стали именовать Parallel ATA, так как способ передачи данных - по параллельному 40- или 80-жильному кабелю.

Поначалу этот интерфейс использовался с жёсткими дисками, но затем стандарт был расширен для работы и с другими устройствами, в основном — использующими сменные носители. К числу таких устройств относятся приводы CD-ROM и DVD-ROM, ленточные накопители.