- •7 Форма представления чисел с фиксированной точкой
- •8 Форма представления чисел с плавающей точкой
- •9 Форматы двоично-десятичных чисел
- •10. Машинные коды
- •Прямой код
- •Обратный код
- •. Дополнительный код
- •11 Составные части компьютера
- •13. Триггеры
- •12 Логические элементы
- •2.12.2. Асинхронный rs-триггер
- •2.12.3. Синхронный rs-триггер
- •2.12.3. Двухтактный rs-триггер
- •14 Асинхронный и синхронный d-триггеры
- •17. Дешифраторы
- •18 Одноразрядный сумматор
- •Полусумматор
- •19. Многоразрядные сумматоры
- •20 Двоично-десятичные сумматоры
- •21 Мультиплексоры
- •22. Демультиплексоры
- •23. Регистры
- •24 Счетчики
- •25 Двоично-десятичные счетчики
- •26 Классификация архитектур системы команд
- •27 Классификация по составу и сложности команд
- •28 Классификация по месту хранения операндов
- •29 Архитектура с выделенным доступом к памяти
- •30 Типы команд
- •Команды пересылки данных
- •Операции с целыми числами
- •Операции с числами в форме с плавающей запятой
- •Логические операции
- •Операции сдвигов
- •Операции с десятичными числами
- •Simd-команды
- •Команды для работы со строками
- •Команды преобразования
- •Команды ввода/вывода
- •Команды управления системой
- •Команды управления потоком команд
- •31 Формат команд
- •Длина команды
- •Разрядность полей команды
- •32 Выбор адресности команд
- •33. Способы адресации операндов
- •Непосредственная адресация
- •Прямая адресация
- •Косвенная адресация
- •Регистровая адресация
- •34 Косвенная регистровая адресация
- •Адресация со смещением
- •Относительная адресация
- •35 Базовая регистровая адресация
- •Индексная адресация
- •Страничная адресация
- •Блочная адресация
- •36 Распространенность различных видов адресации
- •Способы адресации в командах управления потоком команд
- •37 Функциональная организация фон-неймановской вычислительной машины
- •38 Устройство управления
- •39 Арифметико-логическое устройство
- •40 Основная память
- •Модуль ввода/вывода
- •41. Стандартный цикл команды
- •42 Организация шин
- •43 Шины «процессор-память»
- •Шина ввода/вывода
- •44 Системная шина
- •45 Иерархия шин
- •46 Арбитраж шин
- •47 Протокол шины
- •48 Методы повышения эффективности шин
- •49 Стандартизация шин
48 Методы повышения эффективности шин
Пакетный режим пересылки информации. Эффективность как выделенных, так и мультиплексируемых шин может быть улучшена, если они функционируют в блочном или пакетном режиме (burst mode), когда одиночный адресный цикл сопровождается множественными, но не чередующимися циклами чтения или записи данных. Это означает, что пакет данных передается без указания текущего адреса внутри пакета.
При записи в память последовательные элементы блока данных заносятся в соседние ячейки. Так как в пакетном режиме передается адрес только первой ячейки, все последующие адреса генерируются уже в самой памяти путем последовательного увеличения этого начального адреса. Скорость передачи данных в пакетном режиме увеличивается естественным образом за счет уменьшения числа передаваемых адресов. Внутри пакета очередные данные могут передаваться в каждом тактовом периоде шины, длина пакета может достигать 1024 байта. Наиболее частый вариант – пакеты, состоящие из четырех байтов.
Концепцию адресации в пакетном режиме на примере пакета, состоящего из четырех элементов данных, иллюстрирует рис. 2.84. По шине адреса передается только адрес ячейки i, а для ячеек i + 1, i + 2 и i + 3 адреса не указываются.
Рис. 2.84. Пакетный режим передачи данных
В асинхронных системах пакетный режим позволяет достичь дополнительного эффекта, благодаря сокращению времени, затрачиваемого на прохождение слова от отправителя к приемнику и процедуру подтверждения, а также на внутренние задержки в ведущем и ведомом устройствах и линиях шины.
Конвейеризация транзакций. Одним из способов повышения скорости передачи данных по шине является конвейеризация транзакций. Очередной элемент данных может быть отправлен устройством А до того, как устройство В завершит считывание предыдущего элемента. Идею конвейеризации транзакций иллюстрирует рис. 2.85. На рисунке tзд – задержка между моментом выставления данных устройством А и моментом их появления на шине; tpc – задержка распространения сигнала от устройства А до устройства В; tст – время, в течение которого данные на входе устройства В должны стабилизироваться, с тем чтобы их можно было однозначно распознать; tуд – интервал, в течение которого информация должна оставаться на шине данных после того, как они были зафиксированы устройством В.
Рис. 2.85. Конвейеризация транзакций чтения
Данные на шине должны оставаться
стабильными в течение времени
.
Только после этого возможна смена
элемента данных. Максимальная скорость
передачи при конвейеризации определяется
выражением
.
Протокол с расщеплением транзакций. Для увеличения эффективной полосы пропускания шины во многих современных шинах используется протокол с расщеплением транзакций (split transaction), известный также как протокол соединения/разъединения (connect/disconnect) или протокол с коммутацией пакетов (packet-switched). Этот протокол обычно обеспечивает преимущество на транзакциях чтения.
В классическом варианте любая транзакция на шине неразрывна, то есть новая транзакция может начаться только после завершения предыдущей, причем в течение всего периода транзакции шина остается занятой. Протокол с расщеплением транзакций допускает совмещение во времени сразу нескольких транзакций.
В шине с расщеплением транзакций линии адреса и данных обязаны быть независимыми. Каждая транзакция чтения разделяется на две части: адресную транзакцию и транзакцию данных. Считывание данных из памяти начинается с адресной транзакции: выставления ведущим на адресную шину адреса ячейки. С приходом адреса память приступает к относительно длительному процессу поиска и извлечения затребованных данных. По завершении чтения память становится ведущим устройством, запрашивает доступ к шине и направляет считанные данные по шине данных. Фактически, от момента поступления запроса до момента формирования отклика шина остается незанятой и может быть востребована для выполнения других транзакций. В этом и состоит главная идея протокола расщепления транзакций.
Таким образом, на шине с расщеплением транзакции имеют место поток запросов и поток откликов. Часто в системах с расщеплением транзакций контроллер памяти проектируется так, чтобы обеспечить буферизацию множественных запросов.
Случай, когда затребованные данные возвращаются в той же последовательности, в которой поступали запросы представляет собой рассмотренную выше конвейеризацию. Шина с расщеплением транзакций зачастую может обеспечивать вариант, при котором ответы на запросы поступают в произвольной последовательности (рис. 2.86). Чтобы не спутать, какому из запросов соответствует информация на шине данных, ее необходимо снабдить признаком (тегом).
Хотя протокол с расщеплением транзакций и позволяет более эффективно использовать полосу пропускания шины по сравнению с протоколами, удерживающими шину в течение всей транзакции, он обычно вносит дополнительную задержку из-за необходимости получать два подтверждения – при запросе и при отклике. Кроме того, реализация протокола связана с дополнительными затратами, так как требует, чтобы транзакции были тегированы (помечены) и отслеживались каждым устройством.
Рис. 2.86. Расщепление транзакций
Для любой шины с расщеплением транзакций существует предельное значение числа одновременно обслуживаемых запросов.
Ускорение транзакций. Для сокращения времени транзакций, помимо расщепления транзакций, проектировщики обычно прибегают к следующим приемам, связанным с арбитражем шины:
арбитражу с перекрытием;
арбитражу с удержанием шины.
Арбитраж с перекрытием (overlapped arbitration) заключается в том, что одновременно с выполнением текущей транзакции производится арбитраж следующее транзакции.
При арбитраже с удержанием шины (bus parking) ведущий может удерживать шину и выполнять множество транзакций, пока отсутствуют запросы от других потенциальных ведущих.
В современных шинах обычно сочетаются все вышеперечисленные способы ускорения транзакций.
Увеличение полосы пропускания шины. Совершенствование транзакций – не единственный способ расширения полосы пропускания шины. Среди других вариантов основными, пожалуй, можно считать:
отказ от мультиплексирования шин адреса и данных;
увеличение ширины шины данных;
повышение тактовой частоты шины.
Замена мультиплексируемой шины адреса/данных и переход к выделенным шинам адреса и данных делает возможной одновременную пересылку как адреса, так и данных, то есть позволяют реализовать более эффективные варианты транзакций. Такое решение, однако, является более дорогостоящим из-за необходимости иметь большее число сигнальных линий.
Полоса пропускания шины по своему определению непосредственно зависит от количества параллельно пересылаемой информации – практически прямо пропорциональна ширине шины данных. Несмотря на то, что данный способ требует увеличения числа сигнальных линий, многие разработчики ВМ используют в своих машинах достаточно широкие шины данных, например 128 битов.
И наконец, еще один очевидный способ увеличения полосы пропускания, которым широко пользуются проектировщики, – это наращивание тактовой частоты.
