4. Основные шины расширения - Учебно-методический комплекс

4. Основные шины расширения

 

Основные шины расширения.

 

Устройства, подключаемые к шине, разделяются на два основных типа: busmasters и busslaves. Busmasters - это устройства, способные управлять работой шины, то есть инициировать запись/чтение и т. п. Busslaves - соответственно, устройства, которые могут только отвечать на запросы.

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

·        Шина данных;

·        Адресная шина;

·        Шина управления.

 

Шина данных

По этой шине происходит обмен данными между процессором, картами расширения и памятью. Особую роль здесь играет так называемый DMA-контроллер (DirectMemoyAccess), через который происходит управление транспортировкой данных, минуя процессор. Такой способ хорош тем, что освобождает ресурсы CPU для других нужд. Разрядность шины данных может составлять 8 бит, 16 бит, 32 бит и так далее. 

Адресная шина

Данные, которые в большом количестве кочуют по шине через материнскую плату, должны, в конце концов, сделать где-нибудь помежкточную остановку. Местом для этой остановки являются отдельные ячейки памяти. Каждая ячейка должна иметь свой адрес. Следовательно, объем памяти, который может адресовать процессор, зависит от разрядности адресной шины. Его можно вычислить по формуле:

Объем адресуемой памяти = 2n, где n - число линий в адресной шине.

Процессор 8088, например, имел в своем распоряжении 20 адресных линий и, таким образом, мог адресовать всего 1 Mb памяти (220=1048576). В компьютерах на базе процессора 80286 адресная шина была уже 24-разрядной, а процессоры 80486 имеют уже 32-разрядную шину, которая позволяет адресовать 4 им гигабайта памяти. 

Шина управления

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

В качестве конечных пунктов системной шины можно рассматривать слоты расширения, интегрированные на материнскую плату контроллеры и прочее. Все эти устройства соединены между собой шиной управления. Логично предположить, что от ее производительности во многом зависит производительность всей системы, и чем больше тактовая частота и разрядность этой шины, тем лучше. Внешний вид слотов расширения, которые установлены на материнской плате, зависит именно от типа шины управления. Понятно, что, например, разъемы 32-разрядной системной шины будут отличаться от разъемов 16-разрядной шины.

Шины ISA и EISA

Шина ISA была первой стандартизированной системной шиной (ISA означает IndustryStandartArchitecture) и долгие годы являлась стандартом в области РС. И даже сегодня разъемы этой шины можно встретить на некоторых системных платах.

8-разрядная шина

Родоначальником в семействе шин ISA была появившаяся в 1981 году 8-разрядная шина (8 bit ISA Bus), которую можно встретить в компьютерах ХТ-генерации. 8-разрядная шина имеет 62 линии, контакты которых можно найти на ее слотах. Они включают 8 линий данных, 20 линий адреса, 6 линий запроса прерываний. Шина функционирует на частоте 4.77 MHz. 8-разрядная шина ISA - самая медленная из всех системных шин (пропускная способность составляет всего 1.2 Mb в секунду), поэтому она уже давным-давно устарела и поэтому сегодня нигде не используется, ну разве что о-о-очень редко (например, некоторые карточки FM-тюнера могут 8-разрядный ISA-интерфейс, так как там шина используется только для управления, а не для передачи собственно данных, и скорость ее работы является некритичной).

16-разрядная шина

Дальнейшим развитием ISA стала 16-разрядная шина, также иногда называемая AT-Bus, которая впервые начала использоваться в 1984 году. Если вы посмотрите на ее слоты (извините, пожалуйста, за плохое качество рисунка), то увидите, что они состоят из двух частей, из которых одна (большая) полностью копирует 8-разрядный слот. Дополнительная же часть содержит 36 контактов (дополнительные 8 линий данных, 4 линии адреса и 5 линий IRQ плюс контакт для нового сигнала SBHE). На этом основании короткие 8-разрядные платы можно устанавливать в разъемы новой шины (сделать это наоборот, конечно же, невозможно).

Передача байта данных по шине ISA происходит следующим образом: сначала на адресной шине выставляется адрес ячейки RAM или порта устройства ввода/вывода, куда следует передать байт, затем на линии данных выставляется байт данных. Производится задержка тактами ожидания и подается сигнал на передачу байта (строб записи), причем неизвестно, успели записаться данные или нет. Поэтому тактова частота шины выбрана 8.33 MHz, чтобы даже самые медленные устройства гарантированно могли произвести по шине обмен даными (командами). Пропускная способность при этом составила 5.3 Mb/s.

Шина MCA

 

В 1987 году компания IBM прекратила выпуск серии РС/АТ и начала производство линии PS/2. Одним из главных отличий нового поколения персональных компьютеров была новая системная шина MCA (MicroChannelArchitecture). Эта шина не обладала обратной совместимостью с ISA, но зато содержала ряд передовых для своего времени решений:

·      8/16/32-разрядная передача данных

·      Пропускная способность составила 20 Mb/s при частоте 10 MHz и максимальной пропускной способности 160 Mb/s (!), то есть больше, чем у 32-разрядной PCI

·      Поддержка нескольких busmaster. Любое устройство, подключенное к шине, может получить право на ее исключительное использование для передачи или приема данных с другого соединенного с ней устройства. Такое устройство, по сути, представляет собой специализированный процессор, который может осуществлять обмен данными по шине независимо от основного процессора. Работу устройств арбитр шины (CACP - CentralArbitrationControlPoint). При распределении функций управления шиной арбитр исходит из уровня приоритета, которым обладает то или иное устройство или операция. Всего таких уровней четыре (в порядке убывания):

·      Регенерация системной памяти

·      Прямой доступ к памяти (DMA)

·      Платы адаптеров

·      Процессор

LocalBus

Все описанные ранее шины (за исключением MCA) имеют общий недостаток - сравнительно низкую пропускную способность. Это связано с тем, что шины разрабатывались в расчете на медленные процессоры. В дальнейшем быстродействие последнего возрастало, а характеристики шин улучшались в основном экстенсивно, за счет добавления новых линий. Препятствием для повышения частоты шины являлось огромное количество выпущенных плат, которые не могли работать на больших скоростях обмена (МСА это касается в меньшей степени, но в силу вышеизложенных причин эта архитектура не играла заметной роли на рынке). В то же время в начале 90-х годов в мире персональных компьютеров произошли изменения, потребовавшие резкого увеличения скорости обмена с устройствами:

·       Создание нового поколения процессоров типа Intel 80486, работающих на внешних частотах до 66 MHz

·      Увеличение емкости жестких дисков и создание более быстрых контроллеров

·      Разработка и активное продвижение на рынок графических интерфейсов пользователя (типа Windows) привели к созданию новых графических адаптеров, поддерживающих более высокое разрешение и большее количество цветов (VGA и SVGA), что привело к нехватке пропускной способности имеющихся шин (MCA, как уже говорилось, не в счет)

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

Шина PCI

Едва карта VLB успела закрепиться на рынке, как в июне 1992 года фирма Intel изготовила новую шину - шину PCI (PeripheralComponentInterconnect). Именно этот "периферийный соединительный компонент" находится в большинстве современных компьютеров, де-факто стал стандартом для шинной индустрии нашего времени.

Разработчики шины поставили своей целью создать принципиально новый интерфейс, который бы не являлся усовершенствованиями других технологий (как, например EISA), не зависел от платформы (то есть мог работать с будущими поколениями процессоров), имел высокую производительность и был дешев в производстве. Благодаря отказу от использования шины процессора шина PCI оказалась не только процессоронезависимой, но и могла работать самостоятельно, не обращаясь к последней с запросами. Например, процессор может работать с памятью, в то время как по шине PCI передаются данные. Основополагающим принципом шины PCI является применение так называемых мостов (Bridges), которые осуществляют связь шины с другими компонентами системы (например, PCI to ISA Bridge). Другой особенностью является реализация так называемых принципов BusMaster и BusSlave. Например, карта PCI-Masterможет как считывать данные из оперативной памяти, так и записывать их туда без обращения к процессору. Карта PCI-Slave (например, графический контроллер) может только считывать данные.

Особенности шины PCI:

·      Синхронный 32-х или 64-х разрядный обмен данными (правда, насколько мне известно, 64-разрядная шина в настоящее время используется только в Alpha-системах и серверах на базе процессоров IntelXeon, но, в принципе, за ней будущее). При этом для уменьшения числа контактов (и стоимости) используется мультиплексирование, то есть адрес и данные передаются по одним и тем же линиям

·      Шина поддерживает метод передачи данных, называемый linearburst (метод линейных пакетов). Этот метод предполагает, что пакет информации считывается (или записывается) одним куском, то есть адрес автоматически увеличивается для следующего байта. Естественным образом при этом увеличивается скорость передачи собственно данных за счет уменьшения числа передаваемых адресов

·      В шине PCI используется совершенно отличный от ISA способ передачи данных. Этот способ, называемый способом рукопожатия (handshake), заключается в том, что в системе определяется два устройства: передающее (Iniciator) и приемное (Target). Когда передающее устройство готово к передаче, оно выставляет данные на линии данных и сопровождает их соответствующим сигналом (IniciatorReady), при этом приемное устройство записывает их (данные) в свои регистры и подает сигнал TargetReady, подтверждая запись данных и готовность к приему следующих. Установка всех сигналов производится строго в соответствии с тактовыми импульсами шины

·      Относительная независимость отдельных компонентов системы. В соответствии с концепцией PCI передачей пакета данных управляет не CPU, а мост, включенный между ним и шиной PCI (HostBridgeCashe/DRAM Controller). Процессор может продолжать работу и тогда, когда происходит обмен данными с RAM. То же происходит и при обмене данными между двумя другими компонентами системы

·      Низкая нагрузка на процессор.