Протокол с расщеплением транзакций
ЭВМ и периферийные устройства Лектор: доц. Осмоналиев А.Б. Лекция 16. (2 часа) Тема: Методы повышения эффективности шин. Увеличение полосы пропускания шины. Повышение эффективности шин с множеством ведущих Методы повышения эффективности шин Существует несколько приемов, позволяющих повысить производительность шин. К ним, прежде всего, следует отнести пакетный режим, конвейеризацию и расщепление транзакций.
Пакетный режим пересылки информации Эффективность как выделенных, так и мультиплексируемых шин может быть улучшена, если они функционируют в блочном или пакетном режиме (burst mode), когда один адресный цикл сопровождается множественными циклами данных (чтения или записи, но не чередующимися). Это означает, что пакет данных передается без указания текущего адреса внутри пакета. При записи в память последовательные элементы блока данных заносятся в последовательные ячейки. Так как в пакетном режиме передается адрес только первой ячейки, все последующие адреса генерируются уже в самой памяти путем последовательного увеличения начального адреса Передача на устройства ввода/вывода или в память наподобие очереди может не сопровождаться изменением начального адреса. Скорость передачи собственно данных в пакетном режиме увеличивается естественным образом за счет уменьшения числа передаваемых адресов. Внутри пакета очередные данные могут передаваться в каждом такте шины, длина пакета может достигать 1024 байт. Наиболее частый вариант - пакеты, состоящие из четырех байтов. Такие пакеты используются при работе с памятью в 32-разрядных ВМ, где длина ячейки памяти равна одному байту.
Рис. 16.1. Пакетный режим передачи данных
Рисунок 4.19 иллюстрирует концепцию адресации в пакетном режиме при пересылке данных. По шине адреса передается только адрес ячейки i, а в данных для ячеек i + 1, i + 2 и i + 3 указание соответствующих адресов отсутствует. В асинхронных системах пакетный режим позволяет достичь дополнительного эффекта. Как известно, время пересылки слова включает в себя время прохождения слова от отправителя к приемнику и время, затрачиваемое на процедуру подтверждения. Необходимо также учесть внутренние задержки в ведущем и ведомом устройствах и, наконец, дополнительные издержки на восстановление исходного состояния шины после процедуры квитирования. В ходе пакетной передачи можно избавиться от этих задержек и работать с максимальной пропускной способностью, которую допускают ширина полосы пропускания линий и перекос сигналов, за счет разрешения отправителю начинать следующий цикл данных не ожидая подтверждения. Реализация описанного режима сопряжена с некоторыми ограничениями. В частности, становится невозможным восстановление ошибок в каждом цикле. Кроме того, скорость должна быть тщательно согласована с особенностями каждой передачи. Примером шины, обеспечивающей пакетный режим передачи, может служить современная шина Futurebus+.
Конвейеризация транзакций Одним из способов повышения скорости передачи данных по шине является конвейеризация транзакций. Очередной элемент данных может быть отправлен устройством А до того, как устройство В завершит считывание предыдущего элемента. Аналогичное решение уже рассматривалось в разделе, посвященном пакетному режиму, однако сам прием применим и к обычным транзакциям. На рис. 16.2. показана конвейеризация транзакций чтения.
Рис. 16.2. Конвейеризация транзакций чтения
Данные на шине должны оставаться стабильными в течение времени tст+ tуд. Только после этого возможна смена элемента данных. Максимальная скорость передачи при конвейеризации определяется выражением 1/ (tст+ tуд).
Протокол с расщеплением транзакций Для увеличения эффективной полосы пропускания шины во многих современных шинах используется протокол с расщеплением транзакций (split transaction), известный также как протокол соединения/разъединения (connect/disconnect) или протокол с коммутацией пакетов (packet-switched). Этот протокол обычно обеспечивает преимущество на транзакциях чтения. В классическом варианте любая транзакция на шине неразрывна, то есть новая транзакция может начаться только после завершения предыдущей, причем в течение всего периода транзакции шина остается занятой. Протокол с расщеплением транзакций допускает совмещение во времени сразу нескольких транзакций. В шине с расщеплением транзакций линии адреса и данных обязаны быть независимыми. Каждая транзакция чтения разделяется на две части: адресную транзакцию и транзакцию данных. Считывание данных из памяти начинается с адресной транзакции: выставления ведущим на адресную шину адреса ячейки. С приходом адреса память приступает к относительно длительному процессу поиска и извлечения затребованных данных. По завершении чтения память становит ся ведущим устройством, запрашивает доступ к шине и направляет считанные данные по шине данных. Фактически от момента поступления запроса до момента формирования отклика шина остается незанятой и может быть востребована для выполнения других транзакций. В этом и состоит главная идея протокола расщепления транзакций. Таким образом, на шине с расщеплением транзакции имеют место поток запросов и поток откликов. Часто в системах с расщеплением транзакций контроллер памяти проектируется так, чтобы обеспечить буферизацию множественных запросов. Случай, когда затребованные данные возвращаются в той же последовательно сти, в которой поступали запросы, в сущности, представляет собой рассмотрен\ ную выше конвейеризацию. Шина с расщеплением транзакций зачастую может обеспечивать вариант, при котором ответы на запросы поступают в произвольной последовательности (рис. 16.3). Чтобы не спутать, какому из запросов соответствует информация на шине данных, ее необходимо снабдить признаком (тегом).
Рис.16.3. Расщепление транзакций Хотя протокол с расщеплением транзакций и позволяет более эффективно ис пользовать полосу пропускания шины по сравнению с протоколами, удерживающими шину в течение всей транзакции, он обычно вносит дополнительную задерж ку из-за необходимости получать два подтверждения — при запросе и при отклике. Кроме того, реализация протокола связана с дополнительными затратами, так как требует, чтобы транзакции были тегированы и отслеживались каждым устройством. Для любой шины с расщеплением транзакций существует предельное значение числа одновременно обслуживаемых запросов.
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|