Кроме миллионов возможных ячеек памяти, имеющихся в компьютере РС, в системе, как правило, резервируются тысячи адресов для устройств ввода/вывода. Чтобы любое устройство могло взаимодействовать с микропроцессором системы, оно должно иметь адрес (или группу адресов), по которым система может его найти.
Если взглянуть на компьютерную систему, видно, что внешние устройства ввода/вывода подключаются к системам шин компьютера через интерфейсные схемы. Задача интерфейсных схем — обеспечение совместимости периферийных устройств с системой.
Микрокомпьютер — это полностью монолитное цифровое электронное устройство, использующее параллельные слова заданной длины и работающее с напряжениями базовых уровней цифровой логики. Однако периферийные устройства компьютеров по своей природе являются скорее механическими и аналоговыми. И напротив, органы чувств и действия человека по своей природе являются аналоговыми.
Блоки ввода и вывода компьютера позволяют ему обмениваться информацией с внешним миром. Блоки ввода содержат все цепи, необходимые для приема данных и программ от таких периферийных устройств ввода, как клавиатуры, световые перья, мыши, джойстики и т.п., а также для преобразования информации в пригодную для использования микропроцессором форму. Блок ввода может использоваться для ввода программ и данных в модуль памяти перед выполнением или для ввода данных непосредственно в микропроцессор во время выполнения.
Блоки вывода содержат все цепи, необходимые для преобразования данных с компьютерного языка в более подходящую для внешнего мира форму. Чаще всего — это форма алфавитно-цифровых символов, удобная для человеческого восприятия. Обычные устройства вывода — мониторы видеодисплеев, звуковые динамики и принтеры. Несколько обычных устройств ввода/вывода, используемых вместе ПК.
Некоторые периферийные устройства компьютера выполняют двойные функции, т.е. и ввода, и вывода. Такие устройства называют устройствами ввода/вывода и к ним относятся такие устройства хранения информации, как дисководы жестких дисков, дисководы гибких дисков, лентопротяжные устройства, а также модемы. В этих устройствах данные преобразуются в форму, удобную не для человека, а наиболее подходящую для выполняемой устройством функции.
Инициирование передач ввода/вывода
Во время выполнения программы микропроцессор постоянно считывает или записывает данные в ячейки памяти. Программа также может обращаться к процессору для выполнения считывания или записи на одном из устройств ввода/вывода системы. Независимо от способа соединения периферийного устройства с системой (последовательного или параллельного), для инициирования передачи данных между системой и периферийным устройством может использоваться один из четырех методов:
- Опрос, при котором микропроцессор проверяет состояние периферийного устройства, управляемого программой.
- Программируемый ввод/вывод, при котором микропроцессор предупреждает назначенное периферийное устройство, передавая его адрес в адресную шину системы.
- Ввод/вывод, управляемый прерываниями, при котором периферийное устройство предупреждает микропроцессор о своей готовности передать данные.
- DMA (direct memory access — прямой доступ к памяти), при котором программируемое периферийное устройство перехватывает управление системными шинами с целью реализации прямого обмена данными с первичной памятью.
Опрос и программируемый ввод/вывод
И опрос, и программируемый ввод/вывод представляют программный подход к передаче данных. С другой стороны, управляемая прерываниями передача и передача DMA, в основном, являются аппаратными подходами.
При методе опроса программа периодически проверяет устройства ввода/вывода системы для выяснения того, готово ли какое-либо устройство к выполнению передачи данных. Если да, программа начинает считывать или записывать данные в соответствующем порту ввода/вывода. Метод опроса обладает тем преимуществом, что его легко реализовать и распознать, поскольку программа управляет всей последовательностью событий во время передачи. Однако часто опрос неудобен, поскольку микропроцессор должен быть полностью занят выполнением подпрограммы опроса и не может выполнять другие функции.
Метод программируемого ввода/вывода вызывает микропроцессор для предупреждения требуемого периферийного устройства об операции ввода/вывода путем передачи его адреса в адресную шину. Периферийное устройство может отложить передачу, объявив свою линию занятой. Если микропроцессор принимает от периферийного устройства сигнал занятости, он продолжает выполнять другие задачи, но периодически проверяет устройство до тех пор, пока сигнал занятости не сменится сигналом готовности.
Чтобы наладить упорядоченный поток данных во время передачи, периферийное устройство и система могут многократно обмениваться сигналами готовности к обмену. Это не позволяет процессору отправлять или запрашивать данные с большей частотой, чем та, с которой может работать периферийное устройство. В обоих методах основной используемый ресурс — время занятости микропроцессора.