Последовательные данные передаются в синхронном или асинхронном режимах.
При синхронном методе передающее устройство устанавливает одно из двух возможных состояний сигнала (0 или 1) и поддерживает его в течение строго определенного интервала времени, по истечении которого состояние сигнала на передающей стороне может быть изменено.
Время передачи сигнала, которое складывается из времени передачи сигнала по линии и времени распознавания и фиксации сигнала в регистре приемного устройства, зависит от параметров линии связи и характеристик приемного и передающего устройств. Период синхронной передачи информации должен превышать максимальное время передачи сигнала. Он задается специальными тактовыми импульсами, как правило, поступающими от тактового генератора с кварцевым резонатором.
При асинхронной передаче передающее устройство устанавливает соответствующее передаваемому коду состояние сигнала на информационной линии, а принимающее устройство после приема сигнала информирует об этом передающее устройство изменением состояния сигнала на линии подтверждения приема. Передающее устройство, получив сигнал подтверждения, снимает передаваемый сигнал.
Конечно, второй режим сложнее, но у него есть серьезное преимущество: не нужен отдельный сигнал синхронизации.
Существуют специальные микросхемы ввода и вывода, решающие проблемы преобразования, описанные выше.
Обычно при передаче сигналов на короткие расстояния (десятки сантиметров) более быстрым оказывается синхронный метод, а при передаче на большие расстояния - асинхронный.
При передаче параллельного кода по параллельным линиям сигналы поступят в приемное устройство в разное время из-за разброса параметров цепей, формирующих сигналы, и линий интерфейса (так называемая проблема состязаний).
Используется два метода передачи параллельного кода по нескольким линиям: со стробированием, применяющим синхронную передачу, и с квитированием, в котором используется асинхронная передача.
При передаче со стробированием кроме N информационных линий используется линия «готовность данных»: вначале устанавливаются значения передаваемых сигналов на информационных линиях, затем на линии готовности устанавливается уровень 1. Через строго определенный период времени (превышающий максимальное время передачи) сигнал готовности сбрасывается в 0, процесс передачи завершается, после чего можно изменить сигналы на информационных линиях и передавать следующую порцию данных.
При передаче с квитированием кроме N информационных линий и линии готовности данных используется линия подтверждения приема: вначале устанавливаются значения передаваемых сигналов на информационных линиях, затем на линии готовности устанавливается уровень 1. Приняв фронт сигнала готовности, приемное устройство считывает сигналы с информационных линий и посылает передатчику сигнал подтверждения приема. Приняв фронт сигнала подтверждения, передатчик снимает сигнал готовности, после чего может приступать к передаче новой порции данных.
Индивидуальные каналы
Внешняя память и устройства ввода/вывода работают по электромеханическим принципам и потому по сравнению с процессором и оперативной памятью, которые работают по чисто электронным принципам, имеют существенно меньшее быстродействие.
Для того чтобы операции ввода-вывода выполнялись параллельно с выполнением вычислений, необходимо освободить процессор от управления операциями обмена информацией между периферийными устройствами и памятью. Эта задача возлагается на процессоры ввода-вывода (каналы), управляемые канальными программами.
Канал – путь передачи данных.
Как и процессор, каналы работают с памятью самостоятельно. Поэтому говорят, что в такой системе имеется много активных компонентов или интерпретирующих устройств.
Арбитр шины должен только выполнить инициирование операции ввода-вывода, задать номера канала и периферийного устройства, участвующих в операции, и код выполняемой операции.
Каналы могут приводиться в действие следующими двумя способами:
через прерывание: каналы прерывают выполнение пользовательской программы, чтобы получить от арбитра шины новый заказ для себя (interrupt);
через повторяющиеся опросы: арбитр шины периодически опрашивает каналы, чтобы узнать, можно ли выдать каналу новый заказ (polling).
Канал должен обеспечивать прямой доступ к памяти, осуществлять буферизацию и преобразование форматов передаваемых данных для согласования работы оперативной памяти и периферийного устройства. Поэтому в состав канала, кроме специального процессора и ПЗУ программ, входит контроллер ПДП и буферное ОЗУ (реально все эти компоненты могут быть размещены в одной микросхеме).
Для извещения арбитра шины об окончании каждой операции ввода-вывода, а также о возникновении ошибок, канал формирует запросы прерываний.
Кроме того, канал может выполнять ряд дополнительных функций для минимизации участия процессора в операциях ввода-вывода:
1. Организация цепочки блоков данных: если данные в памяти состоят из нескольких массивов, произвольно размещенных в памяти, то канал должен допускать задание цепочки блоков, чтобы не отвлекать основной процессор после передачи каждого блока.
2. Организация выборочного чтения информации: иногда необходимо вводить с носителя информации отдельные части некоторого массива, пропуская ненужные данные.
3. Организация цепочки операций: иногда выгодно задавать не отдельные операции ввода-вывода, а сразу группу последовательных операций.
4. Блокировка контроля неправильной длины считанного массива бывает полезной при попытках извлечения хотя бы части информации из искаженного массива данных.