PCI Express

 

Интерфейс PCI Express (первоначальное название - 3GIO) использует концепцию PCI, однако физическая их реализация кардинально отличается. На физическом уровне PCI Express представляет собой не шину, а некое подобие сетевого взаимодействия на основе последовательного протокола. Высокое быстродействие PCI Express позволяет отказаться от других системных интерфейсов (AGP, PCI), что дает возможность также отказаться от деления системного чипсета на северный и южный мосты в пользу единого контроллера PCI Express.

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

 


Рис. 43. Сравнение топологий PCI и PCI Express

 

Канал (link), связывающий устройство с концентратором PCI Express, представляет собой совокупность дуплексных последовательных (однобитных) линий связи, называемых полосами (lane). Дуплексный характер полос также контрастирует с архитектурой PCI, в которой шина данных - полудуплексная (в один момент времени передача выполняется только в определенном направлении). На электрическом уровне каждая полоса соответствует двум парам проводников с дифференциальным кодированием сигналов. Одна пара используется для приема, другая - для передачи. PCI Express первого поколения декларирует скорость передачи одной полосы 2,5 Гбит/с в каждом направлении. В будущем планируется увеличить скорость до 5 и 10 Гбит/с.

Канал может состоять из нескольких полос: одной (x1 link), двух (x2 link), четырех (x4 link), восьми (x8 link), шестнадцати (x16 link) или тридцати двух (x32 link). Все устройства должны поддерживать работу с однополосным каналом. Аналогично, различают слоты: x1, x2, x4, x8, x16, x32. Однако слот может быть "шире", чем подведенный к нему канал, т.е. на слот x16 фактически может быть выведен канал x8 link и т.п. Карта PCI Express должна физически подходить и корректно работать в слоте, который по размерам не меньше разъема на карте, т.е. карта x4 будет работать в слотах x4, x8, x16, даже если реально к ним подведен однополосный канал. Процедура согласования канала PCI Express обеспечивает выбор максимального количества полос, поддерживаемого обеими сторонами.

При передаче данных по многополосным каналам используется принцип чередования или "разборки данных" (data stripping): каждый последующий байт передается по другой полосе. В случае канала x2 это означает, что все четные байты передаются по одной полосе, а нечетные - по другой.

Как и большинство других высокоскоростных последовательных протоколов, PCI Express использует схему кодирования данных, встраивающую тактирующий сигнал в закодированные данные, т.е. обеспечивающую самосинхронизацию. Применяемый в PCI Express алгоритм 8B / 10B (8 бит в 10 бит) обеспечивает разбиение длинных последовательностей нулей или единиц так, чтобы приемная сторона не потеряла границы битов. С учетом кодирования 8B/10B пропускную способность однополосного канала PCI Express можно оценить, как 2500 Мбит/с / 10 бит/байт = 250 мегабайт/с (238 Мбайт/с).

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

 

Лабораторная работа №2. Мультиплексоры и демультиплексоры

 

Назначение мультиплексоров (от английского multiplex — многократный) – коммутировать в заданном порядке сигналы, поступающие с нескольких входных шин на одну выходную. У мультиплексора может быть, например, 16 входов и 1 выход. Это означает, что если к этим входам присоединены 16 источников цифровых сигналов - генераторов последовательных цифровых слов, то байты от любого из них можно передавать на единственный выход. Для выбора любого из 16 каналов обходимо иметь 4 входа селекции, на которые подается двоичный адрес канала. Так, для передачи данных от канала номер 9 на входах селекции необходимо установить код 1001.

Рис. 44. Схема восьмивходового мультиплексора.

 

Например, подав на входы A B C мультиплексора на рис. 44 двоичное число 011, мы обеспечим появление на выходе F сигнала со входа D3. В силу этого мультиплексоры часто называют селекторами или селекторами-мультиплексорами.

Мультиплексоры применяются, например, в МП i8088 для выдачи на одни и те же выводы МП адреса и данных, что позволяет существенно сократить общее количество выводов микросхемы; в микропроцессорных системах управления мультиплексоры устанавливают на удаленных объектах для возможности передачи информации по одной линии от нескольких установленных на них датчиков.

Демультиплексоры в функциональном отношении противоположны мультиплексорам. С их помощью сигналы с одного информационного входа распределяются в требуемой последовательности по нескольким выходам. Выбор нужной выходной шины, как и в мультиплексоре, обеспечивается установкой соответствующего кода на адресных входах. При m адресных входах демультиплексор может иметь до 2m выходов.

Мультиплексоры и демультиплексоры присутствуют в составе микросхем 74 серии в библиотеке цифровых элементов EWB (Electronics Worbench).

Примером может служить микросхема 74153. это сдвоенный четырёхканальный мультиплексор, имеющий 2 адресных входа, входы разрешения первого и второго мультиплексоров и их непосредственные выходы и входы.

Шифраторы (кодеры) используются чаще всего для преобразования десятичных чисел в двоичный или двоично-десятичный код, например, в микрокалькуляторах, в которых нажатие десятичной клавиши соответствует генерации соответствующего двоичного кода. Поскольку возможно нажатие сразу нескольких клавиш, в шифраторах используется принцип приоритета старшего разряда, т.е. при нажатии клавиш 9, 5 и 2 на выходе шифратора будет генерироваться код 1001, соответствующий цифре 9. Следует отметить, что шифраторы как отдельный класс функциональных устройств представлены в наиболее богатой ТТЛ-серии всего двумя ИМС — 74147 и 74148, причем последняя ИМС имеется и в библиотеке программы EWB.

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

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

Рис. 45. Схема дешифратора-демультиплексора с тремя входами и восемью выходами.

 

Дешифраторы как самостоятельные изделия электронной техники имеют 4, 8 или 16 выходов. Если требуется большее число выходов, дешифраторы наращиваются в систему.

Имеющийся в библиотеке EWB дешифратор ИМС 74154 имеет четыре адресных входа А, В, С, D, два входа разрешения G1, G2 и шестнадцать выходов 0...15 (выходы не прямые, как ошибочно обозначено в EWB, а инверсные, т.е. в исходном состоянии на выходах сигнал логической единицы). В режиме дешифратора с генератора слова на входы G1, G2 подается 0, а на адресные входы — код в диапазоне 0000...1111. В режиме демультиплексора один из разрешающих входов, например G1, используется в качестве информационного. Информационный сигнал в виде логического 0 с этого выхода распределяется по выходам 0...15 в соответствии с состоянием адресных входов, т.е. режимы дешифратора и демультиплексора практически неразличимы.

Используя программу Electronics workbench (или любой другой пакет схемотехнического моделирования), выполните следующие задания:

1–5: Используется микросхема 74148 (шифратор), три светодиода (подключены к выходам A0-A2, нумерация соответственная) и генератор слова; собрать схему осуществляющую:

1. Включение светодиодов в последовательности «0; 1; 2».

2. Включение светодиодов в последовательности «0; 0+1; 0+1+2»

3. Включение светодиодов в последовательности «0; 0+1; 1+2; 2»

4. Включение светодиодов в последовательности «2; 0; 1; 1+2+3 »

5. Включение светодиодов в последовательности «0; 0+1; 1+2; 2»

 

5–15: Используется микросхема 74154 (дешифратор-демультиплексор), генератор слова и светодиоды. Исследовать микросхему и определить уровень сигнала на выходах микросхемы в исходном состоянии. Собрать схему, осуществляющую:

6. Последовательное гашение светодиодов по возрастанию номеров. (эффект бегущего огня)

7. Последовательное гашение светодиодов по убыванию номеров.

8. Последовательное гашение сначала чётных, а затем нечётных светодиодов по убыванию номеров.

9. Последовательное гашение сначала чётных, а затем нечётных светодиодов по возрастанию номеров.

10. Последовательное гашение светодиодов от краёв диапазона к центру.

11. Последовательное зажигание светодиодов по возрастанию номеров. (использовать инвертер)

12. Последовательное зажигание светодиодов по убыванию номеров.

13. Последовательное зажигание сначала чётных, а затем нечётных светодиодов по убыванию номеров.

14. Последовательное зажигание сначала нечётных, а затем чётных светодиодов по возрастанию номеров.

15. Последовательное зажигание светодиодов от краёв диапазона к центру.

 


ГЛАВА 5. Системы ввода/вывода. Организация обмена в вычислительной системе