Режимы обмена в микропроцессорной системе

Режимы обмена в микропроцессорной системе.

В процессе работы в микропроцессорной системе постоянно происходит обмен информацией между МП и внешними устройствами. При этом возможны три режима обмена:

· обмен по инициативе ВУ с прерыванием работы МП;

· обмен между ВУ и памятью в режиме прямого доступа к памяти.

Наиболее простой — программно-управляемый обмен. В этом режиме взаимодействие МП с ВУ осуществляется по инициативе МП в процессе выполнения основной программы. Имеются ВУ двух типов: всегда готовые к обмену и не всегда готовые к обмену. В первом случае обмен осуществляется без задержки. Во втором МП вынужден ожидать готовности устройства к обмену. При этом программа не выполняется, МП ждет появления сигнала готовности ВУ к обмену, и только после его появления выполняет операцию обмена. Так как МП в это время не выполняет полезной работы, а его быстродействие гораздо выше быстродействия ВУ, такой режим обмена сопряжен с непроизводительными потерями времени.

Обмен по инициативе ВУ с прерыванием работы МП более производительный, так как время ожидания МП исключается. При своей готовности к обмену ВУ сообщает об этом МП специальным сигналом запроса прерывания. Процессор завершает выполнение текущей команды программы, выдает сигнал подтверждения прерывания и переходит к выполнению подпрограммы обмена с ВУ. Эта подпрограмма носит название подпрограммы обслуживания прерывания. Чтобы начать выполнение подпрограммы, достаточно адрес ее первой команды загрузить в ПС. Но в результате выполнения программы содержимое всех внутренних регистров MП уже не будет соответствовать тому, что было в момент прерывания Поэтому возникает необходимость сохранения состояния МП на момент прерывания в оперативной памяти, чтобы можно было вернуться к прерванной основной программе. Для этого в микропроцессорных системах используется так называемая стековая память.

Стек — это область памяти, запись в которую и считывание осуществляется по принципу «последний пришел — первый ушел». Процесс функционирования стека напоминает работу с пачкой документов, когда каждый новый документ кладется сверху пачки, т.е. самый первый по времени поступления документ оказывается в самом низу пачки и его рассмотрение происходит в последнюю очередь, в то время как последний документ рассматривается в первую очередь. Точно так же в стековую память осуществляется загрузка данных. При переходе от текущей программы к программе обслуживания прерывания содержимое некоторых адресных регистров МП заносится в стековую память автоматически. Запись содержимого остальных регистров должна быть предусмотрена в начале программы обслуживания прерывания с помощью специальных команд работы со стеком. При этом в конце программы должны стоять команды, обеспечивающие восстановление состояния регистров МП. Порядок, в котором осуществляется извлечение содержимого регистров из стековой памяти и запись его обратно в регистры, соответствует принципу «последний пришел — первый ушел».

Для работы со стековой памятью в МП есть специальный регистр — указатель стека (УС). Этот регистр всегда содержит адрес «верхней» (по аналогии со стопкой документов) загруженной ячейки стека, называемой вершиной стека. На рис.6.2 показаны процессы записи и извлечения данных из стека.

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

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

Рис. 6.2. Процессы записи данных в стек и извлечения из стека

Режим обмена внешнего устройства с памятью в режиме прямого доступа к памяти (ПДП) используется при передаче больших объемов информации. Например, в режиме ПДП осуществляется передача информации между ОЗУ и внешней памятью. Если бы такой обмен осуществлялся под управлением МП, то каждое слово данных сначала необходимо было прочитать из памяти и поместить его в МП, и только затем из МП передать приемнику — регистру ВУ. Такой обмен потребовал бы слишком больших непроизводительных затрат времени. В режиме ПДП происходит передача данных между памятью и ВУ без участия процессора. При этом микропроцессор отключается от шин адреса и данных и весь процесс обмена осуществляется под управлением специального контроллера ПДП. Происходит временный захват системных шин со стороны ВУ, памяти и контроллера ПДП. Режим ПДП начинается с того, что ВУ сигнализирует процессору о своем «желании» начать обмен с памятью выдачей сигнала запроса захвата шин. Если процессор разрешает такой обмен, он выдает сигнал разрешения захвата, отключается от системных шин и передает управление контроллеру ПДП. В режиме ПДП выдача данных на ШД источником и считывание их с ШД приемником происходите одном цикле записи/чтения. За счет устранения одного лишнего цикла записи/чтения значительно увеличивается темп передачи данных.

Микроконтроллеры

Микроконтроллеры — устройства, имеющие структуру микропроцессорной системы, выполненные в виде БИС и предназначенные для решения задач управления техническими устройствами и системами. Поскольку в составе таких БИС имеются все узлы, присущие ЭВМ, они называются также однокристальными микроЭВМ.

Первые микроконтроллеры появились в 1976 г., когда в одной БИС стало возможным совместить процессор, ОЗУ, ПЗУ и порты ввода/вывода. В отличие от универсальных микроЭВМ в микроконтроллерах небольшие по размерам память и простой интерфейс для связи с внешними устройствами. Это объясняется прежде всего спецификой решаемых задач. Микроконтроллеры не используются в универсальных вычислительных системах, а предназначены для создания высокоэффективных и дешевых управляющих и регулирующих систем. Микроконтроллеры реализуют несложные алгоритмы, и для размещения программ им требуется емкость памяти, на несколько порядков меньшая, чем у микроЭВМ универсального назначения. Внешние устройства также значительно проще, а их набор существенно уже. Микроконтроллеры применяются в устройствах управления приборов, бытовой аппаратуры, автомобилей, станков, в частности, в устройствах числового программного управления.

Источник

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Читайте также:  Зона VRM на материнской плате это что

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 обеспечит поддержку альтернативных средств ввода данных, таких как виртуальные клавиатуры и сенсорные дисплеи. Администраторы получат в своё распоряжение расширенные инструменты удалённого управления и средства диагностики, а пользователи — возможность запускать приложения вроде браузера и медиаплеера, не загружая ОС.

Источник

Шины микропроцессорной системы и циклы обмена

Рассмотрим для примера два довольно типичных случая программного обмена по магистрали микропроцессорной системы.

Первый пример — это обмен по мультиплексированной асинхронной магистрали Q-bus, предложенной фирмой DEC и широко применявшейся в микрокомпьютерах и промышленных контроллерах. Упрощенные временные диаграммы циклов чтения (ввода) и записи (вывода) по этой магистрали приведены на рис. 2.3 и 2.4.

Отметим, что в дальнейшем тексте знак «минус» перед названием сигнала говорит о том, что активный уровень сигнала низкий, пассивный — высокий, то есть сигнал отрицательный. Если минуса перед названием сигнала нет, то сигнал положительный, его низкий уровень пассивный, а высокий — активный.

На шине адреса / данных ( AD ) в начале цикла обмена (в фазе адреса) процессор (задатчик) выставляет код адреса. На этой шине используется отрицательная логика. Средний уровень сигналов на шине AD обозначает, что состояния сигналов на шине в данные временные интервалы не важны. Для стробирования адреса используется отрицательный синхросигнал — SYNC , выставляемый также процессором. Его передний (отрицательный) фронт соответствует действительности кода адреса на шине AD . Фаза адреса одинакова в обоих циклах записи и чтения.

Получив (распознав) свой код адреса, устройство ввода/вывода или память (исполнитель) готовится к проведению обмена. Через некоторое время после начала ( отрицательного фронта) сигнала — SYNC процессор снимает адрес и начинает фазу данных.

В фазе данных цикла чтения (рис. 2.3) процессор выставляет сигнал строба чтения данных — DIN , в ответ на который устройство, к которому обращается процессор (исполнитель), должно выставить свой код данных (читаемые данные). Одновременно это устройство должно подтвердить выполнение операции сигналом подтверждения обмена -RPLY .

Для сигнала -RPLY используется тип выходного каскада ОК, чтобы не было конфликтов между устройствами-исполнителями. Процессор, получив сигнал -RPLY , заканчивает цикл обмена. Для этого он снимает сигнал — DIN и сигнал — SYNC . Устройство-исполнитель в ответ на снятие сигнала — DIN должно снять код данных с шины AD и закончить сигнал подтверждения -RPLY . После этого процессор снимает сигнал — SYNC .

В фазе данных цикла записи (рис. 2.4) процессор выставляет на шину AD код записываемых данных и сопровождает его отрицательным сигналом строба записи данных -DOUT . Устройство-исполнитель должно по этому сигналу принять данные от процессора и сформировать сигнал подтверждения обмена -RPLY . Процессор, получив сигнал -RPLY , заканчивает цикл обмена. Для этого он снимает код данных с шины AD и сигнал -DOUT . Устройство-исполнитель в ответ на снятие сигнала -DOUT должно закончить сигнал подтверждения -RPLY . После этого процессор снимает сигнал — SYNC .

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

Помимо циклов чтения и записи на магистрали Q-bus используются также и циклы типа «ввод-пауза-вывод» («чтение-модификация-запись»). Упрощенная временная диаграмма этого цикла представлена на рис. 2.5.

В этом цикле адресная фаза производится точно так же, как и в циклах чтения (ввода) и записи (вывода). Но в фазе данных процессор производит сначала чтение из заданного в адресной фазе адреса, а потом запись в тот же самый адрес. Для чтения используется строб чтения — DIN , а для записи – строб записи -DOUT . В ответ на сигнал — DIN устройство-исполнитель выдает свои данные на шину AD , а по сигналу -DOUT – принимает данные с шины AD . Как и в циклах чтения и записи, устройство-исполнитель подтверждает выполнение каждой операции сигналом подтверждения -RPLY . Понятно, что цикл «ввод-пауза-вывод» требует больше времени, чем каждый из циклов чтения или записи, но меньше времени, чем два последовательно произведенных цикла чтения и записи (так как для него нужна только одна адресная фаза). Сигнал — SYNC вырабатывается процессором в начале цикла «ввод-пауза-вывод» и держится до окончания всего цикла.

В качестве второго примера рассмотрим циклы обмена на синхронной немультиплексированной магистрали ISA ( Industrial Standard Architecture), предложенной фирмой IBM и широко используемой в персональных компьютерах. Упрощенные циклы записи в устройство ввода/вывода и чтения из устройства ввода/вывода приведены на рис. 2.6 и 2.7.

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

В фазе данных цикла чтения (рис. 2.6) процессор выставляет отрицательный сигнал чтения данных из устройства ввода/вывода -IOR . В ответ на него устройство-исполнитель должно выдать на шину данных SD свой код данных (читаемые данные). Логика на шине данных положительная. Через установленное время строб обмена -IOR снимается процессором, после чего снимается также и код адреса с шины SA . Цикл заканчивается без учета быстродействия исполнителя.

Но так происходит только в случае основного, синхронного обмена . Кроме него на магистрали ISA также предусмотрена возможность асинхронного обмена . Для этого применяется сигнал готовности канала (магистрали) I/O CH RDY . Тип выходного каскада для данного сигнала — ОК, для предотвращения конфликтов между устройствами-исполнителями. При синхронном обмене сигнал I/O CH RDY всегда положительный. Но медленное устройство-исполнитель, не успевающее работать в темпе процессора, может этот сигнал снять, то есть сделать нулевым сразу после начала строба обмена. Тогда процессор до того момента, пока сигнал I/O CH RDY не станет снова положительным, приостанавливает завершение цикла, продлевает строб обмена. Конечно, слишком большая длительность этого сигнала рассматривается как аварийная ситуация. Для простоты понимания можно считать, что устройство-исполнитель формирует в данном случае отрицательный сигнал неготовности завершить обмен. На время этого сигнала обмен на магистрали приостанавливается.

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

В фазе данных цикла записи по магистрали ISA (рис. 2.7) процессор выставляет на шину данных SD код записываемых данных и сопровождает их стробом записи данных в устройство ввода/вывода — IOW . Получив этот сигнал, устройство-исполнитель должно принять с шины SD код записываемых данных. Если оно не успевает сделать это в темпе процессора, то оно может снять на нужное время сигнал I/O CH RDY после получения переднего фронта сигнала — IOW . Тогда процессор приостановит окончание цикла записи.

Рассмотренные примеры, конечно, не раскрывают всех тонкостей обмена по упомянутым магистралям. Они всего лишь иллюстрируют главные принципы обмена по ним.

Читайте также:  Замена процессора на ноутбуке HP ProBook 430 G7 2D284EA в Санкт Петербурге

2.2.2. Циклы обмена по прерываниям

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

Прерывания в микропроцессорных системах бывают двух основных типов:

  • векторные прерывания , которые требуют проведения цикла чтения по магистрали;
  • радиальные прерывания , которые не требуют никакого цикла обмена по магистрали.

Дело в том, что прерываний в микропроцессорной системе обычно бывает много. Поэтому процессору необходима информация о номере (или, как еще говорят, об адресе вектора) конкретного прерывания. Эта информация может быть передана процессору двумя путями.

При векторном прерывании код номера прерывания передается процессору тем устройством ввода/вывода, которое данное прерывание запросило. Для этого процессор проводит цикл чтения по магистрали, и по шине данных получает код номера прерывания. Шина адреса в данном цикле обычно не используется, так как устройство, запросившее прерывание, и так знает, что процессор будет обращаться именно к нему. В этом случае в магистрали достаточно всего одной линии запроса прерывания для всех устройств ввода/вывода. Так организованы прерывания, например, в магистрали Q-bus.

Схема распространения сигналов, участвующих в прерываниях на магистрали Q-bus, показана на рис. 2.8. Упрощенная временная диаграмма цикла запроса и предоставления магистрали представлена на рис. 2.9.

Запрос прерывания осуществляется отрицательным сигналом -VIRQ , который может формироваться каждым из устройств, запрашивающих прерывание. Тип выходного каскада для этого сигнала — ОК, чтобы избежать конфликтов между запрашивающими прерывания устройствами. Получив сигнал -VIRQ , процессор предоставляет прерывание (закончив предварительно выполнение текущей команды). Для этого он выставляет сигнал чтения данных — DIN и сигнал предоставления прерывания IAKO . Этот сигнал IAKO последовательно проходит через все устройства, которые могут запрашивать прерывания. Если устройство запросило прерывание, то оно не пропускает через себя этот сигнал. В результате получается, что если прерывания одновременно запросили два или более устройств, то сигнал предоставления прерывания получит только одно устройство, а именно то, которое ближе к процессору. Такой механизм разрешения конфликтов называется иногда географическим приоритетом (или цепочечным приоритетом, Daisy Chain). Получив сигнал IAKO , устройство, запросившее прерывание, должно снять свой сигнал -VIRQ .

Затем процессор проводит цикл безадресного чтения номера прерывания. В ответ на полученные сигналы — DIN и IAKO устройство, которому предоставлено прерывание, должно выдать на шину адреса / данных AD код номера прерывания (адреса вектора прерывания) и выставить сигнал подтверждения -RPLY . Процессор читает код номера прерывания и заканчивает цикл безадресного чтения снятием сигналов — DIN и IAKO .

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

Упрощенная структура связей между устройствами, участвующими в обмене по прерываниям, на магистрали ISA показана на рис. 2.10. Процессор общается с контроллером прерываний как по магистрали (чтобы задать ему режимы работы), так и вне магистрали (при обработке запросов на прерывание ). Сигналы запросов прерываний IRQ распределяются между всеми устройствами магистрали. На каждую линию IRQ приходится одно устройство. Тип выходного каскада для этих линий — 2С , так как конфликты здесь не предусмотрены. Запросом прерывания является передний, положительный фронт сигнала IRQ . При одновременном поступлении сигналов IRQ от нескольких устройств порядок их обслуживания определяется контроллером прерываний.

Какой тип прерываний лучше — векторный или радиальный ?

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

Радиальных прерываний в системе обычно не очень много (от 1 до 16). При этом типе прерываний, как правило, требуется введение в систему специального контроллера прерываний. Каждое радиальное прерывание требует введения дополнительной линии в шину управления системной магистрали. Но работать с радиальными прерываниями проще, так как все сводится только к выработке единственного сигнала IRQ , и никаких циклов обмена по магистрали не требуется.

2.2.3. Циклы обмена в режиме ПДП

Циклы обмена в режиме прямого доступа к памяти выполняются по тем же правилам, что и циклы программного обмена, и циклы предоставления прерываний.

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

На магистрали Q-bus запрос и предоставление ПДП организуются подобно запросу и предоставлению прерывания. Упрощенная структура связей устройств, участвующих в ПДП , показана на рис. 2.11. Временная диаграмма запроса/предоставления ПДП очень близка к временной диаграмме запроса/предоставления прерывания (см. рис. 2.9).

Сигнал запроса ПДП , называемый -DMR , передается всеми устройствами, нуждающимися в ПДП , по одной линии магистрали. Тип выходного каскада на этой линии — ОК . Процессор, получив сигнал -DMR , выдает сигнал предоставления ПДП DMGO , аналогичный сигналу IAKO . Этот сигнал также проходит через все устройства последовательно, в результате чего ПДП получает только то устройство, которое находится ближе к процессору (географический приоритет). А затем устройство, получившее ПДП , проводит циклы обмена по магистрали, аналогично циклам программного обмена. В циклах ПДП информация читается из памяти и записывается в устройство ввода/вывода, или наоборот — читается из устройства ввода/вывода и передается в память.

На магистрали ISA запрос/предоставление ПДП очень напоминает организацию радиальных прерываний (рис. 2.12). Точно так же в системе существует контроллер ПДП , к которому сходятся сигналы запроса ПДП , называемые DRQ, и от которого расходятся сигналы предоставления ПДП , называемые -DACK . К каждому каналу ПДП (пара сигналов DRQ и -DACK ) подключается только одно устройство, запрашивающее ПДП . Тип выходных каскадов для этих сигналов —2С . Устройство, нуждающееся в ПДП , посылает сигнал запроса DRQ и получает в ответ сигнал предоставления -DACK . После этого контроллер ПДП проводит циклы обмена по магистрали между устройством ввода/вывода и памятью.

Упрощенная временная диаграмма циклов ПДП на магистрали ISA показана на рис. 2.13.

На магистрали ISA используются раздельные стробы записи в память ( -MEMW ) и записи в устройства ввода/вывода ( — IOW ), а также раздельные стробы чтения из памяти ( -MEMR ) и чтения из устройств ввода/вывода ( -IOR ). Это позволяет за один цикл обмена ПДП читать информацию из памяти и записывать ее в устройство ввода/вывода или же читать информацию из устройства ввода/вывода и записывать ее в память. При этом на шине адреса выставляется адрес памяти, а адрес устройства ввода/вывода заменяется одним-единственным сигналом AEN . Естественно, в цикле обмена в режиме ПДП участвует только то устройство ввода/вывода, которое предварительно запросило ПДП и которому ПДП было предоставлено. Поэтому никаких конфликтов между устройствами ввода/вывода из-за такой упрощенной адресации не возникает.

Источник



Способы обмена данными

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

Существуют три способа обмена данными: программно управляемый обмен, обмен с прерыванием программы и обмен по каналу прямого доступа к памяти. Рассмотрим в общих чертах особенности каж­дого способа обмена.

Обмен инициируется и выпол­няется процессором с помощью:

● специальных команд ввода–вывода,

при этом в формате команды должен со­держаться код выполняемой операции и номер выбираемого порта ВУ;

● команд обращения к

ОЗУ, при этом каждый порт ВУ рассматривается как ад­рес, отличный от адресов других ячеек.

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

Прямым, или безусловным,

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

вводом–выводом называется такая процедура, при которой активи­зация обмена возможна при выполнении условия готовности к обмену ВУ.

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

Таким образом, условный ввод/вывод применяется для обмена с низкоскоро­стными внешними устройствами и сопровождается сигналом готовности ГтВУ, ге­нерируемым ВУ. Сигнал готовности ГтВУ вводится в процессор в составе слова состояния и информирует его о готовности ВУ к обмену. После завершения опе­рации обмена сигнал готовности ГтВУ должен быть снят и выставлен перед новой операцией. Для этого процессор информирует ВУ об окончании операции с по­мощью сигнала подтверждения Пт.

На рис. 3.2.1 приведены диаграммы условного ввода/вывода с помощью конт­роллера обмена. В этом случае могут быть также использованы сигналы готовно­сти Гт контроллера и подтверждения ПтВУ внешнего устройства.

При вводе (рис. 3.2.1, а) процессы протекают в следующей последовательности:

● если сигнал подтверждения микропроцессора (контроллера) Пт = 0, ВУ вы­ставляет на шине ШВУ новые данные и сигнал готовности ГтВУ = 1;

● так как ГтВУ = 1, процессор дает команду на ввод данных, и данные по ШД поступают в аккумулятор;

● процессор через контроллер выставляет сигнал подтверждения Пт = 1, изве­щая ВУ о том, что данные введены;

Читайте также:  AMD о PS4 мы просто предложили то на что NVIDIA не способна

● при Пт = 1 ВУ снимает сигнал готовности (ГтВУ =0);

● при ГтВУ = 0 процессор снимает сигнал подтверждения (Пт = 0).

При выводе данных (рис. 3.2.1, б) процессы протекают в следующей последо­вательности:

● если сигнал готовности контроллера Гт = 0, ВУ осуществляет сброс сигнала подтверждения (ПтВУ = 0), после чего процессор на ШД выставляет новые данные;

● при сигнале подтверждения ПтВУ = 0 контроллер устанавливает сигнал готов­ности Гт = 1;

● данные по ШВУ выводятся в ВУ;

● при Гт = 1 ВУ устанавливает сигнал подтверждения (ПтВУ =1);

● при ПтВУ = 1 процессор снимает ранее установленный сигнал готовности (Гт = 0).

Рассмотренный протокол обмена называется квитированием.

Возможны два вида условного обмена: с занятием цикла и совмещенного. При обмене с занятием цикла (рис. 3.2.2, а) в случае неготовности ВУ микропроцес­сор находится в режиме ожидания; при совмещенном обмене (рис. 3.2.2, б) после опроса ВУ микропроцессор возвращается к выполнению основной программы.

По способу кодирования различают обмен данными в параллельном и после­довательном коде.

Необходимость передачи данных в последовательном коде обусловлена двумя факторами:

● наличием устройства (например, клавиатура, дисплей, телетайп), принцип работы которого базируется на использовании последовательного кода;

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

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

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

Обмен с прерыванием программы.

При этом способе инициатором обмена является внешнее устройство, которое подает специальный сигнал ЗАПРОС ПРЕ­РЫВАНИЯ на соответствующий вход процессора. После выполнения текущей микрокоманды процессор прекращает выполнение основной программы, выра­батывает сигнал ПОДТВЕРЖДЕНИЕ ПРЕРЫВАНИЯ и переходит к подпрограмме обработки прерывания, расположенной в фиксированной области памяти. После выполнения этой подпрограммы происходит возврат к основной программе.

Обмен данными с помощью прямого доступа к памяти.

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

До начала работы канала ПДП в счетчик адреса заносится адрес ячейки ОЗУ, с которой начинается массив данных, и в счетчик слов (в прямом или дополни­тельном коде) — число слов в массиве. При передаче каждого слова содержимое этих счетчиков изменяется на единицу и обмен данными производится автомати­чески, пока не будет передан весь массив слов.

В микропроцессорных системах встроены (или предусматриваются) интер­фейсные схемы для организации ввода/вывода.

Источник

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

Работа периферийных устройств (ПУ) не синхронизирована с работой процессора. Запросы со стороны ПУ на установление связи и обмен данными могут поступать в произвольные моменты времени. Для организации обмена требуются специальные электронные средства согласования форматов и синхронизации процессов. В вычислительных машинах используется три способа обмена данными между ПУ и процессором и памятью /1,17/:

1) программно-управляемая передача, инициируемая процессором;

2) передача информации с прерыванием программы, активизируемая по запросу прерывания от ПУ;

3) передача информации в режиме прямого доступа к памяти.

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

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

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

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

Программно-управляемая передача является самым быстрым способом обмена данными между процессором и ПУ. Однако ему присущи следующие недостатки:

1) вынужденные непроизводительные затраты времени процессора на ожидание готовности ПУ к обмену;

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

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

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

Реализация такого обмена по сравнению с рассмотренным выше требует более сложной аппаратной и программной поддержки. При готовности к обмену ПУ формирует запрос прерывания и посылает его процессору. Последний, обнаружив сигнал запроса, завершает выполнение операций, которые нельзя прервать, и выполняет определённую последовательность действий. По её завершении процессор восстанавливает состояние на момент прерывания и возвращает управление прерванной программе. Более подробно организация работы ВМ при обработке прерываний рассматривалась в разделе 5.3 настоящего конспекта.

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

Прямой доступ к памяти (ПДП) (DMA- Direct Access Memory) представляет собой высокоскоростной способ обмена между ПУ и ОЗУ, например, при загрузке данных в оперативную память с внешнего носителя. В режиме ПДП обмен данными осуществляется автономно от центрального процессора. При этом скорость передачи данных определяется только внешними устройствами, что позволяет ВМ выполнять ввод-вывод с максимальной скоростью самих внешних устройств. Переход в режим ПДП выполняется по запросу внешнего устройства подобно тому, как обрабатывается запрос прерываний, только управление при этом передаётся внешнему устройству. Для эффективного управления вводом-выводом в режиме ПДП в современных ВМ используются либо специализированные сопроцессоры ввода-вывода, либо контроллеры ПДП (DMA).

Сопроцессор ввода-вывода– это вспомогательный процессор, работающий в паре с центральным процессором и имеющий собственную систему команд, ориентированную на операции ввода-вывода. В этом случае все действия по организации передач ввода-вывода реализуются без участия центрального процессора. Сопроцессор ввода-вывода может также выполнять арифметические и логические операции, поиск и преобразования данных. Он программируется с помощью центрального процессора, выполняет его задания и возвращает в него результаты выполнения. Когда в программе встречается команда ввода-вывода, центральный процессор передаёт управление сопроцессору ввода-вывода, и далее сопроцессор работает независимо от центрального процессора. Сопроцессор ввода-вывода является достаточно сложным устройством. При его использовании для организации ПДП часто применяют раздельные шины доступа к ОЗУ со стороны центрального процессора и ПУ.

Сопроцессоры ввода-вывода ещё называют каналами ввода-вывода. Они бывают мультиплексными и селекторными. Мультиплексный канал одновременно обслуживает параллельно работающие медленные ПУ, попеременно организуя с ними кратковременные сеансы связи. Средства мультиплексного канала для обслуживания одной операции ввода-вывода, называются подканалом. Мультиплексные каналы могут иметь до 256 подканалов, что позволяет подключать до 256 ПУ. Селекторный канал всегда обслуживает одно ПУ, доводя с ним до полного завершения обмен информацией. Селекторный канал обслуживает быстродействующие ПУ.

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

В большинстве архитектур современных ВМ предусмотрен очень похожий на ПДП режим, который называется захватом шины или прямым управлением шиной. Переход в такой режим начинается по запросу от ПУ, и управление шиной получает контроллер этого ПУ, который берёт на себя полную ответственность за обмен. Обмен может осуществляться не только между ПУ и памятью, но и между двумя ПУ.

Система шин вычислительной машины позволяет любому (даже новому) компоненту взаимодействовать с любым другим устройством (компонентом). Рассмотрим способы подключения внешних ПУ к ВМ.

Источник