Pci разъем для чего
Раз уж мы затронули немножко в комментариях к предыдущей статье тему расширения PCI Express и вывода шины за пределы шасси, следует наверное рассказать об этом чуть подробнее.
Небольшой дисклеймер – информацию обо всем, о чем говорится ниже, можно найти используя Google. Мы, конечно, про некоторые вещи знаем гораздо больше подробностей, чем можем рассказывать исходя из условий NDA.
Начнем издалека – с истории PCI Express вообще и нюансов с этим связанных. Спецификация первой ревизии появилась в далеком 2003 году, при этом поддерживалась скорость в 2.5 GTs на лэйн и агрегация до 16 лэйнов на порт (кстати, это наверное единственное, что так и не изменилось – несмотря на робкие упоминания и даже официальную поддержку в версии 2.0 ширины в x32, насколько мне известно никто порты такой ширины реально так и не поддерживает до сих пор). Обратите внимание, что скорость указана в GTs (транзакций в секунду) – это не биты данных, реальная битовая скорость ниже за счет кодирования 8b/10b (для версий до 2.1 включительно).
В течение следующих лет началось эволюционное развитие стандарта:
• 2005 год – релиз спецификации 1.1, содержащей незначительные улучшения без увеличения скорости
• 2007 год – стандарт версии 2.0, скорость на лэйн выросла в два раза (до 5GTs или 4Gbps)
• 2009 год – релиз версии 2.1, содержащей множество улучшений, по сути являющихся подготовкой к переходу к третьей версии
• 2010 – существенный скачок, переход к версии 3.0, который помимо увеличения канальной скорости до 8 GTs принес переход к новой кодировке (128b/130b), что позволило значительно сократить накладные расходы на передачу собственно данных. То есть если для версии 2.0 при скорости 5 GTs реальная битовая скорость составляла всего 4 Gbps, то для версии 3.0 при скорости 8 GTs битовая скорость составляет ~7.87 Gbps – разница ощутимая.
• 2014 – релиз спецификации 3.1. В него включены различные улучшения обсуждавшиеся в рамках рабочих групп.
• 2017 – ожидается релиз финального варианта спецификации 4.0.
Далее будет большое лирическое отступление. Как видно из графика выхода спецификаций, рост скорости шины фактически остановился аж на семь лет, в то время как производительность компонентов вычислительных систем и сетей интерконнекта и не думала стоять на месте. Здесь надо понимать, что PCI Express, хоть и является независимым стандартом, развиваемым рабочей группой с огромным количеством участников (PCI Special Interest Group – PCI-SIG, мы тоже являемся членами этой группы), направление его развития тем не менее во многом определяется мнением и позицией Intel, просто потому, что подавляющее большинство PCI Express устройств стоит именно в обычных домашних компьютерах, ноутбуках и low-end серверах – царстве процессоров с архитектурой x86. А Intel – корпорация большая, и у нее могут быть свои планы, в том числе и слегка идущие в разрез с желаниями других участников рынка. И многие из этих участников были, мягко говоря, недовольны задержкой увеличения скорости (особенно те, кто вовлечен в создание систем для High Performance Computing – HPC, или, попросту — суперкомпьютеров). Mellanox например давно уже уперся в развитии InfiniBand в бутылочное горлышко PCI Express, NVIDIA тоже явно страдала от несоответствия скорости PCI Express потребностям в передаче данных между GPU. Причем чисто технически скорость увеличить можно было бы уже давно, но многое упирается в необходимость сохранения обратной совместимости. К чему это все в итоге привело:
• NVIDIA создала свой собственный интерконнект (NVLINK, первая версия имеет скорость 20 GTs на лэйн, вторая будет иметь уже 25 GTs) и объявляет о готовности лицензировать его всем желающим (к сожалению только хостовую часть, лицензирование end-point’а пока не предполагается)
• IBM добавляет в процессоры POWER8 поддержку NVLINK 1.0 (уже доступна в процессорах POWER8+)
• В POWER9 (которые появятся на рынке в 2017 году) IBM будет поддерживать NVLINK 2.0, а также на тех же самых физических портах можно будет использовать протокол OpenCAPI – когерентный интерфейс для подключения ускорителей.
• В POWER9 IBM реализует PCI Express на скорости 16 GTs, что соответствует драфту спецификации 4.0 – то есть, похоже, Intel окажется не первым, кто поддержит новый стандарт.
Roadmap по процессорам POWER
Кстати, относительно указания скорости есть любопытный момент. Общепринятым вариантом указания скорости работы PCI Express устройства являются обозначения типа Gen1, Gen2, Gen3. По факту же к этому надо относиться именно как к указанию поддерживаемой скорости, а не соответствия стандарту соответствующей версии. То есть, например, устройству, полностью соответствующему стандарту 3.1 никто не запрещает не уметь работать на скорости выше 5 GTs.
Собственно, чем хорош PCI Express с точки зрения разработчика – тем, что это наиболее прямой и унифицированный (поддерживаемый самыми разными платформами) способ подключить что бы то ни было к центральному процессору с минимальными накладными расходами. Конечно, у процессоров Intel есть еще QPI – но это шина, доступ к которой дают очень (ОЧЕНЬ!) ограниченному кругу особо приближенных компаний. У IBM в POWER8 это X-Bus, A-Bus и, в будущем (для POWER9) – OpenCAPI, но о стоимости лицензирования первых двух вообще лучше не думать а третьей пока еще вообще нет (хотя она как раз должна быть открытой). Ну и конечно прямое подключение через PCI Express актуально только тогда, когда хочется много, быстро и с минимальной задержкой. Для всех остальных случаев есть USB, SAS/SATA, Eth и иже с ними.
Несмотря на то, что PCI Express изначально задумывался именно для подключения компонентов внутри компьютера, желание подключить что-нибудь кабелем возникло достаточно быстро. В быту этого как правило не требуется (ну разве что для ноутбуков иногда хотелось бы внешнюю видеокарту подключить или что-нибудь типа того), но для серверов, особенно с появлением PCI Express коммутаторов, это стало очень актуальным – необходимое количество слотов иногда не так уж просто разместить внутри одного шасси. Да и с развитием GPU и сетей вычислительного интерконнекта, особенно с появлением технологии GPU Direct, желание иметь много устройств подключенных по PCI Express к одному хосту только возрастало.
Первые варианты кабельного подключения PCI Express были стандартизированы еще в 2007 году (спецификация 1.0), вторая ревизия вышла в 2012 году, сохранив неизменным тип разъемов и кабеля. Нельзя сказать, что такое подключение получило очень широкое распространение (все же ниша достаточно узкая), но тем не менее несколько крупных вендоров выпускали как разъемы, так и кабели, в том числе активную оптику. Одной из наиболее известных компаний, предлагающих различные варианты шасси расширения с подключением шины PCI Express кабелем, является One Stop Systems.
Кабель для внешних подключений PCI Express
Однако кабель (и разъем), выбранные изначально, сегодня уже не очень удобны. Первая (и довольно существенная) неприятность заключается в том, что невозможно разместить количество разъемов, необходимое для вывода порта шириной x16, на одной низкопрофильной карте (точнее, можно использовать специальный коннектор для x16, но при этом теряется универсальность в плане использований портов меньшей ширины, да и сам этот тип коннектора как-то не прижился). Второе неудобство происходит из того, что такой тип кабелей особо больше нигде не используется.
Между тем в индустрии существует стандарт с долгой историей использования кабелей, а именно – SAS. И текущая версия SAS 3.0 работает на скорости 12GTs, что в полтора раза превосходит скорость PCI Express Gen3, то есть SAS-кабели неплохо подходят и для подключения по ним PCI Express. Кроме того, Mini-SAS HD коннекторы еще очень удобны тем, что по одному кабелю идет сразу 4 лэйна, и существуют сборки на 2 и 4 коннектора, что позволяет использовать порты шириной x8 и x16. Размеры коннекторов при этом достаточно компактны, чтобы сборка на 4 коннектора уместилась на низкопрофильной карте. Дополнительным плюсом этих кабелей является то, что и в самом коннекторе, и в кабельной сборке сигналы Tx и Rx разнесены – это позволяет снизить их взаимное влияние. Соответственно сейчас все больше решений, где надо вывести PCI Express кабелем за пределы шасси, используют именно Mini-SAS HD.
Кабель и разъемы Mini-SAS HD
Как следствие описанного выше, а также того, что в скором будущем выйдет SAS 4.0 который будет иметь скорость 24GTs и сохранит при этом кабели того же форм-фактора (Mini-SAS HD), участники PCI-SIG решили стандартизировать использование именно этого типа кабелей для внешнего подключения PCI Express (включая ревизию 4.0 в будущем).
Теперь немного о нюансах использования кабелей (любых) и проблемах, которые приходится решать. Интересующие нас кабели бывают двух типов – пассивные медные и активные оптические. С медными проблем меньше, но для них все равно нужно учитывать следующие моменты:
• при использовании пассивных кабелей из соображений обеспечения целостности сигнала необходимо на плате адаптера ставить или редрайверы, или коммутатор PCI Express; коммутатор необходим в случае, если хочется иметь возможность бифуркации порта x16, приходящего с хоста, на большее число портов (например 2x8 или 4x4), а также если удаленная сторона не поддерживает работу с раздельным 100MHz Reference Clock или необходимо обеспечить наличие непрозрачного моста (NT Bridge) между двумя хостами;
• в случае если необходим агрегированный линк (x8, x16) стоит обратить особое внимание на допустимый разброс длины кабелей конкретного производителя (он бывает особенно велик для длинных кабелей, и тогда можно получить значительный перекос длины между лэйнами одного порта, который превысит заложенные в стандарте допуски);
• нужно учитывать, что в кабеле Mini-SAS HD проходят только четыре дифф. пары и линии земли, то есть весь набор sideband сигналов, необходимых для полноценной работы PCI Express, там не протянуть; это может быть не критично, если кабель используется для связи двух коммутаторов, а вот в случае когда нужно просто удаленно подключить endpoint возможно придется использовать дополнительные кабели для проброса сигналов сброса и управления Hot Plug’ом;
• наверное излишне упоминать, что обе стороны должны быть заземлены, иначе возможно возникновение паразитного тока через линии земли кабеля, что совсем нежелательно.
Применение активных оптических кабелей позволяет не задумываться о части вопросов, которые приходится решать при использовании пассивной меди (редрайверы можно не ставить, поскольку конечной точкой прохождения электрического сигнала является сам трансивер, заземление тоже перестает волновать, так как две стороны кабеля являются гальванически изолированными), но при этом оптика не только не решает остальные проблемы присущие пассивным кабелям, но и привносит новые, присущие только ей:
• помимо ограничения на одинаковую длину кабелей появляется еще и ограничение на их идентичность – крайне нежелательно в пределах одного порта использовать кабели разных производителей, поскольку они могут иметь разную задержку на трансиверах;
• оптические трансиверы не поддерживают передачу состояния «Electrical Idle»;
• сюрприз – активные трансиверы сильно греются, и их нужно охлаждать;
также могут быть определенные нюансы, связанные с импедансом трансиверов, уровнями их сигналов и терминированием.
Конечно же Mini-SAS HD — не единственный тип кабелей и разъемов, которые можно использовать для подключения PCI Express. Можно вспомнить к примеру про классические QSFP или CXP, которые вполне подходят для этих целей, или подумать о более экзотических вариантах вроде установки оптического трансивера прямо на плату и выходе с карты сразу оптикой (у того же Avago Broadcom есть много подходящих вариантов, ну или вот например Samtec FireFly) — но все эти варианты оказываются существенно дороже или не очень удобны исходя из габаритов разъемов.
Кроме упомянутой выше инициативы по стандартизации Mini-SAS HD в качестве кабеля для внешних подключений PCI-SIG также занимается разработкой нового стандарта кабелей, который хоть и носит название OCuLink (Optical & Cuprum Link), скорее все же будет подразумевать только пассивные медные кабели, как для внутренних (в пределах шасси), так и для внешних подключений. Разъемы и кабели этого стандарта достаточно компактны, на рынке уже существуют серийные продукты, соответствующие этому, еще не выпущенному стандарту (у Molex это называется NanoPitch, Amphenol также предлагает кабели такого форм-фактора, в том числе и активные). К сожалению, эти разъемы также не подразумевают размещение четырех коннекторов на низкопрофильной карте. В сочетании с тем, что ни один вендор из тех, с кем мы общаемся, пока не планирует делать активную оптику с такими коннекторами, это вряд ли будет способствовать использованию этого типа кабелей для внешних подключений. А вот как вариант для внутренних кабелей это достаточно интересно, более того, мы уже видели проекты с их использованием и сами собираемся применять этот тип кабелей в нашем сервере для подключения дискового контроллера к материнской плате.
Внутренний кабель стандарта OCuLink
Теперь немножко про наши продукты. У нас есть проект, про него мы наверное тоже чуть позже будем подробнее рассказывать, который предполагает создание шасси с развитой коммутационной топологией PCI Express и подключение его к нескольким хостам. Понятно, что в этом случае не обойтись без вывода PCI Express через кабели, и для этого мы сделали плату адаптера на базе PCI Express коммутатора PLX (который был куплен Avago, который еще и переименовался в Broadcom после того, как и его тоже купил – в общем эти поглощения уже надоели, поэтому будем называть его по-прежнему PLX). Для нашего решения мы использовали кабели Mini-SAS HD – все же это нам кажется оптимальным вариантом, и судя по направлению работы PCI-SIG – мы не одиноки в этом убеждении.
Адаптер собственной разработки для вывода PCI Express через кабель
После получения и тестирования первых образцов мы с некоторым удивлением обнаружили, что при использовании качественных пассивных кабелей можно обеспечить работоспособность шины на скорости 8GTs (Gen3) через кабель длиной до 10 метров (длиннее пассивных кабелей мы просто не видели). А если требуется больше – то мы можем работать и с активными оптическими кабелями (проверили – работает).
На самом деле ставить достаточно дорогой чип коммутатора PCI Express в нашем проекте есть смысл только на одной стороне – стороне хоста, чтобы обеспечить возможность бифуркации порта x16 на четыре порта по x4. На другом конце кабеля достаточно поставить адаптер с редрайверами, поскольку в нашем варианте на этой стороне все будет и так подключаться к PCI Express коммутатору, который можно запрограммировать на требуемое разбиение порта.
При использовании Mini-SAS HD для передачи PCI Express стоит обратить внимание еще на один нюанс. Нумерация пар в коннекторе, предполагаемая SAS, не очень удобна для брейкаута в случае PCI Express. До тех пор, пока вы не предполагаете работать со сторонним оборудованием это не критично – можете подключать как вздумается вообще. Но если есть желание обеспечить совместимость с другими продуктами в будущем, то лучше придерживаться рекомендации PCI-SIG и изменить порядок подключения лэйнов.
Неудивительно, что ISA очень долго сохраняла свою популярность, и даже сейчас, за весьма большие деньги продаются материнские платы с поддержкой этой шины — по ней подключается слишком много незаменимых устройств.
На основании ISA был разработан ряд производных интерфейсов, начиная с PCMCIA и заканчивая ATA (по сути — упрощенное подмножество интерфейса ISA). Разрабатывались ускоренные варианты шины: EISA (32 бита, 8 МГц) и VESA Local Bus (использовалась для подключения видоадаптера).
Со временем, IBM утратили лидирующую роль в разработке PC, поэтому над следующим поколением интерфейсов уже работали инженеры компании Intel. В самом начале 90-х гг… был разработан новый стандарт, получивший название Peripheral Component Interconnect или PCI. В 1992 году свет увидел первый стандарт PCI, тогда же была создана PCI Special Interest Group — организация, занимающаяся разработкой и продвижением данного стандарта. Стандарт был объявлен открытым, поэтому любой желающий мог разрабатывать PCI-устройства без выплаты отчислений.
Первая версия шины поддерживала 32 и 64 бита, работала на частоте 33 мегагерца и в теории обеспечивала скорость до 133 Мб/с (на практике около 80 Мб/с).
Начав свое победное шествие с рынка серверов, новый стандарт не сразу завоевал настольные ПК. Одним из пионеров его использования была компания Apple, отказавшаяся от интерфейса NuBus в своих продуктах 95-96 годах.
Максимальная популярность к новому интерфейсу пришла в 1995 году с появлением версии 2.1 (так же названной «параллельная шина PCI»). Данная ревизия подразумевала работу с частотой 66 МГц и максимальную скорость передачи в 533 Мбайт/с (для 64-битного варианта). Появились реализации PCI для платформ с процессорами Alpha, MIPS, PowerPC, SPARC и т.д.
Кстати, одним из главных нововведений PCI стала возможность автоматического конфигурирования параметров устройства, эту технологию в Intel назвали Plug-n-Play, а благодаря «стабильной» реализации ее программной поддержки в продуктах Microsoft, эта технология стала объектом множества шуток и анекдотов.
Попыткой экстенсивного развития технологии можно считать шину PCI-X, в основном использовавшуюся в серверах. Первая версия данного стандарта работала с частотой 100 и 133 МГц, а также вводила механизм раздельных транзакций для оптимизации работы нескольких карт. Сейчас иногда используется шина PCI-X 2.0, обеспечивающая работу на частотах в 266 и 533 МГц.
В 2004 году свет увидел новый стандарт, в котором были учтены все проблемы PCI. Новая шина получила название PCI Express или просто PCIe (главное — не путать ее с PCI-X). Новая технология предложила массу интересных решений.
— для передаваемых данных осуществляется контроль целостности
— QoS обеспечивает для подключенных устройств гарантированную полосу пропускания
— есть управление питанием подключенных устройств и возможность их горячей замены
Главное же отличие состоит в том, что PCIe использует не «шинную» топологию а «звезду», то есть каждое устройство связанно с коммутатором отдельной линией.
Пропускная способность односвязной PCIe первой версии составляла 4 Гбит/с в обе стороны. Максимальная скорость в стандарте PCIe 4 версии (находится в разработке и планируется к выходу в 2015 году) достигает 1024 Гбит/с. Как видите, по этому параметру PCIe обладает хорошим запасом, хотя расслабляться не приходится, конкуренты не дремлют.
Недавно Джереми Вернер (Jeremy Werner), один из старших директоров подразделения флэш-технологий (SandForce) в LSI дал очень интересное интервью, касающееся PCIe и SSD. В полном виде вы можете ознакомиться с ним на английском, я же вкратце перескажу одну мысль, которая мне показалась особенно интересной:
Максимальная скорость современного интерфейса SATA составляет 6 Гбит/с, при этом SATA является полудуплексным, то есть не умеет одновременно передавать и принимать данные. Не так редко встречающийся PCIe 2 поколения с 4 линиями передачи данных обеспечивает скорость до 20 ГБит/с в полнодуплексном режиме. Фактически, PCIe получается где-то в 7 раз быстрее. Но традиционные жесткие диски просто не нуждаются в таких скоростях передачи данных. Только SSD сейчас могут обеспечивать скорость, достаточную для полноценного использования высокоскоростных интерфейсов.
Сочетание интерфейсов типа M.2 и высокоскоростных флэш-накопителей, похоже, приближает будущее, в котором дисковая подсистема перестанет быть самым узким местом в ПК. Ярким примером могут послужить компьютеры Apple — компания как игрок премиум сегмента может себе позволить эксперименты с новыми решениями, и они оказываются очень удачны с точки зрения производительности. Но в силу дешевизны, традиционные жесткие диски и SATA-интерфейс еще не думают сдаваться так просто, поэтому тотального наступления светлого будущего придется немного подождать.
С момента появления домашних компьютеров существует возможность расширять их функционал путём установки большего количества RAM, более ёмких накопителей, дополнительных комплектующих. Но только с появлением IBM PC привычной стала идея о полностью открытой модульной компьютерной системе. А именно, концепция карт расширения позволила пользователям компьютеров не зависеть от конфигураций систем, предлагаемых производителями. Подобные конфигурации можно было, в ограниченных пределах, расширять комплектующими, рассчитанными исключительно на эти системы. Благодаря универсальным картам расширения появились целые отрасли промышленности, они стали и причиной возникновения большого рынка любительских устройств, которые можно было подключать к компьютерам.
Такая открытость ISA означала то, что можно было достаточно легко и дёшево создавать собственные ISA-карты. То же касалось и шины PCI, которая появилась после ISA и была такой же открытой. В результате до сих пор существует полная жизни экосистема, в которой есть место и любительским звуковым картам, рассчитанным на слоты PCI или ISA, и картам расширения, позволяющим оснастить IBM PC 1981-го года поддержкой USB, и много чему ещё.
С чего начать тому, кто в наши дни хочет заняться работой с ISA- и PCI-картами?
Работа с шинами
Каждое устройство, подключённое к шине, увеличивает нагрузку на неё. Кроме того, если речь идёт о шинах с общими линиями связи, важно, чтобы отдельные устройства могли бы отключаться от этих линий в то время, когда они эти линии не используют. Обычно для реализации такой схемы работы используется буферный элемент с тремя состояниями. Например — такой, как распространённый 74LS244.
Логическая схема 74LS244
74LS244 может не только обеспечивать изоляцию, что умеют и стандартные цифровые буферы. Этот элемент может переключаться в высокоимпедансное состояние (Hi-Z), что равносильно отключению устройства.
В случае с ISA-картами нам, для организации правильного взаимодействия с шиной, нужно нечто вроде 74LS244 или его двунаправленного варианта 74LS245. У каждой сигнальной линии должен быть буфер или «защёлка». Подробнее об этом можно почитать здесь. А тут описан хороший пример современной ISA-карты, называемой Snark Barker и представляющей собой клон SoundBlaster.
PCI-карты, по идее, тоже можно создавать, используя подобный подход, но обычно в коммерческих PCI-картах используют специализированные интегральные схемы для ускорения ввода-вывода, которые предоставляют компонентам карт простой интерфейс, похожий на ISA. Подобные решения в наши дни, правда, нельзя назвать дешёвыми (если только не рисковать, связываясь с чем-то вроде WCH CH365). Поэтому хорошей альтернативой подобным решениям является реализация PCI-контроллера на базе FPGA. MCA-версия вышеупомянутой карты Snark Barker использует для взаимодействия с шиной MCA CPLD. На сайтах вроде OpenCores имеются проекты, ориентированные на PCI, которые можно использовать в качестве отправной точки для собственных разработок.
О контроллере
Есть еще такое понятие как PCI-контроллер Simple communications или Management Engine Interface, который обеспечивает взаимодействие драйверов установленных на компе программ и дров материнки. Иногда после переустановки системы в Диспетчере устройств рядом с этим пунктом загорается желтый треугольник.
В этом случае следует скачать драйвера на официальном сайте Intel или другом надежном ресурсе и установить их. Ведь данный интерфейс контролирует температуру, вращение кулеров, режимы сна и пр.
Характеристики PCI
Основные параметры порта, о которых стоит знать:
- Частота — 33,33 или 66,66 мегагерц, пересылка информации осуществляется синхронно;
- Разрядность — как обычно, 32 либо 64 бита;
- Адресное пространство памяти и портов ввода-вывода одинаковое — 4 байта (32 бита);
- Другое пространство адресов (конфигурационное) в расчете на 1 функцию составляет 256 байт;
- Максимальная скорость модели на 32 бита и 33 МГц составляет 133 мегабайта за секунду;
- Напряжение — 3,3 или 5 Вольт;
- Имеется функция Multiply bus master, то есть несколько контроллеров винчестеров могут действовать на одной шине сразу.
Разница с PCI-Express
Это современная модификация предшественника. В ее основе лежит программная модель PCI, однако существенно повышена производительность. Большинство устройств в настоящее время выпускаются именно с этим интерфейсом.
Первое отличие между ними состоит в том, что устаревший вариант — параллельный, а новый — последовательный. Это значит, что во втором случае действует двунаправленное соединение, которое может включать в себя несколько линий (от x1 до x32). Чем их больше, тем выше скорость работы.
Как бы там ни было, пропускная способность современной шины будет выше, чем у устаревшего собрата. Для сравнения: у PCI с частотой 66 МГц она составляет 266 Мб/с, а у PCI-E 3-го поколения на 16 линий — 32 Гб/с.
Теперь вам известны основные аспекты о PCI.
Советую не останавливаться на этой информации и получить новые знания из других статей нашего блога.
Цена простоты
По мере того, как разработчики клонов PC использовали в своих моделях компьютеров всё более быстрые процессоры, частота шины AT, в итоге, пришла к значениям, находящимся где-то между 10 и 16 МГц. Это, понятно, привело к тому, что многие существующие AT-карты (ISA) работали в подобных системах неправильно. Через некоторое время большинство производителей оборудования сделало так, чтобы частота шины не была бы напрямую связана с частотой процессора. Но несмотря на то, что в названии шины ISA есть намёк на нечто стандартизированное, настоящего стандарта этой шины не существовало.
Правда, была попытка стандартизировать замену ISA, получившую название Extended ISA (EISA). Эта 32-битная шина, работавшая на частоте 8,33 МГц, была создана в 1988 году. Хотя на рынке домашних компьютеров она и не «взлетела», некоторым вниманием она пользовалась среди пользователей серверного оборудования, особенно — как более дешёвая альтернатива собственной шине IBM Micro Channel architecture (MCA). Компания IBM задумывала эту шину в качестве замены ISA.
В итоге же шина ISA дожила до наших дней, сохранившись, в основном, в промышленном оборудовании и во встраиваемых системах (например, в виде шины LPC), в то время как в других сферах был сначала осуществлён переход на PCI, а позже — на PCIe. А вот интерфейсы для подключения видеокарт к компьютерам шли своим путём. Речь идёт о шинах VESA Local Bus (VLB) и Accelerated Graphics Port (AGP), которые представляют собой специализированные интерфейсы, нацеленные на нужды GPU.
Начало работы с новыми старыми технологиями
При разработке устройств для ISA и PCI физический интерфейс тоже особых проблем не доставляет, так как и в том и в другом случаях используются контакты, расположенные на ребре платы. Именно такой вариант расположения контактов на платах, актуальный до наших дней, был выбран, преимущественно, из-за его дешевизны и надёжности. На плате расширения нет какого-то физического коннектора. Там, на краю, находятся лишь контактные площадки, которые позволяют подключить плату к слоту. При проектировании подобных плат, правда, надо обращать внимание на их толщину, так как от неё зависит надёжность контакта. Обычно хорошо показывает себя толщина платы в 1,6 мм.
Если кто-то хочет самостоятельно создать ISA или PCI-плату — в интернете можно найти параметры контактов для таких плат. Например — этот отличный обзор. Тут, в частности, есть сведения о расстоянии между контактными площадками, о форме платы в том месте, где находятся контакты, о размерах контактных площадок и о других параметрах плат и контактов.
При проектировании электрических цепей плат стоит знать о том, что ISA использует напряжение в 5 В, а PCI может использовать 5 В, 3,3 В, или и то и другое. В случае с PCI платы различают, используя выступы в PCI-слотах и выемки на картах (ключи). Так, если в слоте имеется один выступ, расположенный на расстоянии 56,21 мм от той его стороны, на котором находятся разъёмы подключаемой к нему карты, то это будет слот, рассчитанный на карты, поддерживающие напряжение 3,3 В. Выступ, расположенный на расстоянии 104,77 мм от края слота, указывает на слот для 5 В-карт. На краях карт есть соответствующие выемки. Если карта поддерживает и 5, и 3,3 В — то на ней будет две выемки (это — так называемые универсальные карты).
Ключи на PCI-картах и разъёмах
Существуют 32-битные и 64-битные варианты PCI. Причём, всеобщий интерес на рынке домашних компьютеров вызвал именно первый вариант шины. Если говорить о развитии PCI, то можно отметить интерфейс PCI-X. Эта шина, в 64-битном варианте, в основном, применялась в серверных системах. В PCI-X удвоена максимальная частота шины (с 66 до 133 МГц) и убрана поддержка 5 В. Поэтому PCI-X-карты часто работают при их установке в слоты PCI, рассчитанные на 3,3 В (то же самое справедливо и для PCI-карт, устанавливаемых в слоты PCI-X). 64-битная карта, и PCI, и PCI-X, может перейти в 32-битный режим в том случае, если она установлена в более короткий, 32-битный слот.
Итоги
Правда, шины ISA и PCI хороши тем, что они доступны даже любителям. Скорости этих шин, если нужно отлаживать или анализировать платы, вполне укладываются в возможности любительского аппаратного обеспечения и соответствующих осциллографов. Использование достаточно медленных параллельных шин данных означает, что дифференциальные сигналы тут не применяются, а это облегчает трассировку плат.
Хотя те старые шины, о которых мы говорили, не являются игроками той же лиги, что и шина PCIe, их возможности и их широкая доступность означают, что они могут дать старым компьютерам второй шанс. Даже если речь идёт о чём-то очень простом, вроде накопителя, основанного на флэш-памяти, предназначенного для первого IBM PC.
Разъем PCI уже можно считать устаревшим, однако он до сих пор встречается на материнских платах.
PCI — слот расширения, который встречается на материнских платах персональных компьютеров. Он позволяет устанавливать дополнительное оборудование вроде звуковых карт или TV-тюнеров. Полное его наименование — Peripheral Component Interconnect, то есть, грубо говоря, шина ввода-вывода для подключения периферийных устройств.
Слоты PCI на материнской плате. Обычно их делали белыми, в то время как AGP окрашивали в коричневый или другой темный цвет
PCI уже можно считать устаревшим, несмотря на то, что он еще встречается на современных материнских платах. Ему на смену пришел более скоростной и продвинутый формат PCI Express. На сегодняшний день найти в продаже актуальную материнскую плату со слотами PCI не составит труда, но таких предложений все же меньшинство. Это, например, ASUS Prime B350-Plus с поддержкой процессоров AMD Ryzen. Тем не менее если раньше таких слотов на материнской плате могло быть 4-5, то сейчас, как правило, это 2 или даже всего 1 слот.
В большинстве случаев такие системные платы покупают, когда нужно установить уже имеющуюся в наличии плату расширения с устаревшим интерфейсом. Практически все современное оборудование вроде звуковых карт, TV-тюнеров, плат расширения уже продается под PCI Express или USB. Тем не менее устаревший интерфейс еще присутствует на рынке, а комплектующие с его поддержкой производятся и продаются в магазинах.
Что интересно, изначально слот PCI использовался в том числе для подключения видеокарт. Однако затем ему на смену пришел разъем AGP. Полное его название — Accelerated Graphics Port, что можно перевести как ускоренный графический порт. AGP предлагает большую пропускную способность и позволяет подключить более требовательные по питанию видеокарты. Долгое время AGP был стандартом для подключения видеокарт, пока его не заменил использующийся и поныне PCI Express.
Как мы уже писали выше, PCI Express полностью заменил собой и AGP, и PCI. Этот разъем имеет несколько вариантов исполнения и есть практически на любой современной материнской плате. На самом деле это редкий случай, но платы без PCI Express тоже встречаются в продаже, например, GIGABYTE GA-H310TN.
Чаще всего можно встретить два вида слотов PCI Express — х1 и х16, которые в первую очередь различаются по размеру и скоростным показателям. Опознать их очень просто, потому что они имеют разную длину. Порт х1 — 25 мм, х16 — 89 мм.
В PCI Express х16 устанавливают видеокарты или, например, SSD-накопители, а в х1 прочие устройства и платы расширения, которые не требуют высокой пропускной способности: все те же звуковые карты, тюнеры и т.п. Кроме того, в слот x16, можно вставлять и устройства под слот х1, х4 или х8. Если физически разъемы подходят, то все должно работать нормально.
Привет всем, кого интересует то, что такое PCI разъём. Думаю, таких много, потому что этот стандарт используется до сих пор, несмотря на выход современных аналогов. Если ваш компьютер уже не молод, скорее всего, вы тоже имеете дело с PCI.
Эта статья поможет вам разобраться в его особенностях и отличиях от модификации «Express», о которой, быть может, вы слышали, так как она сейчас широко распространена.
Обмен данными с шинами ISA и PCI
После создания новенькой платы с золотыми контактами, и после того, как на ней распаяны буферные элементы или FPGA, нужно ещё и иметь возможность обмениваться данными с шиной ISA или PCI, пользуясь соответствующим протоколом. К счастью, существует множество материалов по ISA, например — этот. А вот протокол PCI, вроде протокола PCIe, это — «коммерческая тайна». В результате соответствующие данные можно официально (и небесплатно) достать лишь на сайте PCI-SIG. Правда, спецификации, всё же, «утекли» в общий доступ.
Как и в случае с любой другой общей шиной, схема взаимодействия с шиной при записи или чтении данных предусматривает запрос доступа к шине у «хозяина шины» или, в случае с шиной PCI с несколькими «хозяевами», использование процедуры арбитража. К карте расширения, кроме того, можно обращаться напрямую (вот материал об этом, в котором речь идёт об ISA). В Linux это подразумевает использование программ ядра ( sys/io.h ). Сначала получают соответствующие разрешения, а потом уже можно отправлять данные в конкретный IO-порт, соответствующий карте. В целом это выглядит так:
В случае с ISA адрес IO-порта задаётся в самой плате, а для распознавания адреса используется декодер, находящийся на линиях адресного сигнала. Часто на платах для выбора адреса, а так же — линий IRQ и DMA использовались переключатели или перемычки. Технология ISA PnP была призвана улучшить этот процесс, но по факту принесла больше вреда, чем пользы. В случае с PCI технология PnP является частью стандарта. Шина PCI осуществляет поиск устройств при загрузке, а встроенная ROM (BIOS) запрашивает у карт сведения об их нуждах, после чего адреса и другие параметры задаются автоматически.
История
За создание и поддержку интерфейса отвечает предприятие PCI Special Interest Group, основанное в 1992 году под началом корпорации Intel. Тогда же вышел в свет первый его вариант, выпущенный специально для реализации функционала процессоров Pentium, Pentium Pro и 486.
В следующем году появилась следующая модель 2.0, а еще через 3 года — 2.1, которая была на пике популярности. Правда, через 2 года компьютерная графика вышла на новый уровень, и PCI перестала отвечать его требованиям. Тогда видеокарты стали подключать через новый на тот момент разъем AGP.
Тем не менее, рассматриваемый нами интерфейс не утрачивал своих позиций вплоть до 2005 года. За это время вышло множество его поколений, но не думаю, что вы хотите забивать ими голову. Тем более что для рядового пользователя отличия между ними незначительны или непонятны.
Знакомство с термином
Упомянутая выше аббревиатура расшифровывается как Peripheral component interconnect, что в дословном переводе с английского означает взаимосвязь периферийных компонентов. Хоть это словосочетание не отображает физическое воплощение PCI, все же выбрано не безосновательно.
Как вы понимаете, «мозг» компьютера включает в себя разные устройства (аудио-, видео-, сетевую плату и пр.), т. н. периферийные компоненты. Большинство из них подсоединятся к материнской плате.
Для взаимосвязи между девайсами и материнской используются специальные электронные магистрали, проще говоря, шины. Таковой как раз и является PCI. На деле это длинный слот расширения, расположенный на материнке, куда может вставляться видеокарта, оперативная память и пр.
Читайте также: