- •Децентрализованный арбитраж
- •Опросные схемы арбитража
- •Централизованный опрос
- •Децентрализованный опрос
- •Протокол шины
- •Синхронный протокол
- •Асинхронный протокол
- •Особенности синхронного и асинхронного протоколов
- •Конвейеризация транзакций
- •Протокол с расщеплением транзакций
- •Увеличение полосы пропускания шины
- •Ускорение транзакций
- •Повышение эффективности шин с множеством ведущих
- •Надежность и отказоустойчивость
Увеличение полосы пропускания шины
Среди приемов, способствующих расширению полосы пропускания шины, основными, пожалуй, можно считать следующие:
• отказ от мультиплексирования шин адреса и данных;
• увеличение ширины шины данных;
• повышение тактовой частоты шины;
• использование блочных транзакций.
Замена мультиплексируемой шины адреса/данных и переход к выделенным шинам адреса и данных делают возможной одновременную пересылку как адреса, так и данных, то есть позволяют реализовать более эффективные варианты транзакций. Такое решение, однако, является более дорогостоящим из-за необходимости иметь большее число сигнальных линий.
Полоса пропускания шины по своему определению непосредственно зависит от количества параллельно пересылаемой информации — практически прямо пропорциональна ширине шины данных. Несмотря на то что данный способ требует увеличения числа сигнальных линий, многие разработчики ВМ используют в своих машинах достаточно широкие шины данных. Например, в рабочей станции SPARCstation 20 ширина шины составляет 128 бит.
Наращивание тактовой частоты — еще один очевидный способ увеличения полосы пропускания, и проектировщики широко им пользуются.
О том, как на полосу пропускания шины влияют пакетные или блочные транзакции, было сказано выше: Данный способ требует некоторого усложнения аппаратуры, но одновременно позволяет сократить время обслуживания запроса.
Ускорение транзакций
Для сокращения времени транзакций проектировщики обычно прибегают к следующим приемам:
• арбитражу с перекрытием;
• арбитражу с удержанием шины;
• расщеплению транзакций.
Сущность расщепления транзакций была рассмотрена ранее. Кратко поясним остальные два метода.
Арбитраж с перекрытием (overlapped arbitration) заключается в том, что одновременно с выполнением текущей транзакции производится арбитраж следующей транзакции.
При арбитраже с удержанием шины (bus parking) ведущий может удерживать шину и выполнять множество транзакций, пока отсутствуют запросы от других потенциальных ведущих.
В современных шинах обычно сочетаются все вышеперечисленные способы ускорения транзакций.
Повышение эффективности шин с множеством ведущих
Любая система шин характеризуется пределом пропускной способности, зависящим от их ширины, скорости и протокола. Имеются также издержки, такие как арбитраж, если только он не проводится параллельно с выполнением предшествующей транзакции. Даже простой микропроцессор способен практически монополизировать производительность объединительной шины при выборке инструкций и данных, но без блочных пересылок.
При проектировании мультипроцессорных систем целесообразно рассматривать системную шину как коммуникационный тракт между разными процессорами и нескольким контроллерами ввода/вывода и снабдить каждый процессор локальной памятью для команд и большей части данных. Это существенно снижает нагрузку на системную шину. Если процессоры используют шину в первую очередь для ввода/вывода и пересылки сообщений, большая часть трафика может быть реализована в виде блочных пересылок, что ведет практически к удвоению пропускной способности. Однако, в зависимости от числа процессоров и природы приложения, шина может стать и ォузким местомサ. Фактически, если шина в течение значительной части времени не свободна, процессоры могут значительную долю времени провести в состоянии ожидания. Система с пересылкой сообщений начинает функционировать скорее как сеть, чем как простая шина ввода/вывода.
Одно из решений проблемы пропускной способности — увеличение количества шин с несколькими процессорами на каждой. Этот подход применен в шине Fastbus, где общее адресное пространство совместно используется нескольким отдельными шинами, называемыми сегментами. Сегменты функционируют независимо, но автоматически объединяются нужным образом, если ведущий из одного сегмента обращается к ведомому из другого сегмента. Это автоматическое объединение выражается во вмешательстве в трафик всех промежуточных сегментов, поэтому, чтобы не возникало заторов, применяться оно должно осторожно. Разумное использование узлов с промежуточным хранением совместно с сетевым протоколом передачи сообщений могут еще более сократить перегрузку путем сглаживания нагрузки, разрешая одновременное объединение как двух, так и нескольких сегментов.
