Шина pci является процессора зависимой или нет
PCI Local Bus (Peripheral Component Interconnect, межсоединение периферийных компонентов) — синхронная параллельная шина, предназначенная для соединения различных контроллеров, находящихся на системной плате компьютера или установленных в гнёзда расширения, друг с другом и с так называемым «центральным ресурсом» (central resource), т.е. с процессорами и памятью. Эта шина порядка 10 лет была основой ПК, полностью вытеснив другие шины (ISA, EISA, MicroChannel, VLB). Сейчас ей на смену пришла PCI Express , хотя гнёзда для установки плат расширения стандарта PCI имеются пока на практически всех системных платах.
Помимо шины PCI, на ПК ранее широко применялась её специализированная версия PCI Express История
Развитием стандарта PCI занимается организация PCI Special Interest Group. Спецификации официально доступны лишь за плату, хотя на просторах Интернета их можно найти и бесплатно.
Прототип шины PCI был разработан фирмой Intel весной 1991 г. Новая шина должна была обладать высокой пропускной способностью, необходимой для эффективной работы процессоров 80486 и Основные особенности
Шина PCI предназначена для подключения достаточно большого количества устройств одновременно, однако на практике их число довольно мало — ограничителями являются нагрузочная способность электронных схем и паразитная ёмкость цепей, растущая по мере увеличения количества устройств и длины линий шины. Кроме того, под номер устройства на шине, используемый в процессе конфигурирования, отведено 5 бит, что не позволяет подключить более 32 устройств. Чтобы увеличить их общее число, была предусмотрена организация шины PCI в виде дерева. «Корнем» этого дерева является специальный мост Host–PCI, с помощью которого «ствол» — основная шина PCI — подключается к процессору. «Ветви» — дополнительные шины PCI — подключаются к «стволу» с помощью мостов PCI–PCI. К «ветвям» с помощью таких же мостов могут подключаться следующие «ветви» и так далее. Практическим ограничением «ветвистости» шины являются ограничение на общее число шин PCI (под номер шины отводится один байт) и дополнительная задержка, вносимая в обмен данными каждым новым мостом.
На практике шина PCI не обязательно связана с процессором напрямую. Например, в ПК на базе чипсета Intel P45 процессор посредством шины FSB связан с микросхемой северного моста — собственно кристаллом P45. Внутри последнего имеется мост Host–DMI, связывающий шину FSB с шиной DMI, которая, в свою очередь, является связующим элементом северного и южного мостов (в роли последнего обычно выступает микросхема ICH10). В состав южного моста входит мост DMI–PCI, он и будет реальным «корнем» шины PCI.
К шине PCI с помощью специальных мостов могут подключаться другие шины. Например, в каждом ПК на ранних процессорах Pentium имелся мост PCI–ISA.
Чтобы правильно маршрутизировать трафик, каждая шина PCI имеет свой номер, используемый в процессе конфигурирования мостов и других устройств, подключенных к шине, а также выделенные ей диапазоны адресов памяти и ввода-вывода. Когда некоторый мост «видит» запрос, обращённый к его шине, он транслирует его на эту шину. Естественно, не допускается дублирование номеров мостов (а значит, и шин), а также перекрытие диапазонов адресов. Для программного обеспечения, за исключением конфигурационного, иерархическая организация шины PCI и достаточно сложная цепочка, соединяющая её с процессором и памятью, абсолютно прозрачна.
Каждое устройство PCI включает одну или несколько функций (до 8 — под номер функции, используемый в процессе конфигурирования, отведено 3 бита). Функция — это логически независимая часть устройства. Например, в состав микросхемы южного моста обычно входят контроллеры SATA, Ethernet, USB и другие устройства. Каждый из них с точки зрения шины PCI может быть отдельным устройством или же одной из функций одного и того же устройства. Многофункциональные устройства обязательно должны иметь функцию с номером 0, однофункциональные могут в процессе конфигурирования игнорировать номер функции или же «откликаться» только на обращение к функции 0.
Шина PCI имеет три независимых адресных пространства: памяти, ввода-вывода и конфигурационное. Разрядность адреса памяти и ввода-вывода составляет 32 или 64 бита (причём 64-разрядный адрес может использоваться и на 32-разрядной шине); на практике его разрядность определяется процессором (так, у современных процессоров ПК адреса портов ввода-вывода имеют длину 16 бит, а физические адреса памяти — обычно 36). Пространство ввода-вывода может отсутствовать, если шина применяется в вычислительной системе, процессор которой не имеет отдельного адресного пространства ввода-вывода. По этой причине устройства, не ориентированные на использование с конкретной процессорной архитектурой, должны иметь возможность работать исключительно с адресным пространством памяти. Для нормальной работы каждая функция каждого устройства должна иметь собственный диапазон адресов в необходимых ей адресных пространствах.
Конфигурационное адресное пространство имеется у каждой реализованной функции всех устройств шины PCI, кроме, возможно, моста Host–PCI. Адреса регистров конфигурации состоят из четырёх полей: номера шины (8 бит), номера устройства (5 бит), номера функции (3 бита) и номера регистра (6 бит). Все конфигурационные регистры 32-разрядные. Используя их, программное обеспечение определяет тип, конкретную модель устройства и его требования к диапазонам адресов памяти и ввода-вывода, после чего по возможности выделяет запрашиваемые ресурсы и загружает драйвер, обеспечивающий работу с этим устройством.
Обычно устройства до выполнения конфигурирования не отвечают на любые операции на шине, кроме обращённых к ним конфигурационных транзакций, однако предусмотрена возможность создания «преднастроенных» устройств. Такие устройства после сброса устанавливают определённую стандартную конфигурацию, что позволяет использовать их до проведения общего конфигурирования. Обычно это устройства, необходимые для осуществления начальной загрузки системы. Для ПК эта возможность не является особенно важной, поскольку настройку необходимых устройств до загрузки выполняет BIOS, однако её наличие позволяет применять шину PCI в вычислительных системах, лишённых какого-либо аналога BIOS.
Устройства могут иметь порты ввода-вывода, расположенные по строго определённым адресам. Такие устройства называются унаследованными (legacy). Фиксированные порты применяются для обеспечения совместимости со старым оборудованием, не имевшим возможности программного конфигурирования. Например, современные видеоконтроллеры эмулируют видеоконтроллер VGA, для чего используют несколько стандартных портов ввода-вывода, однако для использования их в современных режимах они должны быть правильно настроены как «настоящие» устройства PCI.
Передача данных обычно ведётся пакетами (burst), что позволяет повысить пропускную способность, поскольку в каждом пакете адрес передаётся лишь один раз независимо от количества передаваемых данных. Тем не менее, поддерживаются устройства, не обладающие способностью пакетной передачи.
Из-за очень большого объёма информации подробные сведения о принципах работы и использовании шины PCI приведены в отдельных статьях:
Всё течёт, всё меняется. В сфере компьютерных технологий эта фраза никогда не потеряет актуальности, равно как и девиз «Быстрее! Выше! Сильнее!». И действительно, последние несколько лет можно назвать «временами перемен» компьютерной индустрии. В полной мере это коснулось и такой специфичной области, как шины передачи данных.
Среди наиболее динамично развивающихся областей компьютерной техники стоит отметить сферу технологий передачи данных: в отличие от сферы вычислений, где наблюдается продолжительное и устойчивое развитие параллельных архитектур, в «шинной» 1 сфере, как среди внутренних, так и среди периферийных шин, наблюдается тенденция перехода от синхронных параллельных шин к высокочастотным последовательным. (Заметьте, «последовательные» – не обязательно значит «однобитные», здесь возможны и 2, и 8, и 32 бит ширины при сохранении присущей последовательным шинам пакетной передачи данных, то есть в пакете импульсов данные, адрес, CRC и другая служебная информация разделены на логическом уровне 2 ).
1 Компьютерная шина (магистраль передачи данных между отдельными функциональными блоками компьютера) – совокупность сигнальных линий, объединённых по их назначению (данные, адреса, управление), которые имеют определённые электрические характеристики и протоколы передачи информации. Шины отличаются разрядностью, способом передачи сигнала (последовательные или параллельные), пропускной способностью, количеством и типами поддерживаемых устройств, протоколом работы, назначением (внутренняя, интерфейсная).
Шины могут быть синхронными (осуществляющими передачу данных только по тактовым импульсам) и асинхронными (осуществляющими передачу данных в произвольные моменты времени), а также могут использовать мультиплексирование (передачу адреса и данных по одним и тем же линиям) и различные схемы арбитража (то есть способа совместного использования шины несколькими устройствами).
2 Основным отличием параллельных шин от последовательных является сам способ передачи данных. В параллельных шинах понятие «ширина шины» соответствует её разрядности – количеству сигнальных линий, или, другими словами, количеству одновременно передаваемых («выставляемых на шину») битов информации. Сигналом для старта и завершения цикла приёма/передачи данных служит внешний синхросигнал. В последовательных же каналах передачи используется одна сигнальная линия (возможно использование двух отдельных каналов для разделения потоков приёма-передачи). Соответственно, информационные биты здесь передаются последовательно. Данные для передачи через последовательную шину облекаются в пакеты (пакет – единица информации, передаваемая как целое между двумя устройствами), в которые, помимо собственно полезных данных, включается некоторое количество служебной информации: старт-биты, заголовки пакетов, синхросигналы, биты чётности или контрольные суммы, стоп-биты и т. п. Но в свете последних достижений в «железной» сфере компьютерной индустрии малое количество сигнальных линий и логически более сложный механизм передачи данных последовательных шин оборачиваются для них существенным преимуществом – возможностью практически безболезненного наращивания рабочих частот в таких пределах, каких никогда не достичь громоздким параллельным шинам с их высокочастотными проблемами ожидания доставки каждого бита к месту назначения. Проблема в том, что каждая линия такой шины имеет свою длину, свою паразитную ёмкость и индуктивность и, соответственно, своё время прохождения сигнала от источника к приёмнику, который вынужден выжидать дополнительное время для гарантии получения данных по всем линиям. Так, к примеру, каждый байт, передаваемый через линк шины PCIExpress, для увеличения помехозащищённости «раздувается» до 10 бит, что, однако, не мешает шине передавать до 0,25 ГБ за секунду по одной паре проводов. Да, ширина последовательной шины на самом деле является количеством одновременно задействованных отдельных последовательных каналов передачи.
Все эти нововведения и смена приоритетов преследуют в конечном итоге одну цель – повышение суммарного быстродействия системы, ибо не все существующие архитектурные решения способны эффективно масштабироваться. Несоответствие пропускной способности шин потребностям обслуживаемых ими устройств приводит к эффекту «бутылочного горлышка» и препятствует росту быстродействия даже при дальнейшем увеличении производительности вычислительных компонентов – процессора, оперативной памяти, видеосистемы и так далее.
Процессорная шина
Любой процессор архитектуры x86CPU обязательно оснащён процессорной шиной. Эта шина служит каналом связи между процессором и всеми остальными устройствами в компьютере: памятью, видеокартой, жёстким диском и так далее. Так, классическая схема организации внешнего интерфейса процессора (используемая, к примеру, компанией Intel в своих процессорах архитектуры х86) предполагает, что параллельная мультиплексированная процессорная шина, которую принято называть FSB (Front Side Bus), соединяет процессор (иногда два процессора или даже больше) и контроллер, обеспечивающий доступ к оперативной памяти и внешним устройствам. Этот контроллер обычно называют северным мостом , он входит в состав набора системной логики ( чипсета ).
Используемая Intel в настоящее время эволюция FSB – QPB , или Quad-Pumped Bus, способна передавать четыре блока данных за такт и два адреса за такт! То есть за каждый такт синхронизации шины по ней может быть передана команда либо четыре порции данных (напомним, что шина FSB–QPB имеет ширину 64 бит, то есть за такт может быть передано до 4х64=256 бит, или 32 байт данных). Итого, скажем, для частоты FSB, равной 200 МГц, эффективная частота передачи адреса для выборки данных будет эквивалентна 400 МГц (2х200 МГц), а самих данных – 800 МГц (4х200 МГц) 3 .
3 Кстати, именно результирующей «учетверённой» частотой передачи данных (как и в случае с «удвоенной» передачей DDR-шины, где данные передаются дважды за такт) хвастаются производители и продавцы, умалчивая тот факт, что для многочисленных мелких запросов, где данные в большинстве своём умещаются в одну 64-байтную порцию (и, соответственно, не используются возможности DDR или QDR/QPB), на чтение/запись важнее именно частота тактирования.
Различия реализации классической архитектуры и АМD-K8
Различия реализации классической архитектуры и АМD-K8
Ещё одним довольно заметным отличием архитектуры К8 является отказ от асинхронности, то есть обеспечение синхронной работы процессорного ядра, ОЗУ и шины HyperTransport, частоты которых привязаны к «шине» тактового генератора (НТТ), которая в этом случае является опорной. Таким образом, для процессора архитектуры К8 частоты ядра и шины HyperTransport задаются множителями по отношению к НТТ, а частота шины памяти выставляется делителем от частоты ядра процессора 4
4 Пример: для системы на базе процессора Athlon 64-3000+ (1,8 ГГц) с установленной памятью DDR-333 стандартная частота ядра (1,8 ГГц) достигается умножением на 9 частоты НТТ, равной 200 МГц, стандартная частота шины HyperTransport (1 ГГц) – умножением НТТ на 5, а частота шины памяти (166 МГц) – делением частоты ядра на 11.
В классической же схеме с шиной FSB и контроллером памяти, вынесенным в северный мост, возможна (и используется) асинхронность шин FSB и ОЗУ, а опорной частотой для процессора выступает частота тактирования 5 (а не передачи данных) шины FSB, частота же тактирования шины памяти может задаваться отдельно. Из наиболее свежих чипсетов возможностью раздельного задания частот FSB и памяти обладает NVIDIA nForce 680i SLI, что делает его отличным выбором для тонкой настройки системы (разгона).
Совсем немного времени осталось до появления новых чипсетов Intel, а вместе с ними придет и новый стандарт – PCI Express. О том, что это, какими преимуществами и недостатками обладает, вы можете узнать из этой статьи.
Любая компьютерная технология проходит свой путь от рождения, триумфа к свалке истории. Все бы ничего, да каждое очередное нововведение, как правило, чревато серьезным перетряхиванием системных блоков и неопределенностью в умах пользователей – пора или еще подождать с апгрейдом? Тем более огромными кажутся все новшества, которые свалятся на головы покупателей в нынешнем году. Такого всестороннего разрушительного действия на основы платформы не было уже давно - сменятся процессорные разъемы (у Intel настанет время Socket 775, у AMD, соответственно, Socket 939); к концу года действительно новой будет называться система лишь с 240-контактными модулями DDR2; вдогонку ко всему этому близится появление новых форм-факторов самих плат – BTX. Но самым радикальным все же станет низвержение старых привычных элементов ландшафта системной платы – разъемов PCI и AGP, которым приходит время сказать последнее "прости-прощай".
Новое поколение технологий приносит новые скорости и новые технологические решения. Правда, на деле случалось не раз, что революционные нововведения оказывались не всегда своевременными и не такими уж полезными, как красиво заявлялось при их выпуске. Традиционно, отдуваться за эксперименты приходится конечному покупателю. Примеров самых передовых, но неоцененных или невостребованных технологий можно привести множество – шина EISA, память RDRAM, слоты AMR/CNR и многое другое.
Не касаясь тупиковых ветвей эволюции ПК, сегодня стоит поговорить о своевременности внедрения новых технологий на примере шины PCI Express. Сегодня можно с уверенностью сказать, что от перехода на этот шинный стандарт никуда не деться. Попробуем рассмотреть ключевые особенности новоявленной шины, ее сходства и отличия от распространенных сейчас PCI и AGP.
Прежде всего, не стоит рассматривать PCI Express как банального наследника традиций PCI. Консорциум разработчиков нового интерфейса, ранее носившего название 3GIO, ставил перед собой цель разработать новую высокоскоростную шину с максимальной масштабируемостью, простой разводкой, низким уровнем паразитных излучений и электромагнитных помех. Это лишь краткий перечень требований к новому интерфейсу, некоторые особенности его реализации в конкретных условиях, как, например, поддержка "горячего" подключения, требуются лишь в определенных специфических приложениях. Сначала -
Немного истории
Первые разработки шины PCI, стартовавшие в начале 90-х годов, были призваны избавиться от множества присутствовавших на тот момент несовместимых шинных интерфейсов – VLB (VESA Local Bus), EISA, ISA и Micro Channel. Наряду с этим преследовалась цель избавиться от тяжкого наследия фрагментированной шины ISA и впервые добиться соединений класса "чип-чип".
На момент появления в 1993 году базовой версии шины Peripheral Component Interconnect (PCI) - IEEE P1386.1, предусматривались революционные усовершенствования: расширение шины данных до 32 бит, поддержка адресации до 4 ГБ данных (32 бита), а также использование режима синхронного обмена данными. По тем временам тактовая частота шины 33 МГц удовлетворяла условиям работы с периферией в настольных и серверных системах, все были довольны. Последовавший за этим резкий скачок тактовых частот процессоров и памяти привел к увеличению тактовой частоты PCI до 66 МГц, хотя, тактовые частоты процессоров за этот же период скакнули с 33 МГц до 3,0+ ГГц. Все последующие варианты PCI – AGP, PCI-X, MiniPCI, CardBus, несмотря на привнесение определенных дополнений, например, иных форм-факторов разъемов, новых сигнальных уровней и даже передачи данных по фронтам импульса (Double Data Rate/ Quadruple Data Rate), тем не менее, несли в себе ограничения, накладываемые самой топологией интерфейса.
Возможности наращивания пропускной способности шины PCI за счет увеличения тактовой частоты без усложнения схем разводки и соответствующего адекватного удорожания к настоящему времени исчерпаны полностью. А ведь на очереди появились такие актуальные интерфейсы, как 1/10 Gigabit Ethernet, IEEE 1394B, которые полностью выбирают пропускную возможность шины одним устройством и даже выходят за эти рамки. PCI душит рост скорости периферии, критичными становятся ограничения по числу сигнальных контактов шины, торможение процессов реального времени и требования по энергосбережению современных ПК. Если вспомнить наиболее производительные версии шины PCI, например, серверную PCI-X и графическую AGP, то в этом случае мы упираемся в укорачивание проводников шины за счет высокой частоты, требование к установке своего контроллера на каждый слот и достаточно высокую стоимость ее реализации.
Грядет тотальное торжество последовательных шин
Итого, параллельные шины себя исчерпали, рано или поздно взоры разработчиков должны были обратиться в сторону последовательных. Так оно и есть, в результате чего практически все современные индустриальные интерфейсы к настоящему времени перебрались на такой принцип обмена данными. Взгляните на приведенную ниже таблицу: речь идет не только о сетевых интерфейсах, которым на роду написано быть последовательными; все остальные ключевые шины уже имеют последовательную природу.
Между прочим, внешние интерфейсы уже давно перебрались на последовательную топологию, и в самых своих свежих реализациях – USB 2.0, IEEE1394b, показывают скорости, которые немыслимы для параллельных соединений. С этой точки зрения шина PCI в наших компьютерах действительно, выглядит своеобразным анахронизмом.
Особенности PCI Express
Основой нового интерфейса, как известно, в общем случае будут являться дифференциальные сигнальные пары контактов, совершающие обмен данными по схеме "точка-точка". Благодаря новой топологии мы сразу получаем массу положительных моментов: удешевление конструкции, снижение габаритов, более простая разводка печатных дорожек с упрощенными требованиями к борьбе с паразитными излучениями, и, главное, возможность работы на гораздо более высоких частотах, с поддержкой "горячей" замены периферийных устройств. Уходит в прошлое такой важный для параллельного интерфейса параметр, как нужда в синхронизации сигнальных линий всей шины.
Архитектуру PCI Express можно рассматривать послойно, в сравнении с адресной моделью PCI. Конфигурация PCI Express является стандартной для устройств, определенных plug-and-play спецификациями PCI: программный уровень генерирует запросы чтения/записи, уровень транзакций транспортирует эти запросы к периферийным устройствам с помощью разделенного пакетного протокола. Для поддержания высокой производительности шины соединительный (link) уровень добавляет пакетам очередность и CRC; базовый физический уровень состоит из двойного симплексного канала, осуществляющего функции приемной и передающей пары. Таким образом, исходная скорость 2,5 Гб/с в каждом направлении позволяет говорить о создании дуплексного коммуникационного канала производительностью до 200 МБ/с, что в четыре раза превышает возможности классической шины PCI.
Рассматривая процессы, протекающие в шине на сигнальном уровне, нельзя не отметить уникальные плюсы PCI Express - значительное снижение затухания в линиях передачи и повышенная чувствительность приемной части интерфейса. Из чего напрашивается вывод о менее критичных требованиях к импедансу входных цепей, а также возможность увеличения длины разводки проводников шины - в нынешней версии стандарта PCI-E они лимитируются 12 дюймами для системных плат, 3,5 дюймами для контроллеров и 15 дюймами для межчиповых соединений. При этом не предъявляется никаких дополнительных требований к технологии разводки печатной платы: могут использоваться как обычные 4-слойные PCB толщиной 0,062 дюйма, так и варианты с шестью и более слоями.
Теоретически, требования, выдвигаемые стандартом PCI Express, с легкостью могут быть адаптированы для нужд устройств любого уровня – от мобильного телефона до сервера уровня предприятия, а также, в перспективе, могут быть переложены для применения других физических типов носителей. Именно такая гибкость и необходима для интерфейса, собирающегося прослужить стандартом ближайшее обозримое будущее.
Использование новых разъемов и других конструктивных возможностей, оговоренных спецификациями нового стандарта, позволяет говорить об увеличении энергопотребления конечных контроллеров до 75 Вт (при токе до 5,5 А)!
Такие мощные контроллеры потребуют дополнительных мер по отводу тепла из корпуса, зато отпадет нужда в подводке разъемов дополнительного питания, которые так характерны для нынешнего поколения видеокарт AGP 8x.
Системы питания компьютеров с поддержкой разных вариантов PCI Express отличаются от привычных нам спецификаций ATX12 и, скорее, схожи с требованиями, предъявляемыми к питанию серверных систем. Так, привычный 20-контактный разъем питания ATX удлиняется и в нем появляются четыре дополнительных контакта, как раз для усиления силовых шин +12 В, 5,0 В и +3,3 В. Соответственно, до 75 Вт повышаются ограничения на питание одного слота в BIOS. При этом нижняя граница мощности для блоков питания устанавливается на уровне примерно 300 Вт. Словом, хотя изменения в цепях питания и не носят такой радикальный характер, как при переходе с AT на ATX, с мыслью о неминуемом апгрейде БП придется свыкнуться.
Варианты PCI Express: их будет много
Версии PCI Express будут внедряться в зависимости от ставящихся перед интерфейсом задач и типом устройства. Например, серверы, где востребована максимальная пропускная способность, будут оборудованы максимальным количеством слотов PCI Express с максимальными показателям. В то же время, для нужд ноутбуков в большинстве случаев будет достаточно архитектуры PCI Express x1. Для настольных ПК и рабочих станций понадобится комбинация из различных вариантов реализации шины.
Совершенно новые требования выдвигаются к механическим показателям PCI Express. Для того, чтобы периферийные платы не имели возможности вывалиться из слота при вибрации или транспортировке, разработаны повышенные требования к защелкам и крепежу разъемов PCI Express.
Несмотря на то, что новый стандарт дает некую свободу конечным производителям при разработке крепежа, жестко оговоренными остаются следующие требования: энергопотребление – не более 75 Вт, вес – не более 350 граммов, высота – не более 115,15 мм.
Конечно, под такими монстрами прозрачно подразумеваются графические карты с интерфейсом PCI Express 16x; во всех других случаях требования к крепежу и другим характеристикам контроллеров значительно скромнее.
Особняком стоит реализация PCI Express для мобильных устройств в виде стандарта ExpressCard. Первыми поддержку модулей этого подстандарта получат ноутбуки и миниатюрные настольные ПК, хотя, уже известны случаи представления концепций серверных плат с разъемом ExpressCard. основное преимущество применения таких модулей - подключение периферии практически без нужды использования крепежного инструмента, а также инсталляции дополнительных драйверов. Технология ExpressCard заменит собой все устаревшие параллельные шины, в результате останутся только три современных интерфейса - PCI Express, USB 2.0 и FireWire.
В настоящее время разработано два форм-фактора модулей ExpressCard – ExpressCard/34 (ширина 34 мм) и ExpressCard/54 (ширина 54). Оба модуля имеют высоту 5 мм, как у стандарта PC Card Type II; длина модулей 75 мм, что на 10,6 мм меньше, чем у PC Card. При этом, модули ExpressCard/34 и ExpressCard/54 обладают одинаковым интерфейсом. Каждый слот под модули ExpressCard может обслуживать шину PCI Express x1.
Преимущества PCI Express
Сравнивая возможности господствовавшей многие годы параллельной шины PCI и архитектуру PCI Express, можно выделить пять наиболее значимых преимуществ последней:
• Высокая производительность – повышение пропускной способности версии x1 как минимум вдвое по сравнению с PCI, возможность линейного наращивания производительности путем линейного расширения шины. Помимо этого, PCI Express является реально дуплексной шиной.
• Упрощение разводки периферии – стандартизация там, где ранее использовались всевозможные варианты PCI - AGP, PCI-X и др.; снижение комплексных затрат на разработку и внедрение систем.
• Уровневая архитектура – основные затраты на развитие PCI Express в дальнейшем ложатся лишь на разработку соответствующей обвязки, можно экономить на возможности работы с прежним программным обеспечением.
Итак, переходим к самому интересному. Что же находится на сегодняшний день внутри большинства наших компьютеров? Естественно, шина 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 плат различаются расположением ключей
- 132 МВ/сек при 32-bit/33MHz;
- 264 MB/сек при 32-bit/66MHz;
- 264 MB/сек при 64-bit/33MHz;
- 528 МВ/сек при 64-bit/66MHz.
При разработке шины в ее архитектуру были заложены передовые технические решения, позволяющие повысить пропускную способность.
Шина поддерживает метод передачи данных, называемый "linear burst" (метод линейных пакетов). Этот метод предполагает, что пакет информации считывается (или записывается) "одним куском", то есть адрес автоматически увеличивается для следующего байта. Естественным образом при этом увеличивается скорость передачи собственно данных за счет уменьшения числа передаваемых адресов.
Шина PCI является той черепахой, на которой стоят слоны, поддерживающие "Землю" — архитектуру Microsoft/Intel Plug and Play (PnP) PC architecture. Спецификация шины PCI определяет три типа ресурсов: два обычных (диапазон памяти и диапазон ввода/вывода, как их называет компания Microsoft) и configuration space — "конфигурационное пространство".
- заголовка, независимого от устройства (device-independent header region);
- региона, определяемого типом устройства (header-type region);
- региона, определяемого пользователем (user-defined region).
В заголовке содержится информация о производителе и типе устройства — поле Class Code (сетевой адаптер, контроллер диска, мультимедиа и т.д.) и прочая служебная информация.
Следующий регион содержит регистры диапазонов памяти и ввода/вывода, которые позволяют динамически выделять устройству область системной памяти и адресного пространства. В зависимости от реализации системы конфигурация устройств производится либо BIOS (при выполнении POST — power-on self test), либо программно. Базовый регистр expansion ROM аналогично позволяет отображать ROM устройства в системную память. Поле CIS (Card Information Structure) pointer используется картами cardbus (PCMCIA R3.0). С Subsystem vendor/Subsystem ID все понятно, а последние 4 байта региона используются для определения прерывания и времени запроса/владения.
«– В этом поезде никто ничего не знает!
– А чего еще ждать от этих бездельников иностранцев?»
Агата Кристи, «Восточный Экспресс».
Итак, господа, пришло время сменить шину, в течение 10 лет бывшую общепринятым индустриальным стандартом. PCI, первая версия стандарта которой была разработана еще в 1991 году, прожила долгую и счастливую жизнь, в различных своих ипостасях являясь основой для малых и крупных серверов, промышленных компьютеров, ноутбуков и графических решений (напомним, что AGP также ведет свою родословную от PCI и является специализированным и расширенным вариантом последней). Но, прежде чем рассказывать о новинке, подобьем исторических бабок, вспомнив как происходило развитие PCI. Ибо, не однократно было замечено, что, говоря о будущих перспективах, всегда полезно найти исторические аналогии: История PCI
В 1991 году Intel предлагает базовую версию (1.0) проекта стандарта шины PCI (Peripheral Component Interconnect Соединение Периферийных Компонент). PCI призвана заменить ISA (а позже и ее не очень удачную и дорогую серверную расширенную модификацию EISA). Кроме значительно возросшей пропускной способности, новую шину характеризует возможность динамической конфигурации выделяемых присоединенным устройствам ресурсов (прерываний).
- Тактовая частота шины 33 МГц, используется синхронная передача данных;
- Пиковая пропускная способность 133 МБ в секунду;
- Параллельная шина данных шириною 32-бита;
- Адресное пространство 32-бита (4 ГБ);
- Сигнальный уровень 3,3 или 5 вольт.
- PCI 2.2 допускается 64-бит ширина шины и/или тактовая частота 66 МГц, т.е. пиковая пропускная способность до 533 МБ/сек.;
- PCI-X, 64-бит версия PCI 2.2 с увеличенной до 133 МГц частотой (пиковая пропускная полоса 1066 МБ/сек.);
- PCI-X 266 (PCI-X DDR), DDR версия PCI-X (эффективная частота 266 МГц, реальная 133 МГц с передачей по обоим фронтам тактового сигнала, пиковая пропускная полоса 2.1 ГБ/сек);
- PCI-X 533 (PCI-X QDR), QDR версия PCI-X (эффективная частота 533 МГц, пиковая пропускная полоса 4,3 ГБ/сек.);
- Mini PCI PCI с разъемом в стиле SO-DIMM, применяется преимущественно для миниатюрных сетевых, модемных и прочих карточек в ноутбуках;
- Compact PCI стандарт на форм фактор (модули вставляются с торца в шкаф с общей шиной на задней плоскости) и разъем, предназначенные в первую очередь для промышленных компьютеров и других критических применений;
- Accelerated Graphics Port (AGP) высокоскоростная версия PCI оптимизированная для графических ускорителей. Отсутствует арбитраж шины (т.е. допустимо только одно устройство, за исключением последней, 3.0 версии стандарта AGP, где устройств и слотов может быть два). Передачи в сторону ускорителя оптимизированы, есть набор специальных дополнительных возможностей специфических для графики. Впервые данная шина появилась вместе с первыми системными наборами для процессора Pentium II. Существует три базовых версии протокола AGP, дополнительная спецификация на питание (AGP Pro) и 4 скорости передачи данных от 1х (266 МБ/сек) до 8х (2ГБ/сек), в том числе допустим сигнальные уровни 1,5, 1,0 и 0,8 вольт.
Упомянем также CARDBUS 32 разрядную версию шины для PCMCIA карт, с горячим подключением и некоторыми дополнительными возможностями, тем не менее, имеющую много общего с базовой версией PCI.
- Создание специализированных модификаций (AGP);
- Создание специализированных форм факторов (Mini PCI, Compact PCI, CARDBUS);
- Увеличение разрядности;
- Увеличение тактовой частоты и применение DDR/QDR схем передачи данных.
Все это вполне логично, учитывая огромный срок жизни подобного всеобщего стандарта. Причем, пункты 1 и 2 не ставят своей целью сохранение совместимости с базовыми PCI картами, а вот пункты 3 и 4 выполняются за счет увеличения оригинального PCI разъема, и допускают установку обычных 32х разрядных PCI карт. Справедливости ради, отметим, что в ходе эволюции шины случались и сознательные потери совместимости со старыми картами, даже для базового варианта разъема PCI например, в спецификации 2.3 исчезло упоминание о поддержке 5 вольт сигнального уровня и питающего напряжения. В результате, серверные платы снабженные этой модификацией шины могут пострадать при установке в них старых, пятивольтовых карт, хотя, с точки зрения геометрии разъема, эти карты к ним подходят.
Однако, как и любая другая технология (например, архитектуры процессорных ядер), шинная технология имеет свои разумные границы масштабирования, при приближении к которым увеличение пропускной полосы дается все большей и большей ценою. Возросшая тактовая частота требует более дорогостоящей разводки и накладывает существенные ограничения на длину сигнальных линий, увеличение разрядности или использование DDR решений также влечет за собою множество проблем, которые в итоге банально выливаются в рост стоимости. И если в серверном сегменте, решения подобные PCI-X 266/533 еще будут некоторое время экономически оправданными, то в потребительских PC мы их не увидели, и не увидим. Почему? Очевидно, что в идеале пропускная способность шин должна расти синхронно с ростом производительности процессора, при этом цена реализации должна не только сохраняться прежней, но и в идеале снижаться. На данный момент это возможно только при использовании новой шинной технологии. О них мы сегодня и поговорим: Эпоха последовательных шин
- Выгодный перенос все большей части практической реализации шины на кремний, что облегчает отладку, повышает гибкость и сокращает время разработки;
- Перспектива органично использовать в будущем иные носители сигнала, например оптические;
- Экономия пространства (не бьющая по карману миниатюризация) и снижение сложности монтажа;
- Проще реализовывать горячие подключения и динамическую конфигурацию в любом смысле;
- Возможность выделять гарантированные и изохронные каналы;
- Переход от разделяемых шин с арбитражем и непредсказуемыми прерываниями, неудобными для надежных/критических систем к более предсказуемым соединениям точка-точка;
- Лучшая с точки зрения затрат и более гибкая с точки зрения топологии масштабируемость;
- Этого еще не достаточно. ;-).
В будущем же следует ожидать перехода на беспроводные шины, технологии подобные UWB (Ultra Wide Band) однако, это дело не ближайшего года и даже не пяти лет.
- Как уже неоднократно упоминалось новая шина последовательна, а не параллельна. Основные преимущества снижение стоимости, миниатюризация, лучшее масштабирование, более выгодные электрические и частотные параметры (нет необходимости синхронизировать все сигнальные линии);
- Спецификация разделена на целый стек протоколов, каждый уровень которого может быть усовершенствован, упрощен или заменен не сказываясь на остальных. Например может быть использован иной носитель сигнала или может быть упразднена маршрутизация в случае выделенного канала только для одного устройства. Могут быть добавлены дополнительные контрольные возможности. Развитие такой шины будет происходить гораздо менее болезненно увеличение пропускной способности не потребует изменять контрольный протокол и наоборот. Быстро и удобно разрабатывать адаптированные варианты специального назначения;
- В изначальной спецификации заложены возможности горячей замены карт;
- В изначальной спецификации заложены возможности создания виртуальных каналов, гарантирования пропускной полосы и времени отклика, сбора статистики QoS (Quality of Service Качество Обслуживания);
- В изначальной спецификации заложены возможности контроля целостности передаваемых данных (CRC);
- В изначальной спецификации заложены возможности управления питанием.
Итак, более широкие диапазоны применимости, более удобное масштабирование и адаптация, богатый набор изначально заложенных возможностей. Все так хорошо, что просто не верится. Впрочем, в отношении этой шины, даже заядлые пессимисты высказываются скорее положительно, чем отрицательно. И это не удивительно кандидат на десятилетний трон общего стандарта для большого числа различных применений (начиная с мобильных и встраиваемых и заканчивая серверами «Энтерпрайз» класса или критическими применениями) просто обязан выглядеть безупречным со всех сторон, хотя бы на бумаге :-). Как оно будет в деле мы скоро увидим сами. PCI Express как это будет выглядеть
Самый простой вариант перехода на PCI-Express для стандартных по архитектуре настольных систем выглядит так:
Однако в будущем логично ожидать появление некоего разветвителя PCI Express. Тогда вполне оправданным станет и объединение северного южного мостов. Приведем примеры возможных системных топологий. Классический PC с двумя мостами:
Более обобщенная (серверная) архитектура с одним мостом:
Производительный сетевой раутер:
Гибкость решения позволяет создавать различные топологические схемы, оптимально балансируя пропускную способность. А теперь ответим на вопрос «как это будет выглядеть» дословно. Карта:
(мысленно отломайте верхнюю и заднюю части, и вы увидите так называемый низкопрофильный вариант). А вот типичная для PC сектора системная плата с тремя х1 и одним х8 (в том числе, для графических карт) разъемами:
Те же разъемы вблизи:
Как уже упоминалось, предусмотрен и стандартизирован Mini PCI Express слот:
И новый слот для внешних заменяемых карт, на подобии CARDBUS, на который вынесена не только PCI Express но и USB 2.0:
Интересно, что предусмотрено два форм фактора карт, но отличаются они не толщиной как ранее, а шириной:
Решение очень удобное во-первых делать двухэтажный монтаж внутри карты гораздо дороже и неудобнее нежели сделать карту с платой большей площади внутри, во-вторых, карта полной ширины получит в итоге вдвое большую пропускную полосу, т.е. второй разъем не будет простаивать без дела. С электрической или протокольной точки зрения шина NewCard не несет ничего нового, все необходимые для горячей замены или энергосбережения функции уже заложены в базовой спецификации PCI Express.PCI Express переход
Для облегчения перехода предусмотрен механизм совместимости с программным обеспечением, написанным для PCI (драйверы устройств, OS). Кроме того, разъемы PCI Express в отличие от PCI расположены на другой стороне отведенной для карты расширения секции, т.е. могут сосуществовать на одном месте с PCI разъемами. Пользователю останется только выбирать какую карту он хочет вставить. В первую очередь появление PCI Express ожидается в начальных серверных (двупроцессорных) платформах Intel в первой половине 2004 года, затем в настольных платформах класса «Энтузиаст» и рабочих станциях (в том же году). Насколько быстро PCI Express будет поддержана другими производителями чипсетов не ясно, однако и NVIDIA и SIS отвечают на вопрос утвердительно, хотя и не называют конкретные сроки. Уже давно запланированы и готовятся к выходу в первой половине 2004 года графические решения (ускорители) от NVIDIA и ATI, снабженные встроенной поддержкой PCI Express х16. Множество других производителей являются активными участниками разработки и тестирования PCI Express и также намерены представить свои продукты до конца 2004 года.
Посмотрим! Есть подозрение, что ребеночек вышел удачный.
В добрый путь, PCI Express: отправление 2004, прибытие 2014.
Читайте также: