Титульная страница Лабораторный практикум Программа Дополнительно
 Учебное пособие
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Учебное пособие -> Глава 7. Организация компьютерных систем: процесс ввода-вывода

 

Глава 7. Организация компьютерных систем:
процесс ввода-вывода

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

 

Рисунок 1 - Логическая структура ПК

 

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

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

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

Существует несколько типов шин:

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

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

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

Шины можно разделить на два типа, отличающиеся способом коммутации: шины с коммутацией цепей (circuit-switched bus) (например, Mbus) и шины с коммутацией пакетов (packet-switched bus) (например: xDBus, Rambus), получившие свои названия по аналогии со способами коммутации в сетях передачи данных.

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

Шина с коммутацией цепей не делает расщепления транзакций, любая транзакция на ней есть неделимая операция. Главное устройство запрашивает шину, далее помещает на нее адрес и блокирует шину до окончания обслуживания запроса. Большая часть времени при этом тратится не на выполнение операций на шине, а на ее обслуживание. Расщепленные транзакции делают шину доступной для других главных устройств пока память читает слово по запрошенному адресу. Это также означает, что ЦП должен бороться за шину для посылки данных, а память должна бороться за шину, чтобы вернуть данные. Таким образом, шина с расщеплением транзакций имеет более высокую пропускную способность, но обычно она имеет и большую задержку, чем шина, которая захватывается на все время выполнения транзакции. Транзакция называется расщепленной, поскольку произвольное количество других пакетов или транзакций могут использовать шину между запросом и ответом.

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

Недостаток:

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

Асинхронная шина не тактируется. Вместо этого обычно используется старт-стопный режим передачи и протокол рукопожатия (handshaking) между источником и приемником данных на шине. Эта схема позволяет гораздо проще приспособить широкое разнообразие устройств и удлинить шину без беспокойства о перекосе сигналов синхронизации и о системе синхронизации. Шины ввода/вывода обычно асинхронные.

Главный недостаток: построить асинхронную шину гораздо дороже, чем синхронную.

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

 

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

Вопрос: «Что происходит, когда задающим устройством шины становятся два или более устройства одновременно?»

Для решения данного вопроса применяется специальный механизм, называемый арбитражем шины.
Арбитраж может быть централизованным или децентрализованным.

Централизованный арбитраж

Арбитр шины определяет, чья очередь следующая. Часто механизм арбитража встраивается в микросхему процессора, но иногда используется отдельная микросхема. Шина содержит линию запроса (монтажное ИЛИ), которая может запускаться одним
или несколькими устройствами в любое время. Арбитр не может определить, сколько устройств запрашивают шину. Он может определить только факт наличия или отсутствия запросов. Когда арбитр обнаруживает запрос шины, он устанавливает линию предоставления шины. Эта линия последовательно связывает все устройства ввода-вывода (как в елочной гирлянде). Когда физически ближайшее к арбитру устройство получает сигнал предоставления шины, это устройство проверяет, нет ли запроса шины. Если запрос есть, устройство пользуется шиной, но не распространяет сигнал предоставления дальше по линии. Если запроса нет, устройство передает сигнал предоставления шины следующему устройству. Это устройство тоже проверяет, есть ли запрос, и действует соответствующим образом в зависимости от наличия или отсутствия запроса. Передача сигнала предоставления  шины продолжается до тех пор, пока какое-нибудь устройство не воспользуется предоставленной шиной. Такая система называется системой последовательного опроса. Чтобы приоритеты устройств не зависели от расстояния до арбитра, в некоторых шинах поддерживается несколько уровней приоритета. На каждом уровне приоритета есть линия запроса шины и линия предоставления шины.


 

Децентрализованный арбитраж

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

При другом типе децентрализованного арбитража используются только три линии независимо от того, сколько устройств имеется в наличии. Первая линия — монтажное ИЛИ. Она требуется для запроса шины. Вторая линия называется BUSY и означает занятость. Она запускается текущим задающим устройством шины. Третья линия служит для арбитража шины. Она последовательно соединяет все устройства. Начало цепи связано с источником питания с напряжением 5 В.

 


Когда шина не требуется ни одному из устройств, линия арбитража передает сигнал всем устройствам. Чтобы получить доступ к шине, устройство сначала проверяет, свободна ли шина, и установлен ли сигнал арбитража IN. Если сигнал IN не установлен, устройство не может стать задающим устройством шины. В этом случае оно сбрасывает сигнал OUT. Если сигнал IN установлен, устройство также сбрасывает сигнал OUT, в результате чего следующее устройство не получает сигнала IN и, в свою очередь, сбрасывает сигнал OUT. Следовательно, все следующие по цепи устройства не получают сигнал IN и сбрасывают сигнал OUT.  В результате остается только одно устройство, у которого сигнал IN установлен, а сигнал OUT сброшен. Оно становится задающим устройством шины, устанавливает линию BUSY и сигнал OUT, после чего начинает передачу данных.

 

 
Завозкин С.Ю., Трофимов С.Н. "Архитектура вычислительных систем"