ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 25.12.2021

Просмотров: 5279

Скачиваний: 8

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
background image

186 Глава 4. Организация шин

щее устройство выжидает в течение времени перекоса данных, считая от момента
выставления на шину данных, так, что когда ведомый видит строб, он уже может

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

Учет перекоса может быть реализован как в ведущем, так и в ведомом устрой-

стве, либо и там и там, лишь бы была обеспечена необходимая общая задержка.

Например, в шине Fastbus, где количество ведущих обычно много меньше числа

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

дение одновременно с данными, а ведущий перед считыванием данных выжидает

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

очередь, ведомые должны самостоятельно отвечать за проблемы, связанные с их
внутренними перекосами сигналов.

В обоих протоколах необходимо учитывать еще одну проблему —

 проблему ме-

тастабильного состояния.

 Суть ее поясним на примере микропроцессора, к кото-

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

состояния и будет зафиксирован при следующем опросе регистра. Сложность за-

ключается в том, что в момент переключения триггера информация на входе должна

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

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

Метастабильное состояние триггера опасно неопределенным поведением схем,

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

Кардинально решить означенную проблему принципиально невозможно, по-

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


background image

Методы повышения эффективности шин 187

использование двухтактных триггеров и/или синхронизация триггеров тактовы-

ми импульсами, что снижает вероятность ошибки до уровня несущественной.

В асинхронных системах имеется иная возможность: специальные схемы для

обнаружения метастабильных состояний, где асинхронная система вправе просто
выждать, пока состояние не станет стабильным.

Методы повышения эффективности шин

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

ление транзакций.

Пакетный режим пересылки информации

Эффективность как выделенных, так и мультиплексируемых шин может быть улуч-
шена, если они функционируют в

 блочном

 или

 пакетном режиме

 (burst mode), когда

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

При записи в память последовательные элементы блока данных заносятся

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

Скорость передачи собственно данных в пакетном режиме увеличивается есте-

ственным образом за счет уменьшения числа передаваемых адресов. Внутри паке-
та очередные данные могут передаваться в каждом такте шины, длина пакета мо-
жет достигать 1024 байт. Наиболее частый вариант — пакеты, состоящие из четырех
байтов. Такие пакеты используются при работе с памятью в 32-разрядных ВМ, где

длина ячейки памяти равна одному байту.

Рис. 4.19.

 Пакетный режим передачи данных

Рисунок 4.19 иллюстрирует концепцию адресации в пакетном режиме при пе-

ресылке данных. По шине адреса передается только адрес ячейки

 i,

 а в данных для

ячеек

 i

 + 1,

 i + 2

 и

 i +

 3 указание соответствующих адресов отсутствует.

В асинхронных системах пакетный режим позволяет достичь дополнительного

эффекта. Как известно, время пересылки слова включает в себя время прохожде-
ния слова от отправителя к приемнику и время, затрачиваемое на процедуру под-
тверждения. Необходимо также учесть внутренние задержки в ведущем и ведо-


background image

188 Глава 4. Организация шин

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

дая подтверждения. Реализация описанного режима сопряжена с некоторыми
ограничениями. В частности, становится невозможным восстановление ошибок в
каждом цикле. Кроме того, скорость должна быть тщательно согласована с осо-
бенностями каждой передачи.

Примером шины, обеспечивающей пакетный режим передачи, может служить

современная шина Futurebus+.

Конвейеризация транзакций

Одним из способов повышения скорости передачи данных по шине является

 кон-

вейеризация транзакций.

 Очередной элемент данных может быть отправлен уст-

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

На рис. 4.20 показана конвейеризация транзакций чтения.

Рис. 4.20. Конвейеризация транзакций чтения

Данные на шине должны оставаться стабильными в течение времени

 +

Только после этого возможна смена элемента данных. Максимальная скорость.

передачи при конвейеризации определяется выражением

Протокол с расщеплением транзакций

Для увеличения эффективной полосы пропускания шины во многих современ-
ных шинах используется протокол

 с расщеплением транзакций

 (split transaction),

известный также как

 протокол соединения/разъединения

 (connect/disconnect) или

протокол с коммутацией пакетов

 (packet-switched). Этот протокол обычно обес-

печивает преимущество на транзакциях чтения.

В классическом варианте любая транзакция на шине неразрывна, то есть новая

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

В шине с расщеплением транзакций линии адреса и данных обязаны быть неза-

висимыми. Каждая транзакция чтения разделяется на две части: адресную тран-


background image

Методы повышения эффективности шин 189

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

ления транзакций.

Таким образом, на шине с расщеплением транзакции имеют место поток запросов

и поток откликов. Часто в системах с расщеплением транзакций контроллер памяти
проектируется так, чтобы обеспечить буферизацию множественных запросов.

Случай, когда затребованные данные возвращаются в той же последовательно-

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

Рис.

  4 . 2 1 . Расщепление транзакций

Хотя протокол с расщеплением транзакций и позволяет более эффективно ис-

пользовать полосу пропускания шины по сравнению с протоколами, удерживаю-

щими шину в течение всей транзакции, он обычно вносит дополнительную задерж-

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

Для любой шины с расщеплением транзакций существует предельное значе-

ние числа одновременно обслуживаемых запросов.

Увеличение полосы пропускания шины

Среди приемов, способствующих расширению полосы пропускания шины, основ-

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

Замена мультиплексируемой шины адреса/данных и переход к выделенным

шинам адреса и данных делают возможной одновременную пересылку как адреса,

так и данных, то есть позволяют реализовать более эффективные варианты тран-


background image

190 Глава 4. Организация шин

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

Полоса пропускания шины по своему определению непосредственно зависит

от количества параллельно пересылаемой информации — практически прямо про-
порциональна ширине шины данных. Несмотря на то что данный способ требует
увеличения числа сигнальных линий, многие разработчики ВМ используют в своих
машинах достаточно широкие шины данных. Например, в рабочей станции
SPARCstation 20 ширина шины составляет 128 бит.

Наращивание тактовой частоты — еще один очевидный способ увеличения

полосы пропускания, и проектировщики широко им пользуются.

О том, как на полосу пропускания шины влияют пакетные или блочные тран-

закции, было сказано выше: Данный способ требует некоторого усложнения аппа-
ратуры, но одновременно позволяет сократить время обслуживания запроса.

Ускорение транзакций

Для сокращения времени транзакций проектировщики обычно прибегают к сле-
дующим приемам:
• арбитражу с перекрытием;
• арбитражу с удержанием шины;
• расщеплению транзакций.

Сущность расщепления транзакций была рассмотрена ранее. Кратко поясним

остальные два метода.

Арбитраж с перекрытием

 (overlapped arbitration) заключается в том, что одно-

временно с выполнением текущей транзакции производится арбитраж следующей
транзакции.

При

 арбитраже с удержанием шины

 (bus parking) ведущий может удерживать

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

В современных шинах обычно сочетаются все вышеперечисленные способы

ускорения транзакций.

Повышение эффективности шин

с множеством ведущих

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

При проектировании мультипроцессорных систем целесообразно рассматри-

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

редь для ввода/вывода и пересылки сообщений, большая часть трафика может быть


Смотрите также файлы