Как работает контроллер DMA?

Из раздела 5.1.4 Прямой доступ к памяти в современных операционных системах, автор Эндрю С. Таненбаум, Герберт Бос, 2014 г. ,

Чтобы упростить объяснение, мы предполагаем, что ЦП обращается ко всем устройствам и памяти через единую системную шину, которая соединяет ЦП, память и устройства ввода-вывода, как показано на рис. 5-4.

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

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

    Q: на втором этапе

    • разве данные не передаются « из буфера контроллера » в основную память? Почему написано как « из буфера контроллера », так и « из регистра устройства контроллера »?

    • на втором шаге, может ли контроллер передавать данные из своего буфера в основную память, не прерывая работу процессора и снова без участия ОС?

  2. При использовании DMA процедура отличается.

    • Сначала ЦП программирует контроллер DMA, устанавливая его регистры так, чтобы он знал, что куда передавать (шаг 1 на рис. 5-4).
      Он также выдает команду контроллеру диска, говоря ему, что он должен прочитать данные с диска во внутренний буфер и проверить контрольную сумму.
    • Когда действительные данные находятся в буфере контроллера диска, DMA может начинаться. Контроллер DMA инициирует передачу, отправив запрос чтения по шине на контроллер диска (шаг 2). Этот запрос чтения выглядит как любой другой запрос чтения, и контроллер диска не знает (или не заботится), исходил ли он от ЦП или от контроллера DMA. Обычно адрес памяти для записи находится в адресных строках шины, поэтому, когда контроллер диска извлекает следующее слово из своего внутреннего буфера, он знает, куда его записать. Запись в память это еще один стандартный цикл шины (шаг 3).
    • Когда запись завершена, контроллер диска отправляет сигнал подтверждения контроллеру DMA, также по шине (шаг 4). Затем контроллер DMA увеличивает адрес памяти для использования и уменьшает количество байтов.. Если счетчик байтов все еще больше 0, шаги со 2 по 4 повторяются до тех пор, пока счет не достигнет 0.
    • В это время контроллер DMA прерывает ЦП, чтобы сообщить, что передача сейчас полный. Когда операционная система запускается, ей не нужно копировать дисковый блок в память; он уже там.

    В: на втором этапе контроллер DMA запрашивает у контроллера диска передачу данных из буфера контроллера диска в основную память. На первом этапе ЦП выдает команду контроллеру диска, говоря ему, чтобы он считал данные с диска во внутренний буфер. В то же время, может ли ЦП также указать контроллеру диска передать данные из буфера контроллера диска в основную память, когда контроллер диска завершит передачу данных с диска в буфер контроллера диска, так что нет необходимости в DMA контроллер, чтобы указать контроллеру диска передать данные из буфера контроллера диска в основную память? (Я не могу понять, зачем нам нужен контроллер DMA для передачи данных между диском и основной памятью, поэтому полагаю, что я упускаю что-то важное, чтобы понять цитату).

  3. Контроллер устройства управляет устройством и выполняет на нем операции. Какое устройство контролирует и выполняет операции контроллера DMA?

Спасибо!


Q1

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

Буфер в данном случае представляет собой часть памяти на самом жестком диске (контроллере), а устройство контроллера регистрирует регистр управления самого жесткого диска (контроллера).

Без использования ОС (или какого-либо другого программного обеспечения) потребуется какая-то операция DMA, а раздел текста, который вы обсуждаете в этой части вашего вопроса, НЕ использует DMA. Так что нет, в данном случае этого не произойдет.

Q2

Итак, весь смысл Контроллер DMA должен «выполнять утомительную задачу сохранения материала из внутреннего буфера устройства в основную память». ЦП будет работать как с контроллером DMA, так и с дисковым устройством. Если бы диск мог делать это сам, не было бы необходимости в контроллере DMA.

И действительно, в современных системах возможность DMA обычно встроена в сам контроллер жесткого диска в том смысле, что контроллер имеет возможность «управлять шиной», что означает, что сам контроллер ЯВЛЯЕТСЯ контроллером DMA для устройства. Однако, если смотреть на них как на два отдельных устройства, становится немного сложнее понять всю концепцию DMA..

Q3 (вроде)

Если вы думаете о жестком диске как о стопке кирпичей, только что доставленных на строительную площадку , а обработчик — это каменщик, который кладет кирпичи для постройки дома. Контроллер DMA — это рабочий, который переносит кирпичи из стопки кирпичей туда, где они нужны каменщику, а это означает, что каменщик может сосредоточиться на выполнении фактической работы по укладке кирпичей (что является квалифицированной работой, если вы когда-либо пробовали ее вы сами), а простую работу «принеси и унеси» может выполнить менее квалифицированный работник.

Неофициальные данные: Когда я впервые узнал о передаче DMA с диска в память, это было примерно в 1997 году, когда контроллеры IDE начали использовать DMA, и вам нужно было получить драйвер «контроллера IDE материнской платы», чтобы разрешить IDE для выполнения DMA, и в то время чтение с жесткого диска будет занимать около 6-10% времени процессора, тогда как DMA в той же настройке будет использовать около 1% времени процессора. До этого времени только модные системы с контроллерами дисков SCSI могли использовать DMA.


Это не ответ; это просьба о разъяснении, которая слишком длинна, чтобы уместиться в комментариях.

Прежде чем кто-либо сможет ответить на этот вопрос, необходимо четко объяснить архитектуру компьютерной системы, которая является обсуждается. А именно:

  • Какие системы шин задействованы в этом описании?

    • Большинство компьютерных систем имеют шина памяти.
    • Большинство компьютеров также имеют другие типы шинных систем.
  • Идет ли ввод-вывод диска через шину памяти тоже?

    • Другими словами, использует ли диск линии адресной шины для адресов и линии шины данных для данных?
  • Считает ли контроллер диска шину памяти …

    • шиной памяти? То есть он думает, что разговаривает с микросхемой памяти; т. е. RAS (строб доступа к строке), CAS (строб доступа к столбцу), …
    • Очень маловероятно — общение с микросхемой памяти требует сверхточности при выдаче команд в соответствии с синхронизацией DRAM ( задержки) — слишком рано или поздно на несколько тактов произойдет потеря данных.
  • Итак … что думает контроллер диска шина «на самом деле есть»?

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

    • Порты ввода-вывода могут либо подключаться к шине памяти, либо иметь другую выделенную шину.
    • Отличительной особенностью порта ввода-вывода является то, что можно завершать работу за один (или заранее определенное постоянное количество) цикла шины — не нужно беспокоиться об опасностях таймингов DRAM.
  • В более продвинутые (ну, с тех пор, как два десятилетия назад) системы, есть более новые типы шинных систем. Например, ISA, PCI, AGP, PCMCIA … SCSI, ATA, SAS, SATA, FC-AL …


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

Да, я знаю, что это из учебника. У вас есть копия. Я не. (Не дома — хотя есть один в офисе.) Поэтому, если вам нужен ответ, вам нужно будет показать несколько схем и объяснить, как выглядит шинная система вашего компьютера.


Однако в самом конце:

  • DMA — это программируемое устройство. То есть центральный процессор несет полную ответственность за указание DMA, что делать. Конечно, в течение временного интервала, когда DMA берет на себя управление системой, CPU будет сотрудничать, позволяя DMA запускать шоу.

  • Под контролем CPU (и ОС, которая его запускает), DMA может взять на себя управление одной или несколькими шинами (множественное число) , чтобы облегчить передачу данных от контроллера диска к основная память.

  • В течение периода времени, когда DMA берет на себя шину (во множественном числе), DMA будет отдавать команды по этой шине, то есть вместо своего обычного Контроллер, то есть DMA делает вид, что выполняет работу ЦП.

  • Если для передачи данных используются две разные шины, DMA, возможно, придется сделать это с другой шиной. .

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

  • Чтобы иметь возможность записи в основную память, DMA содержит регистр адреса памяти, который программируется ЦП, чтобы ЦП мог сообщить DMA, куда записывать данные.

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

  • Давным-давно, спустя некоторое время после изобретения DMA, некоторые периферийные устройства начали предварительно упаковывать DMA на их контроллеры — это называется Bus Mastering . Тем не менее, независимо от того, находится ли DMA в корпусе ЦП, материнской плате или карте ввода-вывода, он должен в конечном итоге находиться под контролем (программированием) ЦП, поскольку они должны каким-то образом согласовывать доступ к системной шине (во множественном числе) и основная память.

  • Современные компьютерные системы имеют выделенную подсистему, называемую контроллером DRAM. Если он есть, почти наверняка этот контроллер DRAM также будет выполнять функции DMA, то есть похоже, что это программируемый «цикл копирования байтов», и вся вышеупомянутая сложность скрыта внутри кремния DRAM. Контроллер.


Если вас это очень сбивает с толку — я тоже сбиваю с толку — вам понадобятся диаграммы. Множество диаграмм. Схемы системы. Схемы автобусов. Временные диаграммы. Диаграммы переходов состояний. так далее.




Контроллер дисплея

Разработка интеллектуального датчика дифференциального давления на основе WorldFIP

5 АППАРАТНАЯ СТРУКТУРА СИСТЕМЫ

Аппаратная структура состоит из четырех модулей, как показано на рисунке 5, включая узел датчика, центральный процессор, коммуникационную карту и дисплей. контроллер. Узел датчика включает в себя емкостной датчик и схему измерения температуры с тепловым сопротивлением.

Рис. 5. Структура оборудования

MCU — это интеллектуальная часть преобразователя дифференциального давления. Он отвечает за управление измерениями, самодиагностику и обмен данными. Микросхема AT91M40800 используется в MCU, который имеет интегрированное ядро ​​ARM7TDMI и эффективный RISC и подходит для управления в реальном времени. Операционная система и прикладная программа хранятся во флэш-памяти и запускаются в памяти SRAM. Параметры, используемые для калибровки, настройки и идентификации, хранятся в энергонезависимой памяти E 2 PROM.

Микросхема MICROFIP, разработанная ALSTOM, используется в круглой карте. Микросхема FIELDRIVE и микросхема FIELDTR используются в интерфейсе связи. MICROFIP — это решение ASIC, реализующее протокол WorldFIP, обеспечивающее уровень канала передачи данных, уровень приложений и службы управления сетью. MICROFIP разработан для поддержки и управления средним резервированием без необходимости в другом чипе. Микросхема FIELDRIVE — это линейный драйвер с высоким уровнем защиты, предназначенный для сопряжения компонента протокола с медной витой парой через изолирующий трансформатор. Компоненты FIELDTR обеспечивают гальваническую развязку между драйвером линии FIELDRIVE и физической средой Fieldbus. [3] [4]

Просмотреть главу Купить книгу
Читать главу полностью
URL: https://www.sciencedirect.com/science/article/pii /B9780080453644500678
Оцените статью
clickpad.ru
Добавить комментарий