Разбираемся в различиях PCI-E разъема.
Как правило, данный высокоскоростной порт относится к фактическим слотам расширения на материнской плате, которые принимают платы расширения на основе традиционного PCIe и типы карт расширения.
Старая видеокарта с интерфейсом AGP
PCI Express практически заменил AGP и PCI, оба из которых заменили старейший широко используемый тип соединения, называемый ISA. Хотя пк могут содержать различные слоты расширения, PCI Express считается стандартным внутренним интерфейсом самого быстрого разъема. Сегодня многие материнские платы для персональных компьютеров производятся только с разъемами PCI Express.
Применение PCI Express в компьютере. Разъемы PCI Express
Контроллер (управляющее устройство) линий PCIe не так давно встраивался только в чипсет (главную микросхему) материнской платы. Но, начиная с 2009 года, контроллер PCIe добавляется производителями также и непосредственно в центральный процессор. Это уменьшает задержки и позволяет процессору более эффективно взаимодействовать с другими устройствами. Версии и количество линий PCIe в разных моделях процессоров и чипсетов отличается. Бо́льшая их часть формируется в разъемы, размещаемые на материнской плате. Они позволяют подключать к компютеру разнообразные устройства (видеокарты, звуковые карты, сетевые карты, Wi-Fi-адаптеры и др.). На материнской плате современного компьютера можно найти разъемы PCIe нескольких видов, отличающихся количеством используемых в них линий PCIe (от х1 до х16 линий). Не зависимо от того, насколько старым является компьютер, и какая версия PCIe в нем используется, эти разъемы всегда выглядят одинаково:
на изображении: верхний разъем — PCIe x4, по средине — PCIe x16, внизу — PCIe x1
Разные версии PCIe являются полностью совместимыми. То есть, если в старый компьютер, где используется версии PCIe 2.0, установить, например, видеокарту с PCIe 4.0, она будет нормально работать. Однако, реальная скорость обмена данными при этом у нее будет ограничена возможностями PCIe 2.0. И наоборот, в самый новый компьютер с PCIe 4.0 можно без проблем установить старую видеокарту с PCIe 2.0. Еще одной особенностью PCIe является совместимость разных ее разъемов. В разъем PCIe x16 можно подключить не только видеокарту, но и абсолютно любое другое устройство PCIe, в том числе и с разъемом PCIe x8, PCIe x4 или PCIe x1. Совместимость разъемов сохраняется также и в обратную сторону. То есть, в разъем PCIe x1 можно установить видеокарту с разъемом PCIe x16. Физически она туда не войдет, но если разрезать заднюю стенку разъема (как на изображении ниже), то все получится. Это, конечно же, «кустарщина» и без крайней надобности так делать не нужно. Тем более, что видеокарта при таком подключении будет работать в режиме PCIe x1, что весьма негативно скажется на ее быстродействии.
В ноутбуках для установки дополнительных устройств вместо упомянутых выше разъемов используется более компактный вариант — Mini PCIe. Линии PCIe используются также для создания некоторых других разъемов, в чатности, разъемов M.2 (служат для подключения современных запоминающих устройств, а также устройств некоторых других типов).
на изображении — разъем M.2 с запоминающим устройством в нем
Как работает PCI Express?
Подобно старым стандартам, таким как PCI и AGP, устройство на базе Express физически переходит в высокоскоростной разъем на материнской плате.
Интерфейс этого разъема обеспечивает высокоскоростную связь между устройством и системной платой, а также другим оборудованием.
Хотя это не очень распространено, также существует внешняя версия высокоскоростного порта, что неудивительно называется External PCI Express, но часто сокращается до PCIe. Для устройств ePCIe, являющихся внешними, требуется специальный кабель для подключения любого внешнего устройства PCIe к пк через порт PCIe, обычно расположенный на задней панели пк, поставляемый либо материнской платой, либо специальной внутренней PCIe-картой.
И что, это правда быстро?
Остаётся подкрепить всё сказанное о преимуществах интерфейса PCI Express 4.0 и накопителя с его поддержкой какими-то практическими результатами. И с этим нет особой сложности, потому что FireCuda 520 действительно обладает заметно более высокой производительностью, которая накопителям прошлого поколения недоступна. Несмотря на то, что к контроллеру Phison PS5016-E16 есть вполне обоснованные претензии, связанные с тем, что в полной мере пропускную способность PCIe 4.0 он всё-таки не утилизирует, скоростные показатели Seagate FireCuda 520 заведомо выше, чем у накопителей для PCIe 3.0.
В следующей таблице характеристики Seagate FireCuda 520 сопоставляются с характеристиками FireCuda 510 – прошлой флагманской модели NVMe SSD Seagate, которая рассчитана на интерфейс PCIe 3.0 x4. Для примера сравнение ограничено самыми вместительными и скоростными вариантами SSD ёмкостью по 2 Тбайт, но, если сравнивать между собой модификации других ёмкостей, картина получится примерно такой же.
Впрочем, паспортные характеристики – дело одно, а реальная жизнь – другое. Поэтому мы просто взяли два эти накопителя – FireCuda 520 2 Тбайт и FireCuda 510 2 Тбайт – и сравнили в тестах.
FireCuda 520 2 Тбайт
FireCuda 510 2 Тбайт
Результаты CrystalDiskMark требуют некоторых комментариев. Новый PCIe 4.0 SSD оказался заметно быстрее предшественника по линейным скоростям: преимущество доходит почти до полуторакратного размера и прослеживается как при глубоких, так и при минимальных очередях запросов. Превосходит FireCuda 520 прошлую версию NVMe SSD Seagate и при мелокоблочных операциях, хотя здесь такого же впечатляющего прорыва не наблюдается: всё упирается в то, что логика контроллера осталось старой. Таким образом, FireCuda 520 будет блистать прежде всего при последовательных нагрузках. Что же касается операций с произвольными блоками небольшого размера, то интерфейс PCI Express 4.0, естественно, из накопителя на базе флеш-памяти что-то похожее на Optane сделать не может.
Но тот факт, что высокоскоростные линейные операции – очень мощный козырь FireCuda 520, отрицать невозможно. Подробнее это видно в результатах ATTO Disk Benchmark: как только блоки, которыми происходит обмен данными, приобретают объём 128 Кбайт и более, угнаться за FireCuda 520 становится невозможно даже в теории (на это не способен даже Optane), поскольку скорости обмена данными выходят за предел, установленный пропускной способностью интерфейса PCIe 3.0 x4.
FireCuda 520 2 Тбайт
FireCuda 510 2 Тбайт
В синтетических тестах всё получается более чем убедительно, но что в реальной жизни? Ответить на этот вопрос может PCMark 10 – в нём есть сценарии, которые воспроизводят типичную нагрузку на накопители при повседневной работе пользователя.
И в этом случае FireCuda 520 оказывается быстрее своего предшественника на величину до 30 %. Причём это преимущество выражается не только в росте скоростей дисковых операций, но и в заметном снижении времени реакции дисковой подсистемы. Такая закономерность прослеживается при использовании SSD в качестве единственного и универсального накопителя (см. Full System Drive Benchmark). И в том случае, когда SSD играет роль исключительно системного диска, на котором установлена ОС и ПО (см. Quick System Drive Benchmark). И даже тогда, когда SSD отдан под «файлопомойку» (см. Data Drive Benchmark), хотя такое, честно говоря, бывает очень нечасто.
Преимущества в скорости FireCuda 520 легко проследить при обычном копировании файлов. На диаграмме ниже приводятся результаты теста DiskBench при копировании внутри накопителя рабочей директории с разными файлами общим объёмом порядка 20 Гбайт. Конечно, такого прироста, как в синтетических тестах, здесь не наблюдается, но свои дополнительные 25-30 % к производительности переход на PCIe 4.0 даёт без вопросов.
Для разнообразия можно посмотреть и на то, насколько быстрее PCIe 4.0-накопитель позволяет загружать игровые приложения. Для примера ниже приведено время загрузки уровня в Final Fantasy XIV StormBlood (выбор именно этой игры обусловлен встроенными в неё удобными средствами мониторинга). Здесь выигрыш, который обеспечивает FireCuda 520 на фоне FireCuda 510, составляет секунду с небольшим, что не столь значительно, но всё равно ощутимо.
Зато при нагрузках, свойственных рабочим станциям, PCI Express 4.0, что называется, must have. Дело в том, что компьютеры, нацеленные на профессиональное создание контента, оснащаются очень мощными многоядерными процессорами и быстрой памятью. И в этом случае узкие места в системе легко могут возникать в дисковой подсистеме. Например, раньше многие профессионалы, работающие с видео, предпочитали собирать RAID-массивы из SSD-накопителей, а теперь они могут удовлетворить свои потребности, выбрав FireCuda 520, который принимает данные со скоростями свыше 4 Гбайт/с в одиночку.
Все эти рассуждения нетрудно подкрепить результатами теста SPECworkstation 3, который очень явно показывает значимость накопителя с современным интерфейсом: FireCuda 520 справляется с тяжёлыми профессиональными сценариями дисковой нагрузки в среднем на 22 % быстрее по сравнению с FireCuda 510.
Но особое внимание стоит обратить на показатели General Operation (обычная скорость работы с файлами при архивации и копировании, а также при разработке ПО) и Product Development (показывает скорости работы в CAD/CAM системах и при решении задач вычислительной гидродинамики). Здесь заложенный в FireCuda 520 потенциал раскрывается особенно убедительно.
Какие типы карт PCI Express существуют?
Благодаря требованию более быстрых, реалистичных видеоигр и инструментов редактирования видео, видеокарты были первыми типами компьютерной периферии, чтобы воспользоваться преимуществами, предлагаемыми непосредственно PCIe.
В то время как видеокарты по-прежнему остаются наиболее распространенным типом PCIe-карты, вы обнаружите, что другие девайсы, которые значительно быстрее подключаются к системной плате, процессору и ОЗУ. Также все чаще производятся PCIe-соединения вместо обычного PCI. Например, многие высококачественные звуковые карты теперь используют высокоскоростной порт, а также повышают количество проводных и беспроводных сетевых интерфейсных карт.
Карты контроллера жесткого диска могут быть наиболее полезными для PCI-E после видеокарты. Подключение высокоскоростного PCIe SSD-накопителя к этому высокоскоростному интерфейсу позволяет значительно быстрее считывать, потом записывать диск. Некоторые контроллеры жестких дисков PCIe даже включают встроенный SSD, сильно изменяя, как устройства хранения традиционно подключены внутри пк.
Конечно, замена PCIe на PCI и AGP полностью на более новые системные платы, почти каждый тип внутренней карты расширения, основанной на старых интерфейсах, перестраивается для возможности использования шины PCI Express. Это включает в себя такие вещи, как карты расширения USB, карты Bluetooth и т.д.
Предыстория появления слота расширения
В начале 2000-х годов со слотом расширения AGP, который на тот момент использовался для установки дискретных видеокарт, сложилась такая ситуация, когда максимальный уровень быстродействия достигнут и его возможностей уже недостаточно. В результате этого был создан консорциум PCI-SIG, который приступил к разработке программной и аппаратной составляющих будущего слота для установки графических ускорителей. Плодом его творчества и стала в 2002 году первая спецификация PCI Express 16х 1.0.
Некоторые компании для обеспечения совместимости двух существовавших на тот момент времени портов установки дискретных графических адаптеров разрабатывали специальные устройства, которые позволяли устанавливать устаревшие графические решения в новый слот расширения. На языке профессионалов такая разработка имела свое название – переходник PCI-E x16/AGP. Основное его назначение – это минимизация затрат на модернизацию ПК за счет использования комплектующих с предыдущей конфигурации системного блока. Но такая практика не получила большого распространения по той причине, что видеоплаты начального уровня на новом интерфейсе имели стоимость практически равную цене переходника.
Параллельно с этим были созданы и более простые модификации этого слота расширения для внешних контроллеров, которые пришли на смену привычным на то время портам PCI. Несмотря на внешнюю схожесть, эти устройства существенно различались. Если AGP и PCI могли похвастаться параллельной передачей информации, то вот PCI Express был последовательным интерфейсом. Его более высокое быстродействие обеспечивалось значительно увеличенной скоростью передачи данных в дуплексном режиме (информация в этом случае могла передаваться сразу по двум направлениям).
Каковы различные форматы PCI Express?
Показаны различные контроллеры на материнской плате
Express x1 … Express 3.0 … Express x16. Что означает «х»? Как узнаете, поддерживает ли ваш пк? Если есть карта PCI Express x1, и есть только разъем Express x16, совместимо ли это работает? Если нет, каковы ваши варианты?
Часто не совсем понятно, когда вы покупаете карту расширения для своего компьютера, такую как новая видеокарта, какая из различных технологий PCIe работает с вашим пк лучше, чем другая. Однако, насколько это сложно, все выглядит довольно просто, как только вы поймете две важные части информации о высокоскоростном порте: часть, описывающую физический размер, и часть, описывающую технологическую версию, как описано ниже.
Как PCI Express 4.0 влияет на скорость вашей видеокарты?
Некоторые задают интересный вопрос: влияет ли более быстрая и новая спецификация PCI Express 4.0 на скорость видеокарты? Быстрый ответ — нет , это не так, и вы не получаете больше кадров в секунду! Вот почему:
Когда вы играете в игру, видеокарта использует выделенную память (GDDR) для хранения текстур, используемых для рендеринга кадров на экране. Помимо тактовой частоты графического процессора, эта графическая память является наиболее важной для того, сколько кадров вы получаете каждую секунду.
Графическая карта должна использовать интерфейс PCI Express, который соединяет ее с материнской платой только тогда, когда ей нужно обмениваться данными с процессором или загружать текстуры из системной памяти (ОЗУ компьютера). Это не должно случаться часто, поскольку современные видеокарты имеют много собственной оперативной памяти. И даже если / когда это произойдет, после того, как текстуры были переданы через интерфейс PCI Express из системного ОЗУ и загружены в память видеокарты, они остаются там. Причина в том, что графическая память во много раз быстрее системной памяти.
Ни одна из видеокарт, доступных сегодня, не нуждается в полной полосе пропускания, предлагаемой слотами PCI Express 4.0 x16. Для получения дополнительной информации ознакомьтесь с нашим анализом влияния PCI Express 4.0 по сравнению с PCI Express 3.0 на современные настольные компьютеры: PCI Express 4 по сравнению с PCIe 3: есть ли улучшение производительности?
Размеры PCIe: x16, x8, x4, и x1
Как следует из заголовка, число после x указывает физический размер платы PCI-E или слота, причем x16 самый большой, а x1 наименьший.
Вот как формируются различные размеры:
Независимо от размера высокоскоростного порта или карты, ключевой вырез, это небольшое место в карте или слоте, всегда находится на выводе 11. То есть, длина вывода 11 продолжает увеличиваться по мере перехода от PCIe x1 к PCIe x16. Это позволяет гибко использовать карты одного размера вместе со слотами другого.
Карты PCIe подходят в любом слоте высокопроизводительного порта на системной плате, который по крайней мере такой же большой. Например, карта PCIe x1 будет входить в любой слот PCIe x4, PCIe x8 или PCIe x16. Карта PCIe x8 будет входить в любой слот PCIe x8 или PCIe x16. PCIe-карты, размер которых больше, чем слот PCIe, могут входить в меньший слот, но только если этот слот PCI-E открытый (т.е. Не имеет пробки в конце гнезда).
Видеокарта Radeon с интерфейсом PCI-Express x16
В целом, большая плата Express или слот поддерживает большую производительность, предполагая, что две карты или слоты, которые сравниваете, поддерживают одну и ту же версию PCIe.
Будущее данного стандарта
Слот PCI-E x16 в обозримом будущем уж точно не будет изменяться. Это позволит более производительные видеокарты использовать в составе устаревших ПК и за счет этого осуществлять поэтапный апгрейд компьютерной системы. Сейчас же прорабатываются спецификации уже 4-й версии этого способа передачи данных. Для графических адаптеров в этом случае будет предусмотрена максимальная пропускная способность 128 Гб/с. Это позволит выводить изображение на экран монитора в качестве «4К» и более.
Версия PCIe: 4.0, 3.0, 2.0 и 1.0
Любое число после PCIe, которое вы найдете на устройстве или системной плате, указывает номер последней версии используемой спецификации PCI Express.
Вот как сравниваются различные версии контроллера PCI Express:
Все версии высокоскоростного порта совместимы в обратном и обратном направлении, что означает независимо от того, какую версию поддерживает плата PCIe или ваша материнская плата, они должны работать вместе, по крайней мере, на минимальном уровне. Как можно заметить, основные обновления стандарта порта резко увеличивают пропускную способность каждый раз, значительно увеличивая потенциал того, что может сделать связанное оборудование.
Улучшения версии также устраняют ошибки, добавленные функции и улучшенное управление питанием, но увеличение полосы пропускной способности это самое важное изменение для заметок от версии к версии.
Что такое PCI Express и что он обозначает?
PCI Express означает Peripheral Component Interconnect Express и представляет собой стандартный интерфейс для подключения периферийного оборудования к материнской плате на компьютере. Другими словами, PCI Express или сокращенно PCIe — это интерфейс, который подключает к материнской плате внутренние карты расширения, такие как видеокарты, звуковые карты, адаптеры Ethernet и Wi-Fi . Кроме того, PCI Express также используется для подключения некоторых типов твердотельных накопителей, которые обычно очень быстрые.
Какие типы слотов и размеров PCI Express существуют, и что означают линии PCIe? Для подключения плат расширения к материнской плате PCI Express использует физические слоты. Обычными слотами PCI Express, которые мы видим на материнских платах, являются PCIe x1, PCIe x4, PCIe x8 и PCIe x16. Число, которое следует за буквой «х», говорит нам о физических размерах слота PCI Express, который, в свою очередь, определяется количеством контактов на нем. Чем больше число, тем длиннее слот PCIe и тем больше контактов, которые соединяют плату расширения с гнездом.
Кроме того, число «х» также указывает, сколько полос доступно в этом слоте расширения. Вот как сравниваются часто используемые слоты PCIe:
- PCIe x1: имеет 1 полосу , 18 контактов и длину 25 мм
- PCIe x4: имеет 4 линии , 32 контакта и длину 39 мм
- PCIe x8: имеет 8 линий , 49 контактов и длину 56 мм
- PCIe x16: имеет 16 линий , 82 контакта и длину 89 мм
Линии PCI Express — это пути между набором микросхем материнской платы и слотами PCIe или другими устройствами, являющимися частью материнской платы, такими как разъем процессора, слоты M.2 SSD, сетевые адаптеры, контроллеры SATA или контроллеры USB.
В PCI Express каждая полоса индивидуальна, что означает, что она не может быть разделена между различными устройствами. Например, если ваша видеокарта подключена к слоту PCIe x16, это означает, что она имеет 16 независимых линий, выделенных только для нее. Никакой другой компонент не может использовать эти полосы, кроме графической карты.
Вот идея, которая может упростить вам понимание того, что такое линии PCI Express: просто представьте, что PCI Express — это магистраль, а автомобили, которые едут по ней, — это данные, которые передаются. Чем больше полос движения доступно на шоссе, тем больше автомобилей можно проехать по нему; чем больше у вас PCIe-линий, тем больше данных можно передать.
Карта PCI Express может устанавливаться и работать в любом слоте PCIe, доступном на материнской плате, если этот слот не меньше платы расширения. Например, вы можете установить карту PCIe x1 в слот PCIe x16. Тем не менее, вы не можете сделать обратное. Например, вы можете установить звуковую карту PCIe x1 в слот PCIe x16, но вы не можете установить графическую карту PCIe x16 в слот PCIe x1.
Какие версии PCI Express существуют, и какую скорость передачи данных (пропускную способность) они поддерживают?
Сегодня используются четыре версии PCI Express: PCI Express 1.0, PCI Express 2.0, PCI Express 3.0 и PCI Express 4.0. Каждая версия PCIe поддерживает примерно удвоенную пропускную способность предыдущего PCIe . Вот что предлагает каждый из них:
- PCI Express 1.0: имеет пропускную способность 250 МБ / с на линию
- PCI Express 2.0: имеет пропускную способность 500 МБ / с на линию
- PCI Express 3.0: имеет пропускную способность 984,6 МБ / с на линию
- PCI Express 4.0: имеет пропускную способность 1969 МБ / с на линию
Помните, что слоты PCIe могут предложить не одну, а несколько дорожек? Значения полосы пропускания, которые мы разделили, умножаются на количество линий, доступных в слоте PCIe. Если вы хотите рассчитать, сколько пропускной способности доступно для определенной платы расширения, вам нужно умножить пропускную способность PCIe на линию на количество доступных для нее линий.
Например, графическая карта, которая поддерживает PCI Express 4.0 и подключена к слоту PCIe x16, имеет доступ к общей пропускной способности около 31,51 ГБ / с. Это результат умножения 1969 МБ / с на 16 (пропускная способность PCIe на линию * 16 линий). Впечатляет, правда?
Вот как масштабируются версии PCI Express, если принять во внимание линии PCI Express:
В будущем появятся новые версии PCI Express, такие как PCI Express 5.0 и PCI Express 6.0. Спецификация PCIe 5.0 была доработана летом 2020 года, предлагая пропускную способность до 3938 МБ / с на линию и до 63 ГБ / с в конфигурации x16. Однако, скорее всего, мы не увидим его в ближайшее время на компьютерном оборудовании потребительского уровня.
Максимизация совместимости совместно с PCIe
Как вы читаете в разделах размеров и версий выше, использует практически любую конфигурацию, которую вы можете себе представить. Если он физически подходит, он вероятно, работает … это здорово. Однако важно знать, что для увеличения пропускной способности (которая обычно соответствует максимальной производительности) вам нужно выбрать самую высокую версию PCIe, поддерживаемую вашей материнской платой, и выбрать самый большой размер данного порта, который будет соответствовать.
Например, графическая карта на высокоскоростном порту 3.0 x16 даст вам максимальную производительность, но только если материнская плата поддерживает высокоскоростной порт версии 3.0 и имеет свободный высокоскоростной порт x16. Если модель системной платы использует исключительно PCIe 2.0, карта будет работать только с поддерживаемой скоростью (например, 64 Гбит/с в слоте x16).
Большинство материнских плат и персональных компьютеров, выпущенных в 2013 году или позже, вероятно, поддерживают Express v3.0. Если вы не уверены, проверьте руководство по материнской плате или пк. Если не получается найти какую-либо окончательную информацию о версии PCI, возможности использования вашей материнской платой, я рекомендую купить самую большую и последнюю версию PCIe-карты, если она подойдет, конечно.
Нужно ли апгрейдить компьютер ради PCIe 4.0
Как уже говорилось выше, последней из официально вышедших версий PCIe является версия 5.0 (опубликованы официальные спецификации, но на практике она не используется). Самой «свежей» версией из используемых по состоянию на конец 2020 года является PCIe 4.0, и, судя по всему, еще долго будет таковой оставаться. Она вышла в 2017 году, однако внедрена в конкретные устройства лишь недавно, в 2019 году. Ее начала использовать компания AMD в процессорах Ryzen архитектуры Zen 2, а также в видеокартаx Radeon серии RX 5700 / 5500. Несомненно, это значительное достижение AMD, однако, оно пока является лишь заделом на будущее и не дает никаких практических преимуществ перед конкурентами. Компания Intel внедрять PCIe 4.0 в свои процессоры не торопится. Не спешит делать это и компания nVidia, видеокарты которой пока довольствуются PCIe 3.0. Все дело в том, что на современном этапе развития компьютерной техники возможностей PCIe 3.0 вполне достаточно. Превосходство PCIe 4.0 можно увидеть лишь в синтетических тестах. В практических же сценариях необходимости в настолько высоких скоростях обмена данными пока нет. Видеокарты с PCIe 4.0 вполне нормально работают и в системах с PCIe 3.0. Более того, даже в компьютерах с PCIe 2.0 они показывают почти такую же производительность в играх и других приложениях, как в компьютерах с PCIe 4.0. Но продлится это, судя по всему, не долго. Направлением, где в ближайшее время станет реально востребованной PCIe 4.0, являются современные М.2 SSD-накопители, быстродействие которых уже почти «уперлось в потолок » стандарта PCIe 3.0. Затем черед дойдет до видеокарт и другого оборудования. Так что апгрейдить старый компьютер только ради PCIe 4.0 пока нецелесообразно. Однако при покупке нового компьютера, который планируется к использованию достаточно длительнное время, брать во внимание версию PCIe, поддерживаемую его внутренними устройствами, однозначно нужно.
Что заменит PCIe?
Очки виртуальной реальности VR
Разработчики видеоигр всегда ищут игры, которые становятся все более реалистичными, но могут сделать это только в том случае, если они смогут передавать больше данных из своих игровых программ в гарнитуру VR или на экран пк, и для этого требуются более быстрые интерфейсы. Из-за этого PCI Express никак не будет продолжать господствовать над своими лаврами. PCI Express 3.0 удивительно быстрый, но мир стремится сделать невероятно быструю передачу.
PCI Express 5.0, который должен быть завершен к 2020 году, будет использовать пропускную способность 31,504 гигабит в секунду на полосу (3938 мегабайт в секунду), что в два раза больше, чем предлагается у высокоскоростного разъема версии 4.0. Существует ряд других стандартов интерфейса, отличных от PCIe, на которые смотрит технологическая индустрия, но поскольку для них потребуются серьезные аппаратные изменения, PCIe, похоже останется лидером в течение некоторого, очень продолжительного времени как самый быстрый из существующих когда-либо.
rardCrage hi bross
Содержимое пакетов уровня транзакций
На этапе, когда драйвер конфигурирует регистры оконечной точки, в зависимости от типа адресного пространства, связанного с BAR, оконечная точка получат запрос на запись в память (рисунок 3) или запрос на запись в пространство I/O. Если во время конфигурации регистров драйвер читает какой-либо регистр, оконечная точка также получает соответствующие запросы на чтение (рисунок 4).
Рисунок 3 — Пример запроса на запись в память длиной в 1 DW
Рисунок 4 — Пример запроса на чтение из памяти длиной в 1 DW
В отличие от запросов на запись или чтение памяти, запросы в пространство I/O обладают рядом ограничений. Во-первых, как запросы на запись, так и чтение, требуют ответа от получателя. Это ведет к тому, что скорость передачи данных с помощью запросов в пространство I/O становится много ниже, чем допускает теоретическая пропускная способность PCIe. Во-вторых, адрес запросов пространства I/O ограничен разрядностью в 32 бита, что не позволяет обращаться к фрагментам системной памяти за пределами 4 ГБ. В-третьих, запросы пространства I/O не могут превышать одно двойное слово и не могут использовать несколько виртуальных каналов для транспортировки. По этим причинам запросы на запись и чтение в пространство I/O в дальнейшем рассматриваться не будут. Тем не менее, содержимое заголовков запросов на запись/чтение памяти и пространства I/O отличается только рядом полей, поэтому структуры пакетов, показанные на рисунках 3, 4, применимы и к запросам в пространство I/O.
Когда оконечная точка или корень PCIe получает запрос на чтение памяти или пространства I/O, устройство обязано отправить ответ. Если отправитель запроса не получит ответ в течение определенного времени, это приведет к ошибке ожидания ответа. Если устройство по каким-то причинам не может отправить запрошенные данные, оно должно сформировать ответ с ошибкой. Возможными причинами могут быть: получатель не поддерживает данный запрос (Unsupported Request); получатель не готов принять конфигурационный запрос и просит повторить его позднее (Configuration Request Retry Status), произошла внутренняя ошибка, из-за которой получатель не может ответить и отклоняет запрос (Completer Abort).
Форматы успешного ответа на запрос чтения и ответа с ошибкой о неподдерживаемом запросе представлены на рисунках 5, 6.
Рисунок 5 — Пример успешного ответа на чтение
Рисунок 6— Пример ответа о неподдерживаемом запросе
В то время, когда оконечная точка обращается в область памяти в пределах 4 ГБ, формат заголовков пакетов не отличается от заголовков, показанных на рисунках 3, 4. Для запросов записи или чтении памяти за пределами 4 ГБ в заголовке используется дополнительное двойное слово со старшими разрядами целевого адреса (рисунок 7).
Рисунок 7 — Пример заголовка запроса на запись 128 байт
Пояснения к сокращенным названиям полей заголовков пакетов представлены в таблице 4.
Таблица 4 — Перечень сокращений для полей заголовков
В случае, если оконечная точка, чтобы сообщить о каком-либо событии, использует прерывания, она также должна сформировать соответствующий пакет. Всего в PCIe может использоваться три вида прерываний:
- унаследованные прерывания (Legacy Interrupts или INT);
- прерывания в виде сообщений (Message Signaled Interrupts или MSI);
- расширенные прерывания в виде сообщения (Message Signaled Interrupts Extended или MSI-X).
Унаследованные прерывания INT используются для совместимости с теми системами, которые не поддерживают прерывания в виде сообщений. Фактически данный вид прерываний представляет собой сообщение (пакет типа Message), которое имитирует работу физической линии прерывания. По заданному событию, оконечная точка посылает сообщение корню PCIe о том, что прерывание INT было активировано, а затем ожидает действий от обработчика прерываний. До тех пор, пока обработчик прерываний не выполнит заданное действие, прерывание INT находится в активированном состоянии. Унаследованные прерывания не позволяют определить источник события, что вынуждает обработчика прерываний последовательно просматривать все оконечные точки в дереве PCIe, чтобы обслужить это прерывание. Когда прерывание обслужено, оконечная точка посылает сообщение о том, что прерывание INT более неактивно. Аппаратные ядра ПЛИС по сигналу от логики пользователя самостоятельно формируют необходимые сообщения для прерываний INT, поэтому структура пакетов рассматриваться не будет.
Прерывания в виде сообщений вместе с их расширенным вариантом являются основным и обязательным видом прерываний в PCIe. Оба вида прерываний, по сути, представляют собой запрос на запись в системную память с длиной в одно двойное слово. Отличие от обычного запроса заключается в том, что адрес записи и содержимое пакета выделяются для каждого устройства на этапе конфигурации системы. При этом адресатом становится локальный контроллер прерываний (Local Advanced Programmable Interrupt Controller — LAPIC) внутри центрального процессора. При использовании данного вида прерываний не требуется последовательно опрашивать все устройства в дереве PCIe. Более того, если система разрешает устройству использовать несколько векторов прерываний, каждому вектору можно сопоставить своё событие. В совокупности это позволяет сократить время процессора на обработку прерываний и увеличить общее быстродействие системы.
Прерывания MSI позволяют формировать до 32 отдельных векторов. Конкретное количество зависит от возможностей оконечной точки. При этом, система может разрешить использовать только часть векторов. На этапе конфигурации система записывает адрес прерывания и начальные данные для записи в специальные регистры Конфигурационного пространства оконечной точки. Все активные прерывания используют один и тот же адрес. Но для каждого вектора оконечная точка изменяет биты начальных данных. Для примера, пусть оконечная точка поддерживает максимум 4 вектора прерываний, в системе разрешено использовать все 4 вектора, а начальные данные для записи — 0x4970. Тогда чтобы сформировать первый вектор, оконечная точка передает начальные данные неизменными. Для второго вектора устройство изменяет первый бит и передает число 0x4971. Для третьего и четвертого векторов устройство будет передавать числа 0x4972 и 0x4973 соответственно.
Аппаратные ядра ПЛИС самостоятельно формируют пакет с прерыванием MSI по сигналу от логики пользователя. Однако перед тем, как скомандовать ядру отправить прерывание, логика пользователя также должна предоставить содержимое пакета для требуемого вектора на специальный интерфейс ядра.
Прерывания MSI-X позволяют формировать до 2048 отдельных векторов. В соответствующих регистрах Конфигурационного пространства оконечная точка указывает, в каком из адресных пространств BAR и с каким смещением от базового адреса находятся таблица прерываний (рисунок и таблица флагов ожидающих прерываний (Pending Bit Array ‒ PBA, рисунок 9), а также — размеры обеих таблиц. Система записывает в каждую строчку таблицы прерываний отдельный адрес и данные для записи, а также разрешает или запрещает использовать конкретный вектор через первый бит поля Vector Control. По заданному событию оконечная точка выставляет флаг в таблице флагов ожидающих прерываний. Если в поле Vector Control для данного прерывания не выставлена маска, оконечная точка отправляет прерывание по адресу из таблицы прерываний с заданным содержимым пакета.
Рисунок 8 — Таблица векторов прерываний MSI-X
Рисунок 9 — Таблица флагов ожидающих прерываний
Аппаратные ядра ПЛИС не имеют специализированного интерфейса для прерываний MSI-X. Разработчик самостоятельно должен сформировать в пользовательской логике таблицу прерываний и таблицу флагов ожидающих прерываний. Пакет с прерыванием также полностью формируется пользователем и передается через общий интерфейс ядра вместе с другими видами пакетов. Формат пакета при этом, как уже было сказано выше, соответствует запросу на запись в системную память с длиной в одно двойное слово.