- •7 Форма представления чисел с фиксированной точкой
- •8 Форма представления чисел с плавающей точкой
- •9 Форматы двоично-десятичных чисел
- •10. Машинные коды
- •Прямой код
- •Обратный код
- •. Дополнительный код
- •11 Составные части компьютера
- •13. Триггеры
- •12 Логические элементы
- •2.12.2. Асинхронный rs-триггер
- •2.12.3. Синхронный rs-триггер
- •2.12.3. Двухтактный rs-триггер
- •14 Асинхронный и синхронный d-триггеры
- •17. Дешифраторы
- •18 Одноразрядный сумматор
- •Полусумматор
- •19. Многоразрядные сумматоры
- •20 Двоично-десятичные сумматоры
- •21 Мультиплексоры
- •22. Демультиплексоры
- •23. Регистры
- •24 Счетчики
- •25 Двоично-десятичные счетчики
- •26 Классификация архитектур системы команд
- •27 Классификация по составу и сложности команд
- •28 Классификация по месту хранения операндов
- •29 Архитектура с выделенным доступом к памяти
- •30 Типы команд
- •Команды пересылки данных
- •Операции с целыми числами
- •Операции с числами в форме с плавающей запятой
- •Логические операции
- •Операции сдвигов
- •Операции с десятичными числами
- •Simd-команды
- •Команды для работы со строками
- •Команды преобразования
- •Команды ввода/вывода
- •Команды управления системой
- •Команды управления потоком команд
- •31 Формат команд
- •Длина команды
- •Разрядность полей команды
- •32 Выбор адресности команд
- •33. Способы адресации операндов
- •Непосредственная адресация
- •Прямая адресация
- •Косвенная адресация
- •Регистровая адресация
- •34 Косвенная регистровая адресация
- •Адресация со смещением
- •Относительная адресация
- •35 Базовая регистровая адресация
- •Индексная адресация
- •Страничная адресация
- •Блочная адресация
- •36 Распространенность различных видов адресации
- •Способы адресации в командах управления потоком команд
- •37 Функциональная организация фон-неймановской вычислительной машины
- •38 Устройство управления
- •39 Арифметико-логическое устройство
- •40 Основная память
- •Модуль ввода/вывода
- •41. Стандартный цикл команды
- •42 Организация шин
- •43 Шины «процессор-память»
- •Шина ввода/вывода
- •44 Системная шина
- •45 Иерархия шин
- •46 Арбитраж шин
- •47 Протокол шины
- •48 Методы повышения эффективности шин
- •49 Стандартизация шин
47 Протокол шины
Хотя все биты адреса ведомого выдаются ведущим устройством одновременно (параллельно), это совсем не гарантирует их одновременного поступления к получателю. Отдельные биты адреса могут преодолевать более длинный путь, другие – предварительно должны пройти через аппаратуру преобразования адресов. Кроме того, отличия есть и в физических характеристиках отдельных сигнальных линий. Рассмотренная ситуация называется перекосом сигналов. Прежде чем реагировать на поступивший адрес, все ведомые должны знать, с какого момента его можно считать достоверным.
Метод, выбираемый проектировщиками шин для информирования о достоверности адреса, данных, управляющей информации и информации состояния, называется протоколом шины. Используется два основных класса протоколов – синхронный и асинхронный. В синхронном протоколе все сигналы «привязаны» к импульсам единого генератора тактовых импульсов (ГТИ). В асинхронном протоколе для каждой группы линий шины формируется свой сигнал подтверждения достоверности. Хотя в каждом из протоколов можно найти как синхронные, так и асинхронные аспекты, различия все же весьма существенны.
Синхронный протокол. В синхронных шинах имеется центральный генератор тактовых импульсов (ГТИ), к импульсам которого «привязаны» все события на шине. Тактовые импульсы (ТИ) распространяются по специальной сигнальной линии и представляют собой регулярную последовательность чередующихся единиц и нулей. Один период такой последовательности называется тактовым периодом шины. Именно он определяет минимальный квант времени на шине. Все подключенные к шине устройства могут считывать состояние тактовой линии, и все события на шине отсчитываются от начала тактового периода. Изменение управляющих сигналов на шине обычно совпадает с передним или задним фронтом тактового импульса, иными словами, момент смены состояния на синхронной шине известен заранее и определяется тактовыми импульсами.
На рис. 2.82 показана транзакция чтения с использованием простого синхронного протокола шины (буквой «М» обозначены сигналы ведущего, а буквой «S» – ведомого). Моменты изменения сигналов на шине определяет нарастающий фронт тактового импульса. Задний фронт ТИ служит для указания момента, когда сигналы можно считать достоверными. Стартовый сигнал отмечает присутствие на линиях шины адресной или управляющей информации. Когда ведомое устройство распознает свой адрес и находит затребованные данные, оно помещает эти данные и информацию о состоянии на шину и сигнализирует об их присутствии на шине сигналом подтверждения.
Операция записи выглядит сходно. Отличие состоит в том, что данные выдаются ведущим в тактовом периоде, следующем за тактовым периодом выставления адреса, и остаются на шине до отправки ведомым сигнала подтверждения и информации состояния.
Рис. 2.82. Чтение на синхронной шине
Синхронные протоколы требуют меньше сигнальных линий, проще для понимания, реализации и тестирования. С другой стороны, они менее гибки, поскольку привязаны к конкретной максимальной тактовой частоте и, следовательно, к конкретному уровню технологии.
По синхронному протоколу обычно работают шины «процессор-память».
Асинхронный протокол. В асинхронном протоколе начало очередного события на шине определяется не тактовым импульсом, а предшествующим событием и следует непосредственно за этим событием. Помещение ведущим устройством на шину любой информации сопровождается соответствующим синхронизирующим сигналом – стробом. В свою очередь, ведомое устройство для поддержания асинхронного протокола может вырабатывать свои синхронизирующие сигналы, называемые квитирующими сигналами (handshakes) или подтверждениями сообщения (acknowledges).
На рис. 2.83 показана асинхронная операция чтения.
Рис. 2.83. Чтение по асинхронной шине
Сначала ведущее устройство выставляет на шину адрес и управляющие сигналы и выжидает время перекоса сигналов, после чего выдает строб адреса, подтверждающий достоверность информации. Ведомые следят за адресной шиной, чтобы определить, должны ли они реагировать. Ведомый, распознавший на адресной шине свой адрес, отвечает информацией состояния, сопровождаемой сигналом подтверждения адреса. Когда ведущий обнаруживает подтверждение адреса, он знает, что соединение установлено, и готов к анализу информации состояния. Присутствие адреса на ША далее не требуется, поскольку у ведомого уже имеется копия полного адреса либо нужной его части.
Далее ведущий меняет управляющую информацию, выжидает время перекоса и выдает строб данных. Если это происходит в транзакции записи, то ведущий одновременно с управляющей информацией выставляет на шину записываемые данные. В рассматриваемом случае управляющая информация извещает ведомое устройство, что это чтение. Когда ведомый подготовит затребованные данные, он выдает их на шину совместно с новой информацией о состоянии и формирует сигнал подтверждения данных. Обнаружив сигнал подтверждения данных, ведущее устройство читает данные с шины и снимает строб данных, чтобы показать, что действия с данными завершены. В нашем примере ведущий снимает также и строб адреса. В более сложных вариантах транзакций строб адреса может оставаться на шине для поддержания соединения в течение нескольких циклов данных. При исчезновении строба данных ведомый снимает с шины данные и информацию состояния, а также сигнал подтверждения данных, переводя шину в свободное состояние.
Как видно из приведенного описания, в цикле асинхронной шины для подтверждения успешности транзакции используется двунаправленный обмен сигналами управления. Такая процедура носит название квитирования установления связи или рукопожатия (handshake). В рассмотренном варианте процедуры ни один шаг в передаче данных не может начаться, пока не завершен предыдущий шаг. Такое квитирование известно как квитирование с полной взаимоблокировкой (fully interlocked handshake).
Иногда транзакция на шине не может быть завершена стандартным образом, например, если ведущий из-за программных ошибок обращается к несуществующей ячейке памяти. В этом случае ведомое устройство не отвечает соответствующим подтверждающим сигналом. Чтобы предотвратить бесконечное ожидание в шинах, используется тайм-аут, то есть задается время, спустя которое при отсутствии отклика транзакция принудительно прекращается.
Шины ввода/вывода обычно реализуются как асинхронные.
