Раздел 2. Периферийные устройства средств вычислительной техники.

Тема:  2.1.  Общие принципы построения.

Как вы думаете:  чем различаются ПУ (Периферийные устройства)?

    Принципом действия Форматами и скоростью передачи информации Набором управляющих сигналов

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

При организации ПК используются принцип  модульности и принцип  магистральности.

Модульность предполагает построение системы из модулей со стандартным интерфейсом.

Под модулем понимается печатная плата (плата расширения), на которой реализован адаптер или контроллер, соединяющий периферийное устройство с шиной.

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

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

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

НЕ нашли? Не то? Что вы ищете?
    принцип подчиненности принцип квитирования принцип унификации характеристик модулей.

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

Ведущий -  ведомый

Активное устройство  --  пассивное  устройство

Задатчик – исполнитель

Инициирующее устройство – целевое  устройство

bus  masters  -  bus slaves

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

Принцип  унификации  характеристик модулей состоит в обеспечении

    информационной, электрической конструктивной совместимости интерфейсов модулей ВС.

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

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

Конструктивная  совместимость – это унификация модулей, шины и корпуса ВМ по конструктивным параметрам: размерам, типам соединителей, месту их установки.

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

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

Организация ввода вывода в режиме взаимодействия.

Основная программа                        Основная программа

                               1)                                                2)

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

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

Асинхронный обмен (рис.2)является более универсальным и более сложным способом программно-управляемого обмена. Он используется при работе с ПУ, быстродействие которых ниже быстродействия ЦП. И тогда приходится использовать специальные средства, синхронизирующие процесс приема-передачи. Эти средства содержатся  в адаптере(контроллере) ПУ.

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

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

(Тайм-аут – это средство восстановления работоспособности ВМ при не поступлении сигнала готовности в течение заданного интервала времени.)

Организация ввода вывода в режиме ввод-вывод по прерываниям.

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

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

    Идентифицирует источник прерываний Запоминается информация о состоянии ЦП(содержимое счетчика(указателя) команд и всех регистров) Выполняется инициализация процессора для выполнения прерывающей программы к подпрограмме обработки прерываний Осуществляется запуск и исполнение прерывающей программы обслуживания поступившего запроса прерывания Восстанавливает состояние на момент прерывания Возвращает управление прерванной программы

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

Организация ввода вывода в режиме ПДП.

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

Организация системы прерывания современных ЭВМ. Контроллер прерывания, назначение, решаемые задачи, алгоритм работы, расширение системы прерывания.

В зависимости от источника возникновения сигнала прерывания делятся на:

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

В зависимости от возможности запрета внешние прерывания делятся на:

    маскируемые — прерывания, которые можно запрещать установкой соответствующих битов в регистре маскирования прерываний (в x86-процессорах — сбросом флага IF в регистре флагов); немаскируемые (англ. Non maskable interrupt, NMI) — обрабатываются всегда, независимо от запретов на другие прерывания. К примеру, такое прерывание может быть вызвано сбоем в микросхеме памяти.

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

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

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

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

Вектор прерывания — закреплённый за устройством номер, который идентифицирует соответствующий обработчик прерываний. Векторы прерываний объединяются в таблицу векторов прерываний, содержащую адреса обработчиков прерываний. Местоположение таблицы зависит от типа и режима работы процессора. В большинстве случаев векторная система прерываний реализуется в виде специализированной СБИС – программируемого контроллера прерываний (ПКП), содержащего логику для назначения приоритетов поступающим запросам. Приоритеты могут обслуживаться как относительные и абсолютные. Относительное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то это прерывание будет обработано только после завершения текущей процедуры обработки прерывания. Абсолютное обслуживание прерываний означает, что если во время обработки прерывания поступает более приоритетное прерывание, то текущая процедура обработки прерывания вытесняется, и процессор начинает выполнять обработку вновь поступившего более приоритетного прерывания. После завершения этой процедуры процессор возвращается к выполнению вытесненной процедуры обработки прерывания.

Рассмотрим  каскадное включение контроллеров прерываний. ПКП обеспечивает обработку до 8 запросов прерываний от различных источников. При необходимости обслуживания большего числа источников запросов несколько ПКП могут быть объединены в систему, состоящую из ведущего ПКП и одного или нескольких ведомых (до 64 входов запросов прерываний). Чтобы ПКП действовали согласовано, каждый из них должен знать, какую функцию он выполняет. Сигнал SP/EN в блоке управления каскадным соединением сообщает контроллеру, является он ведущим или ведомым. В регистре команд инициализации ведущего контроллера фиксируется, к каким входам запросов прерывания этого ПКП подсоединены ведомые, а в регистре команд инициализации ведомого контроллера хранится номер входа ведущего ПКП, к которому он подсоединен. ЦП, реагируя на запрос прерывания, формирует два цикла шины подтверждения прерывания. В течение первого цикла ведущий ПКП подтверждает запрос прерывания ведомого ПКП. Такое подтверждение необходимо, т. к. запросить прерывание могут одновременно несколько ведомых ПКП. Во втором цикле шины выбранный ведомый ПКП помещает номер устройства, запросившего прерывание на системную шину данных, чтобы его мог считать ЦП.

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

В ПК с ЦП Pentium может использоваться усовершенствованный контроллер прерываний APIC (Advanced PIC), который встроен в процессор. APIC поддерживает работу систем прерываний для ВМ, которые могут содержать несколько процессоров. APIC имеет несколько режимов работы. В одном из них он реализует логику работы системы прерываний стандартного ПК. В режиме, основанном на «передаче сообщений», APIC обслуживает устройства, подключенные к шине PCI. При необходимости устройство PCI запрашивает управление шиной и после его получения записывает в соответствующий регистр APIC код запроса. После этого всю работу по переходу к обработке запроса выполняет APIC.

Организация системы ПДП современных ЭВМ. Контроллер ПДП, назначение, решаемые задачи, алгоритм работы.

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

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

В современных  ПК для ПДП-пересылок специальные контроллеры DMA.

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

Контроллер DMA реализуется в виде СБИС (сверхбольших интегральных схем), управляющей работой нескольких независимых каналов  ПДП. В современных ПК он входит в состав СБИС чипсета.

Типичный контроллер DMA i8237 поддерживает работу четырех независимых каналов обмена, каждый из которых обслуживает одно ПУ. При одновременном поступлении запросов ПДП каналы конкурируют на СШ согласно заданным приоритетам.

Основная задача канала заключается в

    генерации адресов  ОП и необходимых управляющих сигналов, обслуживающих передачу данных.

Адреса, устанавливаемые контроллером на шине адреса, относятся к памяти, а не к ПУ.

Адрес ПУ задавать не требуется, т. к. обмен осуществляется с устройством, запросившим ПДП.

Контроллер DMA подключен к СШ через двунаправленные буферы адреса и данных. При программировании контроллера DMA обеспечивают его настройку на определенный тип передачи, задают адреса памяти и размер передаваемого массива данных.

Каждый канал содержит регистр адреса, счетчик  байтов и регистр режима канала. Режимов 3 вида:

    Одиночной передачи Блочной передачи (циклы чтения(записи) повторяются заранее установленное число раз) Передачи по требованию (циклы повторяются, пока присутствует сигнал запроса от ПУ)

В СШ для каждого канала  DMA выделяется пара сигналов: DRQ (запрос на передачу) и DACK(разрешение(подтверждение) работы канала DMA). Запросы ПУ на обслуживание принимаются по линиям DRQ. Контроллер формирует сигнал подтверждения запроса по линии DACK соответствующего канала.

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

    команды обращения к памяти и команды обращения к порту УВВ.

Устройство управления контроллера содержит:

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


2 – сигнал запроса шин для ПДП

3 – ЦП завершает текущий внешний обмен и отключается от СШ

3 – сигнал разрешения прямого доступа

4 – сигнал Address Enable для оповещения остальных устройств, что на СШ выполняется цикл ПДП

5 – по завершению передачи блока данных контроллер снимает(1) и (4) и управление шиной передается ЦП.

Отличие от простого адресного обмена состоит в том, что контроллер DMA формирует одновременно два строба: строб чтения источника информации и строб записи в приемник информации. Кроме того, он модифицирует адреса памяти для повторения цикла обмена при передаче массива байтов или слов. В процессе обмена после каждого обращения к ОЗУ содержимое счетчика канала уменьшается на 1. Циклы обмена повторяются до нулевого значения счетчика или до тех пор, пока ПУ сохраняет (1запрос на передачу).