
3. Шинный протокол
Протокол шины – это метод, выбираемый проектировщиками шин для информирования о достоверности адреса, данных, управляющей информации и информации состояния. Используются два основных класса протоколов — синхронный и асинхронный. Синхронный протокол
В синхронных шинах имеется центральный генератор тактовых импульсов (ГТИ), к импульсам которого «привязаны» все события на шине. Тактовые импульсы (ТИ) распространяются по специальной сигнальной линии и представляют собой регулярную последовательность чередующихся единиц и нулей. Один период последовательности тактовых импульсов называется тактовым периодом шины.
На рис. 6.9 показана транзакция чтения с использованием простого синхронного протокола шины NuBus, применяемой в персональных компьютерах Macintosh (буквой «М» обозначены сигналы ведущего, а буквой «S» - ведомого).
Тактовая
частота выбираться таким образом, чтобы
сигнал от любой точки на шине мог достичь
любой другой точки несколько раньше,
чем завершится тактовый период. Более
короткие шины могут быть спроектированы
на более высокую тактовую частоту.
Асинхронный протокол
В асинхронном протоколе начало очередного события на шине определяется не тактовым импульсом, а предшествующим событием и следует непосредственно за этим событием. Каждая совокупность сигналов, помещаемых на шину, сопровождается соответствующим синхронизирующим сигналом, называемым стробом. Синхросигналы, формируемые ведомым, называют квитирующими сигналами (handshakes) или подтверждениями сообщения (acknowledges).
На рис. 6.10 показана асинхронная операция чтения с использованием протокола, применяемого в шине Fastbus.
Сначала
ведущее устройство выставляет на шину
адрес и управляющие сигналы и выжидает
время перекоса сигналов, после чего
выдает строб адреса, подтверждающий
достоверность информации. Ведомые
следят за адресной шиной, чтобы определить,
должны ли они реагировать. Ведомый,
распознавший на адресной шине свой
адрес, отвечает информацией состояния,
сопровождаемой сигналом подтверждения
адреса. Когда ведущий обнаруживает
подтверждение адреса, он знает, что
соединение установлено, и готов к анализу
информации состояния. Присутствие
адреса на ША далее не требуется, поскольку
у ведомого уже имеется копия полного
адреса либо нужной его части.
Далее ведущий меняет управляющую информацию, выжидает время перекоса и выдает строб данных. Если это происходит в транзакции записи, то ведущий одновременно с управляющей информацией выставляет на шину записываемые данные. В рассматриваемом случае управляющая информация извещает ведомое устройство, что это чтение. Когда ведомый подготовит затребованные данные, он выдает их на шину совместно с новой информацией о состоянии и формирует сигнал подтверждения данных. Когда ведущий видит сигнал подтверждения данных, он читает данные с шины и снимает строб данных, чтобы показать, что действия с данными завершены. В примере ведущий снимает также и строб адреса.
В цикле асинхронной шины для подтверждения успешности транзакции используется двунаправленный обмен сигналами управления. Такая процедура носит название квитирования установления связи или рукопожатия (handshake).
Если во время транзакция на шине ведомое устройство не отвечает соответствующим подтверждающим сигналом (например, если ведущий из-за программных ошибок обращается к несуществующей ячейке памяти), используется тайм-аут. То есть задается время, спустя которое при отсутствии отклика транзакция принудительно прекращается.
Для реализации тайм-аута необходимы схемы, способные решать:
1) пришло ли подтверждение вовремя;
2) как привести шину к исходному состоянию, если подтверждение не пришло.