Интерфейс PCI Express

Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 21:40, курсовая работа

Краткое описание

Возможностей шины PCI вполне достаточно для большинства современных приложений, однако потребность в ускорении ввода-вывода постепенно дезорганизует некогда стройную внутреннюю архитектуру ПК. Суть проблемы заключается в том, что со временем появляется все больше устройств ввода-вывода, требования по быстродействию которых не соответствуют возможностям шины PCI. Разгон тактовой частоты шины - далеко не лучшее решение, поскольку только усугубляет перекос шины, перекрестные помехи между проводниками и емкостное сопротивление.

Прикрепленные файлы: 1 файл

Введение.doc

— 1.45 Мб (Скачать документ)


ВВЕДЕНИЕ

Возможностей шины PCI вполне достаточно для большинства современных  приложений, однако потребность в  ускорении ввода-вывода постепенно дезорганизует некогда стройную внутреннюю архитектуру ПК. Суть проблемы заключается в том, что со временем появляется все больше устройств ввода-вывода, требования по быстродействию которых не соответствуют возможностям шины PCI. Разгон тактовой частоты шины - далеко не лучшее решение, поскольку только усугубляет перекос шины, перекрестные помехи между проводниками и емкостное сопротивление. При появлении каждого нового устройства, которое оказывается слишком быстрым для шины PCI (будь то графический адаптер, жесткий диск, сетевой контроллер и т. д.), разработчикам Intel приходится создавать очередной специализированный порт, с помощью которого мост позволяет этому устройству обходить шину PCI. Естественно, такое решение с каждым прецедентом становится все менее эффективным.

Сейчас предлагается несколько  вариантов решения указанных  проблем, но, скорее всего, победителем в конкурентной борьбе окажется технология PCI Express, которую активно продвигает Intel. Несмотря на название, она не имеет почти ничего общего с шиной PCI; более того - это вообще не шина. Тем не менее маркетологи решили не избавляться от названия "РСI" - благо, оно у всех на слуху. Некоторые ПК уже сейчас поддерживают эту технологию. Посмотрим, что она собой представляет.

 

 

 

 

 

 

 

1 Структура интерфейса

Суть технологии PCI Express заключается  в замене параллельной шины с ее многообразием задающих и подчиненных устройств высокоскоростными двухточечными последовательными соединениями. Это решение знаменует собой окончательный отход от шинной топологии, реализованной в шинах ISA/EISA/PCI, и переход на топологию локальных сетей (особенно коммутируемых сетей Ethernet). Основная идея такова: по сути, ПК - это набор микросхем процессора, памяти и устройств ввода-вывода, которые необходимо соединить между собой. С учетом этого обстоятельства PCI Express выполняет роль универсального коммутатора, соединяющего микросхемы по последовательным каналам. Стандартная конфигурация PCI Express изображена на рисунке 1.

 

Рисунок 1 - Стандартная компоновка системы PCI Express

 

Как видно из рисунка, процессор, память и кэш подключены к мосту традиционным способом. Новым элементом здесь является подключенный к мосту коммутатор (иногда он встраивается непосредственно в микросхему моста). Между каждой микросхемой устройства ввода-вывода, с одной стороны, и коммутатором, с другой, устанавливается двухточечное соединение. Любое такое соединение состоит из двух однонаправленных каналов - по одному в каждом из направлений между устройством и коммутатором. Каналы состоят из двух проводов (сигнального и заземляющего), что обеспечивает высокую помехозащищенность в ходе высокоскоростной передачи сигналов. Такая архитектура отличается от предыдущей большей унификацией и равноправием всех устройств.

Три основных момента отличают архитектуру PCI Express от архитектуры PCI. Два из них  мы уже рассмотрели - это наличие  централизованного коммутатора, пришедшего на смену принципу многоотводной шины, и применение узких последовательных двухточечных соединений вместо широкой параллельной шины. Третье отличие меньше бросается в глаза. Концептуальная модель, на которой основана шина PCI, сводится к тому, что задающее устройство шины передает подчиненным устройствам команды на чтение слова или блока из нескольких слов. PCI Express основывается на другом принципе, предусматривающем отправку пакетов данных от одного устройства другому. Понятие пакета, состоящего из заголовка и полезной нагрузки, заимствовано из сетевых технологий. В заголовке содержится управляющая информация, а значит, отпадает потребность в многочисленных управляющих сигналах, которые играют важную роль при передаче по шине PCL Полезная нагрузка содержит непосредственно передаваемые данные. Таким образом, ПК, поддерживающий технологию PCI Express, напоминает сеть с коммутацией пакетов в миниатюре.

Помимо вышеперечисленных наиболее важных изменений, есть и менее заметные. В частности, в пакетах использован более надежный по сравнению с PCI код обнаружения ошибок. Далее, до 50 см увеличилась физическая длина соединения между микросхемой и коммутатором, за счет чего стало удобнее менять положение компонентов системы. Поскольку к базовому коммутатору можно подключить другой коммутатор, сформировав, таким образом, древовидную структуру, повышается степень расширяемости системы. Кроме того, устройства в рамках PCI Express поддерживают "горячее" подключение, а значит, их можно снимать и монтировать непосредственно в процессе работы. Наконец, так как последовательные коннекторы значительно меньше старых PCI-коннекторов, ничто не мешает производителям разрабатывать компактные устройства и компьютеры. Таким образом, налицо решительный отказ от принципов работы шины PCI.

 

1.1 Стек протоколов

Следуя модели сети с коммутацией  пакетов, технология PCI Express реализуется  на основе многоуровневого стека  протоколов. Протоколом называется набор правил, определяющих механизм взаимодействия между двумя сторонами. Соответственно, стек протоколов - это иерархическая система протоколов, которые регламентируют различные аспекты взаимодействия на тех или иных уровнях. Рассмотрим для примера деловое письмо. Существуют определенные соглашения о местоположении и содержании шапки письма, адреса получателя, даты, формы приветствия, тела письма, подписей и т. д. Все эти условности можно обобщенно назвать протоколом делового письма. Помимо этого, есть стандарты, касающиеся размера и формата конверта, размещения штампа и тому подобных тонкостей. Эти два уровня и соответствующие протоколы независимы друг от друга. К примеру, можно полностью изменить формат письма, положив его в стандартный конверт, и наоборот. Подобные многоуровневые протоколы, которые делают возможной модульную разработку с высоким уровнем гибкости, уже несколько десятилетий широко применяются в области сетевого ПО. В технологии PCI Express сделана попытка реализовать их в аппаратном обеспечении "шины".

Стек протоколов PCI Express изображен на рисунке 2 а.

 

Рисунок 2 - Стек протоколов PCI Express (а); формат пакета (б)

 

1.2 Физический уровень

Рассмотрим уровни по восходящей. Самым нижним является физический уровень (рисунок 3). Его можно разделить на два подуровня: подуровень физического доступа к среде передачи данных (Physical Media Attachment Layer, PMA) и подуровень физического кодирования (Physical Coding Sublayer, PCS).

Рисунок 3 - Физический уровень шины PCI Express

На физическом уровне линия PCI Express представляет собой две низковольтные дифференциальные пары проводов. Использование именно низковольтных дифференциальных сигналов (когда уровень сигнала в одном проводе измеряется относительно уровня сигнала в другом проводе) позволяет уменьшить влияние электромагнитных помех. Кроме того, с целью увеличения помехоустойчивости при передаче используется кодирование 8b/10b, которое производится на подуровне PCS.

Смысл такого кодирования достаточно прост — каждая последовательность 8 бит при передаче (рис. 3.1) заменяется последовательностью 10 бит в соответствии со специальной таблицей замены. При этом в исходной последовательности 8 бит содержится 256 различных комбинаций нулей и единиц, а в результирующей  — 1024. Данный подход позволяет избежать нежелательных последовательностей бит при передаче. Например, длинные последовательности логических нулей или единиц приводят к потере синхронизации. В результирующей последовательности можно отобрать комбинации (всего потребуется 256 комбинаций из 1024), в которых не встречаются длинные последовательности нулей и единиц — это приведет к улучшению самосинхронизирующих свойств кода. Кроме того, не все комбинации считаются разрешенными при передаче  — обнаружение запрещенной последовательности при приеме трактуется как наличие ошибки. Таким образом, избыточное кодирование позволяет приемнику распознавать ошибки.

 

 

 

Рисунок 3.1 - Преобразование данных на

физическом уровне при передаче данных

Подуровень физического  кодирования связан по 16-битному интерфейсу с верхним уровнем доступа к среде передачи данных (Media Access Level, MAC). Поэтому первоначально полученные по параллельному 16-битному интерфейсу данные разбиваются на группы по 8 бит, то есть частично сериализуются. Частота параллельного 16-битного интерфейса составляет 125 МГц, а после преобразования к 8-битному параллельному интерфейсу частота шины становится уже 250 МГц. После этого данные подвергаются кодированию 8b/10b и уже по 10-битному параллельному интерфейсу поступают на подуровень PMA, где преобразуются к последовательному типу и передаются непосредственно по линии связи, но уже на частоте 2,5 ГГц.

При приеме (рисунок 3.2) данные на физическом уровне претерпевают обратный порядок преобразования, то есть первоначально данные с частотой 2,5 ГГц поступают в дифференциальный приемник, после чего преобразуются к параллельному 10-битному интерфейсу. По этому интерфейсу данные, уже с частотой 250 МГц, подвергаются декодированию 10b/8b и по 8-битному интерфейсу поступают в блок преобразования к параллельному 16-битному типу. По 16-битной шине с частотой 125 МГц данные передаются на верхние уровни.

Рисунок 3.2 - Преобразование данных

на физическом уровне при приеме данных

В случае когда используется не одна линия для передачи данных, то есть при организации многомагистральной шины PCI Express (шины с шириной линий х1, х2, х4, х8, х16 или х32), управлением потока данных занимается специальный агент PCI Express, который распределяет поток данных перед тем, как отправить его по различным физическим линиям, а при приеме аналогичный агент собирает разные потоки данных в один (рисунок 3.4).

Рисунок 3.4 - Организация шины PCI Express при наличии

нескольких магистральных линий  передачи данных

 

1.3 Канальный уровень

Отвечает за передачу пакетов. На этом уровне к заголовку и полезной нагрузке, переданным с уровня транзакций, добавляется порядковый номер и код исправления ошибок - так называемый CRC (Cyclic Redundancy Check - циклический контроль избыточности). CRC-код генерируется путем выполнения определенного алгоритма в отношении заголовка и полезной нагрузки. По получении пакета устройство проводит аналогичные вычисления с заголовком и данными и сравнивает результат с величиной, указанной в пакете. Если два результата совпадают, первоначальному отправителю отсылается пакет подтверждения правильности полученных данных. В противном случае получатель делает запрос на повторную передачу. Таким образом, значительно повышаются показатели целостности данных по сравнению с шиной PCI, в которой не реализованы средства контроля и повторной передачи данных.

Во избежание перегрузки медленного получателя пакетами, исходящими от быстрого отправителя, реализуется механизм управления

 потоками. Этот механизм основывается  на выдаче получателем отправителю  определенного количества разрешений  на передачу пакетов - в зависимости  от объема свободного пространства, необходимого для их хранения. Исчерпав ранее выданные разрешения, отправитель должен приостановить передачу и дождаться новых разрешений. Такая схема, распространенная во всех сетях, предотвращает потерю данных вследствие несовпадения скоростей отправителя и получателя.

 

1.4 Уровень транзакций

На этом уровне выполняются все операции шины. К примеру, для считывания слова из памяти нужно выполнить две транзакции, из которых одну инициирует процессор или канал DMA, запрашивающий данные, другую - целевой объект (поставщик данных). Впрочем, чтение и запись - не единственные операции, которые выполняются на уровне транзакций. Этот уровень, в частности, расширяет возможности передачи пакетов, предоставляемые канальным уровнем. Каждая полоса на уровне каналов подразделяется на несколько (до восьми) виртуальных каналов, по каждому из которых передаются данные того или иного типа. На уровне транзакций пакеты маркируются согласно классу трафика, определяющему ряд свойств, таких как "высокий приоритет", "низкий приоритет", "запрет слежения", "допускается доставка вне последовательности" и т. д. Выстраивая порядок обработки пакетов, коммутатор, помимо прочего, основывается на информации из маркеров.

Любая транзакция проходит в одном  из четырех адресных пространств:

  • пространство памяти (при выполнении стандартных операций чтения и записи);
  • пространство ввода-вывода (для адресации регистров устройств);

 

  •  конфигурационное пространство (для инициализации системы и т. д.);
  • пространство сообщений (для отправки сигналов, прерываний и т. д.).

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

 

1.5 Программный уровень

Выступает посредником между PCI Express и операционной системой. Помимо прочего, на нем предусмотрен режим эмуляции шины PCI, позволяющий устанавливать в компьютерах, оснащенных PCI Express, старые операционные системы без каких-либо изменений. Естественно, при работе в таких условиях реализация всех возможностей PCI Express невозможна, однако обеспечение обратной совместимости является необходимой мерой - по крайней мере, до того момента, пока во всех операционных системах не будет полностью реализована поддержка PCI Express. Опыт показывает, что этот процесс займет немало времени.

Информация о работе Интерфейс PCI Express