Разработка шины PCI (Peripheral Component Interconnect - соединение внешних компонент) началась весной 1991 года как внутренний проект корпорации Intel, а точнее организованная ею группа Special Interest Group. Появившаяся в июне 1992 году шина PCI (Release 0.1) как следующее поколение шин, не сохранившая совместимость с прежними шинами, имела несколько особенностей, позволивших ей за короткое время занять господствующее положение в ПК, оттеснив многочисленных конкурентов. Главными из них были ее открытая, доступная всем и каждому, архитектура и независимость от процессорной шины.
Special Interest Group занималась разработкой PCI для использования в системах с процессорами типа Pentium. Специалисты поставили перед собой цель - разработать недорогое решение, которое бы позволило полностью реализовать возможности нового поколения процессоров 486/Pentium/P6. Разработка проводилась "с нуля", а не была попыткой установки новых "заплат" на существующие решения. В результате работы уже в мае 1993 года появилась модернизированный вариант - версия PCI 2.0, которая стала стандартом де-факто среди компьютерных шин общего назначения. По сути дела эта шина не является локальной, т.к. она не подключена к системной шине напрямую, а для подключения использует Host Bridge (главный мост), а так же еще и Peer-to-Peer Bridge (одноранговый мост), который предназначен для соединения двух шин PCI. Кроме всего прочего, PCI является сама по себе мостом между ISA и шиной процессора.
Появление шины PCI на рынке стало своеобразной маленькой революцией. Разнообразие плат расширения, использующих шину PCI столь велико, что нет смысла их перечислять. Стандартом PCI предусмотрены три типа плат в зависимости от питания:
5В – для стационарных компьютеров;
3,3В – для портативных компьютеров;
универсальные платы могущие работать в обоих типах компьютеров.
Шина PCI обладала несколькими преимуществами по сравнению с VLB. Она была разработана в качестве промежуточного решения:
являлась отдельной шиной, изолированной от процессора, однако она сохранила доступ к основной памяти;
являлась процессорно-независимой, т.к. разработчики Intel, в отличие от VLB, отказались от использования шины процессора, и работает с процессором через специализированный контроллер, т.н. "антресольную" (mezzanine) шину.
Благодаря такому решению, шина могла работать параллельно с шиной процессора, не обращаясь к ней за запросами. Например, процессор работает с кэшем или системной памятью, а в это время по сети на винчестер пишется информация. На самом деле так не получается, но загрузка шины процессора снижается значительно. Кроме того, стандарт шины был объявлен открытым и передан PCI Special Interest Group, которая продолжила работу по совершенствованию шины (в настоящее время доступен R2.1).
В шине PCI любая передача сигналов происходит пакетным образом, где каждый пакет разбит на фазы. Начинается пакет с фазы адреса, за которой, как правило, следует один или несколько фаз данных. Количество фаз данных в пакете может быть неопределенно, но ограничено таймером, который определяет максимальное время, в течение которого устройство может использоваться шиной. Такой вот таймер имеет каждое подключенное устройство, а его значение может быть задано при конфигурировании. Для организации работы по передачи данных используется арбитр. Дело в том, что на шине могут находиться два типа устройств – мастер (инициатор, хозяин, ведущий) шины и подчиненный. Мастер берет на себя контроль за шиной и инициирует передачу данных к адресату, т. е. подчиненному устройству. Мастером или подчиненным может быть любое подключенное к шине устройство и иерархия эта постоянно меняется в зависимости от того, какое устройство запросило у арбитра шины разрешения на передачу данных и кому. За бесконфликтную работу шины PCI отвечает чипсет, а точнее North Bridge. Но на PCI жизнь не остановила своего течения. Постоянное усовершенствование видеокарт привело к тому, что физических параметров шины PCI стало не хватать, что и привело к появлению AGP.
Шина PCI является синхронной 32-разрядной (кроме этого, существуют ее 64-разрядные версии, которые рассматриваться не будут, так как из-за своей высокой стоимости они используются исключительно в дорогих рабочих станциях и серверах). Шина получила возможность асинхронной работы от процессора с номинальными частотами 25 МГц, 30 МГц и 33 МГц, обеспечивая пропускную способность (с использованием пакетного режима пересылки данных) 133 Мб/с. По мере роста скоростей процессора частота шины PCI могла оставаться постоянной и составлять какую-то долю от шины FSB. Шина поддерживала удвоенное число слотов и/или периферийных устройств по сравнению с VLB - пять или больше, без всяких ограничений частоты или буферизации.
Другие функции облегчали использование PCI. Технология Plug and Play позволяла производитель автоматическую конфигурацию периферии без настройки IRQ, DMA и адресов ввода/вывода через перемычки. К тому же шина поддерживала разделяемые между несколькими устройствами IRQ, а также и свою собственную систему прерываний (она скрывается за обозначениями #A, #B, #C и #D).
Процессор через мосты (PCI Bridge) может быть подключен к нескольким каналам PCI, обеспечивая возможность одновременной передачи данных между независимыми каналами PCI. Важной особенностью шины является реализация принципа bus-master, что позволяет картам расширения производить обмен данными с памятью без обращения к процессору. Управление шиной-PCI bus mastering позволяло устройствами на шине получать контроль над ней и производить прямые передачи информации без участия процессора. В результате снижались задержки и нагрузка на процессор.
Для уменьшения количества проводников в шине PCI используется принцип мультиплексирования данных, то есть адрес и данные передаются по одним и тем же физическим линиям поочередно. PCI-устройства оборудованы таймером, определяющим максимальный период времени, когда устройство может занимать шину.
Автоконфигурирование устройств PCI (выбор запросов прерывания, каналов DMA) поддерживается средствами BIOS материнской платы в соответствие со стандартом Plug&Play. Действующая в настоящее время спецификация PCI 2.2 обеспечивает поддержку плат расширения с напряжениями питания как 3,3, так и 5В, причем тип платы определяется расположением ключей в разъеме. Если у карты PCI есть две ключевые выемки, то она поддерживает любой из вариантов слота, если же на ней только одна выемка ближе к передней части платы, то эта карта только на 3,3В. При расположении выемки ближе к задней части - карта 5В.
Основные возможности шины:
синхронный 32-х или 64-х разрядный обмен данными (64-разрядная шина в настоящее время используется только в Alpha-системах и серверах на базе процессоров Intel Xeon, но, в принципе, за ней будущее). При этом для уменьшения числа контактов (и стоимости) используется мультиплексирование, то есть адрес и данные передаются по одним и тем же линиям;
поддержка 5 В и 3,3 В логики (имеется 2 варианта питающего напряжения – 5 и 3,3 В). Разъемы для 5 и 3,3 В плат различаются расположением ключей. В 3,3 В карту нельзя вставить в 5 В разъем (и наоборот). Существуют и универсальные платы, поддерживающие оба напряжения. Следует отметить, что частота 66 МГц поддерживается только 3,3 В логикой;
частота работы шины 33 МГц или 66 МГЦ (в версии 2.1) , причем последняя возможна только на 3,3 В и 2 варианта ширины шины данных/адреса – 32 бита и 64 бита. Такие частоты позволяют обеспечить широкий диапазон пропускных способностей (с использованием пакетного режима): 132 Мб/с при 32-bit/33МГц; 264 Мб/с при 32-bit/66МГц; 264 Мб/с при 64-bit/33МГц; 528 Мб/с при 64-bit/66МГц. При этом для работы шины на частоте 66 МГц необходимо, чтобы все периферийные устройства работали на этой частоте. Сегментов может быть несколько, они соединяются друг с другом посредством мостов (bridge). Сегменты могут объединяться в различные топологии (дерево, звезда и т.п.);
разъем похож на MCA/VLB, но чуть длиннее (124 контакта). 64-разрядный разъем имеет дополнительную 64-контактную секцию с собственным ключом. Все разъемы и карты к ним делятся на поддерживающие уровни сигналов 5 В; 3,3 В и универсальные; первые два типа должны соответствовать друг другу, универсальные карты ставятся в любой разъем. Существует также расширение MediaBus шины PCI, введенное фирмой ASUSTek для подключения звуковых карт - дополнительный разъем, находящийся за PCI слотом, содержит сигналы шины ISA;
полная поддержка multiply bus master (например, несколько контроллеров жестких дисков могут одновременно работать на шине);
поддержка write-back и write-through кэша;
автоматическое конфигурирование карт расширения при подаче питания;
спецификация шины позволяет комбинировать до восьми функций на одной карте (например, видео + звук и т.д.);
шина позволяет устанавливать до 4 слотов расширения, однако возможно использование моста PCI-PCI для увеличения количества карт расширения;
PCI-устройства оборудованы таймером, который используется для определения максимального промежутка времени, в течении которого устройство может занимать шину.
Скорость работы шины 66 МГц 64 бита, равна скорости обмена данными процессора Pentium. Максимальное количество слотов – 4, для большего количества нужен мост PCI-PCI. Идеология шины PCI представлена на рисунке.
При разработке шины в ее архитектуру были заложены передовые технические решения, позволяющие повысить пропускную способность. Шина поддерживает метод передачи данных, называемый "linear burst" (метод линейных пакетов). Этот метод предполагает, что пакет информации считывается (или записывается) "одним куском", то есть адрес автоматически увеличивается для следующего байта. Естественным образом при этом увеличивается скорость передачи собственно данных за счет уменьшения числа передаваемых адресов.
Шина PCI является той базой, на которой создана архитектура Microsoft/Intel Plug and Play PC architecture. Спецификация шины PCI определяет три типа ресурсов: два обычных (диапазон памяти и диапазон ввода/вывода, как их называет компания Microsoft) и configuration space - "конфигурационное пространство".
Согласно стандарту, выводы шины PCI делятся на обязательные (Required) и необязательные (Optional).Обязательные выводы должны присутствовать в любом PCI разъеме и карте.
Карты по стандарту PCI (Peripheral Component Interconnect), как и карты стандарта ISA также имеют снизу два небольших выступа. Основные отличия карт PCL от 16-разрядных карт ISA:
слоты PCI почти всегда белые;
карты PCI обычно меньше по размеру, а также сами контакты немного меньше и расположены ближе друг к другу;
слоты РСI расположены немного дальше от края материнской платы, а выступы на плате PCI также смещены в сторону, чтобы соответствовать своим слотам.
Назначение выводов слота PCI
Номер
Сигнал (сторона пайки)
Сигнал (сторона монтажа)
Номер
Сигнал (сторона пайки)
Сигнал (сторона монтажа)
1
TRST#
-12V
48
GND
AD10
2
+12V
TCK
49
AD09
GND
3
TMS
GND
50
GND/5V
GND/5V
4
TDI
TDO
51
GND/5V
GND/5V
5
+5V
+5V
52
C/BE0
AD08
6
INTA#
+5V
53
+3,3V
AD07
7
INTC#
INTB#
54
AD06
+3,3V
8
+5V
INTD#
55
AD04
AD05
9
Reserved
PRSNT1#
56
GND
AD03
10
+5V
Reserved
57
AD02
GND
11
Reserved
PRSNT2
58
AD00
AD01
12
GND/3,3V
GND/3,3V
59
+5V
+5V
13
GND/3,3V
GND/3,3V
60
REQ64#
ACK64#
14
Reserved
Reserved
61
+5V
+5V
15
RST#
GND
62
+5V
+5V
16
+5V
CLK
63
GND
Reserved
17
GNT#
GND
64
C/BE7#
GND
18
GND
REQ#
65
C/BE5#
C/BE6#
19
Reserved
+5V
66
+5V
C/BE4#
20
AD30
AD31
67
PAR64
GND
21
+3,3V
AD29
68
AD62
A63
22
AD28
GND
69
GND
A61
23
AD26
AD27
70
AD60
+5V
24
GND
AD25
71
AD58
AD59
25
AD24
+3,3V
72
GND
AD57
26
IDSEL
C/BE3#
73
AD56
GND
27
+3,3V
AD23
74
AD54
AD55
28
AD22
GND
75
+5V
AD53
29
AD20
AD21
76
AD52
GND
30
GND
AD19
77
AD50
AD51
31
AD18
+3,3V
78
GND
AD49
32
AD16
AD17
79
AD48
GND
33
3,3V
C/BE2#80
80
AD46
AD47
34
FRAME#
GND
81
GND
AD45
35
GND
IRDY#
82
AD44
GND
36
TRDY#
3,3V
83
AD42
AD43
37
GND
DEVSEL#
84
+5V
AD41
38
STOP#
GND
85
AD40
GND
39
+3,3V
LOCK#
86
AD38
AD39
40
SDONE
PERR#
87
GND
AD37
41
SBO#
+3,3V
88
AD36
+5V
42
GND
SERR#
89
AD34
AD35
43
PAR
+3,3V
90
GND
AD33
44
AD15
C/BE1
91
AD32
GND
45
+3,3V
AD14
92
Reserved
Reserved
46
AD13
GND
93
GND
Reserved
47
AD11
AD12
94
Reserved
GND
В настоящее время большинство карт являются картами PCI.
Введение шины вместе с процессором Pentium, усиленное очевидными преимуществами над конкурентами, позволило PCI выиграть войну шин и стать доминирующим стандартом в 1994 году. С тех пор практически все периферийные устройства, от контроллеров жёстких дисков и звуковых карт до видеокарт и сетевых плат, базировались на шине PCI.
С распространением массивов RAID, гигабитного Ethernet и других устройств с высокой пропускной способностью на системах потребительского класса, пропускной способности PCI в 133 Мбайт/с стало не хватать.
Производители чипсетов предвидели эти ограничения и вносили в свою продукцию различные изменения, чтобы снять часть нагрузки с шины PCI.
До 1997 года графическая подсистема наиболее сильно нагружала шину PCI. Выпуск вместе с чипсетом Intel 440LX ускоренного графического порта AGP (Accelerated Graphics Port) послужил двум целям: увеличить графическую производительность и убрать графические данные с шины PCI. Поскольку графическая информация стала передаваться по другой "шине" (по сути, порт AGP нельзя назвать шиной, поскольку он поддерживает только одно устройство), перегруженная шина PCI смогла освободиться для работы с другими устройствами.
Однако AGP явился лишь первым шагом в деле уменьшения нагрузки шины PCI. После этого производителям чипсетов пришлось переделать связь между северным и южным мостом. Старые чипсеты, типа линейки Intel 440, использовали шину PCI для связи между мостами. Шине PCI приходилось не только передавать информацию между мостами, но и обслуживать другие устройства PCI, в том числе IDE, Super I/O (параллельный и последовательный порты, PS/2), а также USB. Чтобы исправить ситуацию, Intel VIA и SiS стали использовать для связи северного и южного мостов специальную высокоскоростную линию, а затем перенесли IDE, Super I/O и USB на собственные выделенные линии к южному мосту.
Наконец, в апреле Intel анонсировала архитектуру CSA, поддерживаемую северным мостом чипсетов i875/i865, убрав гигабитный Ethernet с шины PCI
Если AGP, CSA, Intel Hub Link, VIA V-Link и SiS MuTIOL можно назвать относительно успешными решениями в деле снятия нагрузки с шины PCI, они являются лишь промежуточными вехами.
Основа стандарта VGA (Video Graphics Array) была разработана в 1988 году фирмой IBM. И с тех пор этот аналоговый интерфейс занимает лидирующие позиции на рынке. Суть его в том, что после формирования изображения в цифровом виде оно поступает из видеопамяти на RAMDAC (Random Access Memory Digital to Analogy Converter — цифро-аналоговый преобразователь из ОЗУ), где преобразуется в аналоговый сигнал. После преобразования сигнал по VGA-кабелю передается в монитор. Этот кабель для передачи данных использует девять каналов: по два канала для каждого цвета (яркость и заземление), два канала для вертикальной и горизонтальной синхронизации, а также общее заземление. Уровень напряжения на соответствующих каналах определяет интенсивность красного, зеленого и синего цветов. Это дало возможность применять при формировании изображения множество оттенков, количество которых ограничивается лишь возможностями видеокарты. Для своего времени интерфейс VGA стал настоящей революцией в области компьютерной графики, что и обеспечило ему попу лярность.
Постепенно, по мере растущих разрешений экрана, VGA приспосабливался к новым требованиям и сейчас поддерживает разрешение вплоть до 2048х1536, чего вполне достаточно для любого пользователя, включая и профессионалов, работающих с компьютерной графикой.
Видеопорт VGA необходим на каждом компьютере, так как через него осуществляется подключение стандартных ЭЛТ-мониторов. Некоторые пользователи Windows ХР Professional или Windows нe могут установить дополнительную карту с видеопортом, подключить к ней еще один монитор и иметь рабочий стол, состоящий из двух мониторов (пользователи Windows ХР Ноте не могут работать сразу с двумя мониторами).
Видеопорты используются уже много лет для подключения мониторов с электронно-лучевой трубкой. Первые модели ЖК-мониторов подключались через специальные цифровые порты, однако современные ЖК-мониторы могут подключаться и через обычные видео порты.
К сожалению лучшие из ЖК-мониторов подключаются через порты других типов, и если пользователь решил установить новый ЖК-монитор, то вполне вероятно, что придется приобрести и новую видеокарту. Появление мониторов на жидких кристаллах поставило вопрос о новом интерфейсе передаче данных. Интерфейс VGA, использовавшийся в ЭЛТ-мониторах уже не удовлетворял новые запросы. Это обусловило появление массы новых цифровых стандартов передачи видеосигнала.
Дело в том, что ЭЛТ-монитор - это аналоговое устройство. При создании картинки электронный луч движется горизонтально, засвечивая по очереди каждый пиксель. При этом хоть и существует такое дискретное понятие, как точка люминофора, однако у нее нет адресности, которая четко бы определяла ее. В итоге вся площадь экрана являет собой непрерывную величину, и электрон может лишь относительно попасть в некоторую область. Эта неточность попадания может быть обусловлена, например, помехами при прохождении сигнала через кабель и т.п.
Иная технология используется в LCD-панелях. У ЖК-матриц есть строго определенное количество элементов отображения по горизонтали и вертикали, которое обычно соответствует так называемому «родному» разрешению. Каждая точка, которого строго адресована, поэтому ЖК-дисплей — это цифровое по своей природе устройство, часто встречающееся утверждение о том, что ЖК-дисплей — это «чисто цифровое устройство», неверно. Это аналоговое устройство, но с цифровой, т. е предельно точной адресацией каждого пикселя. В итоге для его оптимальной работы необходим цифровой сигнал.
Возникшую проблему разработчики решили достаточно просто - в ЖК-мониторы стали добавлять аналого-цифровые преобразователи. Однако дело дошло до абсурда: цифровой сигнал видеокарты преобразуется в аналоговый, после чего, пройдя по кабелю, преобразуется дисплеем вновь в цифровой. И проблема даже не в дороговизне подобной схемы, а в том, что при таких трансформациях в первоначальный видеосигнал неизбежно вносятся искажения, что приводит к некоторой потере в качестве картинки на ЖК-мониторе. Поэтому перед разработчиками hardware стал вопрос о новом графическом интерфейсе, который смог бы обеспечить цифровую передачу данных к дисплею.