Локальная сеть в пределах компьютера

 

Итак, что же нам предлагается? Разработчики PCI Express не стали мудрствовать лукаво и взяли за основу новой шины наработки в области сетевого оборудования. Получилось что-то очень напоминающее Gigabit Ethernet — и на физическом уровне, и на уровне протоколов передачи данных. Первое и самое главное отличие новой шины: PCI Express является последовательной, а следовательно, четко разнесены уровни представления данных и уровень их передачи. Если в параллельной шине, например, PCI, передаваемые данные непосредственно появляются на шине (вместе с какой-то дополнительной информацией — CRC, адресом получателя и подобной вспомогательной информацией), что и обуславливает простоту их посылки и получения, то в последовательной шине сказать что-либо о «физическом носителе» заранее невозможно. Информация, которую необходимо передать, просто упаковывается в пакеты, куда заносится и информация о получателе и коды обнаружения и исправления ошибок — и получившийся сплошной поток данных (где идут вперемешку данные, приложения и вспомогательная информация) уже передается — абсолютно неважно каким способом — через физическую среду.

Приемник в свою очередь распаковывает прибывшие данные, исправляет ошибки или запрашивает повторную передачу, определяет получателя и перенаправляет пакет далее. Собственно «последовательность» шины вовсе не означает что данные в ней передаются побитно (хотя в случае с PCI Express это действительно так) — последовательность понимается в смысле того, что данные и служебная информация передаются последовательно, по одним и тем же каналам данных (в отличие от параллельной передачи той же информации). Стандарт PCI Express предусматривает следующую схему организации данных (см. рис. 2).

 

Не вдаваясь глубоко в технические подробности — PCI Express использует традиционную многоуровневую модель, аналогичную сетевой ISO/SOI. На самом верхнем уровне располагаются прикладные приложения, использующие данное PCI-устройство. Для них в новой схеме не изменяется ровным счетом ничего. Для передачи или приема данных через шину PCI приложения обращаются к операционной системе. Она обслуживает инфраструктуру всех PCI-устройств, обрабатывает события — подключение устройств, присвоение им уникального адреса, нахождение подходящего драйвера для работы с конкретным устройством и так далее. На этом уровне по-прежнему сохраняется стопроцентная совместимость с уже существующей моделью PCI Plug`n`Play (PnP) — все старые операционные системы как работали с PCI, так и будут работать с PCI Express. Впрочем, некоторые отличия здесь уже есть, и для полноценной реализации всех возможностей новой шины (скажем, горячего подключения устройств), не предусмотренных в предыдущем стандарте, потребуется немного доработать ОС. В случае продукции Microsoft полноценная поддержка PCI Express обещана, увы, лишь в Longhorn, но можно не сомневаться, что за остающееся до ее выхода время MS выпустит и соответствующие «заплатки» и к некоторым уже существующим системам.

 

 

                        Рис. 2. Схема организации данных в архитектуре шины PCI Express.

 

Спуск еще на уровень по схеме — и мы попадаем в мир драйверов, обслуживающих конкретные устройства PCI Express. Здесь все также без изменений — разработчикам не придется изучать новую шину, совместимость с PCI стопроцентная. То есть получается, что на программном уровне отличия PCI Express от PCI очень малы — обеспечена полноценная совместимость старой и новой шин. Однако все последующие уровни уже относятся к «железной» реализации и здесь происходят кардинальные изменения.

Прежде всего, добавлено два новых уровня (Transaction Layer и Link Layer), которых иначе как TCP и IP не назовешь — выполняемые функции абсолютно те же, что и у «сетевых» аналогов. Transaction Layer получает запросы на чтение и запись от программного уровня и заведует первоначальной упаковкой данных, передачей их конкретному получателю и гарантиями корректной доставки сообщения. Проще говоря если какой-то пакет не дойдет до получателя либо получатель обнаружит в принятом пакете ошибку, то протокол транспортного уровня будет повторять его передачу до тех пор, пока пакет не будет получен — тем самым гарантируется, что передаваемый через PCI Express поток данных достигнет получателя в целостности и сохранности. Каждый пакет снабжен уникальным идентификатором. На этом уровне поддерживается 32-битная и расширенная 64-битная адресация памяти, а также четыре адресных пространства — новое «пространство сообщений» (Message Space) и три уже известных по шине PCI — память, пространство ввода/вывода и конфигурационное пространство. Пространство сообщений предназначено для упрощения формата передачи данных — замены сигналов боковой полосы (side-band) в спецификации PCI 2.2 и исключения «специальных циклов» старого формата (прерывания, запросы управления энергосбережением, сброс).

Link Layer заведует более приземленными делами - здесь указывается уникальный номер пакета (его маршрутизация осуществляется по заголовку, относящемуся к транспортному уровню), по которому контроллеры шины принимают решение о направлении пакета в конкретную физическую линию передачи данных, здесь же располагается код обнаружения и исправления ошибок в принятом пакете (CRC), номер пакета, позволяющий отличить один пакет от другого, и разная вспомогательная информация (например, удостоверяющая, что пакет не был искажен в ходе его передачи). Однако в отличие от TCP/IP, маршрутизация пакетов (принятие решений о том, на которую шину перенаправить пакет, какой из нескольких претендующих пакетов передать первым) осуществляется на транспортном уровне. Интересно также, что пакет передается только в том случае, когда поступил сигнал готовности от буфера приема. Как следствие, уменьшается число повторов пакета и шина используется более эффективно. Формат пакетов шины PCI Express показан на рис. 3 и детализирован во врезке.

 

 

 

                                                        Рис. 3. Формат пакетов шины PCI Express.

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: