Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
ШИНА PCI
PCI (Peripheral Component Interconnect bus) –
мультиплексированный параллельный системный
интерфейс.
Спецификация PCI 2.0 – подключение до 6
устройств, в том числе контроллеры шин
расширения (поддерживает ISA, EISA, SCSI и
др.)
Спецификация шины PCI определяет
процессорно-независимую шину,
предусматривающую подключение
нескольких устройств.
Схема вычислительной системы на основе PCI с
поддержкой нескольких устройств одновременно.
ШИНА PCI
• «Развязка» процессора и шины в архитектуре PCI осуществляется через мост
расширения при сохранении 32-разрядного обмена данными с периферийными
устройствами.
• Имеется возможность использования одной и той же системной платы для
процессоров разных поколений. Реализуется более сложными схемами управления.
• Контакты –PRSNT1 (B9) и –PRSNT2 (B11) служат для индикации установки платы
PCI в разъем и указывают величину необходимой для питания мощности.
• Основа управления всеми передачами данных на PCI служат 3 сигнала:
-FRAME выдается задатчиком для отображения конца запроса;
-IRDY выдается задатчиком для вызова циклов ожидания;
-TRDY выдается исполнителем для вызова циклов ожидания.
ШИНА PCI
Основной механизм передач на PCI – пакетный.
Пакет состоит из адресной фазы и одной или более фазы данных.
PCI поддерживает пакеты и в пространстве памяти и в пространстве
ввода/вывода.
Хост-мост (который держит связь между хост-процессором и PCI) может
объединять (или собирать) доступ к памяти на запись в единый запрос. Устройство
подтверждает, что их нет (позволяет предупреждать чтение данных и объединять записи
данных в любом порядке) путём установки бита выборки в базовом адресном регистре.
Мост различает, где позволено объединение данных, а где нет через адресный
диапазон, который может быть предоставлен софтом конфигурации в процессе
инициализации. Объединение данных в такой буфер должно остановиться (а буфер
очищен), когда происходит последовательная запись, которая не подпадает под выборку
или чтение (в любом диапазоне).
Доступы к ресурсу на ввод/вывод не могут быть скомбинированы, они имеют
только одиночную фазу данных.
Ни один процессор или задатчик на шине не генерирует пакеты в пространстве
ввода/вывода. Все доступы ввода/вывода должны появляться на PCI как только процессор
их сгенерировал. Все сигналы выровнены по фронту синхроимпульса.
ШИНА PCI
Транзакции
Интерфейс свободен, если запрещены –FRAME и –IRDY (имеют значение 1). Первый
фронт синхроимпульса, на котором разрешается –FRAME – это адресная фаза. Адресные и
шинные коды команд передаются на переднем фронте синхроимпульсов.
Транзакцию начинает задатчик, предварительно получив разрешение на работу на
шине.
Это разрешение задатчик получает от Арбитра, послав ему сигнал запроса -REQ и
получив разрешение -GRN от него.
После этого задатчик начинает транзакцию
с адресной фазы путем установки по 1-ому
импульсу транзакции сигналов -FRAME, адреса
AD[31::0] и команды -C/BE[3::0]. Эти сигналы становятся
достоверными ко 2-му импульсу транзакции.
На первом импульсе начинается адресная фаза.
ШИНА PCI
Сигнал -DEVSEL должен устанавливаться после декодирования адреса и перед или вместе
с сигналами -IRDY, -STOP и данных. Исполнитель не сбрасывает –DEVSEL до окончания последней
фазы данных. Так как на 3-м импульсе фазы данных передачи данных от исполнителя к задатчику
не произошло, то этот такт называется тактом ожидания.
Только на 4-м импульсе задатчик определяет
(по сигналу -TRDY), что на шине AD[31::0] находятся
достоверные данные и считывает их, завершая первую фазу
данных. На 4-м импульсе начинается вторая фаза данных и т.д.
Фазы данных могут занимать один такт, если нет
тактов ожидания, или несколько тактов, если есть такты
ожидания. Такты ожидания могут формироваться либо
задатчиком (сбросом -IRDY), либо исполнителем (сбросом -TRDY).
Задатчик или исполнитель могут
менять значения данных на
шине AD только при активных
значениях сигналов -IRDY и -TRDY соответственно. Если эти сигналы
сброшены, то на шине AD удерживаются старые значения данных.
При операции записи, значения сигналов на шине -C/BE меняются
на каждой фазе данных.
При чтении значения -C/BE не меняется в течение всех фаз данных
транзакции.
ШИНА PCI
Пример.
Значения сигналов и переключение шин при реализации транзакции чтения.
ШИНА PCI
По второму импульсу, в соответствии с установленным адресом определяется
исполнитель и соответствующая команда. При операции чтения по этому импульсу задатчик
выставляет сигнал -IRDY, который говорит исполнителю, что задатчик готов принять данные.
Исполнитель ко 2-му импульсу организует Т-цикл для сигналов AD[31::0].
По 2-му импульсу он может установить, если успеет, сигнал -DEVSEL, сообщающий
задатчику, что исполнитель найден и имеет право проводить транзакцию, если не успевает из-за
Т-цикла на шине АD, то установка -DEVSEL происходит на 3-м импульсе.
На 2-м импульсе исполнитель устанавливает сигналы указателя байт при
передаче данных -C/BE[3::0]. После 2-го импульса задатчик не управляет линиями
AD[31::0] и -C/BE[3::0], ими управляет исполнитель. На 2-ом импульсе заканчивается фаза адреса
и начинается фаза данных.
На 3-м импульсе исполнитель определяет, что задатчик готов (по сигналу -IRDY) к приему
данных, и выставляет первые данные на AD[31::0] и устанавливает сигнал -TRDY, который
сообщает задатчику, что на линиях AD[31::0] имеются первые достоверные данные.
На этом такте может устанавливаться сигнал -DEVSEL, если исполнитель не успел его
установить на втором импульсе.
ШИНА PCI
Окончание транзакции
На последней фазе данных обязательно сбрасывается -FRAME и устанавливается
-IRDY. -FRAME может быть сброшен только тогда, когда -IRDY установлен. После
того как исполнитель на последней фазе данных установит -TRDY, может быть
проведена последняя передача от исполнителя к задатчику, и транзакция закончится сбросом
на последнем импульсе транзакции сигнала -IRDY. Так как сброшены сигналы -FRAME и
-IRDY, то следующий Такт будет тактом холостого хода
(IDLE циклом).
По последнему импульсу транзакции также
сбрасываются сигналы -TRDY и -DEVSEL.
Операция записи.
Транзакция
записи
выполняется точно также, за исключением того, что в
ней отсутствует Т-цикл на 3-м импульсе для сигналов
AD[31::0]. Поэтому на 3-м импульсе отсутствует такт
очищения, и исполнитель на 3-м импульсе считывает
первые данные, выставленные задатчиком.
При
транзакции записи шинами AD и -C/BE управляет
задатчик.
Сигнал -STOP используется для завершения
транзакции по инициативе исполнителя.
ШИНА PCI
Способы завершения транзакций
Транзакция может быть завершена либо задатчиком, либо исполнителем. Пока ни тот ни другой не инициализируют
останов, транзакция продолжается.
Способ 1. Завершение транзакции задатчиком.
Задатчик инициализирует завершение транзакции, когда сигнал -FRAME сброшен, а -IRDY
установлен. Это указывает исполнителю, что наступает последняя фаза данных. Последняя передача данных
происходит, когда установлены -IRDY и -TRDY. Транзакция завершается, когда -FRAME и -IRDY сброшены
(состояние холостого хода шины).
Задатчик может прекращать транзакцию этим способом по двум причинам:
• когда задатчик заканчивает начатую им транзакцию.
• когда линия разрешения захвата шины (-GRN) сброшена задатчиком и, когда исчерпано время,
задаваемое таймером задержки (Тайм-аут).
Модифицированная версия этого способа завершения транзакции задатчиком используется при
отсутствии ответа от исполнителя на его адресацию сигналом -DEVSEL.
Способ 2. Завершение транзакции исполнителем.
Осуществляется с использовании сигнала -STOP. Исполнитель выдает сигнал -STOP, чтобы запросить
завершение транзакции от задатчика.
После установки -STOP сохраняет активное значение до момента сброса -FRAME.
Взаимосвязь между -IRDY и -TRDY не зависит от взаимодействия между -STOP и -FRAME. Поэтому
данные могут быть переданы или не переданы до конца в текущей транзакции. Это зависит единственно от
состояния -IRDY и -TRDY. Когда -STOP установлен, а -TRDY сброшен – дальнейшая передача данных
исполнителя невозможна и задатчик не ждет последней передачи данных, а немедленно завершает транзакцию.
ШИНА PCI
Арбитраж
Каждый задатчик на шине PCI получает доступ к шине только после разрешения на захват
шины от Арбитра. Для этого используется специальные, индивидуальные для каждого задатчика линии (типа
точка-точка) запроса -REQ к арбитру и разрешения -GNT к задатчику от арбитра.
Для доступа к шине, задатчик выдает Арбитру сигнал запроса -REQ и может захватить шину
только после получения от Арбитра сигнала разрешения -GNT.
Процесс арбитража не требует дополнительных циклов шины, так как он совмещается с
выполнением других операций, кроме случая, когда шина не занята и находится в состоянии холостого хода
(цикл IDLE).
Захват шины задатчиком и выполнение транзакции идет в следующей последовательности:
• задатчик выдает запрос -REQ,
• через время задержки арбитража Арбитр выдает задатчику сигнал разрешения -GNT,
• через время задержки ожидания захвата шины задатчик начинает транзакцию, выставив сигнал
-FRAME.
Передача осуществляется выполнением одной или нескольких транзакций. В конце последней
транзакции производится сброс сигнала -REQ, а затем -GNT.
Такой процесс происходит тогда, когда нет запросов шины от задатчиков с бОльшим приоритетом.
Если во время работы текущего задатчика появляется запрос от объекта вычислительной системы с
бОльшим приоритетом, то:
• либо выполняется прерывание транзакции,
• либо транзакция выполняется до конца, а затем шина переходит к задатчику с бОльшим
приоритетом.
ШИНА PCI
Процессы установки и сброса сигналов -REQ и -GNT в различных ситуациях.
• Задатчик выдает сигнал -REQ по фронту любого импульса синхронизации шины (CLK).
• Задатчик может сбросить сигнал -REQ на любом импульсе CLK. Сброс этого сигнала Арбитр
интерпретирует как то, что задатчику шина больше не требуется и можно сбросить его сигнал
разрешения -GNT.
• Если задатчику требуется выполнение только одной транзакции, то он сбрасывает -REQ на первом
импульсе CLK, начинающем транзакцию, одновременно с установкой сигнала -FRAME этой
транзакции.
• Если задатчику требуется передача нескольких транзакций, то он должен удерживать свой -REQ
до последней транзакции, поскольку Арбитр дает разрешение только на одну транзакцию.
• Когда транзакция заканчивается по инициативе исполнителя установкой сигнала -STOP,
задатчик должен сбросить свой -REQ минимум за два импульса CLK.
• Если задатчик намеревается продолжить прерванную исполнителем транзакцию, он должен
переустановить свой сигнал -REQ.
Одновременно могут быть установлены сигналы -REQ от нескольких задатчиков.
ШИНА PCI
В ответ на запрос арбитр выдает сигнал разрешения -GNT. При нескольких запросах REQ, Арбитр выдает сигнал разрешения -GNT задатчику с наивысшим в данный момент
времени приоритетом.
На шине в любой момент времени может быть установлен только один сигнал -GNT,
поскольку шиной в каждый момент времени управляет только один задатчик.
Арбитр выдает сигнал разрешения -GNT в ответ на запрос -REQ с некоторой задержкой
арбитража. Эта задержка измеряется от момента установки -REQ (т.е. от 1-го импульса CLK,
которому соответствует стабильное значение -REQ) до момента получения стабильного значения
сигнала -GNT задатчиком (т.е. до 1-го импульса CLK, которому соответствует стабильное
значение -GNT). Это время измеряется в числе импульсов CLK.
Время задержки арбитража зависит от алгоритма арбитража и уровня приоритета
устройства. Минимальная задержка арбитража характерна для случая нахождения шины в
состоянии холостого хода (IDLE).
Типовая задержка арбитража для задатчика с наивысшим приоритетом, при наличии на
шине текущего задатчика, равна двум импульсам CLK. Если текущего задатчика нет, то задержка
равна одному импульсу. Для устройств с более низким приоритетом может требоваться бОльшая
задержка арбитража в зависимости от числа задействованных устройств с более высоким уровнем
приоритетов.
Арбитр может сбросить сигнал -GNT задатчика на любом импульсе CLK для обслуживания
объекта с бОльшим приоритетом
ШИНА PCI
Сброс сигнала -GNT может производиться либо в ответ на сброс своего сигнала запроса REQ, либо в случае, когда пришел запрос от задатчика с большим приоритетом.
Арбитр может сохранить установленный сигнал разрешения -GNT для данного задатчика
и при сбросе этим задатчиком сигнала -REQ, если нет других требований на захват шины.
Если -FRAME сброшен, то -GNT этого задатчика может быть снят в любой момент времени
в порядке обслуживания задатчика с более высоким приоритетом или в ответ на сброс своего -REQ.
Арбитр может сбросить -GNT одного объекта в момент установки -GNT другого с более
высоким приоритетом, если на шине нет состояния IDLE. В противном случае, требуется задержка
в один импульс между сбросом одного -GNT и установкой другого, чтобы исключить состязания на
шине по сигналам AD и PAR.
Если шина находится в состоянии IDLE и Арбитр сбросил -GNT, то задатчик прекращает
транзакцию и теряет доступ к шине, за исключением случая когда происходит одновременно (на
одном и том же импульсе CLK) сброс -GNT и установка -FRAME объекта. В этом случае
транзакция продолжается.
Если задатчик не использует шину после получения сигнала разрешения -GNT (его -REQ
установлен) в течение16-и импульсов, то Арбитр отключает его от шины.
ШИНА PCI
Получив сигнал -GNT, задатчик не сразу захватывает шину, а через некоторое
время, называемое задержкой ожидания захвата шины (задержкой захвата). Это время
определяется от момента получения задатчиком -GNT до установки стабильного
значения сигнала -FRAME. Оно измеряется количеством импульсов CLK.
Задержка захвата определяется тем, что задатчик, получив -GNT, может начать
свою транзакцию только если шина будет находиться в состоянии холостого хода
(сброшены -FRAME и -IRDI). Поэтому этот задатчик ждет, пока текущий задатчик завершит
транзакцию и шина перейдет в состояние холостого хода.
Текущий задатчик завершает транзакцию в следующих случаях:
• нормальное завершение в конце транзакции.
• завершение по прерыванию транзакции:
прерывание от задатчика, когда появляется сигнал тайм-аут (время таймера
задержки истекло) и сброшен его сигнал -GNT;
прерывание от исполнителя, когда исполнитель выдает сигнал -STOP.
ИНТЕРФЕЙС PCI Express
PCI Express (PCIe, PCI-E) – компьютерная шина, использующая программную
модель шины PCI и высокопроизводительный физический протокол, основанный на
последовательной передаче данных.
Разработка стандарта PCIе была начата фирмой Intel. Первая базовая спецификация
PCIе – июль 2002 г.
Развитием стандарта PCIе занимается организация PCI Special Interest Group
(www.pcisig.com).
В отличие от шины PCI, использовавшей для передачи данных общую шину, PCIе
является пакетной сетью с топологией типа звезда. Устройства PCIе взаимодействуют между
собой через среду, образованную коммутаторами, при этом каждое устройство напрямую
связано соединением типа точка-точка с коммутатором.
Шиной PCIе поддерживается:
• горячая замена контроллеров;
• гарантированная полоса пропускания (QoS);
• управление энергопотреблением;
• контроль целостности передаваемых данных.
ИНТЕРФЕЙС PCI Express
Шина PCIе нацелена на использование только в качестве локальной шины.
Поскольку программная модель PCIе унаследована (во многом) от PCI, то
существующие системы и контроллеры могут быть доработаны для использования шины
PCIе заменой только физического уровня, без доработки программного обеспечения.
Высокая пиковая производительность шины PCIе позволяет использовать её
вместо шин AGP и тем более PCI и PCI-X.
Год
выпуска
Версия
PCIe
2002
Пропускная способность на x линий, Гбайт/с
Кодирование
Скорость передачи
одной линии, ГТ/с
x1
x2
x4
x8
x16
1.0
8b/10b
2,5
0,25
0,50
1,0
2,0
4,0
2007
2.0
8b/10b
5
0,500
1,0
2,0
4,0
8,0
2010
3.0
128b/130b
8
0,9846
1,97
3,94
7,88
15,8
2017
4.0
128b/130b
16
1,969
3,94
7,88
15,75 с
31,5
2019
5.0
128b/130b
32
3,938
7,88
15,75
31,51
63,02
2021
6.0
128b/130b,
64
7,877
15,75
31,51
63,02
126,03
Т/с – транзакции в сек.
Для расчёта пропускной способности 1-й линии шины (x1) необходимо учесть кодирование.
Пример, пропускная способность линии PCIe 1.0 составляет: 2,5 ГТ/с · 8/10 бит/Т = 2 Гбит/с = 2·109 бит/c = 250 МБайт/c
ИНТЕРФЕЙС PCI Express
Для подключения устройства PCIе используется двунаправленное последовательное
соединение типа точка-точка, называемое lane; это отличается от PCI, в которой все
устройства подключаются к общей 32-разрядной параллельной двунаправленной шине.
Соединение между двумя устройствами PCIe называется link,
и состоит из одного (называемого x1) или нескольких (x2, x4, x8, x12, x16 и x32)
двунаправленных последовательных соединений lane.
Каждое устройство должно поддерживать соединение x1.
На электрическом уровне каждое соединение
использует низковольтную дифференциальную передачу
сигнала (LVDS), приём/передача данных производится
каждым устройством PCIе по отдельным двум
проводникам, таким образом, в простейшем случае,
устройство подключается к коммутатору PCIe
всего лишь четырьмя проводниками.
ИНТЕРФЕЙС PCI Express
Использование подобного подхода имеет следующие преимущества:
• карта PCIе помещается и корректно работает в любом слоте той же или бОльшей
пропускной способности (плата x1 будет работать в слотах x4 и x16);
• слот бОльшего физического размера может использовать не все lane (например, к слоту
x16 можно подвести линии передачи информации, соответствующие x1 или x8, и
всё это будет нормально функционировать; однако, при этом необходимо
подключить все линии «питание» и «земля», необходимые для слота x16).
В обоих случаях, на шине PCIе будет использовать максимальное количество lane,
доступных как для платы, так и для слота. Однако это не позволяет устройству работать в
слоте, предназначенном для плат с меньшей пропускной способностью шины PCIe. Например,
плата x4 физически не поместится в стандартный слот x1, несмотря на то, что она могла бы
работать в слоте x4 с использованием только одного lane. На некоторых материнских платах можно
встретить нестандартные слоты x1 и x4, у которых отсутствует крайняя перегородка. В них можно
устанавливать карты большей длины, чем разъем.
Питание и заземление выступающей части карты не обеспечивается – это источник
различных проблем.
ИНТЕРФЕЙС PCI Express
PCIe пересылает всю управляющую информацию, включая прерывания, через те же
линии, что используются для передачи данных. Последовательный протокол никогда не
может быть заблокирован, таким образом задержки шины PCIe вполне сравнимы с таковыми для
шины PCI (заметим, что шина PCI для передачи сигнала о запросе на прерывание
использует отдельные физические линии IRQ#A, IRQ#B, IRQ#C, IRQ#D).
Во всех высокоскоростных последовательных протоколах (например, гигабитный
Ethernet) информация о синхронизации должна быть встроена в передаваемый сигнал. На
физическом уровне, PCIe использует метод канального кодирования 8B/10B (8 бит в 10,
избыточность 20%) для устранения постоянной составляющей в передаваемом сигнале и для
встраивания информации о синхронизации в поток данных.
В PCIe версии 3.0 используется более экономное кодирование 128b/130b с избыточностью
1,5%.
Некоторые используют метод, который называется скремблинг – встраивание
информации о синхронизации в поток данных и для "размывания" спектра передаваемого
сигнала.
Спецификация PCIe также предусматривает функцию скремблинга.