Организация коммуникаций функциональных

Устройств вычислительных машин

Общие понятия

Совокупность каналов (трактов) обмена информацией, объединяющих между собой основные функциональные устройства ВМ (центральный процессор, устройства внутренней и внешней памяти, устройства ввода/вывода и другие дополнительные устройства), образует структуру коммуникаций (взаимосвязей) вычислительной машины. Взаимные коммуникацииобеспечиваются системой так называемых «шин» (англоязычный эквивалент – «bus»). Под термином «шина» обычно подразумевается некоторый набор цифровых коммуникационных линий, каждая из которых способна передавать сигналы, представляющие двоичные цифры 1 и 0.

Все каналы передачи информации в ВМ обычно условно разделяют на внутренние и внешние. Термин «шина» чаще всего используется именно для именования внутренних каналов передачи, служащих для соединения основных компонентов системной (материнской) платы и подключения плат (карт) расширения (дочерних плат) через специальные разъемы, размещаемые на системной плате. Физически линии внутренних шин реализуются отдельными проводниками в виде полосок электропроводящего материала на монтажных платах (материнских или дочерних) либо внутренних электропроводящих дорожек на кристаллах микросхем. Некоторые шины имеют доступные извне разъемы для того, чтобы к ним можно было подключить дополнительные устройства, внешние по отношению к материнской плате. Такое подключение осуществляется посредством внешних шин, которые принято называть внешними интерфейсными соединениями или, для краткости, просто внешними интерфейсами. Внешние интерфейсы применяются для подсоединения накопителей информации, устройств ввода-вывода, сетевого оборудования и других внешних устройств. Отметим, что внешнее соединение может быть не только кабельным, но и беспроводным (подробнее о беспроводных каналах передачи информации см. в разделе 7).

При дальнейшем изложении общих понятий и физических аспектов передачи информации по шинам будет использоваться термин «шина» как для внутренних, так и для внешних шин.

В зависимости от способа передачи информации по шине различают шины последовательные и параллельные. Последовательная шина состоит из одной линии данных, при этом данные передаются по этой линии последовательно (бит за битом). Параллельная шина содержит несколько линий. Их число трактуется как разрядность («ширина») шины, которая определяет количество бит, параллельно (одновременно) проходящих через шину.

Количество информации, передаваемое по шине в единицу времени, называется ее пропускной способностью. Для параллельных шин пропускная способность обычно измеряется числом байт, передаваемых в секунду (байт/с, Кбайт/с, Мбайт/с), а для последовательных – числом бит в секунду (бит/с, Кбит/с, Мбит/с).

Современные ВМ содержат несколько различных шин, каждая из которых оптимизирована под определенный вид коммуникаций. Это связано с тем, что при наличии в ВМ нескольких высокоскоростных устройств, интенсивно обменивающихся между собой значительными объемами информации, но подключенных при этом к одной и той же шине, создается ситуация, когда именно пропускная способность шины становится самым «узким местом» в системе передачи информации. Для преодоления такой ситуации применяется несколько шин с разными характеристиками по пропускной способности, а, соответственно, по стоимости и сложности организации. Таким образом можно говорить об определенной иерархии шин, используемых в ВМ.

Операции на шине называют транзакциями. Основные виды транзакций – транзакции чтения и транзакции записи. Если в обмене участвует устройство вво­да/вывода, можно говорить о транзакциях ввода и вывода, которые по сути эквивалентны транзакциям чтения и записи соответственно. Шинная транзакция включает в себя две части: посылку адреса и прием (или посылку) данных.

Когда два устройства обмениваются информацией по шине, одно из них долж­но инициировать обмен и управлять им. Такого рода устройство называют ведущи­м (bus master), то есть ведущим является то устрой­ство, которое способно взять на себя владение шиной и управлять пересылкой данных. Ведущее устрой­ство не обязательно использует данные само. Оно, например, может захватить управление шиной в интересах другого устройства. Устройства, не обладающие возможностями инициирования транзакции, носят название ведомых (bus slave). В принципе к шине может быть подключено несколько потенциальных ведущих устрой­ств, но в любой момент времени активным может быть только одно из них: если не­сколько устройств передают информацию одновременно, их сигналы перекрыва­ются и искажаются. Для предотвращения одновременной активности нескольких ведущих устрой­ств в любой шине предусматривается процедура допуска к управлению ши­ной только одного из претендентов (так называемый арбитраж). В то же время некоторые шины допускают широковещательный режим записи, когда информация одного веду­щего устрой­ства передается сразу нескольким ведомым устрой­ствам (здесь арбитраж не требуется). Сиг­нал, направленный одним устройством, доступен всем остальным устройствам, подключенным к шине.

Любая транзакция на шине начинается с выставления ведущим устройством ад­ресной информации. Адрес позволяет выбрать ведомое устройство и установить соединение между ним и ведущим. Для передачи адреса используется часть сиг­нальных линий шины – шина адреса (ША). На ША могут выдаваться адреса ячеек памяти, номера регистров центрального процессора, адреса «портов» ввода/вывода, к которым подключают периферийные устройства ввода/вывода, и т.п. Многообразие видов адресов предполагает наличие дополнительной информации, уточняющей вид, используемый в данной транзак­ции (такая информация может косвенно содержаться в самом адресе, но чаще пе­редается по специальным управляющим линиям шины). Разнообразной может быть и структура адреса. Так, в адресе может конкрети­зироваться лишь определенная часть ведомого, например, старшие биты адреса могут указывать на один из модулей основной памяти, в то время как младшие биты определяют ячейку внутри этого модуля. В некоторых шинах предусмотрены адреса специального вида, обеспечиваю­щие одновременный выбор определенной группы ведомых либо всех ведомых сразу. Такая возможность обычно практикуется в транзакциях записи (от ведущего к ведомым), однако существует также специальный вид транзакции чте­ния (одновременно от нескольких ведомых общему ведущему). Англоязычное назва­ние такой транзакции чтения «broadcall» может быть переведено как «широковещательный опрос». Информация, возвращаемая ведущему, представляет собой результат поби­тового логического сложения данных, поступивших от всех адресуемых ведомых.

Число сигнальных линий, выделенных для передачи адреса (ширина шины ад­реса), определяет максимально возможный размер адресного пространства. Это одна из базовых характеристик шины, поскольку от нее зависит потенциальная емкость адресуемой памяти и число обслуживаемых портов ввода/вывода.

Совокупность линий, служащих для пересылки данных между устройствами ВМ – шина данных (ШД) – имеет такие важнейшие характеристики, как ширина и пропускная способность. Ширина ШД определяется количеством бит информации, которое может быть передано по шине за одну транзакцию (цикл шины). Цикл шины сле­дует отличать от периода тактовых импульсов, так как одна транзакция на шине может занимать несколько тактовых периодов. Типовая ширина ШД составляет обычно 32, 64 или 128 бит. Ширину ШД выбирают кратной целому числу байтов, при­чем это число, как правило, представляет собой целую степень числа 2.

Элемент данных, задействующий всю ширину ШД, принято называть «словом», хотя в архитектуре некоторых ВМ понятие «слово» трактуется по-другому, то есть слово может иметь разрядность, не совпадающую с шириной шины данных.

В большинстве шин используются адреса, позволяющие указать отдельный байт слова. Это свойство оказывается полезным, когда желательно изменить в памяти лишь часть полного слова. При передаче по ШД части слова пересылка обычно производится по тем же сигнальным линиям, что и в случае пересылки полного слова, однако в ряде шин «урезанное» слово передается по младшим линиям ШД. Последний вариант мо­жет оказаться более удобным при последующем расширении шины данных, по­скольку в этом случае сохраняется преемственность со «старой» шиной.

Ширина ШД существенно влияет на производительность ВМ. Так, если ШД имеет ширину вдвое меньшую, чем длина команды, процессор в тече­ние каждого цикла команды вынужден осуществлять доступ к памяти дважды. Очевидно, что чем шире шина, тем выше (при прочих равных условиях) ее пропускная способность.

Применение раздельных шин адреса и данных позволяет повысить эффектив­ность использования шины, особенно в транзакциях записи, поскольку адрес ячейки памяти и записываемые данные могут передаваться одновременно.

Помимо трактов пересылки адреса и данных, неотъемлемым атрибутом любой шины являются линии, по которым передается управляющая информации и ин­формация о состоянии участвующих в транзакции устройств. Совокупность та­ких линий – это шина управления(ШУ). Сигнальные линии, входящие в ШУ, можно условно разделить на несколько групп, основными из которых являются следующие группы. Первую группу образуют линии, по которым пересылаются сигналы управле­ния транзакциями, то есть сигналы, определяющие тип выполняемой транзакции (чтение или запись), количество передаваемых по шине данных байтов (если пересылается часть слова, то какие байты), какой тип адреса выдан на шину адреса, какой протокол передачи должен быть применен. Ко второй группе относят линии передачи информации состояния (статуса), по которым ведомое устройство может информировать ведущего о своем состоянии или передать код возникшей ошибки. Третью группу составляют линии арбитража. Четвертую группу образуют линии прерывания, по которым передаются запросы на обслуживание, посылаемые от ведомых устройств к ведущему. Наконец, в каждой шине обязательно присутствуют линии, по сути являющиеся одними из важ­нейших. Это линии тактирования и синхронизации. Следует также отметить обязательные линии для подвода питающего напряже­ния и линии заземления.

В некоторых ВМ линии адреса и данных объединены в единую мультиплексируемую шину адреса/данных. Такая шина функционирует в режиме разделения времени, по­скольку цикл шины разбит на временной интервал для передачи адреса и временной интервал для передачи данных. Мультиплексирование адресов и данных предполагает наличие мультиплексора на одном конце тракта пересылки информации и демультиплексора на другом его конце. Мультиплексоры и демультиплексоры играют роль коммутирующих устройств. Мультиплексирование позволяет сократить общее число линий, но требует ус­ложнения логики связи с шиной. Кроме того, оно ведет к потенциальному сниже­нию производительности, поскольку исключает возможность параллельной пере­дачи адресов и данных, что можно было бы использовать в транзакциях записи, одновременно выставляя на адресной шине адрес, а на шине данных – записываемое слово.

Арбитраж шин

 

На роль ведущего устройства вправе одновременно претендовать сразу несколько из подключенных к шине устройств, однако управлять шиной в каж­дый момент времени может только одно из них. Чтобы исключить конфликты, шина должна предусматривать определенные механизмы арбитража запросов и правила предоставления шины одному из запросивших устройств. Решение обыч­но принимается на основе приоритетовпретендентов. Известны разные схемы приоритетов. Например, каждому потенциальному ведущему присваивается определенный уровень прио­ритета, который может оставаться неизменным (статическийили фиксированный приоритет) либо изменяться по какому-либо алгоритму (динамическийприори­тет).

Основной недостаток статических приоритетов в том, что устройства, имею­щие высокий приоритет, в состоянии полностью блокировать доступ к шине уст­ройств с низким уровнем приоритета. Системы с динамическими приоритетами дают шанс каждому из запросивших устройств рано или поздно получить пра­во на управление шиной, то есть в таких системах реализуется принцип рав­нодоступности.

Наибольшее распространение получили следующие алгоритмы динамическогоизменения приоритетов: простая циклическая смена приоритетов, циклическая смена приоритетов с учетом последнего запроса, смена приоритетов по случайному закону, схема равных приоритетов, алгоритм «наиболее давнего» использования.

В алгоритме простой циклической смены приоритетов после каждого цикла арбитража все приоритеты понижаются на один уровень, при этом устройство, имевшее ранее низший уровень приоритета, получает наивысший приоритет.

В схеме циклической смены приоритетов с учетом последнего запроса все воз­можные запросы упорядочиваются в виде циклического списка. После обработки очередного запроса обслуженному ведущему назначается низший уровень приори­тета. Следующее в списке устройство получает наивысший приоритет, а осталь­ным устройствам приоритеты назначаются в убывающем порядке, согласно их сле­дованию в циклическом списке. В обеих схемах циклической смены приоритетов каждому ведущему обеспечи­вается шанс получить шину в свое распоряжение, однако большее распростране­ние получил второй алгоритм.

При смене приоритетов по случайному закону после очередного цикла арбитра­жа с помощью генератора псевдослучайных чисел каждому ведущему присваива­ется случайное значение уровня приоритета.

В схеме равных приоритетов при поступлении к арбитру нескольких запросов каждый из них имеет равные шансы на обслуживание. Возможный конфликт раз­решается арбитром. Такая схема принята в асинхронных системах.

В алгоритме «наиболее давнего» использования после каждого цикла арбитража наивысший приоритет присваивается ведущему устройству, кото­рое дольше чем другие не использовало шину.

Помимо рассмотренных существует несколько алгоритмов смены приоритетов, которые не являются чисто динамическими, поскольку смена приоритетов проис­ходит не после каждого цикла арбитража. К таким алгоритмам относятся алгоритм очереди и алгоритм фиксированного кванта времени.

В алгоритме очереди запросы обслуживаются в порядке очереди, образовав­шейся к моменту начала цикла арбитража. Сначала обслуживается первый запрос в очереди, то есть запрос, поступивший раньше остальных. Аппаратная реализа­ция алгоритма связана с определенными сложностями, поэтому используется такой алгоритм редко.

В алгоритме фиксированного кванта времени каждому ведущему для захвата шины в течение цикла арбитража выделяется определенный квант времени. Если ведущий в этот момент не нуждается в шине, выделенный ему квант остается не использованным. Такой метод наиболее подходит для шин с синхронным прото­колом.

Арбитраж запросов на управление шиной может быть организован по централизо­ванной или децентрализованной схеме. Выбор конкретной схемы зависит от тре­бований к производительности и стоимостных ограничений.

При централизованном арбитражев системе имеется специальное устройство – центральный арбитр, которое ответственно за предоставление доступа к шине только одному из запросивших доступ ведущих устройств. Это устройство, называемое иногда централь­ным контроллером шины, может быть самостоятельным модулем или частью центрального процессора. Наличие на шине только одного арбитра означает, что в централизованной схеме имеется единственная точка отказа. В зависимости от того, каким образом веду­щие устройства подключены к центральному арбитру, возможны параллельные и последователь­ные схемы центра­лизованного арбитража.

В параллельном варианте центральный арбитр связан с каждым потенциаль­ным ведущим индивидуальными двухпроводными трактами. Поскольку запросы к центральному арбитру могут поступать независимо и параллельно, данный вид арбитража называют централизованным параллельным арбитражем или центра­лизованным арбитражем независимых запросов. Схема централизованного параллельного арбитража обладает гибкостью – вместо ста­тических приоритетов допускается использовать любые варианты динамической смены приоритетов. Благодаря наличию прямых связей между центральным ар­битром и ведущими схема обеспечивает высокое быстродействие, однако именно непосредственные связи становятся причиной повышенной стоимости реализа­ции. В параллельных схемах затруднено подключение дополнительных устройств. У схемы есть еще один существенный недостаток – сигналы запроса и подтверждения присутствуют только на индивидуальных линиях и не появля­ются на общих линиях шины, что затрудняет диагностику.

Второй вид централизованного арбитража известен как централизованный по­следовательный арбитраж. В последовательных схемах для выделения запроса с наивысшим приоритетом используется один из сигналов, поочередно проходя­щий через цепочку ведущих, чем и объясняется другое название – цепочечный (или гирляндный) арбитраж. Цепочечная реализация предполагает статическое распределение приоритетов. Наивысший приоритет имеет ближайшее к арбитру ведущее устройство. Далее приоритеты ведущих в цепочке последовательно понижаются. Основное достоинство цепочечного арбитража заключается в простоте реали­зации и в малом количестве используемых линий. Последовательные схемы ар­битража позволяют легко наращивать число устройств, подключаемых к шине. Однако такой схеме присущи и существенные недостатки. Прежде всего, после­довательное прохождение сигнала по цепочке замедляет арбитраж, причем время арбитража растет пропорционально длине цепочки. Статическое распределение приоритетов может привести к полному блокированию устройств с низким уров­нем приоритета (расположенных в конце цепочки). Наконец, как и параллельный вариант, централизованный последовательный арбитраж не очень удобен в плане диагностики работы шины.

При децентрализованном (или распределенном)арбитражеединый арбитр отсут­ствует. Вместо этого каждый ведущий содержит блок управления доступом к шине, и при совместном использовании шины такие блоки взаимодействуют друг с дру­гом, разделяя между собой ответственность за доступ к шине. По сравнению с цен­трализованной схемой децентрализованный арбитраж менее чувствителен к отка­зам претендующих на шину устройств. В целом схемы децентрализованного арбитража потенциально более надежны, поскольку отказ контроллера шины в одном из ведущих не нарушает работу с ши­ной на общем уровне. Тем не менее должны быть предусмотрены средства для об­наружения неисправных контроллеров. Основной недостаток децентрализованных схем заключается в относительной сложности логики ар­битража, которая должна быть реализована в аппаратуре каждого ведущего.

В некоторых ВМ применяют комбинированные последовательно-параллель­ные схемы арбитража, в какой-то мере сочетающие достоинства обоих методов. Здесь все ведущие разбиваются на группы. Арбитраж внутри группы ведется по последовательной схеме, а между группами – по параллельной.

Вне зависимости от принятой модели арбитража должна быть также продумана стратегия ограничения времени контроля над шиной. Одним из вариантов может быть разрешение ведущему занимать шину в течение одного цикла шины, но с предо­ставлением ему возможности конкуренции за шину в последующих циклах. Дру­гим вариантом является принудительный захват контроля над шиной устройством с более высоким уровнем приоритета при сохранении восприимчивости текущего ведущего к запросам на освобождение шины от устройств с меньшим уровнем прио­ритета.

В опросных методах арбитража запросы только фиксируются, и контроллер шины способен узнать о них, лишь опросив ведущих. Опрос может быть как централизованным – с одним контроллером, производящим опрос, так и децентрализованным – с не­сколькими контроллерами шины. Данный механизм использует специальные линии опроса между контролле­ром (контроллерами) шины и ведущими – по одной линии для каждого ведущего.








Дата добавления: 2015-12-17; просмотров: 1694;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.011 сек.