(Industrial Standard Architecture)
Шина, как известно, представляет из себя, собственно, набор проводов (линий),
соединяющийразличные компоненты компьютера для подвода к ним питания и обмена
данными. В "минимальной комплектации" шина имеет три типа линий:
линии управления;
линии адресации;
линии данных.
Устройства, подключенные к шине, делятся на две основных категории - bus masters
и busslaves. Bus masters - это устройства, способные управлять работой шины, т.е
инициировать запись/чтение и т.д. Bus slaves - соответственно,
устройства,которые могут только отвечать на запросы. Правда, есть еще
"интеллектуальные слуги" (intelligent slaves), но мы их пока дляясности замнем.
Ну вот, собственно, и все, что нужно знать про шины для того, чтобы понять, о
чем пойдет речь дальше.
Компания IBM в 1981 представила новую шину для использования в компьютерах серии
PC/XT. Шинабыла крайне проста по дизайну, содержала 53 сигнальных линии и 8
линий питания и представляла собой синхронную 8-битную шину с контролем четности
идвухуровневыми прерываниями (trigger-edge interrupts), при использовании
которых устройства запрашивают прерывания, изменяя состояние
линиисоответствующего IRQ с 0 на 1 или обратно. Такая организация запросов
прерываний позволяет использовать каждое прерывание только одному
устройству.Кроме того, шина не поддерживала дополнительных bus masters, и
единственными устройствами, управляющими шиной, были процессор и контроллер DMA
наматеринской плате.
62-контактный слот (см. таблицу 1) включал 8 линий данных, 20 линий адреса
(А0-А19), 6 линий запроса прерываний(IRQ2-IRQ7). Таким образом, объем адресуемой
памяти составлял 1 Мбайт, и при частоте шины 4.77 МГц пропускная способность
достигала 1.2 Мбайта/сек.
Забавно, что IBM не опубликовала полного описания шины с временными диаграммами
сигналов налиниях данных и адреса, поэтому первым разработчикам плат расширения
пришлось изрядно потрудиться.
Недостатки шины, вытекающие из простоты конструкции, очевидны. Поэтому для
использования в компьютерах IBM-AT('Advanced Technology') в 1984 году была
представлена новая версия шины, впоследствии названной ISA. Сохраняя
совместимость со старыми 8-битными платамирасширения, новая версия шины обладала
рядом существенных преимуществ, как то:
добавление 8 линий данных позволило вести 16-битныйобмен данными;
добавление 4 линий адреса позволило увеличить максимальный размер адресуемой
памяти до 16 МВ;
были добавлены 5 дополнительных trigger-edged линийIRQ;
была реализована частичная поддержка дополнительных busmasters;
частота шины была увеличена до 8 MHz;
пропускная способность достигла 5.3 МВ/сек.
Реализация bus mastering не была особенно удачной, поскольку, например, запрос
на освобождениешины ('Bus hang-off') к текущему bus master обрабатывался
несколько тактов, к тому же каждый master должен был периодически освобождать
шину, чтобы датьвозможность провести обновление памяти (memory refresh), или сам
проводить обновление. Для обеспечения обратной совместимости с 8-битными платами
большинстиво новыхвозможностей было реализовано путем добавления новых линий
(см. таблицу 2). Так как АТ был построен на основе процессора Intel 80286,
который был существеннобыстрее, чем 8088, пришлось добавить генератор состояний
ожидания (wait-state generator). Для обхода этого генератора используется
свободная линия (контактВ8 NOWS-'No Wait State') исходной 8-битной шины. При
установке этой линии в 0 такты ожидания пропускаются. Использование в качестве
NOWS линии исходной шиныпозволяло разработчикам делать как 16-битные, так и
8-битные "быстрые" платы.
КонтактНазвание сигнала КонтактНазвание сигнала
B1Ground A1I/O Channel Check
B2Reset Driver A2Data7
B3+5V A3Data6
B4IRQ2 A4Data5
B5-5V A5Data4
B6DMA Request 2 A6Data3
B7-12V A7Data2
B8J8/NOWS[1] A8Data1
B9+12V A9Data0
B10Ground A10I/O Channel Ready
B11Memory Write A11Address Enable
B12Memory Read A12Address19
B13I/O Write A13Address18
B14I/O Read A14Address17
B15DMA Acknoledge3 A15Address16
B16DMA Request3 A16Address15
B17DMA Acknoledge1 A17Address14
B18DMA Request1 A18Address13
B19Refresh A19Address12
B20Clock A20Address11
B21IRQ7 A21Address10
B22IRQ6 A22Address9
B23IRQ5 A23Address8
B24IRQ4 A24Address7
B25IRQ3 A25Address6
B26DMA Acknoledge2 A26Address5
B27Terminal Count A27Address4
B28Address Latch Enable A28Address3
B29+5V A29Address2
B30Oscillator A30Address1
B31Ground A31Address0
Таблица 1. Назначение контактов разъема 8-разрядной шины ISA
Новый слот содержал 4 новых адресных линии (LA20-LA23) и копии трех младших
адресных линий(LA17-LA19). Необходимость в таком дублировании возникла из-за
того, что адресные линии ХТ были линиями с задержкой (latched lines), и эти
задержкиприводили к снижению быстродействия периферийных устройств.
Использование дублирующего набора адресных линий позволяло 16-битной карте в
начале циклаопределить, что к ней обращаются, и послать сигнал о том, что она
может осуществлять 16-битный обмен. На самом деле, это ключевой момент в
обеспеченииобратной совместимости. Если процессор пытается осуществить 16-битный
доступ к плате, он сможет это сделать только в том случае, если получит от
неесоответствующий отклик IO16. В противном случае чипсет инициирует вместо
одного 16-битного цикла два 8-битных. И все бы было хорошо, но адресных линий
беззадержки всего 7, поэтому платы, использующие диапазон адресов меньший, чем
128Кбайт, не могли определить, находится ли переданный адрес в их
диапазонеадресов, и, соответственно, послать отклик IO16. Таким образом, многие
платы, в том числе платы EMS, не могли использовать 16-битный обмен…
КонтактНазвание сигналаКонтактНазвание сигнала
B1Ground A1I/O Channel Check
B2Reset Driver A2Data7
B3+5V A3Data6
B4IRQ2 A4Data5
B5-5V A5Data4
B6DMA Request 2 A6Data3
B7-12V A7Data2
B8No Wait States A8Data1
B9+12V A9Data0
B10Ground A10I/O Channel Ready
B11Memory Write A11Address Enable
B12Memory Read A12Address19
B13I/O Write A13Address18
B14I/O Read A14Address17
B15DMA Acknoledge3 A15Address16
B16DMA Request3 A16Address15
B17DMA Acknoledge1 A17Address14
B18DMA Request1 A18Address13
B19Refresh A19Address12
B20Clock A20Address11
B21IRQ7 A21Address10
B22IRQ6 A22Address9
B23IRQ5 A23Address8
B24IRQ4 A24Address7
B25IRQ3 A25Address6
B26DMA Acknoledge2 A26Address5
B27Terminal Count A27Address4
B28Address Latch Enable A28Address3
B29+5V A29Address2
B30Oscillator A30Address1
B31Ground A31Address0
КлючКлюч
D1Memory Access 16 bit C1System Bus High
D2I/O 16 bit C2Latch Address 23
D3IRQ10 C3Latch Address 22
D4IRQ11 C4Latch Address 21
D5IRQ12 C5Latch Address 20
D6IRQ15 C6Latch Address 19
D7IRQ14 C7Latch Address 18
D8DMA Acknoledge0 C8Latch Address 17
D9DMA Request1 C9Memory Read
D10DMA Acknoledge5 C10Memory Write
D11DMA Request5 C11Data8
D12DMA Acknoledge6 C12Data9
D13DMA Request6 C13Data10
D14DMA Acknoledge7 C14Data11
D15DMA Request7 C15Data12
D16+5V C16Data13
D17Master 16 bit C17Data14
D18Ground C18Data15
Таблица 2. Назначение контактов разъема 16-разрядной шины ISA.
Несмотря на отсутствие официального стандарта и технических "изюминок" шина ISA
превосходила потребности среднегопользователя образца 1984 года, а "засилье" IBM
AT на рынке массовых компьютеров привело к тому, что производители плат
расширения и клонов ATприняли ISA за стандарт. Такая популярность шины привела к
тому, что слоты ISA до сих пор присутствуют на всех системных платах, и платы
ISA до сихпроизводятся. Правда, Microsoft в спецификации PC99 предусматривает
отказ от ISA, но, как говорится, до этого нужно еще дожить.
Шина EISA
(Extended Industry Standard Architecture)
Шина EISA явилась "асимметричным ответом" производителей клонов РС на попыткуIBM
поставить рынок под свой контроль. В сентябре 1988 года Compaq, поддержанный
"бандой девяти" - Wyse, AST Research, Tandy, собственноCompaq, Hewlett-Packard,
Zenith, Olivetti, NEC и Epson - представил 32-разрядное расширение шины ISA с
полной обратной совместимостью. Основныехарактеристики новой шины были
следующими:
32-разрядная передача данных;
максимальная пропускная способность - 33 МВ/сек;
32-разрядная адресация памяти позволяла адресовать до 4GB (как и в расширении
ISA, новые адресные линии были без задержки);
поддержка multiply bus master;
возможность задания уровня двухуровневого (edge-triggered) прерывания (что
позволяло нескольким устройствам использоватьодно прерывание, как и в случае
многоуровневого (level-triggered) прерывания);
автонастройка плат расширения;
Как и в случае 16-разрядного расширения, новые возможности обеспечивались путем
добавленияновых линий. Поскольку дальше удлинять разъем ISA было некуда,
разработчики нашли оригинальное решение: новые контакты были размещены между
контактами шиныISA и не были доведены до края разъема. Специальная система
выступов на разъеме и щелей в EISA-картах позволяла им глубже заходить в разъем
и подсоединяться кновым контактам. (Правда, утверждают, что при большом желании
можно запихнуть и ISA-карту так, чтобы она замкнула EISA-контакты. Не знаю, не
пробовал, т.к.большого опыта общения с EISA у меня нет: маленький был еще).
Поскольку на данный момент шина EISA практически вымерла, приводить значения
контактовразъема не имеет смысла. Стоит отметить лишь две новых сигнальных линии
- EX32 и EX16, которые определяли, что bus slave поддерживает соответственно 32-
и16-разрядный цикл EISA. Если ни один из этих сигналов не был получен в начале
цикла шины, выполнялся цикл ISA.
Важной особенностью шины являлась возможность для любого bus master обращаться
клюбому устройству памяти или периферийному устройству, даже если они имели
разные разряды шины. Говоря о полной обратной совместимости с ISA,
следуетотметить, что ISA-карты, естественно, не поддерживали разделение
прерываний, даже будучи вставленными в EISA-коннектор. Что касается поддержки
multiply busmaster, то она представляла собой улучшенную и дополненную версию
таковой для ISA. Также присутствовали четыре уровня приоритета:
1. схемы обновления памяти;
2. DMA;
3. процессор;
4. адаптеры шины
и арбитр шины EISA - периферийный контроллер (ISP - Integrated System
Peripheral) - "следил запорядком". Кроме этого, наличествовало еще одно
устройство - Intel's Bus Master Interface Chip (BMIC), которое следило за тем,
чтобы master "незасиживался" на шине. Через определенное количество тактов
master "снимался" с шины и генерировалось немаскируемое прерывание.
MCA против EISA
Сразу же после выхода шины EISA началась "шинная война", причем это была не
столько война между архитектурами (они обе ушлив прошлое), сколько война за
контроль IBM над рынком персональных компьютеров. И эту войну корпорация с
треском проиграла. Да, архитектура MCA по заложеннымтехническим решениям и
перспективам развития выглядела предпочтительнее. Но, как ни странно, именно это
оказалось вторым фактором, который ее сгубил.Сравнительная характеристика шин
EISA и MCA представлена в виде табл. 3.
MCAEISA
Пропускная способность, МВ/сек 2033
Способ передачи данных асинхронныйСинхронный
Размер карты (длина х ширина), мм 292.1 х 88.2333.5 х 127.0
Таблица 3. Сравнительная характеристика шин EISA и MCA.
Площадь поверхности карты EISA в 1.65 раза больше. А если еще учесть, что
адаптер EISAмог потреблять более чем в 2 раза больше мощности, чем адаптер MCA,
становится ясно, что делать периферию под EISA было и проще и дешевле.
Кроме того, в "шинной войне", как и везде, присутствует "рука Intel".
Встремлении освободить рынок для новых процессоров 80386 и 80486, Intel выпускал
EISA-чипсеты, не поддерживающие 286 процессор (не правда ли, знакомаяситуация),
в то время, как шина MCA прекрасно работала и на компьютерах с 286. Таким
образом, перспективная разработка IBM так и осталась перспективнойразработкой,
но и шина EISA не стала хитом: к тому времени, когда потребности компьютеров
среднего уровня переросли возможности шины ISA, разработчикиперешли, минуя EISA,
к локальной шине.
Шина MCA
(Micro Channel Architecture)
"До 1 апреля 1987 года жизнь в мире РС была крайне простой: в байте было 8 бит,
и приэтом существовала только одна шина, по которой эти биты можно было
передавать. Конечно, эта шина была "двух размеров" - разрядностью 8 и 16 бит -
ноэто была одна шина. Но на следующий день - 2 апреля - все изменилось, и,
кажется, простота больше никогда не вернется."
Крис Лонг (Chris Long) PC User.
В 1987 году компания IBM прекратила выпуск серии РС/АТ и начала производство
линии PS/2.Одним из главных отличий нового поколения персональных компьютеров
была новая системная шина - Micro Channel Architecture (MCA). Эта шина не
обладалаобратной совместимостью с ISA, но зато содержала ряд передовых для
своего времени решений:
8/16/32-разрядная передача данных;
20 МВ/сек пропускная способность при частоте шины 10MHz (в 4 раза больше,чем у
ISA!) при максимально возможной пропускной способности шины 160 МВ/сек !!!
(больше, чем у PCI) (правда, не все картыспособны работать с такой скоростью);
Поддержка нескольких bus master. Любое устройство,подключенное к шине, может
получить право на ее исключительное использование для передачи или приема
данных с другого соединенного с ней устройства. Такоеустройство, по сути,
представляет собой специализированный процессор, который может осуществлять
обмен данными по шине независимо от основного процессора.Работу устройств
координирует устройство, называемое арбитром шины (CACP - Central Arbitration
Control Point). Прираспределении функций управления шинойарбитр исходит из
уровня приоритета, которым обладает то или иное устройство или операция. Всего
таких уровней четыре (в порядке убывания):
5. регенерация системной памяти;
6. прямой доступ к памяти (DMA);
7. платы адаптеров.
8. процессор.
Если устройству необходим контроль над шиной, оно сообщает об этом арбитру.
Припервой возможности (после обработки запросов с более высокими приоритетами)
арбитр передает ему управление шиной. Вне системы приоритетов
обслуживаютсятолько немаскируемые прерывания (NMI - non-maskable interrupts),
при возникновении которых управление немедленно передается процессору;
11-уровневые прерывания (11-level triggered interrupts)вместо двухуровневых
(trigger-edged) у ISA позволяли делить (share) прерывания между устройствами,
что позволило излечить одну из болезней первых PC -нехватку линий IRQ;
24 или 32 адресных линии позволяли адресовать до 4 GBпамяти;
автоматическое конфигурирование устройств существенноупростило установку новых
плат. У компьютеров с шиной MCA нет никаких перемычек или переключателей - ни
на системной плате, ни на платах расширения. Вместоиспользования адресов
портов ввода-вывода, зашитых в железо, центральный процессор назначает их при
старте системы, базируюсь на информации, считаннойиз ROM карты;
асинхронный протокол передачи данных снижал вероятностьвозникновения
конфликтов и помех между устройствами, подключенными к шине.
Не правда ли, неплохой набор для 1987 года? Возможно, все развитие персональных
компьютеровпошло бы по другому пути, если бы не одно но - деньги. Дело в том,
что IBM, посчитав свое лидирующее положение на рынке персональных
компьютеровнезыблемым, предложило независимым производителям, желающим
использовать шину МСА, совершенно кабальные условия, включающие требование
заплатить заиспользование шины ISA во всех ранее произведенных компьютерах!!!
Как Вы сами понимаете, желающих оказалось, мягко скажем, немного. Из серьезных
компанийтолько Apricot и Olivetti поддержали новую архитектуру (причем Olivetti
принимала активное участие в разработке конкурирующего стандарта -
EISA).Большинство покупателей систем PS/2 "покупали IBM", а не МСА. В результате
огромная работа - было разработано 6 типов слотов -
16-разрядные (основные слоты, которые устанавливаетсяво все компьютеры с шиной
МСА);
32-разрядные ( устанавливаются на компьютерах с шинойМСА и процессором 386DX и
выше. Так же, как и в ISA, являются только расширением основного слота, но,
поскольку разрабатывались одновременно сшиной, конструкция получилась более
логичной);
16 и 32-разрядные с дополнениями для плат памяти (устанавливаются в некоторых
компьютерах с шиной МСА, например, PS/2 моделей 70и 80, имеют 8 дополнительных
контактов для работы с платами расширения памяти, расположенных в самом начале
разъема, обращенном к задней стенке компьютера,перед основными контактами);
16 и 32-разрядные с дополнениями для видеоадаптеров(предназначены для
увеличения быстродействия видеосистемы. Обычно в компьютере с шиной МСА
установлен один такой слот. 10 дополнительных контактов такжерасположены в
начале разъема и позволяют плате видеоадаптера получить доступ к встроеннщй в
системную плату схеме VGA)
пропала фактически даром. На данный момент ссылки на архитектуру МСА практически
не встречаются даже насайте IBM (насколько мне известно, в настоящее время
архитектура МСА используется IBM только в RISC-системах, например, сервер
RS/6000 построен набазе шины МСА с пропускной способностью 160 МВ/сек), поэтому
приводить таблицы значений контактов не буду.
Локальная шина (Local bus)
Все описанные ранее шины имеют общий недостаток - сравнительно низкую пропускную
способность. Это связано с тем, что шиныразрабатывались в расчете на медленные
процессоры. В дальнейшем быстродействие процессора возрастало, а характеристики
шин улучшались в основном"экстенсивно", за счет добавления новых линий.
Препятствием для повышения частоты шины являлось огромное количество выпущенных
плат, которые немогли работать на больших скоростях обмена (МСА это касается в
меньшей степени, но в силу вышеизложенных причин эта архитектура не играла
заметной роли нарынке). В то же время в начале 90-х годов в мире персональных
компьютеров произошли изменения, потребовавшие резкого увеличения скорости
обмена сустройствами:
создание нового поколения процессоров типа Intel 80486,работающих на частотах
до 66 MHz;
увеличение емкости жестких дисков и создание болеебыстрых контроллеров;
разработка и активное продвижение на рынок графическихинтерфейсов пользователя
(типа Windows или OS/2) привели к созданию новых графических адаптеров,
поддерживающих более высокое разрешение и большееколичество цветов (VGA и
SVGA).
Очевидным выходом из создавшегося положения является следующий: осуществлять
частьопераций обмена данными, требующих высоких скоростей, не через шину
ввода/вывода, а через шину процессора, примерно так же, как подключаетсявнешний
кэш. Такая конструкция получила название локальной шины (Local Bus). Рисунки 1 и
2наглядно демонстрируют различие между обычной архитектурой иархитектурой с
локальной шиной.
Локальная шина не заменяла собой прежниестандарты, а дополняла их. Основными
шинами в компьютере по-прежнему оставались ISA или EISA, но к ним добавлялись
один или несколько слотов локальной шины.Первоначально эти слоты использовались
почти исключительно для установки видеоадаптеров, при этом к 1992 году было
разработано несколько несовместимыхмежду собой вариантов локальных шин,
исключи-тельные права на которые принадлежа-ли фирмам-изготови-телям.
Естественно, такая неразбериха сдерживалараспро-странение локальных шин, поэтому
VESA (Video Electronic Standard Association) - ассоциация, представ-ляющая более
100 компаний – предло-жила вавгусте 1992 года свою спецификацию локальной шины.
Локальная шина VESA (VL-bus)
Основные характеристики VL-bus таковы.
Поддержка процессоров серий 80386 и 80486. Шина разработана для использования
в однопроцессорных системах, при этом вспецификации предусмотрена возможность
поддержки х86-несовместимых процессоров с помощью моста (bridge chip).
Максимально число bus master - 3 (не включая контроллершины). При
необходимости возможна установка нескольких подсистем для поддержки большего
числа masterов.
Несмотря на то, что изначально шина была разработанадля поддержки
видеоконтроллеров, возможна поддержка и других устройств (например,
контроллеров жесткого диска).
Стандарт допускает работу шины на частоте до 66 MHz,однако электрические
характеристики разъема VL-bus ограничивают ее до 50 MHz (это ограничение,
естественно, не относится к интегрированным в материнскуюплату устройствам).
Двунаправленная (bi-directional) 32-разрядная шинаданных поддерживает и
16-разрядный обмен. В спецификацию заложена возможность 64-разрядного обмена.
Поддержка DMA обеспечивается только для bus masters.Шина не поддерживает
специальных "инициаторов" DMA.
Максимальная теоретическая пропускная способность шины- 160 МВ/сек (при
частоте шины 50 MHz), стандартная - 107 МВ/сек при частоте 33 MHz.
Поддерживается пакетный режим обмена (для материнскихплат 80486,
поддерживающих этот режим). 5 линий используется для идентификациитипа и
скорости процессора, сигнал Burst Last (BLAST#) используется дляактивизации
этого режима. Для систем, не поддерживающих этот режим, линия устанавливается
в 0.
Шина использует 58-контактный разъем МСА. Максимальноподдерживается 3 слота
(на некоторых 50-мегагерцовых шинах возможна установка только 1 слота).
Слот VL-bus устанавливается в линию за слотами ISA/EISA/MCA,поэтому VL-платам
доступны все линии этих шин.
Поддерживается как интегрированный кэш процессора, таки кэш на материнской
плате.
Напряжение питания - 5 В. Устройства с уровнем выходного сигнала 3.3 В
поддерживаются при условии, что они могут работать суровнем входного сигнала 5
В.
Шина VL-bus явилась огромным шагом вперед по сравнению с ISA как
попроизводительности, так и по дизайну. Одним из преимуществ шины являлось то,
что она позволяла создавать карты, работающие с существующими чипсетами и
несодержащие большого количества схем дорогостоящей управляющей логики. В
результате VL-карты получались дешевле аналогичных EISA-карт. Однако и эта
шинане была лишена недостатков, главными из которых являлись следующие.
Ориентация на 486-ой процессор. VL-bus жестко привязанак шине процессора
80486, которая отличается от шин Pentium и Pentium Pro/Pentium II.
Ограниченное быстродействие. Как уже было сказано,реальная частота VL-bus - не
больше 50 MHz. Причем при использовании процессоров с множителем частоты шина
использует основную частоту (так, для486DX2-66 частота шины будет 33 MHz).
Схемотехнические ограничения. К качеству сигналов,передаваемых по шине
процессора, предъявляются очень жесткие требования, соблюсти которые можно
только при определенных параметрах нагрузки каждой линиишины. По мнению Intel,
установка недостаточно аккуратно разработанных VL-плат может привести не
только к потерям данных и нарушениям синхронизации, но и кповреждению системы.
Ограничение количества плат. Это ограничение вытекаеттакже из необходимости
соблюдения ограничений на нагрузку каждой линии.
Несмотря на существующие недостатки, VL-bus была несомненным лидером на рынке,
так как позволяла устранить узкое место сразу вдвух подсистемах -
видеоподсистеме и подсистеме обмена с жестким диском. Однако лидерство было
недолгим, поскольку корпорация Intel разработала свою новинку -шину PCI. По
мнению компании, VL-bus базировалась на технологиях 11-летней давности и
являлась всего лишь "заплаткой", компромиссом междупроизводителями. Правда, VESA
заявляла, что обе шины могут "уживаться" совместно в одной системе. Intel
соглашалась, что такоесоседство возможно, но задавала встречный убийственный
вопрос: "А зачем?". Справедливости ради, надо сказать, что PCI действительно
былаизбавлена от большинства недостатков, присущих VL-bus.
Шина PCI
(Peripheral Component Interconnect bus)
Итак, переходим к самому интересному. Что же находится на сегодняшний день
внутрибольшинства наших компьютеров? Естественно, шина PCI. Другой вопрос,
почему именно эта шина. Попробуем разобраться.
Итак, разработка шины PCI началась весной 1991 года как внутренний проект
корпорацииIntel (Release 0.1). Специалисты компании поставили перед собой цель
разработать недорогое решение, которое бы позволило полностью
реализоватьвозможности нового поколения процессоров 486/Pentium/P6 (вот уже
половина ответа). Особенно подчеркивалось, что разработка проводилась "снуля", а
не была попыткой установки новых "заплат" на существующие решения. В результате
шина PCI появилась в июне 1992 года (R1.0).Разработчики Intel отказались от
использования шины процессора и ввели еще одну "антресольную" (mezzanine) шину.
Благодаря такому решению шина получилась, во-первых, процессоро-независимой (в
отличие отVLbus), а во-вторых, могла работать параллельно с шиной процессора, не
обращаясь к ней за запросами. Например, процессор работает себе с кэшем
илисистемной памятью, а в это время по сети на винчестер пишется информация.
Просто здорово! На самом деле идиллии, конечно, не получается, но загрузка
шиныпроцессора снижается здорово. Кроме того, стандарт шины был объявлен
открытым и передан PCI Special Interest Group, которая продолжила работу
посовершенствованию шины (в настоящее время доступен R2.1), и в этом, пожалуй,
вторая половина ответа на вопрос "почему PCI?"
Основные возможности шины следующие.
Синхронный 32-х или 64-х разрядный обмен данными (правда, насколько мне
известно, 64-разрядная шина в настоящее времяиспользуется только в
Alpha-системах и серверах на базе процессоров Intel Xeon, но, в принципе, за
ней будущее). При этом для уменьшения числа контактов (истоимости)
используется мультиплексирование, то есть адрес и данные передаются по одним и
тем же линиям.
Поддержка 5V и 3.3V логики. Разъемы для 5 и 3.3V платразличаются расположением
ключей
Частота работы шины 33MHz или 66MHz (в версии 2.1)позволяет обеспечить широкий
диапазон пропускных способностей (с использованием пакетного режима):
132 МВ/сек при 32-bit/33MHz;
264 MB/сек при 32-bit/66MHz;
264 MB/сек при 64-bit/33MHz;
528 МВ/сек при 64-bit/66MHz.
При этом для работы шины на частоте 66MHz необходимо, чтобы все периферийные
устройстваработали на этой частоте.
Полная поддержка multiply bus master (например, несколько контроллеров жестких
дисков могут одновременно работатьна шине).
Поддержка write-back и write-through кэша.
Автоматическое конфигурирование карт расширения привключении питания.
Спецификация шины позволяет комбинировать до восьмифункций на одной карте
(например, видео + звук и т.д.).
Шина позволяет устанавливать до 4 слотов расширения,однако возможно
использование моста PCI-PCI для увеличения количества карт расширения.
PCI-устройства оборудованы таймером, который используется для определения
максимального промежутка времени, в течениикоторого устройство может занимать
шину.
При разработке шины в ее архитектуру были заложены передовые технические
решения, позволяющиеповысить пропускную способность.
Шина поддерживает метод передачи данных, называемый "linear burst" (метод
линейных пакетов). Этотметод предполагает, что пакет информации считывается (или
записывается) "одним куском", то есть адрес автоматически увеличивается
дляследующего байта. Естественным образом при этом увеличивается скорость
передачи собственно данных за счет уменьшения числа передаваемых адресов.
Шина PCI является той черепахой, на которой стоят слоны, поддерживающие "Землю"
-архитектуру Microsoft/Intel Plug and Play (PnP) PC architecture. Спецификация
шины PCI определяет три типа ресурсов: два обычных (диапазон памяти и
диапазонввода/вывода, как их называет компания Microsoft) и configuration space
- "конфигурационное пространство".
Конфигурационное пространство состоит из трех регионов:
заголовка, независимого от устройства (device-independent header region);
региона, определяемого типом устройства (header-typeregion);
региона, определяемого пользователем (user-definedregion).
В заголовке содержится информация о производителе и типе устройства - поле Class
Code(сетевой адаптер, контроллер диска, мультимедиа и т.д.) и прочая служебная
информация.
Следующий регион содержит регистры диапазонов памяти и ввода/вывода, которые
позволяют динамически выделять устройству областьсистемной памяти и адресного
пространства. В зависимости от реализации системы конфигурация устройств
производится либо BIOS (при выполнении POST - power-onself test), либо
программно. Базовый регистр expansion ROM аналогично позволяет отображать ROM
устройства в системную память. Поле CIS (Card Information Structure) pointer
используется картами cardbus (PCMCIA R3.0). С Subsystemvendor/Subsystem ID все
понятно, а последние 4 байта региона используются для определения прерывания и
времени запроса/владения.
Рисунок 4. Конфигурационное пространство.
Accelerated Graphic Port
Все хорошее когда-нибудь кончается. Обидно - но истинно. Сколько писали про то,
что шина PCI наконец-то устранила "узкоеместо" РС - обмен с видеокартами - но не
тут-то было! Прогресс, как известно, не стоит на месте. Появление разных там 3D
ускорителей привело ктому, что ребром встал вопрос: что делать? Либо увеличивать
количество дорогой памяти непосредственно на видеокарте, либо хранить часть
информации в дешевойсистемной памяти, но при этом каким-нибудь образом
организовать к ней быстрый доступ.
Как это практически всегда бывает в компьютерной индустрии, вопрос решен не
был.Казалось бы, вот вам простейшее решение: переходите на 66-мегагерцовую
64-разрядную шину PCI с огромной пропускной способностью, так нет же. Intel
набазе того же стандарта PCI R2.1 разрабатывает новую шину - AGP (R1.0, затем
2.0), которая отличается от своего "родителя" в следующем:
1. шина способна передавать два блока данных за один 66 MHz цикл (AGP 2x);
2. устранена мультиплексированность линий адреса и данных (напомню, что в PCI
для удешевления конструкции адрес и данные передавались поодним и тем же
линиям);
3. дальнейшая конвейеризация операций чтения/записи, по мнению разработчиков,
позволяет устранить влияние задержек в модулях памяти наскорость выполнения этих
операций.
В результате пропускная способность шины была оценена в 500 МВ/сек, и
предназначалась онадля того, чтобы видеокарты хранили текстуры в системной
памяти, соответственно имели меньше памяти на плате, и, соответственно,
дешевели.
Парадокс в том, что видеокарты все-таки предпочитают иметь БОЛЬШЕ памяти, и
ПОЧТИ НИКТО не хранит текстуры в системной памяти,поскольку текстур такого
объема пока (подчеркиваю - пока) практически нет. При этом в силу удешевления
памяти вообще, карты особенно и не дорожают. Однакопрактически все считают, что
будущее - за AGP, а бурное развитие мультимедиа-приложений (в особенности - игр)
может скоро привести к тому, чтотекстуры перестанут влезать и в системную
память. Поэтому имеет смысл, особо не вдаваясь в технические подробности,
рассказать, как же это все работает.
Итак, начнем с начала, то есть с AGP 1.0. Шина имеет два основных режима работы:
Execute и DMA. В режиме DMA основной памятьюявляется память карты. Текстуры
хранятся в системной памяти, но перед использованием (тот самый execute)
копируются в локальную память карты. Такимобразом, AGP действует в качестве
"тыловой структуры", обеспечивающей своевременную "доставку патронов" (текстур)
на передний край (влокальную память). Обмен ведется большими последовательными
пакетами.
В режиме Execute локальная и системная память для видеокарты логически
равноправны.Текстуры не копируются в локальную память, а выбираются
непосредственно из системной. Таким образом, приходится выбирать из памяти
относительно малыеслучайно расположенные куски. Поскольку системная память
выделяется динамически, блоками по 4К, в этом режиме для обеспечения
приемлемогобыстродействия необходимо предусмотреть механизм, отображающий
последовательные адреса на реальные адреса 4-х килобайтных блоков в системной
памяти. Этанелегкая задача выполняется с использованием специальной таблицы
(Graphic Address Re-mapping Table или GART), расположенной в памяти.
При этом адреса, не попадающие в диапазон GART (GART range), не изменяются и
непосредственно отображаются на системную память илиобласть памяти устройства
(device specific range). На рисунке в качестве такой области показан локальный
фрейм-буфер карты (Local Frame Buffer или LFB).Точный вид и функционирование
GART не определены и зависят от управляющей логики карты.
Шина AGP полностью поддерживает операции шины PCI, поэтому AGP-траффик может
представлять из себя смесь чередующихся AGP и PCI операций
чтения/записи.Операции шины AGP являются раздельными (split). Это означает, что
запрос на проведение операции отделен от собственно пересылки данных.
Такой подход позволяет AGP-устройству генерировать очередь запросов, не
дожидаясь завершениятекущей операции, что также повышает быстродействие шины.
В 1998 году спецификация шины AGP получила дальнейшее развитие - вышел Revision
2.0. В результате использования новыхнизковольтных электрических спецификаций
появилась возможность осуществлять 4 транзакции (пересылки блока данных) за один
66-мегагерцовый такт (AGP 4x), чтоозначает пропускную способность шины в
1GB/сек! Единственное, чего не хватает для полного счастья, так это чтобы
устройство могло динамически переключаться междурежимами 1х, 2х и 4х, но с
другой стороны, это никому и не нужно.
Однако потребности и запросы в области обработки видеосигналов все возрастают, и
Intelготовит новуюспецификацию - AGP Pro (в настоящее время доступен Revision
0.9) - направленную на удовлетворение потребностей
высокопроизводительныхграфических станций. Новый стандарт не видоизменяет шину
AGP. Основное направление - увеличение энергоснабжения графических карт. С этой
целью вразъем AGP Pro добавлены новые линии питания.
Предполагается, что будет существовать два типа карт AGP Pro - High Power и Low
Power. Карты High Power могут потреблять от 50 до110W. Естественно, такие карты
нуждаются в хорошем охлаждении. С этой целью спецификация требует наличия двух
свободных слотов PCI с component side(стороны, на которой размещены основные
чипы) карты.
При этом данные слоты могут использоваться картой как дополнительные крепления,
дляподвода дополнительного питания и даже для обмена по шине PCI! При этом на
использование этих слотов накладываются лишь незначительные ограничения.
При использовании слотов для подвода дополнительного питания:
Не использовать для питания линии V I/O;
Не устанавливать линию M66EN (контакт 49В) в GND (чтовполне естественно, так
как это переводит шину PCI в режим 33 MHz).
При использовании слота для обмена по шине:
Подсистема PCI I/O должна разрабатываться под напряжение 3.3V c возможностью
функционирования при 5 V.
Поддержка 64-разрядного или 66 MHz режимов не требуется.
Карты Low Power могут потреблять 25-50W, поэтому для обеспечения охлаждения
спецификациятребует наличия одного свободного слота PCI.
При этом все retail-карты AGP Pro должны иметь специальную накладку шириной
соответственно в 3 или 2 слота, при этом картаприобретает вид достаточно
устрашающий.
В общем, как представлю себе графическую станцию с двумя процессорами Xeon и
видеокартой AGP Pro High Power... Можно здоровосэкономить на отоплении...
Закрадывается крамольная мысль, что в спецификацию PC 200? будет заложено
жидкостное охлаждение. Опять-таки поживем – увидим…
Шина USB
(Universal Serial Bus)
Что такое USB?
Спецификация периферийной шины USB разработана лидерами компьютерной и
телекоммуникационнойпромышленности -- Compaq, DEC, IBM, Intel, Microsoft, NEC и
Northern Telecom -- для подключения компьютерной периферии вне корпуса машины по
стандартуplug'n'play, в результате отпадает необходимость в установке
дополнительных плат в слоты расширения и переконфигурировании системы.
Персональныекомпьютеры, имеющие шину USB, позволяют подключать периферийные
устройства и осуществляют их автоматическое конфигурирование, как только
устройствофизически будет присоединено к машине, и при этом нет необходимость
перезагружать или выключать компьютер, а так же запускать программы установки
иконфигурирования. Шина USB позволяет одновременно подключать последовательно до
127 устройств, таких, как м