Организация коммуникаций функциональных
Устройств вычислительных машин
Общие понятия
Совокупность каналов (трактов) обмена информацией, объединяющих между собой основные функциональные устройства ВМ (центральный процессор, устройства внутренней и внешней памяти, устройства ввода/вывода и другие дополнительные устройства), образует структуру коммуникаций (взаимосвязей) вычислительной машины. Взаимные коммуникацииобеспечиваются системой так называемых «шин» (англоязычный эквивалент – «bus»). Под термином «шина» обычно подразумевается некоторый набор цифровых коммуникационных линий, каждая из которых способна передавать сигналы, представляющие двоичные цифры 1 и 0.
Все каналы передачи информации в ВМ обычно условно разделяют на внутренние и внешние. Термин «шина» чаще всего используется именно для именования внутренних каналов передачи, служащих для соединения основных компонентов системной (материнской) платы и подключения плат (карт) расширения (дочерних плат) через специальные разъемы, размещаемые на системной плате. Физически линии внутренних шин реализуются отдельными проводниками в виде полосок электропроводящего материала на монтажных платах (материнских или дочерних) либо внутренних электропроводящих дорожек на кристаллах микросхем. Некоторые шины имеют доступные извне разъемы для того, чтобы к ним можно было подключить дополнительные устройства, внешние по отношению к материнской плате. Такое подключение осуществляется посредством внешних шин, которые принято называть внешними интерфейсными соединениями или, для краткости, просто внешними интерфейсами. Внешние интерфейсы применяются для подсоединения накопителей информации, устройств ввода-вывода, сетевого оборудования и других внешних устройств. Отметим, что внешнее соединение может быть не только кабельным, но и беспроводным (подробнее о беспроводных каналах передачи информации см. в разделе 7).
При дальнейшем изложении общих понятий и физических аспектов передачи информации по шинам будет использоваться термин «шина» как для внутренних, так и для внешних шин.
В зависимости от способа передачи информации по шине различают шины последовательные и параллельные. Последовательная шина состоит из одной линии данных, при этом данные передаются по этой линии последовательно (бит за битом). Параллельная шина содержит несколько линий. Их число трактуется как разрядность («ширина») шины, которая определяет количество бит, параллельно (одновременно) проходящих через шину.
Количество информации, передаваемое по шине в единицу времени, называется ее пропускной способностью. Для параллельных шин пропускная способность обычно измеряется числом байт, передаваемых в секунду (байт/с, Кбайт/с, Мбайт/с), а для последовательных – числом бит в секунду (бит/с, Кбит/с, Мбит/с).
Современные ВМ содержат несколько различных шин, каждая из которых оптимизирована под определенный вид коммуникаций. Это связано с тем, что при наличии в ВМ нескольких высокоскоростных устройств, интенсивно обменивающихся между собой значительными объемами информации, но подключенных при этом к одной и той же шине, создается ситуация, когда именно пропускная способность шины становится самым «узким местом» в системе передачи информации. Для преодоления такой ситуации применяется несколько шин с разными характеристиками по пропускной способности, а, соответственно, по стоимости и сложности организации. Таким образом можно говорить об определенной иерархии шин, используемых в ВМ.
Операции на шине называют транзакциями. Основные виды транзакций – транзакции чтения и транзакции записи. Если в обмене участвует устройство ввода/вывода, можно говорить о транзакциях ввода и вывода, которые по сути эквивалентны транзакциям чтения и записи соответственно. Шинная транзакция включает в себя две части: посылку адреса и прием (или посылку) данных.
Когда два устройства обмениваются информацией по шине, одно из них должно инициировать обмен и управлять им. Такого рода устройство называют ведущим (bus master), то есть ведущим является то устройство, которое способно взять на себя владение шиной и управлять пересылкой данных. Ведущее устройство не обязательно использует данные само. Оно, например, может захватить управление шиной в интересах другого устройства. Устройства, не обладающие возможностями инициирования транзакции, носят название ведомых (bus slave). В принципе к шине может быть подключено несколько потенциальных ведущих устройств, но в любой момент времени активным может быть только одно из них: если несколько устройств передают информацию одновременно, их сигналы перекрываются и искажаются. Для предотвращения одновременной активности нескольких ведущих устройств в любой шине предусматривается процедура допуска к управлению шиной только одного из претендентов (так называемый арбитраж). В то же время некоторые шины допускают широковещательный режим записи, когда информация одного ведущего устройства передается сразу нескольким ведомым устройствам (здесь арбитраж не требуется). Сигнал, направленный одним устройством, доступен всем остальным устройствам, подключенным к шине.
Любая транзакция на шине начинается с выставления ведущим устройством адресной информации. Адрес позволяет выбрать ведомое устройство и установить соединение между ним и ведущим. Для передачи адреса используется часть сигнальных линий шины – шина адреса (ША). На ША могут выдаваться адреса ячеек памяти, номера регистров центрального процессора, адреса «портов» ввода/вывода, к которым подключают периферийные устройства ввода/вывода, и т.п. Многообразие видов адресов предполагает наличие дополнительной информации, уточняющей вид, используемый в данной транзакции (такая информация может косвенно содержаться в самом адресе, но чаще передается по специальным управляющим линиям шины). Разнообразной может быть и структура адреса. Так, в адресе может конкретизироваться лишь определенная часть ведомого, например, старшие биты адреса могут указывать на один из модулей основной памяти, в то время как младшие биты определяют ячейку внутри этого модуля. В некоторых шинах предусмотрены адреса специального вида, обеспечивающие одновременный выбор определенной группы ведомых либо всех ведомых сразу. Такая возможность обычно практикуется в транзакциях записи (от ведущего к ведомым), однако существует также специальный вид транзакции чтения (одновременно от нескольких ведомых общему ведущему). Англоязычное название такой транзакции чтения «broadcall» может быть переведено как «широковещательный опрос». Информация, возвращаемая ведущему, представляет собой результат побитового логического сложения данных, поступивших от всех адресуемых ведомых.
Число сигнальных линий, выделенных для передачи адреса (ширина шины адреса), определяет максимально возможный размер адресного пространства. Это одна из базовых характеристик шины, поскольку от нее зависит потенциальная емкость адресуемой памяти и число обслуживаемых портов ввода/вывода.
Совокупность линий, служащих для пересылки данных между устройствами ВМ – шина данных (ШД) – имеет такие важнейшие характеристики, как ширина и пропускная способность. Ширина ШД определяется количеством бит информации, которое может быть передано по шине за одну транзакцию (цикл шины). Цикл шины следует отличать от периода тактовых импульсов, так как одна транзакция на шине может занимать несколько тактовых периодов. Типовая ширина ШД составляет обычно 32, 64 или 128 бит. Ширину ШД выбирают кратной целому числу байтов, причем это число, как правило, представляет собой целую степень числа 2.
Элемент данных, задействующий всю ширину ШД, принято называть «словом», хотя в архитектуре некоторых ВМ понятие «слово» трактуется по-другому, то есть слово может иметь разрядность, не совпадающую с шириной шины данных.
В большинстве шин используются адреса, позволяющие указать отдельный байт слова. Это свойство оказывается полезным, когда желательно изменить в памяти лишь часть полного слова. При передаче по ШД части слова пересылка обычно производится по тем же сигнальным линиям, что и в случае пересылки полного слова, однако в ряде шин «урезанное» слово передается по младшим линиям ШД. Последний вариант может оказаться более удобным при последующем расширении шины данных, поскольку в этом случае сохраняется преемственность со «старой» шиной.
Ширина ШД существенно влияет на производительность ВМ. Так, если ШД имеет ширину вдвое меньшую, чем длина команды, процессор в течение каждого цикла команды вынужден осуществлять доступ к памяти дважды. Очевидно, что чем шире шина, тем выше (при прочих равных условиях) ее пропускная способность.
Применение раздельных шин адреса и данных позволяет повысить эффективность использования шины, особенно в транзакциях записи, поскольку адрес ячейки памяти и записываемые данные могут передаваться одновременно.
Помимо трактов пересылки адреса и данных, неотъемлемым атрибутом любой шины являются линии, по которым передается управляющая информации и информация о состоянии участвующих в транзакции устройств. Совокупность таких линий – это шина управления(ШУ). Сигнальные линии, входящие в ШУ, можно условно разделить на несколько групп, основными из которых являются следующие группы. Первую группу образуют линии, по которым пересылаются сигналы управления транзакциями, то есть сигналы, определяющие тип выполняемой транзакции (чтение или запись), количество передаваемых по шине данных байтов (если пересылается часть слова, то какие байты), какой тип адреса выдан на шину адреса, какой протокол передачи должен быть применен. Ко второй группе относят линии передачи информации состояния (статуса), по которым ведомое устройство может информировать ведущего о своем состоянии или передать код возникшей ошибки. Третью группу составляют линии арбитража. Четвертую группу образуют линии прерывания, по которым передаются запросы на обслуживание, посылаемые от ведомых устройств к ведущему. Наконец, в каждой шине обязательно присутствуют линии, по сути являющиеся одними из важнейших. Это линии тактирования и синхронизации. Следует также отметить обязательные линии для подвода питающего напряжения и линии заземления.
В некоторых ВМ линии адреса и данных объединены в единую мультиплексируемую шину адреса/данных. Такая шина функционирует в режиме разделения времени, поскольку цикл шины разбит на временной интервал для передачи адреса и временной интервал для передачи данных. Мультиплексирование адресов и данных предполагает наличие мультиплексора на одном конце тракта пересылки информации и демультиплексора на другом его конце. Мультиплексоры и демультиплексоры играют роль коммутирующих устройств. Мультиплексирование позволяет сократить общее число линий, но требует усложнения логики связи с шиной. Кроме того, оно ведет к потенциальному снижению производительности, поскольку исключает возможность параллельной передачи адресов и данных, что можно было бы использовать в транзакциях записи, одновременно выставляя на адресной шине адрес, а на шине данных – записываемое слово.
Арбитраж шин
На роль ведущего устройства вправе одновременно претендовать сразу несколько из подключенных к шине устройств, однако управлять шиной в каждый момент времени может только одно из них. Чтобы исключить конфликты, шина должна предусматривать определенные механизмы арбитража запросов и правила предоставления шины одному из запросивших устройств. Решение обычно принимается на основе приоритетовпретендентов. Известны разные схемы приоритетов. Например, каждому потенциальному ведущему присваивается определенный уровень приоритета, который может оставаться неизменным (статическийили фиксированный приоритет) либо изменяться по какому-либо алгоритму (динамическийприоритет).
Основной недостаток статических приоритетов в том, что устройства, имеющие высокий приоритет, в состоянии полностью блокировать доступ к шине устройств с низким уровнем приоритета. Системы с динамическими приоритетами дают шанс каждому из запросивших устройств рано или поздно получить право на управление шиной, то есть в таких системах реализуется принцип равнодоступности.
Наибольшее распространение получили следующие алгоритмы динамическогоизменения приоритетов: простая циклическая смена приоритетов, циклическая смена приоритетов с учетом последнего запроса, смена приоритетов по случайному закону, схема равных приоритетов, алгоритм «наиболее давнего» использования.
В алгоритме простой циклической смены приоритетов после каждого цикла арбитража все приоритеты понижаются на один уровень, при этом устройство, имевшее ранее низший уровень приоритета, получает наивысший приоритет.
В схеме циклической смены приоритетов с учетом последнего запроса все возможные запросы упорядочиваются в виде циклического списка. После обработки очередного запроса обслуженному ведущему назначается низший уровень приоритета. Следующее в списке устройство получает наивысший приоритет, а остальным устройствам приоритеты назначаются в убывающем порядке, согласно их следованию в циклическом списке. В обеих схемах циклической смены приоритетов каждому ведущему обеспечивается шанс получить шину в свое распоряжение, однако большее распространение получил второй алгоритм.
При смене приоритетов по случайному закону после очередного цикла арбитража с помощью генератора псевдослучайных чисел каждому ведущему присваивается случайное значение уровня приоритета.
В схеме равных приоритетов при поступлении к арбитру нескольких запросов каждый из них имеет равные шансы на обслуживание. Возможный конфликт разрешается арбитром. Такая схема принята в асинхронных системах.
В алгоритме «наиболее давнего» использования после каждого цикла арбитража наивысший приоритет присваивается ведущему устройству, которое дольше чем другие не использовало шину.
Помимо рассмотренных существует несколько алгоритмов смены приоритетов, которые не являются чисто динамическими, поскольку смена приоритетов происходит не после каждого цикла арбитража. К таким алгоритмам относятся алгоритм очереди и алгоритм фиксированного кванта времени.
В алгоритме очереди запросы обслуживаются в порядке очереди, образовавшейся к моменту начала цикла арбитража. Сначала обслуживается первый запрос в очереди, то есть запрос, поступивший раньше остальных. Аппаратная реализация алгоритма связана с определенными сложностями, поэтому используется такой алгоритм редко.
В алгоритме фиксированного кванта времени каждому ведущему для захвата шины в течение цикла арбитража выделяется определенный квант времени. Если ведущий в этот момент не нуждается в шине, выделенный ему квант остается не использованным. Такой метод наиболее подходит для шин с синхронным протоколом.
Арбитраж запросов на управление шиной может быть организован по централизованной или децентрализованной схеме. Выбор конкретной схемы зависит от требований к производительности и стоимостных ограничений.
При централизованном арбитражев системе имеется специальное устройство – центральный арбитр, которое ответственно за предоставление доступа к шине только одному из запросивших доступ ведущих устройств. Это устройство, называемое иногда центральным контроллером шины, может быть самостоятельным модулем или частью центрального процессора. Наличие на шине только одного арбитра означает, что в централизованной схеме имеется единственная точка отказа. В зависимости от того, каким образом ведущие устройства подключены к центральному арбитру, возможны параллельные и последовательные схемы централизованного арбитража.
В параллельном варианте центральный арбитр связан с каждым потенциальным ведущим индивидуальными двухпроводными трактами. Поскольку запросы к центральному арбитру могут поступать независимо и параллельно, данный вид арбитража называют централизованным параллельным арбитражем или централизованным арбитражем независимых запросов. Схема централизованного параллельного арбитража обладает гибкостью – вместо статических приоритетов допускается использовать любые варианты динамической смены приоритетов. Благодаря наличию прямых связей между центральным арбитром и ведущими схема обеспечивает высокое быстродействие, однако именно непосредственные связи становятся причиной повышенной стоимости реализации. В параллельных схемах затруднено подключение дополнительных устройств. У схемы есть еще один существенный недостаток – сигналы запроса и подтверждения присутствуют только на индивидуальных линиях и не появляются на общих линиях шины, что затрудняет диагностику.
Второй вид централизованного арбитража известен как централизованный последовательный арбитраж. В последовательных схемах для выделения запроса с наивысшим приоритетом используется один из сигналов, поочередно проходящий через цепочку ведущих, чем и объясняется другое название – цепочечный (или гирляндный) арбитраж. Цепочечная реализация предполагает статическое распределение приоритетов. Наивысший приоритет имеет ближайшее к арбитру ведущее устройство. Далее приоритеты ведущих в цепочке последовательно понижаются. Основное достоинство цепочечного арбитража заключается в простоте реализации и в малом количестве используемых линий. Последовательные схемы арбитража позволяют легко наращивать число устройств, подключаемых к шине. Однако такой схеме присущи и существенные недостатки. Прежде всего, последовательное прохождение сигнала по цепочке замедляет арбитраж, причем время арбитража растет пропорционально длине цепочки. Статическое распределение приоритетов может привести к полному блокированию устройств с низким уровнем приоритета (расположенных в конце цепочки). Наконец, как и параллельный вариант, централизованный последовательный арбитраж не очень удобен в плане диагностики работы шины.
При децентрализованном (или распределенном)арбитражеединый арбитр отсутствует. Вместо этого каждый ведущий содержит блок управления доступом к шине, и при совместном использовании шины такие блоки взаимодействуют друг с другом, разделяя между собой ответственность за доступ к шине. По сравнению с централизованной схемой децентрализованный арбитраж менее чувствителен к отказам претендующих на шину устройств. В целом схемы децентрализованного арбитража потенциально более надежны, поскольку отказ контроллера шины в одном из ведущих не нарушает работу с шиной на общем уровне. Тем не менее должны быть предусмотрены средства для обнаружения неисправных контроллеров. Основной недостаток децентрализованных схем заключается в относительной сложности логики арбитража, которая должна быть реализована в аппаратуре каждого ведущего.
В некоторых ВМ применяют комбинированные последовательно-параллельные схемы арбитража, в какой-то мере сочетающие достоинства обоих методов. Здесь все ведущие разбиваются на группы. Арбитраж внутри группы ведется по последовательной схеме, а между группами – по параллельной.
Вне зависимости от принятой модели арбитража должна быть также продумана стратегия ограничения времени контроля над шиной. Одним из вариантов может быть разрешение ведущему занимать шину в течение одного цикла шины, но с предоставлением ему возможности конкуренции за шину в последующих циклах. Другим вариантом является принудительный захват контроля над шиной устройством с более высоким уровнем приоритета при сохранении восприимчивости текущего ведущего к запросам на освобождение шины от устройств с меньшим уровнем приоритета.
В опросных методах арбитража запросы только фиксируются, и контроллер шины способен узнать о них, лишь опросив ведущих. Опрос может быть как централизованным – с одним контроллером, производящим опрос, так и децентрализованным – с несколькими контроллерами шины. Данный механизм использует специальные линии опроса между контроллером (контроллерами) шины и ведущими – по одной линии для каждого ведущего.
Дата добавления: 2015-12-17; просмотров: 1746;