Автор работы: Пользователь скрыл имя, 16 Мая 2013 в 21:40, курсовая работа
Возможностей шины PCI вполне достаточно для большинства современных приложений, однако потребность в ускорении ввода-вывода постепенно дезорганизует некогда стройную внутреннюю архитектуру ПК. Суть проблемы заключается в том, что со временем появляется все больше устройств ввода-вывода, требования по быстродействию которых не соответствуют возможностям шины PCI. Разгон тактовой частоты шины - далеко не лучшее решение, поскольку только усугубляет перекос шины, перекрестные помехи между проводниками и емкостное сопротивление.
ВВЕДЕНИЕ
Возможностей шины 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, напоминает сеть с коммутацией пакетов в миниатюре.
Помимо вышеперечисленных
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 - Преобразование данных
на физическом уровне при приеме данных
В случае когда используется не одна
линия для передачи данных, то есть
при организации
Рисунок 3.4 - Организация шины PCI Express при наличии
нескольких магистральных
1.3 Канальный уровень
Отвечает за передачу пакетов. На этом уровне к заголовку и полезной нагрузке, переданным с уровня транзакций, добавляется порядковый номер и код исправления ошибок - так называемый CRC (Cyclic Redundancy Check - циклический контроль избыточности). CRC-код генерируется путем выполнения определенного алгоритма в отношении заголовка и полезной нагрузки. По получении пакета устройство проводит аналогичные вычисления с заголовком и данными и сравнивает результат с величиной, указанной в пакете. Если два результата совпадают, первоначальному отправителю отсылается пакет подтверждения правильности полученных данных. В противном случае получатель делает запрос на повторную передачу. Таким образом, значительно повышаются показатели целостности данных по сравнению с шиной PCI, в которой не реализованы средства контроля и повторной передачи данных.
Во избежание перегрузки медленного получателя пакетами, исходящими от быстрого отправителя, реализуется механизм управления
потоками. Этот механизм основывается
на выдаче получателем
1.4 Уровень транзакций
На этом уровне выполняются все операции шины. К примеру, для считывания слова из памяти нужно выполнить две транзакции, из которых одну инициирует процессор или канал DMA, запрашивающий данные, другую - целевой объект (поставщик данных). Впрочем, чтение и запись - не единственные операции, которые выполняются на уровне транзакций. Этот уровень, в частности, расширяет возможности передачи пакетов, предоставляемые канальным уровнем. Каждая полоса на уровне каналов подразделяется на несколько (до восьми) виртуальных каналов, по каждому из которых передаются данные того или иного типа. На уровне транзакций пакеты маркируются согласно классу трафика, определяющему ряд свойств, таких как "высокий приоритет", "низкий приоритет", "запрет слежения", "допускается доставка вне последовательности" и т. д. Выстраивая порядок обработки пакетов, коммутатор, помимо прочего, основывается на информации из маркеров.
Любая транзакция проходит в одном из четырех адресных пространств:
Пространства памяти и ввода-вывода
аналогичны традиционным тем, что
реализованы в современных
1.5 Программный уровень
Выступает посредником между PCI Express и операционной системой. Помимо прочего, на нем предусмотрен режим эмуляции шины PCI, позволяющий устанавливать в компьютерах, оснащенных PCI Express, старые операционные системы без каких-либо изменений. Естественно, при работе в таких условиях реализация всех возможностей PCI Express невозможна, однако обеспечение обратной совместимости является необходимой мерой - по крайней мере, до того момента, пока во всех операционных системах не будет полностью реализована поддержка PCI Express. Опыт показывает, что этот процесс займет немало времени.