Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Метод_з_1.doc
Скачиваний:
14
Добавлен:
01.03.2025
Размер:
2.57 Mб
Скачать

6.1.2. Пересылка данных за несколько тактов

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

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

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

Пример реализации такого подхода приведен на рис. 6.3. В течение такта 1 хозяин шины пересылает адрес и информацию о команде, запрашивая операцию чтения. Подчиненное устройство получает и декодирует эту информацию. По следующему переднему фронту тактового сигнала, то есть в начале такта 2, устройство принимает решение ответить на запрос и начинает процедуру доступа к запрошенным данным. Как известно, на извлечение данных требуется некоторое время, поэтому подчиненное устройство не может ответить немедленно. На третьем такте данные готовы и помещаются на шину. В то же время подчиненное устройство выдает управляющий сигнал, называемый Slave-ready (подчиненный готов). Хозяин шины, ожидавший этого сигнала, стробирует данные в свой входной буфер в конце такта 3. На этом операция пересылки данных по шине заканчивается, и хозяин шины может отправить по ней новый адрес, чтобы на такте 4 начать другую операцию пересылки.

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

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

Рис. 6.3. Пересылка данных с использованием нескольких тактов