Интерфейсы систем экзамен. АВ. Вопросы к экзамену по дисциплине Интерфейсы вычислительных систем
Скачать 1.07 Mb.
|
Вопросы к экзамену по дисциплине «Интерфейсы вычислительных систем» Понятие интерфейса. Под «интерфейсом» в вычислительной технике и информатике понимается способ взаимодействия элементов системы или систем между собой. Интерфейсы вычислительной техники можно разделить на аппаратные, программные и интерфейсы оператора. С аппаратными интерфейсами в основном работают интеграторы систем и системные программисты, т.к. прикладные программы, ориентированные на специфическое оборудование, тоже имеют дело с аппаратными интерфейсами. С программными интерфейсами — прикладные. С интерфейсами оператора встречается каждый оператор системы. Введение понятия интерфейса какой-либо системы позволяет абстрагироваться от внутреннего устройства этой системы. Аппаратные интерфейсы. Аппаратными интерфейсами называют способы физического сопряжения элементов вычислительной системы (компьютеров, периферийных устройств и устройств связи). Аппаратные интерфейсы подразделяются на механические, гальванические, электромагнитные, сигнальные и форматы разметки носителей. В вычислительной технике известны сотни распространенных аппаратных интерфейсов. В качестве примеров можно назвать: «стык-232» (RS-232, «последовательный порт»), «универсальную последовательную шину» USB, «витую пару Ethernet», интерфейсы ATA, SATA и SCSI, интерфейсы PCI, AGP и PCI-Express, интерфейс инфракрасной связи IrDA. Программные интерфейсы и форматы данных. Вычислительный процесс является абстракцией, абстрактными являются и программные интерфейсы. Взаимодействие реально исполняемых вычислительных процессов, разумеется, предполагает физическую связь между устройствами, которые их исполняют (посредством какого-либо аппаратного интерфейса) либо возможно использование общей памяти, если процессы протекают на одном устройстве. К программным интерфейсам относятся: форматы данных, а также вызовы системных и прикладных подпрограмм (библиотечные интерфейсы). Важнейшим типом программных интерфейсов являются форматы, в которых представлены обрабатываемые и сохраняемые данные. Для того чтобы данные обрабатывались соответствующим их природе образом (например, числа вовлекались в вычисления, текст подвергался алфавитной сортировке, а звук — выводился в наушники), программист или разработчик специализированного устройства должен принять решения о способе их представления — способе кодирования или формате данных. Одним из важнейших форматов данных является текстовый формат. Текстом в вычислительной технике называют последовательность символов из определенного набора — алфавита. В алфавит могут входить буквы одного или нескольких языков, цифры, знаки препинания, символы специальных нотаций. Интерфейсы оператора и приборные интерфейсы. Наконец, еще одним классом интерфейсов вычислительных систем являются интерфейсы оператора (человеко-машинного взаимодействия). К человеко-машинным интерфейсам применимы не только чисто технические критерии, но также критерии эргономики. Применяемые сегодня интерфейсы оператора можно свести к какой-либо комбинации четырех типов интерфейсов: приборного, тексто-диалогового, экранных форм и оконных систем. В современных компьютерах приборный интерфейс сводится к набору органов электронного управления (кнопки включения питания, экстренной перезагрузки, извлечения магнитных и оптических дисков и соответствующих им световых индикаторов и т.п.) и терминалу — комплексу из монитора (дисплея), клавиатуры, мыши (или аналога). Адекватный уровень архитектурного описания задается спецификой осуществляемой деятельности. Было отмечено, что основным типом деятельности при создании учрежденческих вычислительных систем является интеграция из серийных комплектующих и независимо разработанных программ. Такой интеграционной деятельности соответствует уровень архитектурного описания, ограниченный спецификацией внешних интерфейсов этих единиц оборудования и программ. Эти интерфейсы становятся внутренними элементами интегрируемых систем и остаются в этом смысле «деталями реализации». «Платформой» называют совокупность элементов системы, являющуюся неизменной на момент внедрения или на период разработки нового элемента вычислительной системы (программы, программного пакета или программной системы). Соответственно, говорят о платформе внедрения или платформе разработки. В качестве платформы для внедрения (или разработки) ОС выступает применяемое оборудование. Совокупность его характеристик называют аппаратной платформой. Миграция. При исчерпании потенциала платформы или ее устаревании может встать задача переноса системы на другую платформу — миграции. Процесс миграции, может быть разложен на три более элементарных процесса: миграция данных (перевод их из формата, поддерживаемого старой системой, в формат, поддерживаемый новой); миграция приложений (замена, переработка или новая разработка прикладных программ, реализующих функциональность системы); миграция персонала (переподготовка пользователей — администраторов системы). Трудоемкость миграции обратно пропорциональна степени стандартизованности соответствующих интерфейсов. Так, например, при применении ОС, удовлетворяющей стандарту, миграция с одной аппаратной платформы на другую сводится к организационным действиям, данные и приложения могут ей не затрагиваться, а большинство операторов могут и не заметить перехода (идеальный случай, в жизни не реализуемый). При применении не стандартизированных платформ миграция может потребовать замену ОС, что повлечет за собой миграцию приложений и, возможно, персонала. Принципы программного обеспечения ввода-вывода Независимость от устройств. Вид программы не должен зависеть от того, читает ли она данные с гибкого диска или с жесткого диска. Каждому устройству присваивается свое логическое имя (в MSDOS – LPT, PRN, COM1, COM2 и т. д.). Для именования устройств должны быть приняты единые правила. Единообразное именование - имя файла или устройства не должны отличаться. Обработка ошибок. Ошибки следует обрабатывать как можно ближе к аппаратуре. Если контроллер обнаруживает ошибку чтения, то он должен попытаться ее скорректировать. Если ему это не удается, то исправлением ошибок должен заняться драйвер устройства. Многие ошибки могут исчезать при повторных попытках выполнения операций ввода-вывода, например, ошибки, вызванные наличием пылинок на головках чтения или на диске. И только если нижний уровень не может справиться с ошибкой, он сообщает об ошибке верхнему уровню. Использование блокирующих (синхронных) и неблокирующих (асинхронных) передач. Большинство операций физического ввода-вывода выполняется как неблокирующие. При этом процессор, выдав команду на передачу данных, переходит на другую работу, пока не наступает прерывание. Это обеспечивает более полное использование процессора. При блокирующей передаче после поступления команды READ программа приостанавливается до тех пор, пока данные не попадут в буфер программы. Пользовательские программы намного легче писать, если операции ввода-вывода блокирующие. Поэтому ОС выполняет операции ввода-вывода как неблокирующие, но представляет их для пользовательских программ как блокирующие. Устранение проблем при работе с выделенными устройствами. Устройства ввода-вывода могут быть разделяемыми и выделенными. Диски – это разделяемые устройства, так как одновременный доступ нескольких пользователей к диску не представляет собой проблему. Принтеры – это выделенные устройства, потому что нельзя смешивать строчки, печатаемые различными пользователями. Программное обеспечение ввода-вывода можно разделить на четыре уровня : обработка прерываний, драйверы устройств, независимый от устройств слой операционной системы, приложения пользователей. Прерывания. После того как устройство ввода-вывода начало работу, процессор переключается на другие задачи. Чтобы сигнализировать процессору об окончании работы, устройство инициализирует прерывание, выставляя сигнал на выделенную устройству линию шины (а не выделенный провод). Используются для спонтанных, но гарантированных передач с гарантированными скоростями и задержками. Используются обычно для передачи введенных данных от клавиатуры или сведений об изменении положения указателя мыши, в устройствах обратной связи, и т.д. Контроллер прерываний - обслуживает поступающие прерывания от устройств. Если необработанных прерываний нет, прерывание выполняется немедленно. Если необработанных прерываний есть, контроллер игнорирует прерывание. Но устройство продолжает удерживать сигнал прерывания на шине до тех пор, пока оно не будет обработано. Алгоритм работы: Устройство выставляет сигнал прерывания Контроллер прерываний инициирует прерывание, указывая номер устройства Процессор начинает выполнять обработку прерывания, вызывая процедуру Эта процедура подтверждает получение прерывания контроллеру прерываний Обработчики прерываний. Прерывания должны быть скрыты как можно глубже в недрах операционной системы, чтобы как можно меньшая часть ОС имела с ними дело. Лучше всего блокировать драйвер, начавший ввод-вывод. Алгоритм: 1. Драйвер начинает операцию ввод-вывод. 2. Драйвер блокирует сам себя, - выполнив на семафоре процедуру down - выполнив на переменной состояния процедуру wait - выполнив на сообщении процедуру receive 3. Происходит прерывание 4. Обработчик прерываний начинает работу 5. Обработчик прерываний может разблокировать драйвер (например, выполнив на семафоре процедуру up) Управляемый прерываниями ввод-вывод. Если в предыдущем примере буфер не используется, а принтер печатает 100 символов в секунду, то на каждый символ будет уходить 10мс, в это время процессор будет простаивать, ожидая готовности принтера. Рассмотрим тот же пример, но с небольшим усовершенствованием. Алгоритм печати: Алгоритм печати: 1. Строка для печати собирается в пространстве пользователя. 2. Обращаясь к системному вызову, процесс получает принтер. 3. Обращаясь к системному вызову, процесс просит распечатать строку на принтере. 4. Операционная система копирует строку в массив, расположенный в режиме ядра. 5. ОС копирует первый символ в регистр данных принтера, который отображен на памяти. 6. Символ печатается на бумаге. 7. Указатель устанавливается на следующий символ. 1. До пункта 8 тоже самое. 2 (8). Процессор не ждет готовности принтера, а вызывает планировщик и переключается на другую задачу. Печатающий процесс блокируется. 3 (9). Когда принтер будет готов, он посылает прерывание процессору. 4 (10). Процессор переключается на печатающий процесс. Недостаток предыдущего метода в том, что прерывание происходит при печати каждого символа. Алгоритм не отличается, но всю работу на себя берет контроллер DMA. Драйвера устройств. Драйвер устройства - необходим для каждого устройства. Для разных ОС нужны разные драйверы. Драйверы должны быть частью ядра (в монолитной системе), чтобы получить доступ к регистрам контроллера. Это одна из основных причин, приводящих к краху операционных систем. Потому что драйверы, как правило, пишутся производителями устройств, и вставляются в ОС. Логическое расположение драйверов устройств. На самом деле обмен данными между контроллерами и драйверами идет по шине. Драйвера должны взаимодействовать с ОС через стандартные интерфейсы. Стандартные интерфейсы, которые должны поддерживать драйвера: · Для блочных устройств · Для символьных устройств Раньше для установки ядра приходилось перекомпилировать ядра системы. Сейчас в основном ОС загружают драйверы. Некоторые драйверы могут быть загружены в горячем режиме. Функции, которые выполняют драйвера: · обработка запросов чтения или записи · инициализация устройства · управление энергопотреблением устройства · прогрев устройства (сканера) · включение устройства или запуска двигателя Буферизация. Буферизация — способ организации обмена, в частности, ввода и вывода данных в компьютерах и других вычислительных устройствах, который подразумевает использование буфера для временного хранения данных. При вводе данных одни устройства или процессы производят запись данных в буфер, а другие — чтение из него, при выводе — наоборот. Процесс, выполнивший запись в буфер, может немедленно продолжать работу, не ожидая, пока данные будут обработаны другим процессом, которому они предназначены. В свою очередь, процесс, обработавший некоторую порцию данных, может немедленно прочитать из буфера следующую порцию. Таким образом, буферизация позволяет процессам, производящим ввод, вывод и обработку данных, выполняться параллельно, не ожидая, пока другой процесс выполнит свою часть работы. Поэтому буферизация данных широко применяется в многозадачных ОС. Рассмотрим несколько примеров буферизации: a) Не буферизованный ввод - после ввода каждого символа происходит прерывание; b) Буферизация в пространстве пользователя - приходится держать загруженными необходимые страницы памяти в физической памяти; c) Буферизация в ядре с копированием в пространство пользователя - страница загружается только когда буфер ядра полный, данные из буфера ядра в буфер пользователя копируется за одну операцию. Проблема может возникнуть, когда буфер ядра полный, а страница буфера пользователя еще не загружена; d) Двойная буферизация в ядре - если один буфер заполнен, и пока он выгружается, символы пишутся во второй буфер. Программное обеспечение ввода-вывода пространства пользователя. (мб добавить) Функции этого обеспечения: Обращение к системным вызовам ввода-вывода (через библиотечные процедуры). Форматный ввод-вывод (меняют формат, например, в ASCII) Спулинг (для выделенных устройств) - создается процесс (например, демон печати) и каталог спулера. Обобщение уровней и функций ввода-вывода Последовательность прерываний в микропроцессоре. Прерывание - это прекращение выполнения текущей команды или текущей последовательности команд для обработки некоторого события специальной программой - обработчиком прерывания, с последующим возвратом к выполнению прерванной программы. Событие может быть вызвано особой ситуацией, сложившейся при выполнении программы, или сигналом от внешнего устройства. Прерывание используется для быстрой реакции процессора на особые ситуации, возникающие при выполнении программы и взаимодействии с внешними устройствами. Вход требования прерывания INTR отвечает на высокий уровень сигнала внешнего устройства. При этом предполагаем, что в устройство интерфейса ввода уже загружено 8 бит параллельных данных готовых для передачи в МП. Предполагаем, что в устройстве интерфейса ввода загружается 8 бит параллельных данных готовых для передачи в МП. Тогда, описание процедуры прерывания имеет следующую последовательность: 1. Интерфейс ввода выдает сигнал требования прерывания в направлении МП. 2. МП завершает выполнение текущей команды, находящейся в памяти по адресу 3. Поскольку, управление должно обеспечить последующее обращение к команде по следующему адресу, содержимое счетчика команд и содержимое большинства регистров МП помещается в специальную область ОЗУ, называемую стеком. Содержимое стека будет позже извлечено в определенном порядке в регистры МП и счетчик команд. 4. В МП разветвляется в предопределенный адрес памяти и начинает выполнение программы обслуживания прерывания. МП тогда выполняет команды подпрограммы, которые в нашем примере обеспечивает выполнение операции ввода и размещения. По адресу МП находит конец этой подпрограммы и получает приказ вернуться в основную программу. 5. Перед возвращением в основную программу данные регистров и счетчик команд, помещенные в стеке, возвращаются в МП. 6. Теперь счетчик команд отсылает МП в память по адресу, т.е. в основную программу и нормальное ее выполнение продолжается. Прерывание является очень нужным способом, позволяющим периферийным устройствам вмешаться и заставить МП выполнять требуемую операцию почти сразу. Многие МП обладают несколькими прерываниями. Обслуживание и последовательность прерывания обеспечивается соответствующими инструкциями в тексте некой программы программистом. Организация обработки прерываний в ЭВМ. Механизм прерывания обеспечивается соответствующими аппаратно-программными средствами компьютера. Любая особая ситуация, вызывающая прерывание, сопровождается сигналом, называемым запросом прерывания (ЗП) внешних устройств поступают в процессор по специальным линиям, а запросы, возникающие в процессе выполнения программы, поступают непосредственно изнутри микропроцессора. Механизмы обработки прерываний обоих типов схожи. Рассмотрим функционирование компьютера при появлении сигнала запроса прерывания, опираясь в основном на обработку аппаратных прерываний (см. рис.). После появления сигнала запроса прерывания ЭВМ переходит к выполнению программы - обработчика прерывания. Обработчик выполняет те действия, которые необходимы в связи с возникшей особой ситуацией. Например, такой ситуацией может быть нажатие клавиши на клавиатуре компьютера. Тогда обработчик должен передать код нажатой клавиши из контроллера клавиатуры в процессор и, возможно, проанализировать этот код. По окончании работы обработчика управление передается прерванной программе. Время реакции - это время между появлением сигнала запроса прерывания и началом выполнения прерывающей программы (обработчика прерывания) в том случае, если данное прерывание разрешено к обслуживанию. Время реакции зависит от момента, когда процессор определяет факт наличия запроса прерывания. Опрос запросов прерываний может проводиться либо по окончании выполнения очередного этапа команды (например, считывание команды, считывание первого операнда и т.д.), либо после завершения каждой команды программы. Первый подход обеспечивает более быструю реакцию, но при этом необходимо при переходе к обработчику прерывания сохранять большой объем информации о прерываемой программе, включающей состояние буферных регистров процессора, номера завершившегося этапа и т.д. При возврате из обработчика также необходимо выполнить большой объем работы по восстановлению состояния процессора. Во втором случае время реакции может быть достаточно большим. Однако при переходе к обработчику прерывания требуется запоминание минимального контекста прерываемой программы (обычно это счетчик команд и регистр флагов). В настоящее время в компьютерах чаще используется распознавание запроса прерывания после завершения очередной команды. Время реакции определяется для запроса с наивысшим приоритетом. Глубина прерывания - максимальное число программ, которые могут прерывать друг друга. Глубина прерывания обычно совпадает с числом уровней приоритетов, распознаваемых системой прерываний. Работа системы прерываний при различной глубине прерываний (n) представлена на (рис.). Здесь предполагается, что с увеличением номера запроса прерывания увеличивается его приоритет. Без учета времени реакции, а также времени запоминания и времени восстановления: t11+t12=t1, t21+t22=t2. Прерывания делятся на аппаратные и программные Аппаратные прерывания используются для организации взаимодействия с внешними устройствами. Запросы аппаратных прерываний поступают на специальные входы микропроцессора. Они бывают: 1) маскируемые, которые могут быть замаскированы программными средствами компьютера; 2) немаскируемые, запрос от которых таким образом замаскирован быть не может. Программные прерывания вызываются следующими ситуациями: 1. особый случай, возникший при выполнении команды и препятствующий нормальному продолжению программы (переполнение, нарушение защиты памяти, отсутствие нужной страницы в оперативной памяти и т.п.); 2. наличие в программе специальной команды прерывания INT n, используемой обычно программистом при обращениях к специальным функциям операционной системы для ввода-вывода информации. Каждому запросу прерывания в компьютере присваивается свой номер (тип прерывания), используемый для определения адреса обработчика прерывания. При поступлении запроса прерывания компьютер выполняет следующую последовательность действий: 1. определение наиболее приоритетного незамаскированного запроса на прерывание (если одновременно поступило несколько запросов); 2. определение типа выбранного запроса; 3. сохранение текущего состояния счетчика команд и регистра флагов; 4. определение адреса обработчика прерывания по типу прерывания и передача управления первой команде этого обработчика; 5. выполнение программы - обработчика прерывания; 6. восстановление сохраненных значений счетчика команд и регистра флагов прерванной программы; 7. продолжение выполнения прерванной программы. Этапы 1-4 выполняются аппаратными средствами ЭВМ автоматически при появлении запроса прерывания. Этап 6 также выполняется аппаратно по команде возврата из обработчика прерывания. Задача программиста - составить программу - обработчик прерывания, которая выполняла бы действия, связанные с появлением запроса данного типа, и поместить адрес начала этой программы в специальной таблице адресов прерываний. Программа-обработчик, как правило, должна начинаться с сохранения состояния тех регистров процессора, которые будут ею изменяться, и заканчиваться восстановлением состояния этих регистров. Программа-обработчик должна завершаться специальной командой, указывающей процессору на необходимость возврата в прерванную программу. Цепочечная однотактная система определения приоритета запроса прерывания. На рис. приведена схема, обеспечивающая получение номера наиболее приоритетного запроса прерывания из присутствующих в компьютере на момент подачи сигнала опроса ("дейзи-цепочка") Данная схема используется для анализа запросов аппаратных прерываний. Приоритет запросов прерываний (ЗПi) уменьшается с уменьшением номера запроса. В тот момент, когда компьютер должен определить наличие и приоритет внешнего аппаратного прерывания (обычно после окончания выполнения каждой команды), процессор выдает сигнал опроса. Если на входе ЗП3 присутствует сигнал высокого уровня (есть запрос), то на элементе 11 формируется общий сигнал наличия запроса прерывания и дальнейшее прохождение сигнала опроса блокируется. Если ЗП3=0, то анализируется сигнал ЗП2 и так далее. На шифраторе (элемент 12) формируется номер поступившего запроса прерывания. Этот номер передается в процессор лишь при наличии общего сигнала запроса прерывания. Такая структура позволяет быстро анализировать наличие сигнала запроса прерывания и определять наиболее приоритетный запрос из нескольких присутствующих в данный момент. Распределение приоритетов запросов прерываний внешних устройств осуществляется путем их физической коммутации по отношению к процессору. Указание приоритетов - жесткое и не может быть программно изменено. Изменение приоритетов возможно только путем физической перекоммутации устройств. Обработка прерываний в персональной ЭВМ. Микропроцессоры типа х86 имеют два входа запросов внешних аппаратных прерываний: NMI - немаскируемое прерывание, используется обычно для запросов прерываний по нарушению питания; INT - маскируемое прерывание, запрос от которого можно программным образом замаскировать путем сброса флага IF в регистре флагов. Единственный вход запроса маскируемых прерываний микропроцессора не позволяет подключить к нему напрямую сигналы запросов от большого числа различных внешних устройств, которые входят в состав современного компьютера: таймера, клавиатуры, ";мыши";, принтера, сетевой карты и т.д. Для их подключения к одному входу INT микропроцессора используется контроллер приоритетных прерываний (рис. 4). Его функции: восприятие и фиксация запросов прерываний от внешних устройств; определение незамаскированных запросов среди поступивших запросов; проведение арбитража: выделение наиболее приоритетного запроса из незамаскированных запросов в соответствии с установленным механизмом назначения приоритетов; сравнение приоритета выделенного запроса с приоритетом запроса, который в данный момент может обрабатываться в микропроцессоре, формирование сигнала запроса на вход INT микропроцессора в случае, если приоритет нового запроса выше; передача в микропроцессор по шине данных типа прерывания, выбранного в процессе арбитража, для запуска соответствующей программы - обработчика прерывания; это действие выполняется по сигналу разрешения прерывания INTA от микропроцессора, который выдается в случае, если прерывания в регистре флагов микропроцессора не замаскированы (IF=1). Переход к соответствующему обработчику прерывания осуществляется (в реальном режиме работы микропроцессора) посредством таблицы векторов прерываний. Эта таблица (рис.) располагается в самых младших адресах оперативной памяти, имеет объем 1 Кбайт и содержит значения сегментного регистра команд (CS) и указателя команд (IP) для 256 обработчиков прерываний. Различные источники задают тип прерывания по-разному: программные прерывания вводят его изнутри процессора или содержат его в номере команды INT n; аппаратные маскируемые прерывания вводят его от контроллера приоритетных прерываний по шине данных; немаскируемому аппаратному прерыванию назначен тип 2. Программно-управляемый обмен. В вычислительных машинах используются два основных способа обмена информацией: программно – управляемый обмен и прямой доступ к памяти (ПДП). Программно – управляемый обмен может инициироваться как микропроцессором, так и запросом прерывания от периферийного устройства (ПУ). При программно – управляемом обмене (Programmed Input/Output - PIO) передача слов происходит через регистры микропроцессора и производится соответствующими командами программы микропроцессора. Процедура обмена по прерыванию имеет ряд существенных особенностей, которые будут изложены в дальнейшем. При программно – управляемом обмене, например, пересылке блока байт данных из порта в оперативную память процессор выполняет следующие операции: считывает байт данных из порта в один из регистров общего назначения; записывает байт данных из регистра в оперативное записывающее устройство (ОЗУ) по сформированному адресу; модифицирует адрес ОЗУ и декрементирует содержимое счетчика байт. Эти действия автоматически повторяются до завершения пересылки всех байт блока. Такой способ обмена сильно загружает процессор и замедляет выполнение основной задачи, что ухудшает динамические характеристики компьютерных систем управления. Анализ несложной программы для микропроцессора, реализующей указанные операции, показывает, что для пересылки одного байта данных микропроцессор должен более десяти раз обратиться к оперативной памяти для чтения кода команд программы. Поэтому скорость передачи данных в этом режиме будет невысокой и может оказаться недостаточной для работы с высокоскоростными программными устройствами. Заметим, правда, что в современных процессорах скорость обмена в режиме PIO значительно увеличена за счет использования строковых команд ввода – вывода REP INS/OUTS. Программно–управляемый обмен по инициативе процессора в зависимости от организации взаимодействия микропроцессора с периферийным устройством разделяется на прямой (безусловный) и условный. При прямом или безусловном обмене процедура ввода-вывода выполняется микропроцессором независимо от состояния программного устройства. Такой вид обмена возможен только с всегда готовыми к обмену простейшими программными устройствами, например, индикаторами, регистрами и т.п. При условном обмене процедура ввода-вывода осуществляется микропроцессором только при выполнении условия готовности программного устройства к обмену. Если условие готовности программного устройства не выполняется, микропроцессор переходит в состояние ожидания готовности программного устройства к обмену или возвращается к основной задаче без выполнения операции ввода-вывода с последующей повторной проверкой готовности программного устройства. Первый тип условного обмена называется с занятием цикла, а второй – совмещенный. Проверку условия готовности программного устройства можно производить программно, считывая и анализируя биты регистра состояния программного устройства, или аппаратно, анализируя специальный сигнал готовности RDY, генерируемый программным устройством. После завершения процедуры ввода-вывода сигнал готовности RDY должен быть снят и сформирован снова только при новой готовности программного устройства к обмену. С этой целью микропроцессор информирует программное устройство об окончании ввода или вывода данных, для чего генерирует для программного устройства сигнал подтверждения. Таким образом, между микропроцессором и программным устройством происходит обмен информацией двух типов: управляющей (синхронизирующей обмен) и собственно данными. Рассмотренный протокол обмена управляющей информацией называется квитированием. Квитирование обеспечивает надежный асинхронный обмен данными со скоростями, определяемыми программным устройством. Это вид обмена применяется для взаимодействия с программным устройством, длительность рабочего цикла которых больше командного цикла процессора или непостоянна во времени. Прямой доступ к памяти. Прямым доступом к памяти (ПДП или DMA – Direct Memory Access) называется способ обмена данными, осуществляемый под управлением контроллера ПДП (контроллера DMA) автономно от МП. Контроллер ПДП (КПДП) может управлять в режиме прямого доступа передачей информации побайтно, пословно и блоками данных. С этой целью КПДП формирует и модифицирует адреса участвующих в обмене ячеек ОЗУ, задает размер блока данных, который подлежит передаче, ведет подсчет байт, передаваемых в ОЗУ или из ОЗУ, определяет момент завершения передачи, генерирует управляющие сигналы для МП, ОЗУ и периферийных устройств, обеспечивая их согласованную работу на шине в режиме ПДП. Управление обменом в этом режиме производится аппаратно, поэтому режим ПДП называют аппаратно-управляемым обменом. В процессе функционирования в составе вычислительной машины контроллер ПДП может находиться в одном из следующих состояний: исходное, программирование, ожидание и обслуживание. В исходное состояние контроллер устанавливается после включения электропитания путем подачи сигнала сброса на вход RESET. В состоянии программирования контролера МП по системной шине данных производит инициализацию контроллера. Для этого МП осуществляет запись в соответствующие регистры контроллера управляющих слов, определяющих режимы работы, и исходных данных, задающих начальные адреса областей памяти ОЗУ и размеры блоков передаваемых байт (до 64 Кбайт или слов). Адреса регистров определяются кодом на системной шине адреса. Обычный контроллер прямого доступа (интерфейсные БИС 8257 и 8237А) является четырехканальным, т.е. обслуживает четыре ПУ, поэтому каждый канал программируется индивидуально с учетом особенностей подключенного к каналу ПУ. В состоянии ожидания контроллер осуществляет прием сигналов запросов прямого доступа к памяти от ПУ и вырабатывает для МП сигнал «Запрос захвата», который поступает на вход микропроцессора. В этом состоянии системные шины находятся под управлением МП. В состояние ожидания контроллер переходит после завершения программирования. В состояние обслуживания контроллер переходит после получения от МП сигнала «Подтверждение захвата», указывающего на возможность доступа к системным шинам со стороны контроллера. Контроллер формирует сигнал подтверждения запроса прямого доступа к памяти запрашивающему ПУ и берет на себя управление системной шиной. В этом состоянии МП отключается от системной шины с помощью шинных формирователей. Если было несколько одновременных запросов, контроллер обслуживает канал с наивысшим приоритетом (0 – высший, 3 – самый низкий). Контроллер генерирует набор управляющих сигналов шины, необходимых для осуществления обмена данными между ОЗУ и ПУ в одном из запрограммируемых режимов прямого доступа. Контроллер модифицирует счетчик адреса и счетчик байт до тех пор, пока не будут выполнены все циклы ввода или вывода. В последнем цикле обмена контроллер формирует общий сигнал окончания ТС (Terminate Count), который может быть использован ПУ для формирования сигнала аппаратного прерывания. Контроллёр прямого доступа к памяти. Прямым доступом к памяти (ПДП или DMA – Direct Memory Access) называется способ обмена данными, осуществляемый под управлением контроллера ПДП (контроллера DMA) автономно от МП. Контроллер ПДП (КПДП) может управлять в режиме прямого доступа передачей информации побайтно, пословно и блоками данных. С этой целью КПДП формирует и модифицирует адреса участвующих в обмене ячеек ОЗУ, задает размер блока данных, который подлежит передаче, ведет подсчет байт, передаваемых в ОЗУ или из ОЗУ, определяет момент завершения передачи, генерирует управляющие сигналы для МП, ОЗУ и периферийных устройств, обеспечивая их согласованную работу на шине в режиме ПДП. Управление обменом в этом режиме производится аппаратно, поэтому режим ПДП называют аппаратно-управляемым обменом. В процессе функционирования в составе вычислительной машины контроллер ПДП может находиться в одном из следующих состояний: исходное, программирование, ожидание и обслуживание. В исходное состояние контроллер устанавливается после включения электропитания путем подачи сигнала сброса на вход RESET. В состоянии программирования контролера МП по системной шине данных производит инициализацию контроллера. Для этого МП осуществляет запись в соответствующие регистры контроллера управляющих слов, определяющих режимы работы, и исходных данных, задающих начальные адреса областей памяти ОЗУ и размеры блоков передаваемых байт (до 64 Кбайт или слов). Адреса регистров определяются кодом на системной шине адреса. Обычный контроллер прямого доступа (интерфейсные БИС 8257 и 8237А) является четырехканальным, т.е. обслуживает четыре ПУ, поэтому каждый канал программируется индивидуально с учетом особенностей подключенного к каналу ПУ. В состоянии ожидания контроллер осуществляет прием сигналов запросов прямого доступа к памяти от ПУ и вырабатывает для МП сигнал «Запрос захвата», который поступает на вход микропроцессора. В этом состоянии системные шины находятся под управлением МП. В состояние ожидания контроллер переходит после завершения программирования. В состояние обслуживания контроллер переходит после получения от МП сигнала «Подтверждение захвата», указывающего на возможность доступа к системным шинам со стороны контроллера. Контроллер формирует сигнал подтверждения запроса прямого доступа к памяти запрашивающему ПУ и берет на себя управление системной шиной. В этом состоянии МП отключается от системной шины с помощью шинных формирователей. Если было несколько одновременных запросов, контроллер обслуживает канал с наивысшим приоритетом (0 – высший, 3 – самый низкий). Контроллер генерирует набор управляющих сигналов шины, необходимых для осуществления обмена данными между ОЗУ и ПУ в одном из запрограммируемых режимов прямого доступа. Контроллер модифицирует счетчик адреса и счетчик байт до тех пор, пока не будут выполнены все циклы ввода или вывода. В последнем цикле обмена контроллер формирует общий сигнал окончания ТС (Terminate Count), который может быть использован ПУ для формирования сигнала аппаратного прерывания. Состояния прямого доступа к памяти. В процессе функционирования в составе вычислительной машины контроллер ПДП может находиться в одном из следующих состояний: исходное, программирование, ожидание и обслуживание. |