Методы повышения эффективности шин 187
использование двухтактных триггеров и/или синхронизация триггеров тактовы­ми импульсами, что снижает вероятность ошибки до уровня несущественной.
В асинхронных системах имеется иная возможность: специальные схемы для ■обнаружения метастабильных состояний, где асинхронная система вправе просто выждать, пока состояние не станет стабильным.
Методы повышения эффективности шин
Существует несколько приемов, позволяющих повысить производительность шин. К ним, прежде всего, следует отнести пакетный режим, конвейеризацию и расщеп­ление транзакций.
Пакетный режим пересылки информации
Эффективность как выделенных, так и мультиплексируемых шин может быть улуч­шена, если они функционируют в блочном или пакетном режиме (burst mode), когда один адресный цикл сопровождается множественными циклами данных (чтения или записи, но не чередующимися). Это означает, что пакет данных передается без указания текущего адреса внутри пакета.
При записи в память последовательные элементы блока данных заносятся в последовательные ячейки. Так как в пакетном режиме передается адрес только первой ячейки, все последующие адреса генерируются уже в самой памяти путем последовательного увеличения начального адреса Передача на устройства ввода/ вывода или в память наподобие очереди может не сопровождаться изменением начального адреса.
Скорость передачи собственно данных в пакетном режиме увеличивается есте­ственным образом за счет уменьшения числа передаваемых адресов. Внутри паке­та очередные данные могут передаваться в каждом такте шины, длина пакета мо­жет достигать 1024 байт. Наиболее частый вариант — пакеты, состоящие из четырех байтов. Такие пакеты используются при работе с памятью в 32-разрядных ВМ, где длина ячейки памяти равна одному байту.
Рис. 4.19. Пакетный режим передачи данных
Рисунок 4.19 иллюстрирует концепцию адресации в пакетном режиме при пе­ресылке данных. По шине адреса передается только адрес ячейки i, а в данных для ячеек i + \,i + 2mi + 3 указание соответствующих адресов отсутствует.
В асинхронных системах пакетный режим позволяет достичь дополнительного эффекта. Как известно, время пересылки слова включает в себя время прохожде­ния слова от отправителя к приемнику и время, затрачиваемое на процедуру под­тверждения. Необходимо также учесть внутренние задержки в ведущем-и ведо-
188 Глава 4. Организация шин
мом устройствах и, наконец, дополнительные издержки на восстановление исход­ного состояния шины после процедуры квитирования. В ходе пакетной передачи можно избавиться от этих задержек и работать с максимальной пропускной спо­собностью, которую допускают ширина полосы пропускания линий и перекос сиг­налов, за счет разрешения отправителю начинать следующий цикл данных не ожи­дая подтверждения. Реализация описанного режима сопряжена с некоторыми ограничениями. В частности, становится невозможным восстановление ошибок в каждом цикле. Кроме того, скорость должна быть тщательно согласована с осо­бенностями каждой передачи.
Примером шины, обеспечивающей пакетный режим передачи, может служить современная шина Futurebus+.
Конвейеризация транзакций
Одним из способов повышения скорости передачи данных по шине является кон­вейеризация транзакций. Очередной элемент данных может быть отправлен уст­ройством А до того, как устройство В завершит считывание предыдущего элемента. Аналогичное решение уже рассматривалось в разделе, посвященном пакетному режиму, однако сам прием применим и к обычным транзакциям. На рис. 4.20 показана конвейеризация транзакций чтения.
Данные на шине должны оставаться стабильными в течение времени £ст + ^уд· Только после этого возможна смена элемента данных. Максимальная скорость.
1 передачи при конвейеризации определяется выражением t . t .
Протокол с расщеплением транзакций
Для увеличения эффективной полосы пропускания шины во многих современ­ных шинах используется протокол с расщеплением транзакций (split transaction), : известный также как протокол соединения/разъединения (connect/disconnect) или протокол с коммутацией пакетов (packet-switched). Этот протокол обычно обес­печивает преимущество на транзакциях чтения.
В классическом варианте любая транзакция на шине неразрывна, то есть новая транзакция может начаться только после завершения предыдущей, причем в тече­ние всего периода транзакции шина остается занятой. Протокол с расщеплением транзакций допускает совмещение во времени сразу нескольких транзакций.
В шине с расщеплением транзакций линии адреса и данных обязаны быть неза­висимыми. Каждая транзакция чтения разделяется на две части: адресную тран-
Методы повышения эффективности шин 189
закцию и транзакцию данных. Считывание данных из памяти начинается с адрес­ной транзакции: выставления ведущим на адресную шину адреса ячейки. С при­ходом адреса память приступает к относительно длительному процессу поиска и извлечения затребованных данных. По завершении чтения память становит-, ся ведущим устройством, запрашивает доступ к шине и направляет считанные дан­ные по шине данных. Фактически от момента поступления запроса до момента
■  формирования отклика шина остается незанятой и может быть востребована для выполнения других транзакций. В этом и состоит главная идея протокола расщеп­ления транзакций.
Таким образом, на шине с расщеплением транзакции имеют место поток запросов и поток откликов. Часто в системах с расщеплением транзакций контроллер памяти проектируется так, чтобы обеспечить буферизацию множественных запросов. : Случай, когда затребованные данные возвращаются в той же последовательно-ϊ ста, в которой поступали запросы, в сущности, представляет собой рассмотрен-; ную выше конвейеризацию. Шина с расщеплением транзакций зачастую может ; обеспечивать вариант, при котором ответы на запросы поступают в произвольной : последовательности (рис. 4.21). Чтобы не спутать, какому из запросов соответствует информация на шине данных, ее необходимо снабдить признаком (тегом).
Хотя протокол с расщеплением транзакций и позволяет более эффективно ис-г Пользовать полосу пропускания шины по сравнению с протоколами, удерживаю-: щими шину в течение всей транзакции, он обычно вносит дополнительную задерж-' ку из-за необходимости получать два подтверждения — при запросе и при отклике. ;■ Кроме того, реализация протокола связана с дополнительными затратами, так как
■ требует, чтобы транзакции были тегированы и отслеживались каждым устройством.
■      Для любой шины с расщеплением транзакций существует предельное значе­ние числа одновременно обслуживаемых запросов.
Увеличение полосы пропускания шины
Среди приемов, способствующих расширению полосы пропускания шины, основ­ными, пожалуй, можно считать следующие:
•   отказ от мультиплексирования шин адреса и данных; : ·   увеличение ширины шины данных;
•   повышение тактовой частоты шины;
•    использование блочных транзакций.
Замена мультиплексируемой шины адреса/данных и переход к выделенным шинам адреса и данных делают возможной одновременную пересылку как адреса, так и данных, то есть позволяют реализовать более эффективные варианты тран-
190 Глава 4. Организация шин
закций. Такое решение, однако, является более дорогостоящим из-за необходимо­сти иметь большее число сигнальных линий.
Полоса пропускания шины по своему определению непосредственно зависит от количества параллельно пересылаемой информации — практически прямо про­порциональна ширине шины данных. Несмотря на то что данный способ требует увеличения числа сигнальных линий, многие разработчики ВМ используют в своих машинах достаточно широкие шины данных. Например, в рабочей станции SPARCstation 20 ширина шины составляет 128 бит.
Наращивание тактовой частоты — еще один очевидный способ увеличения полосы пропускания, и проектировщики широко им пользуются.
О том, как на полосу пропускания шины влияют пакетные или блочные тран­закции, было сказано выше: Данный способ требует некоторого усложнения аппа­ратуры, но одновременно позволяет сократить время обслуживания запроса.
Ускорение транзакций
Для сокращения времени транзакций проектировщики обычно прибегают к слет дующим приемам:
•    арбитражу с перекрытием;
•   арбитражу с удержанием шины;
•    расщеплению транзакций.
Сущность расщепления транзакций была рассмотрена ранее. Кратко поясним остальные два метода.
Арбитраж с перекрытием (overlapped arbitration) заключается в том, что одно­временно с выполнением текущей транзакции производится арбитраж следующей транзакции.
При арбитраже с удержанием шины (bus parking) ведущий может удерживать шину и выполнять множество транзакций, пока отсутствуют запросы от других потенциальных ведущих.
В современных шинах обычно сочетаются все вышеперечисленные способы ускорения транзакций.
Повышение эффективности шин с множеством ведущих
Любая система шин характеризуется пределом пропускной способности, завися­щим от их ширины, скорости и протокола. Имеются также издержки, такие как арбитраж, если только он не проводится параллельно с выполнением предшеству­ющей транзакции. Даже простой микропроцессор способен практически монопо­лизировать производительность объединительной шины при выборке инструкций и данных, но без блочных пересылок.
При проектировании мультипроцессорных систем целесообразно рассматри­вать системную шину как коммуникационный тракт между разными процессора­ми и нескольким контроллерами ввода/вывода и снабдить каждый процессор ло­кальной памятью для 'команд и большей части данных. Это существенно снижает нагрузку на системную шину. Если процессоры используют шину в первую оче­редь для ввода/вывода и пересылки сообщений, большая часть трафика может бьпь
Надежность и отказоустойчивость 191
реализована в виде блочных пересылок, что ведет практически к удвоению про­пускной способности. Однако, в зависимости от числа процессоров и природы приложения, шина может стать и «узким местом». Фактически, если шина в тече­ние значительной части времени не свободна, процессоры могут значительную долю времени провести в состоянии ожидания. Система с пересылкой сообщений начи­нает функционировать скорее как сеть, чем как простая шина ввода/вывода.
Одно из решений проблемы пропускной способности — увеличение количества "шин с несколькими процессорами на каждой. Этот подход применен в шине Fastbus, где общее адресное пространство совместно используется нескольким отдельны­ми шинами, называемыми сегментами. Сегменты функционируют независимо, но автоматически объединяются нужным образом, если ведущий из одного сегмента обращается к ведомому из другого сегмента. Это автоматическое объединение выра­жается во вмешательстве в трафик всех промежуточных сегментов, поэтому, чтобы не возникало заторов, применяться оно должно осторожно. Разумное использование узлов с промежуточным хранением совместно с сетевым протоколом передачи сооб­щений могут еще более сократить перегрузку путем сглаживания нагрузки, разре­шая одновременное объединение как двух, так и нескольких сегментов.
Надежность и отказоустойчивость
Надежность и отказоустойчивость — важнейшие аспекты проектирования шин. Основные надежды здесь обычно возлагают на корректирующие коды, которые ' позволяют обнаружить отказ одиночного элемента или шумовой выброс и автома­тически парировать ошибку. Подобный подход, широко практикуемый в системах памяти, применительно к шинам порождает специфические проблемы.
В шинах отдельные функциональные группы сигналов (сигналы адреса, дан-[ ных, управления, состояния и арбитража) предполагают независимые контроль и коррекцию. При наличии множества небольших групп сигналов метод коррек­тирующих кодов становится малоэффективным из-за необходимости включения , В шину большого числа контрольных линий. Кроме того, в шинах весьма вероятно одновременное возникновение ошибок сразу в нескольких сигналах. Для учета такой ситуации необходимо увеличивать разрядность корректирующего кода, то есть вводить в шину дополнительные сигнальные линии. Достаточно неясным ос­тается вопрос защиты одиночных сигналов, в частности сигналов тактирования ;-и синхронизации.
:... Вычисление корректирующих кодов и коррекция ошибок требуют дополни-. тельного времени, что замедляет шину.
Усложнение аппаратуры, обусловленное использованием корректирующих ■ ходов, ведет к снижению общей надежности шины, в результате чего суммарный * выигрыш может оказаться меньше ожидаемого. В силу приведенных соображений становится ясным, почему проектировщики постоянно ищут альтернативные спо­собы обеспечения надежности и отказоустойчивости шин.
- Достаточно хорошие результаты дают так называемые «высокоуровневые» под­ходы. Здесь вместо отслеживания каждого цикла шины производятся контроль и коррекция более крупных единиц, например целых блоков данных или закон­ченной программной операции.
192 Глава 4. Организация шин
При наличии в системе избыточных процессоров и шин возможен перекрест­ный контроль, причем программное обеспечение может производить изменения в конфигурации системы и предупреждать оператора о необходимости замены оп­ределенных блоков. Даже если шина имеет встроенные средства коррекции оши­бок, желательно дополнять их некоторым дополнительным уровнем «разумнос­ти» для предотвращения такой постепенной деградации системы, компенсировать которую имеющийся механизм коррекции будет уже не в состоянии.
При разработке аппаратуры необходимо обязательно учитывать определенные требования, связанные с обеспечением отказоустойчивости. Так, если обнаружена ошибка, то для ее коррекции должна бьпь предусмотрена возможность повторной передачи данных. Это предполагает, что оригинальная передача не должна приво­дить к необратимым побочным эффектам. Например, если операция чтения с пе­риферийного устройства вызывает стирание исходных данных или сбрасывает флаги состояния, успешное повторное чтение становится невозможным. Другой пример: работа с буферной памятью типа FIFO (First In First Out), работающей по принципу «первым прибыл, первым обслужен», где ошибочные данные внутри очереди недоступны и поэтому не могут быть откорректированы.
Чтобы учесть подобные ситуации, при разработке адресуемой памяти необхо­димо предусмотреть буферы, а очистка ячеек и сброс флагов должны быть не побоч­ными эффектами, а выполняться только явно с помощью определенных команд. Память типа FIFO может быть снабжена адресуемыми буферами, предназначен­ными для хранения данных вплоть до завершения передачи.
Стандартизация шин
Стандартизация шин позволяет разработчикам различных устройств вычислительных машин работать независимо, а пользователям — самостоятельно сформировать нужную конфигурацию-ВМ. Появление стандартов зависит от разных обсто­ятельств. Часто стандарты разрабатываются специализированными организация­ми. Так, общепризнанными авторитетами в области стандартизации являются IEEE (Institute of Electrical and Electronics Engineers) — Институт инженеров по элект-. ротехнике и электронике) и ANSI (American National Standards Institute) — Нацио­нальный институт стандартизации США. Многие стандарты становятся итогом кооперации усилий производителей оборудования для вычислительных машин. Иногда в силу популярности конкретных машин реализованные в них решения становятся стандартами де-факто, однако успех таких стандартов во многом опре­деляется их принятием и утверждением в IEEE и ANSI.
В табл. А.2-Л.5 приведены основные характеристики некоторых распространен­ных шин, как стандартных, так и претендующих на роль таковых.
Таблица 4.2. Стандартные системные шины общего применения
Характеристика
VME
Futurebus
Multibus П
Разработчик
Motorola, Philips, Mostek
IEEE
Intel
Ширина шины
128
.96 '
96
Стандартизация шин 193
Характеристика
VME
Futurebus
Multibus П
Мультиплексирование адреса/данных
Нет
Да
Да
Разрядность адреса, бит
16/24/32/64
32
Разрядность данных, бит
8/16/32/64
16/32/64/128
32
Вид пересылки
Одиночная или групповая
Одиночная или групповая
Одиночная или групповая
Количество ведущих
Несколько
Несколько
Несколько
Арбитраж
Централизованный
Централизованный или децентрализо­ванный
Децентрализо-ванный
Расщепление транзакций
Нет
Возможно
Возможно
Протокол
Асинхронный
Асинхронный
Синхронный
Тактовая частота, МГц
Нет данных
Нет данных
10
Полоса пропускания при одиночной пересылке, Мбайт/с
25
37.
20
Полоса пропускания при групповой пересылке, Мбайт/с
28
95
40/80
Максимальное количество устройств
21
20
21
Максимальная длина шины,м
0,5
0,5
0,5
Стандарт
ШЕЕ 1014
IEEE 896.1
ANSI/IEEE 1296
'Таблица 4.3. Системные шины высокопроизводительных серверов
; Характеристика
Summit
Challenge
XDBus
Разработчик
HP .
SGI
Sun
Мультиплексирование : адреса/данных
Нет данных
Нет данных
Да
Разрядность адреса, бит
48
40
Нет данных
| Разрядность данных, бит
.128/512
256/1024
144/512
Вид пересылки
Одиночная или групповая
Одиночная или групповая
Одиночная или групповая
Количество ведущих
Несколько
Несколько
Несколько
Арбитраж
Централизованный
Централизованный
Централизо­ванный
■ Расщепление транзакций
Есть
Есть
Есть
продолжение &
194 Глава 4. Организация шин
Таблица 4.3 (продолжение)
Характеристика
Summit
Challenge
XDBus
Протокол
Синхронный
Синхронный
Синхронный
Тактовая частота, МГц
60
48
66
Полоса пропускания при одиночной пересылке, Мбайт/с
60
48
66
Полоса пропускания при групповой пересылке, Мбайт/с
.960
1200
1056
Максимальная длина шины, м
0,3
0,3
0,4
Стандарт
Нет
Нет
Нет
Таблица 4.4. Системные шины персональных вычислительных машин
Характеристика
NuBus
ISA 8/16
EISA
ESB Pentium 4
Разработчик
Texas Instruments
IBM
AST, Compaq, Epson, HP,NEC, Olivetti, Tandy, Wyse, Zenith
Intel
Ширина шины
96
62/98
98/100
Нет данных
Мультиплексирование
Да
Нет
Нет
. Нет
Разрядность адреса, бит
32
20/24
24/32
36
Разрядность данных, бит
32
8/16
16/32
64/128
Вид пересылки
Одиночная или груп­повая
Одиночная или груп­повая
Одиночная или групповая
Одиночная или груп­повая
Арбитраж
Централизо­ванный
Нет данных
Централизованный
Нет данных
Расщепление транзакций
Нет
Нет данных
Возможно
! Да
Количество ведущих
Несколько (ограни­чено)
Один
Один'
Нет данных .'
Протокол
Синхронный
Синхронный
Синхронный
Синхронный';
Тактовая частота, МГц
10
4,77/8,33 ..
:.8,33
400(баз.Ю0) 533(баз.133);' 800(ожида-ется)
Контрольные вопросы 195
Характеристика
NuBus
ISA 8/16
EISA
ESB Pentium 4
Полоса пропускания при одиночной пересылке, Мбайт/с
40
33
33
1060(133);
3200(400); . 4200(533)
Таблица 4.5. Шины ввода/вывода
Характеристика
PCI
SCSI
SCSI-2
IDE
Разработчик
Intel
Ширина шины
124/128
50
Варьируется
40
Мультиплексирование адреса/данных
Да
Да
Да
Нет
Разрядность адреса, бит
32/64
Нет данных
Нет данных
2
Разрядность данных, бит
32/64
8
8/16/32 ■
16 .
Вид пересылки
Одиночная или групповая
Одиночная . или групповая
Одиночная или групповая
Групповая
Количество ведущих
Несколько
Несколько
Несколько
Один
Арбитраж
Централизо­ванный . ;
Децентрализо­ванный
Децентрализо­ванный
. Нет данных
Расщепление транзакций
Нет
Возможно
Возможно
Нет
Протокол
Синхронный
Синхронный и асинхронный
Синхронный и асинхронный
Асинхрон­ный
Тактовая частота, МГц
33/66
5/10
10/20/40/80
Нет данных
: Полоса пропускания при одиночной пересылке, Мбайт/с
33
1,5 (асинхрон­ный); 5 (син­хронный) '
5-40 (син­хронный)
Нет данных
Полоса пропускания при групповой пересылке, Мбайт/с
132/520
1,5 (асинхрон­ный); 5 (син­хронный)
40/80/160/
320(син-
хронный)
До 200
Максимальное коли-чество устройств
Нет данных
7
7 ■
2 (только диски)
Максимальная длина шины, м
0,5
25
25
0,5
! Стандарт
!
Нет
ANSI Х3.131-1986
ANSI Х3.131-199х
ANSIX3T9.2/ 90-14
Контрольные вопросы
й 1. Перечислите основные виды структур взаимосвязей вычислительной машины. 2. Какие параметры включает в себя полная характеристика шины?
Hosted by uCoz