- •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 Стандартизация шин
43 Шины «процессор-память»
Шины «процессор-память» обеспечивают непосредственную связь центрального процессора (ЦП) вычислительной машины с основной памятью (ОП). Часто эта задача возлагается на системную шину, однако в плане эффективности значительно выгоднее, если обмен между ЦП и ОП ведется по независимой шине. В современных микропроцессорах шину, связывающую ЦП и ОП, называют передней или первичной шиной и обозначают аббревиатурой FSB (Front-Side Bus). Интенсивный обмен информацией между процессором и основной памятью требует, чтобы полоса пропускания шины, то есть количество информации, проходящей по шине в единицу времени, была наибольшей. К группе шин «процессор-память» можно отнести также шину, связывающую процессор с кэш-памятью второго уровня (L2), известную как тыльная или вторичная шина – BSB (Back-Side Bus). BSB позволяет вести обмен с большей скоростью, чем FSB, что отвечает возможностям более скоростной кэш-памяти. Архитектура с распределением функций связи ЦП с памятью между шинами FSB и BSB известна как архитектура DIB (Dual Independent Bus – двойная независимая шина). Наличие двух шин позволяет одновременно обращаться к ОП и L2, тем самым увеличивая общую производительность ВМ. Перечисленные варианты связи процессора с памятью иллюстрирует рис. 2.73.
Для обеспечения максимальной пропускной способности шина «процессор-память» всегда проектируются с учетом особенностей организации системы памяти, а длина шины делается по возможности минимальной.
Шина ввода/вывода
Шина ввода/вывода служит для соединения процессора (памяти) с устройствами ввода/вывода (УВВ). Учитывая разнообразие таких устройств, шины ввода/вывода унифицируются и стандартизируются. Связи с большинством УВВ (но не с видеосистемами) не требуют от шины высокой пропускной способности. При проектировании шин ввода/вывода в учет берутся стоимость конструктива и соединительных разъемов. Такие шины содержат меньше линий по сравнению с вариантом «процессор-память», но длина линий может быть весьма большой.
Рис. 2.73. Шины «процессор-память»
44 Системная шина
С целью снижения стоимости некоторые ВМ имеют общую шину для памяти и устройств ввода/вывода. Такая шина часто называется системной. Системная шина служит для физического и логического объединения всех устройств ВМ. Поскольку основные устройства машины, как правило, размещаются на общей монтажной плате, системную шину часто называют объединительной шиной (backplane bus).
Системная шина обычно состоит из нескольких сотен линий, которые можно подразделить на три функциональных группы (рис. 2.74): шину данных, шину адреса и шину управления. К последней обычно относят также линии для подачи питающего напряжения на подключаемые к системной шине устройства.
Рис. 2.74. Структура системной шины
(ЦП – центральный процессор; ПАМ – память; МВВ – модуль ввода/вывода)
Любая транзакция на системной шине начинается с выставления ведущим устройством адресной информации. Адрес позволяет выбрать ведомое устройство и установить соединение между ним и ведущим. Для передачи адреса используется часть сигнальных линий шины, совокупность которых часто называют шиной адреса (ША).
На ША могут выдаваться адреса ячеек памяти, номера регистров ЦП, адреса портов ввода/вывода и т.п. Для идентификации того к какому устройству идет обращение (ОП, регистр, порт ввода/вывода), используются специальные управляющие линии. Однако эта же информация может косвенно содержаться в самом адресе.
Разнообразной может быть и структура адреса. Так, в адресе старшие биты могут указывать на один из модулей основной памяти, в то время как младшие биты определяют ячейку внутри этого модуля.
В некоторых шинах предусмотрены адреса специального вида, обеспечивающие одновременный выбор определенной группы ведомых либо всех ведомых сразу (broadcast). Эта возможность обычно практикуется в транзакциях записи (от ведущего к ведомым), однако существует также специальный вид транзакции чтения (одновременно от нескольких ведомых общему ведущему). Английское название такой транзакции чтения broadcall можно перевести как «широковещательный опрос». Информация, возвращаемая ведущему, представляет собой результат побитового логического сложения данных, поступивших от всех адресуемых ведомых.
Число сигнальных линий, выделенных для передачи адреса (ширина шины адреса), определяет максимально возможный размер адресного пространства. Это одна из базовых характеристик шины, поскольку от нее зависит потенциальная емкость адресуемой памяти и число обслуживаемых портов ввода/вывода. В современных микропроцессорах шина адреса состоит из 36 сигнальных линий, при этом адресное пространство составляет 64 Гбайт. В перспективных разработках предусматривается расширение ША до 40 линий.
Совокупность линий, служащих для пересылки данных между модулями системы, называют шиной данных (ШД). Важнейшие характеристики ШД – ширина и пропускная способность.
Ширина шины данных определяется количеством битов информации, которое может быть передано по шине за одну транзакцию (цикл шины). Цикл шины следует отличать от периода тактовых импульсов – одна транзакция на шине может занимать несколько тактовых периодов. Ширина шины данных оставляет 32, 64 или 128 битов. В любом случае ширину ШД выбирают кратной целому числу байтов, причем это число, как правило, представляет собой целую степень числа 2.
Элемент данных, задействующий всю ширину ШД, принято называть словом, хотя в архитектуре некоторых ВМ понятие «слово» трактуется по-другому, то есть слово может иметь разрядность, не совпадающую с шириной ШД.
В большинстве шин используются адреса, позволяющие указать отдельный байт слова. Это свойство оказывается полезным, когда желательно изменить в памяти лишь часть полного слова.
При передаче по ШД части слова пересылка обычно производится по тем же сигнальным линиям, что и в случае пересылки полного слова, однако в ряде шин «урезанное» слово передается по младшим линиям ШД. Последний вариант может оказаться более удобным при последующем расширении шины данных, поскольку в этом случае сохраняется преемственность со «старой» шиной.
Ширина шины данных существенно влияет на производительность ВМ. Так, если ширина шины данных вдвое меньше длины команды, ЦП в течение каждого цикла команды вынужден осуществлять доступ к памяти дважды.
Если адрес и данные в системной шине передаются по независимым (выделенным) сигнальным линиям, то ширина ША и ШД обычно выбирается независимо. Наиболее частые комбинации: 16-8,16-16, 20-8, 20-16, 24-32, 32-32 и 36-64.
В некоторых ВМ адрес и данные пересылаются по одним и тем же линиям, но в разных тактах цикла шины. Этот прием называется временным мультиплексированием. В этом случае линии адреса и данных объединены в единую мультиплексируемую шину адреса/данных. Такая шина функционирует в режиме разделения времени, поскольку цикл шины разбит на временной интервал для передачи адреса и временной интервал для передачи данных. Структура мультиплексируемой шины адреса/данных показана на рис. 2.75.
Рис. 2.75. Мультиплексирование адреса и данных:
а – передача адреса; б – передача данных
Мультиплексирование адресов и данных предполагает наличие мультиплексора на одном конце тракта пересылки информации и демультиплексора на его другом конце. Мультиплексоры и демультиплексоры играют роль коммутирующих устройств. Они обеспечивают перенаправление информации с одного из своих входов на общий выход (мультиплексор) либо с общего входа на один из выходов (демультиплексор).
Мультиплексирование позволяет сократить общее число линий, но требует усложнения логики связи с шиной. Кроме того, оно ведет к потенциальному снижению производительности, поскольку исключает возможность параллельной передачи адресов и данных, что можно было бы использовать в транзакциях записи, одновременно выставляя на ША адрес, а на ШД – записываемое слово.
Совокупность линий, по которым передается управляющая информация, а также информация о состоянии участвующих в транзакции устройств, называется шиной управления (ШУ). Сигнальные линии, входящие в ШУ, можно условно разделить на несколько групп.
Первую группу образуют линии, по которым пересылаются сигналы управления транзакциями, то есть сигналы, определяющие:
тип выполняемой транзакции (чтение или запись);
количество байтов, передаваемых по шине данных, и если пересылается часть слова, то номера байтов;
какой тип адреса выдан на шину адреса;
какой протокол передачи должен быть применен.
На перечисленные цели обычно отводится от двух до восьми сигнальных линий.
Ко второй группе относят линии передачи информации состояния (статуса). В эту группу входят от одной до четырёх линий, по которым ведомое устройство может информировать ведущего о своем состоянии или передать код возникшей ошибки.
Третья группа – линии арбитража. Арбитраж необходим для выбора одного из нескольких ведущих, одновременно претендующих на доступ к шине. Число линий арбитража в разных шинах варьируется от 3 до 11.
Четвертую группу образуют линии прерывания. По этим линиям передаются запросы на обслуживание, посылаемые от ведомых устройств к ведущему. Под собственно запросы обычно отводятся одна или две линии, однако при одновременном возникновении запросов от нескольких ведомых возникает проблема арбитража, для чего могут понадобиться дополнительные линии, если только с этой целью не используются линии третьей группы.
Пятая группа – линии для организации последовательных локальных сетей. Наличие от 1 до 4 таких линий стало общепринятой практикой в современных шинах. Обусловлено это тем, что последовательная передача данных протекает значительно медленнее, чем параллельная, и сети значительно выгоднее строить без загрузки быстрых линий основных шин адреса и данных. Кроме того, шины этой группы могут быть использованы как полноценный, хотя и медленный, избыточный тракт для замены ША и ШД в случае их отказа. Иногда шины пятой группы назначаются для реализации специальных функций, таких, например, как обработка прерываний или сортировка приоритетов задач.
В некоторых ШУ имеется шестая группа сигнальных линий – от 4 до 5 линий позиционного кода, подсоединяемых к специальным выводам разъема. С помощью перемычек на этих выводах можно задать уникальный позиционный код разъема на материнской плате или вставленной в этот разъем дочерней платы. Такой код может быть использован для индивидуальной инициализации каждой отдельной платы при включении или перезапуске системы.
Седьмая группа – это группа линий тактирования и синхронизации. При проектировании шины этим линиям уделяется особое внимание. В состав группы, в зависимости от протокола шины (синхронный или асинхронный), входят от двух до шести линий.
Восьмая группа – это линии для подвода питающего напряжения и линии заземления.
Функционирование системной шины можно описать следующим образом. Если один из модулей хочет передать данные в другой, он должен выполнить два действия: получить в свое распоряжение шину и передать по ней данные. Если какой-то модуль хочет получить данные от другого модуля, он должен получить доступ к шине и с помощью соответствующих линий управления и адреса передать в другой модуль запрос. Далее он должен ожидать, пока модуль, получивший запрос, пошлет данные.
Физически системная шина представляет собой совокупность параллельных электрических проводников. Этими проводниками служат металлические полоски на печатной плате. Шина подводится ко всем модулям, и каждый из них подсоединяется ко всем или некоторым ее линиям. Если вычислительная машина конструктивно выполнена на нескольких платах, то все линии шины выводятся на разъемы, которые затем объединяются проводниками на общем шасси.
