Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
7-53.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
2 Мб
Скачать
☆

47 Протокол шины

Хотя все биты адреса ведомого выдаются ведущим устройством одновременно (параллельно), это совсем не гарантирует их одновременного поступления к получателю. Отдельные биты адреса могут преодолевать более длинный путь, другие – предварительно должны пройти через аппаратуру преобразования адресов. Кроме того, отличия есть и в физических характеристиках отдельных сигнальных линий. Рассмотренная ситуация называется перекосом сигналов. Прежде чем реагировать на поступивший адрес, все ведомые должны знать, с какого момента его можно считать достоверным.

Метод, выбираемый проектировщиками шин для информирования о достоверности адреса, данных, управляющей информации и информации состояния, называется протоколом шины. Используется два основных класса протоколов – синхронный и асинхронный. В синхронном протоколе все сигналы «привязаны» к импульсам единого генератора тактовых импульсов (ГТИ). В асинхронном протоколе для каждой группы линий шины формируется свой сигнал подтверждения достоверности. Хотя в каждом из протоколов можно найти как синхронные, так и асинхронные аспекты, различия все же весьма существенны.

Синхронный протокол. В синхронных шинах имеется центральный генератор тактовых импульсов (ГТИ), к импульсам которого «привязаны» все события на шине. Тактовые импульсы (ТИ) распространяются по специальной сигнальной линии и представляют собой регулярную последовательность чередующихся единиц и нулей. Один период такой последовательности называется тактовым периодом шины. Именно он определяет минимальный квант времени на шине. Все подключенные к шине устройства могут считывать состояние тактовой линии, и все события на шине от­считываются от начала тактового периода. Изменение управляющих сигналов на шине обычно совпадает с передним или задним фронтом тактового импульса, иными словами, момент смены состояния на синхронной шине известен заранее и определяется тактовыми импульсами.

На рис. 2.82 показана транзакция чтения с использованием простого синхронного протокола шины (буквой «М» обозначены сигналы ведущего, а буквой «S» – ведомого). Моменты изменения сигналов на шине определяет нарастающий фронт тактового импульса. Задний фронт ТИ служит для указания момента, когда сигналы можно считать достоверными. Стартовый сигнал отмечает присутствие на линиях шины адресной или управляющей информации. Когда ведомое устройство распознает свой адрес и находит затребованные данные, оно помещает эти данные и информацию о состоянии на шину и сигнализирует об их присутствии на шине сигналом подтверждения.

Операция записи выглядит сходно. Отличие состоит в том, что данные выдаются ведущим в тактовом периоде, следующем за тактовым периодом выставления адреса, и остаются на шине до отправки ведомым сигнала подтверждения и информации состояния.

Рис. 2.82. Чтение на синхронной шине

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

По синхронному протоколу обычно работают шины «процессор-память».

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

На рис. 2.83 показана асинхронная операция чтения.

Рис. 2.83. Чтение по асинхронной шине

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

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

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

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

Шины ввода/вывода обычно реализуются как асинхронные.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]