Способы обмена данных с внешними устройствами

Принципы организации обмена с внешними устройствами компьютера (программно-управляемый ввод/вывод и DMA).

Принципы организации обмена с внешними устройствами компьютера (программно-управляемый ввод/вывод и DMA).

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

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

Процессор управляет внешним устройством, выполняя соответствующую программу ввода/вывода, где он с помощью команд IN, OUT (чтение порта, запись в порт) осуществляет доступ к программно-доступным регистрам контроллера. Например, в регистр управления процессор записывает команду, из регистра состояния читает информацию о состоянии устройства и контроллера, в регистр данных записывает выводимые на устройство данные, или читает из регистра данных считываемую с устройства информацию.

Возможны два способа организации программного обмена с внешними устройствами:

1) Обмен с опросом готовности устройства.

Выполняя программу ввода-вывода, процессор, запустив в контроллере операцию, циклически читает регистр состояния контроллера, ожидая появления в соответствующем разряде регистра состояния признака готовности к обмену данными с процессором. При появлении этого признака в регистре состояния, процессор осуществляет обмен через регистр данных, с помощью команды OUT, осуществляет запись в регистр данных (при выводе на устройство), или выполняет чтение информации из регистра данных контроллера с помощью команды IN (при вводе с устройства). После чего запускает в контроллере следующую операцию и т. д.;

2) Обмен по запросам на обслуживание устройства (запросам на маскируемое прерывание).

При выполнении программы ввода-вывода, процессор, запустив на контроллере операцию продолжает выполнять другую полезную программу. Контроллер внешнего устройства, в случае полной готовности к обмену данными с процессором, выдает на соответствующую линию IRQ сигнал запроса на обслуживание (запрос на маскируемое прерывание). Процессор, через выполнение процедуры прерывания по сигналу IRQ, переходит на выполнение программы ввода/вывода для данного устройства. Эта программа осуществляет обмен данными через регистр данных контроллера и запускает в контроллере следующую операцию. Процессор возвращается к выполнению прерванной программы через выполнение команды IRET (возврат из прерывания), которой заканчивается программа ввода/вывода) и т. д.

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

Как было сказано выше, возможны два способа организации программного обмена с внешними устройствами: «обмен с опросом готовности устройства» и обмен «по запросам на обслуживание устройства» (запросам на маскируемое прерывание). Различие этих способов программного обмена в способе определения готовности устройства к обмену данными.

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

Читайте также:  Способы организации хранения данных файловые системы

При обмене с принтером «по запросам на обслуживание от устройства» (запросам на маскируемое прерывание), процессор, выполняя программу вывода, запустив в контроллере принтера операцию, не ожидает готовности контролера к обмену данными. Он продолжает выполнять полезную программу. Контроллер принтера, в случае полной готовности к обмену данными с процессором, выдает на соответствующую линию IRQ (например, для принтера — IRQ7) сигнал запроса на обслуживание, который поступает на вход контроллера прерываний (который находится в микросхеме «южного моста»). Контроллер прерываний выдает на вход INTR процессора активный сигнал, а процессор, через выполнение процедуры прерывания по сигналу INTR (в ее выполнении участвуют контроллер прерываний и контроллер шины), переходит на выполнение программы вывода для данного устройства. Эта программа осуществляет запись данных в регистр данных контроллера и запись команды в регистр управления, т. е. запускает в контроллере следующую операцию вывода. Процессор в конце программы обслуживания устройства выбирает и выполняет команду IRET (возврат из прерывания, которой заканчивается программа ввода/вывода), и возвращается к выполнению прерванной ранее программы и т. д.

3) Прямой доступ (DMA DirectMemoryAccess — прямой доступ к памяти).

Прямой доступ (DMA)- это способ обмена между внешним устройством и динамической памятью, при котором управление операциями обмена по интерфейсу между регистром данных устройства и последовательно расположенными ячейками памяти, осуществляет контроллер прямого доступа к памяти, а микропроцессор в это время находится в отключенном от интерфейса состоянии. Прямой доступ может осуществляться двумя способами: обычным DMA и Busmastering DMA. Существуют несколько разновидностей обмена по прямому доступу. Single word DMA – одиночный режим (в каждом цикле обмена словом, сигнал запроса на обмен сбрасывается сигналом, подтверждающим каждый цикл обмена). Multiword DMA – множественный режим (на сигнал запроса на обмен от устройства выполняется поток циклов обмена сопровождаемых сигналами подтверждения; устройство может из-за неготовности приостановить обмен, сняв свой сигнал запроса, и продолжить обмен, вновь установив запрос). Режим DMA позволяет освободить процессор от рутинной пересылки данных между внешними устройствами и памятью, отдав эту работу контроллеру DMA, процессор в это время может обрабатывать другие данные или другую задачу в многозадачной системе.

4) BIOS, UEFI-BIOS. Важным компонентом системы ввода-вывода компьютеров является BIOS – это Basic Input/Output System — базовая система ввода/вывода, «зашитая» в ПЗУ (отсюда и название ROM BIOS). BOIS представляет собой набор программ которые реализуют функции управления внешними устройствами на физическом уровне (программно-управляемый ввод/вывод и DMA), функции проверки и обслуживания аппаратуры компьютера, и выполняет роль посредника между операционной системой и аппаратурой.

BIOS – практически уже достаточно давно начинает уступать место платформе UEFI (Unified Extensible Firmware Interface), представляющей собой новый тип интерфейса между, оборудованием и операционной системой (OS) компьютера. BIOS, созданная четверть века назад, давно не удовлетворяет требованиям, предъявляемым к современным ПК. Все новые компьютеры используют систему UEFI (но в системе UEFI есть блок совместимости с BIOS, поэтому те программы, которым для работы нужен был BIOS, спокойно могут работать и на компьютерах с UEFI). Этот тип интерфейса между оборудованием и ОС, изначально носивший имя EFI, уже в середине девяностых годов создавался корпорацией Intel для платформы Itanium. Сейчас разработку EFI курирует организация Unified EFI Forum (UEFI).

Читайте также:  Обобщенный способ деятельности это

Перевод компьютеров на интерфейс UEFI позволил значительно сократить время загрузки ПК. Если при использовании BIOS с момента включения питания до появления экрана приветствия ОС проходит в среднем полминуты, то с внедрением UEFI этот показатель сократится до нескольких секунд. UEFI обеспечит поддержку альтернативных средств ввода данных, таких как виртуальные клавиатуры и сенсорные дисплеи. Администраторы получат в своё распоряжение расширенные инструменты удалённого управления и средства диагностики, а пользователи — возможность запускать приложения вроде браузера и медиаплеера, не загружая ОС.

Источник

Способы обмена информацией с внешними устройствами

Обмен информацией между ЭВМ и внешними по отношению к ней устройствами (периферией) является неотъемлемым элементом любого вычислительного процесса. В случае стандартной периферии и работы ЭВМ под управлением операционной системы весь процесс обмена оказывается скрытым от пользователя. Необходимо лишь оформить в программе соответствующую системную директиву ввода-вывода. Возможности, предоставляемые операционной системой, достаточно широки и удовлетворяют большинству потребностей, возникающих при работе со стандартной периферией. Непосредственное обращение к стандартным внешним устройствам можно допустить, только зная детали взаимодействия операционной системы с периферией, чтобы гарантировать отсутствие побочных эффектов, которые могут привести к нарушению нормального функционирования либо программы пользователя, либо операционной системы. Обычно в операционной системе имеются разнообразные средства защиты и контроля, направленные против непредусмотренного вмешательства чересчур активного, неумелого или неаккуратного пользователя.

Особое значение вопрос организации обмена приобретает в автоматизированных системах, где ЭВМ взаимодействует с нестандартной периферией, поскольку от его решения во многом зависит эффективность использования ЭВМ. Обмен с нестандартной периферией, как правило, не поддерживается операционной системой и программируется пользователем. Для корректного проведения обмена необходимо ознакомиться с принципами организации ввода-вывода. Напомним, что передача информации происходит по линиям данных магистрали ЭВМ. По отношению к центральному процессору каждое внешнее устройство представляет собой набор регистров (CSR и DSR), расположенных в контроллере устройства, и собственно обмен сводится к записи информации в эти регистры или считыванию информации из них. В ЭВМ с единой магистралью эти регистры имеют адреса, расположенные в адресном пространстве, и процессор может обращаться к ним так же, как и к ячейкам оперативной памяти В IBM PC совместимом компьютере эти адреса занимают область 100÷1FF, которая отводится для нужд пользователя.

Организация любой ЭВМ обеспечивает следующие четыре способа обмена, первые два из которых, иногда называют программно-управляемыми, поскольку обмен происходит полностью под управлением программы:

· с использованием канала прямого доступа к памяти (ПДП) или обмен с занятием цикла.

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

Рисунок 3.1 – Синхронный обмен.

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

Асинхронный обменпозволяет программно синхронизовать обмен между ЭВМ и низкоскоростным внешним устройством. Это достигается проверкой готовности устройства до проведения обмена. Готовность к обмену отображается определенным разрядом регистра состояния и управления CSR этого устройства (флагом готовности) (рис.3.2).

Рисунок 3.2 – Асинхронный обмен.

Читайте также:  Техническая механика геометрический способ определения равнодействующей

Для выяснения состояния устройства необходимо прочитать содержимое его CSR и проанализировать соответствующий разряд. Если устройство занято, происходит переход на команду чтения содержимого CSR и программа зацикливается. Отметим, что при такой организации обмен, происходящий при наступлении готовности, осуществляется синхронным способом. Флаг готовности сбрасывается внешним устройством после того, как произошел обмен данными с ЭВМ.

Следует отметить, что и в случае асинхронного обмена внешнее устройство играет пассивную роль, предоставляя для чтения или записи регистр данных и принимая или передавая данные для обмена по командам центрального процессора. Оно не может быть инициатором обмена. Другим существенным недостатком этого способа является непроизводительная трата времени, особенно при взаимодействии с низкоскоростными внешними устройствами, поскольку большую часть времени процессор тратит на ожидание готовности их к обмену. Так, для принтера с типичной скоростью печати порядка 100 симв/с только 0,04% машинного времени, отведенного на обмен, тратятся непосредственно на передачу данных, остальные же 99,96 % времени расходуются на ожидание готовности.

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

Схематически обмен по прерыванию изображен на рис. 3.3.

Рисунок 3.3 – Обмен по прерыванию.

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

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

Блочная передача данных между оперативной памятью и внешним устройством осуществляется по так называемому каналу прямого доступа к памяти (ПДП). Существенной особенностью этого способа является то, что процессор не принимает участие в обмене, хотя сама передача происходит с использованием магистрали ЭВМ. Управление магистралью во время обмена полностью передается внешнему устройству, которое, являясь инициатором обмена, берет на себя все функции процессора по организации работы магистрали. Следует отметить, что захват магистрали может происходить и до окончания выполнения процессором текущей команды. Таким образом, обмен с использованием ПДП обеспечивает максимально возможную скорость; платой за это являются достаточно сложные организация и логика работы соответствующего внешнего устройства.

Источник

Оцените статью
Разные способы