Схема работы шины pci ее настройка

PCI (Peripheral Component Interconnect) – это компьютерная шина ввода/вывода, предназначена для подключения периферийных устройств к системной плате персонального компьютера. Шина PCI поддерживает 32-х/64-х битный обмен данными.

Частота шины PCI 33 МГц или 66 МГц (новые спецификации шины могут работать на более высоких частотах: 100 МГц, 133 МГц, 266 МГц, 533 МГц). Поддерживаемое напряжение 3,3/5 В.

Характерной особенностью интерфейса PCI есть использование для передачи данных общей 32/64-битной двунаправленной параллельной шины, к которой подключаются все PCI-устройства. Любое устройство на шине PCI может позиционироваться как master-устройство (т.е., шина децентрализована).

Рис 1. Слоты 32-разрядной шины PCI на материнской плате.

Спецификации шины PCI

Спецификация 2.0 шины PCI – первая версия шины. Пропускная способность (пиковая) – 133 Мбайт/с.

Спецификация 2.1 шины PCI – модификация шины PCI, преимуществами которой (по сравнению с предыдущей версией 2.0) является возможность параллельной работы нескольких шинных задатчиков, использование универсальных плат расширения (которые могут работать в слотах под напряжением 5 Вольт и 3,3 Вольт). Спецификация PCI 2.1 позволяет использовать частоты 33 МГц и 66 МГц и подключение к шине PCI более 4 устройств. Пропускная способность (пиковая) – 133 Мбайт/с (для 33 МГц) и 266 Мбайт/с (для 66 МГц).

Спецификация 3.0 шины PCI – модификация шины PCI, характерной особенностью которой было использование слотов с напряжением только 3,3 Вольт.

Спецификация PCI 64. Поддерживает напряжения 5 Вольт и 3,3 Вольт. Пропускная способность (пиковая) – 266 Мбайт/с (увеличена за счёт удлинения обычного PCI-слота). Рабочая частота 33 МГц.

Спецификация PCI 66. Поддерживает напряжение 3,3 Вольт. Пропускная способность (пиковая) – 533 Мбайт/с. Рабочая частота 66 МГц.

Спецификация PCI 64/66. Объединение спецификаций PCI 64 и PCI 66. Поддерживает напряжение 3,3 Вольт. Пропускная способность (пиковая) – 533 Мбайт/с. Рабочая частота 66 МГц.

Спецификация PCI-X 1.0. Поддерживает напряжение 3,3 Вольт. Рабочие частоты 100 МГц и 133 МГц. Пропускная способность (пиковая) – 1024 Мбайт/с.

Спецификация PCI-X 2.0. Пропускная способность 4096 Мбайт/с. Рабочие частоты 100 МГц, 133 МГц, 266 МГц, 533 МГц. Пропускная способность (пиковая) – 4096 Мбайт/с.

Видео:Новая надстройка в BIOS для работы SSD m.2 nvme с переходником PCI E X16Скачать

Новая надстройка в BIOS для работы SSD m.2 nvme с переходником PCI E X16

Схема работы шины pci ее настройка

Введение
PCI
(Peripheral Component Interconnect bus) — шина для подсоединения периферийных устройств. Стала массово применяться для Pentium-систем, но используется и с 486 процессорами. Частота шины от 20 до 33 МГц, теоретически максимальная скорость 132/264 Мбайт/с для 32/64 бит. В современных материнских платах частота на шине PCI задается как 1/2 входной частоты процессора, т.е при частоте 66 MHz на PCI будет 33 MHz, при 75 MHz — 37.5 MHz.

Имеет версии с питанием 5V, 3.3V и универсальную (с переключением линий +VI/O c 5V на 3,3V). Ключами являются пропущенные ряды контактов 12, 13 и 50, 51. Для слота с питанием 5V ключ расположен на месте контактов 50, 51, для 3,3 В — 12, 13, а для универсального — два ключа: 12, 13 и 50,51. 32-битный слот заканчивается контактами А62/В62, 64-битный — А94/В94.

Слот PCI самодостаточен для подключения любого контроллера (VLB не работала без ISA), на системной плате может сосуществовать с любой из других шин ввода-вывода.
Шина PCI — первая шина в архитектуре IBM PC, которая не привязана к этой архитектуре. Она является процессорно-независимой и применяется, например, в компьютерах Macintosh.
В отличие от остальных шин, компоненты расположены на левой поверхности плат PCI-адаптеров. По этой причине крайний PCI-слот обычно разделяет использование посадочного места с соседним ISA-слотом (Shared slot).

Процессор через так называемые мосты (PCI Bridge) может быть подключен к нескольким каналам PCI, обеспечивая возможность одновременной передачи данных между независимыми каналами PCI (возможно только в спецификации 2.1).

Автоконфигурирование устройств (выбор запросов прерывания, каналов DMA) поддерживается средствами BIOS материнской платы по образу и подобию стандарта Plug & Play. В настоящее время действует спецификация PCI 2.1.

Стандарт PCI определяет для каждого слота конфигурационное пространство размером до 256 восьмибитных регистров, не приписанных ни к пространству памяти, ни к пространству ввода-вывода. Доступ к ним осуществляется по специальным циклам шины Configuration Read и Configuration Write, вырабатываемым контроллером при обращении процессора к регистрам контроллера шины PCI, расположенным в его пространстве ввода-вывода.

На PCI определены два основных вида устройств — инициатор (по ГОСТ — задатчик), т.е. устройство, получившее от арбитра шины разрешение на захват ее и устройство назначения, цель (target) с которым инициатор выполняет цикл обмена данными.

Сигналы шины PCI
Знак — (минус) перед названием сигнала означает, что активный уровень этого сигнала логический ноль, обозначение означает группу сигналов с номерами от 0 до XX.

AD — мультиплексированная шина адреса/данных. Адрес передается по сигналу — FRAME, в последующих тактах передаются данные.

-C/ BE — команда/разрешение обращения к байтам. Команда, определяющая тип очередного цикла шины (чтение-запись памяти, ввода/вывода или чтение/запись конфигурации, подтверждение прерывания и другие) задается четырехбитным кодом в фазе адреса по сигналу — FRAME.

-FRAME — индикатор фазы адреса (иначе — передача данных).

-DEVSEL — выбор инициатором устройства назначения.

-IRDY — готовность инициатора к обмену данными.

-TRDY — готовность устройства назначения к обмену данными.

-STOP — запрос устройства назначения к инициатору на останов текущей транзакции.

-LOCK — используется для установки, обслуживания и освобождения захвата ресурса на PCI.

-REQ — запрос от PCI-устройства на захват шины (для слотов 3:0).

-GNT — разрешение мастеру на использование шины.

PAR — общий бит четности для линий AD и C/BE .

-ParityER — сигнал об ошибке по четности (от устройства, ее обнаружившего).

-RST — сброс всех устройств.

IDSEL — выбор устройства назначения в циклах считывания и записи конфигурации.

-SERR — системная ошибка, активизируется любым устройством PCI и вызывает немаскируемое прерывание процессора (NMI).

-REQ64 — запрос на 64-битный обмен.

-ASK64 — подтверждение 64-битного обмена.

-INTR A,B,C,D — линии запросов прерывания, направляются на доступные линии IRQ BIOS компьютера. Запрос по низкому уровню допускает разделяемое использование линий прерывания.

Clock — сигнал синхронизации на тактовой частоте шины.

Test Clock, -TSTRES, TestDO, TestDI — сигналы для тестирования адаптеров по интерфейсу JTAG (на системной плате обычно не задействованы).

TSTMSLCT — перевод в режим тестирования.

Видео:Другие устройства в диспетчере устройств как убрать Windows 11.Неизвестное устройство.PCI-контроллерСкачать

Другие устройства в диспетчере устройств как убрать Windows 11.Неизвестное устройство.PCI-контроллер

Шина PCI (Peripheral Component Interconnect bus)

Итак, переходим к самому интересному. Что же находится на сегодняшний день внутри большинства наших компьютеров? Естественно, шина PCI. Другой вопрос, почему именно эта шина. Попробуем разобраться.

Итак, разработка шины PCI началась весной 1991 года как внутренний проект корпорации Intel (Release 0.1). Специалисты компании поставили перед собой цель разработать недорогое решение, которое бы позволило полностью реализовать возможности нового поколения процессоров 486/Pentium/P6 (вот уже половина ответа). Особенно подчеркивалось, что разработка проводилась «с нуля», а не была попыткой установки новых «заплат» на существующие решения. В результате шина PCI появилась в июне 1992 года (R1.0). Разработчики Intel отказались от использования шины процессора и ввели еще одну «антресольную» (mezzanine) шину.

Благодаря такому решению шина получилась, во-первых, процессоро-независимой (в отличие от VLbus), а во-вторых, могла работать параллельно с шиной процессора, не обращаясь к ней за запросами. Например, процессор работает себе с кэшем или системной памятью, а в это время по сети на винчестер пишется информация. Просто здорово! На самом деле идиллии, конечно, не получается, но загрузка шины процессора снижается здорово. Кроме того, стандарт шины был объявлен открытым и передан PCI Special Interest Group, которая продолжила работу по совершенствованию шины (в настоящее время доступен R2.1), и в этом, пожалуй, вторая половина ответа на вопрос «почему PCI?»

Читайте также: R13 это радиус шины

Основные возможности шины следующие.

  • Синхронный 32-х или 64-х разрядный обмен данными (правда, насколько мне известно, 64-разрядная шина в настоящее время используется только в Alpha-системах и серверах на базе процессоров Intel Xeon, но, в принципе, за ней будущее). При этом для уменьшения числа контактов (и стоимости) используется мультиплексирование, то есть адрес и данные передаются по одним и тем же линиям.
  • Поддержка 5V и 3.3V логики. Разъемы для 5 и 3.3V плат различаются расположением ключей
  • 132 МВ/сек при 32-bit/33MHz;
  • 264 MB/сек при 32-bit/66MHz;
  • 264 MB/сек при 64-bit/33MHz;
  • 528 МВ/сек при 64-bit/66MHz.

При разработке шины в ее архитектуру были заложены передовые технические решения, позволяющие повысить пропускную способность.

Шина поддерживает метод передачи данных, называемый «linear burst» (метод линейных пакетов). Этот метод предполагает, что пакет информации считывается (или записывается) «одним куском», то есть адрес автоматически увеличивается для следующего байта. Естественным образом при этом увеличивается скорость передачи собственно данных за счет уменьшения числа передаваемых адресов.

Шина PCI является той черепахой, на которой стоят слоны, поддерживающие «Землю» — архитектуру Microsoft/Intel Plug and Play (PnP) PC architecture. Спецификация шины PCI определяет три типа ресурсов: два обычных (диапазон памяти и диапазон ввода/вывода, как их называет компания Microsoft) и configuration space — «конфигурационное пространство».

Конфигурационное пространство состоит из трех регионов:

  • заголовка, независимого от устройства (device-independent header region);
  • региона, определяемого типом устройства (header-type region);
  • региона, определяемого пользователем (user-defined region).

В заголовке содержится информация о производителе и типе устройства — поле Class Code (сетевой адаптер, контроллер диска, мультимедиа и т.д.) и прочая служебная информация.

Следующий регион содержит регистры диапазонов памяти и ввода/вывода, которые позволяют динамически выделять устройству область системной памяти и адресного пространства. В зависимости от реализации системы конфигурация устройств производится либо BIOS (при выполнении POST — power-on self test), либо программно. Базовый регистр expansion ROM аналогично позволяет отображать ROM устройства в системную память. Поле CIS (Card Information Structure) pointer используется картами cardbus (PCMCIA R3.0). С Subsystem vendor/Subsystem ID все понятно, а последние 4 байта региона используются для определения прерывания и времени запроса/владения.

Видео:03. Основы устройства компьютера. Память и шина. [Универсальный программист]Скачать

03. Основы устройства компьютера. Память и шина. [Универсальный программист]

Русские Блоги

Видео:❓ Неизвестное устройство в Windows. Как решить проблему?Скачать

❓ Неизвестное устройство в Windows. Как решить проблему?

Начало работы с PCI

Видео:Системная шина персонального компьютера PCIСкачать

Системная шина персонального компьютера PCI

Начало работы с PCI

Каталог статей

Видео:Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!Скачать

Как работает компьютер? Шины адреса, управления и данных. Дешифрация. Взгляд изнутри!

1. Основы PCI

Структурная схема процессорной системы на базе шины PCI выглядит следующим образом:

Схема работы шины pci ее настройка

1.1 Хост-мост

Дерево шины PCI в основном состоит из моста хост-хоста (существующего с южным мостом), шины PCI и устройств PCI.Основные функции моста хост-хоста включают:

  • Изолируйте домен памяти и домен шины PCI процессорной системы, каждый мост хоста соответствует домену шины PCI
  • Управление доменами шины PCI
  • Обмен данными с устройством PCI после завершения обработки

1.2 шина PCI

Шиной PCI управляет мост хоста или мост PCI, используемый для подключения различных устройств

1.3 Устройство PCI

  • Мостовое устройство, управление нисходящей шиной PCI, прямая транзакция восходящей шины
  • PCI AgnetОборудование, такое как сетевая карта PCI, видеокарта и т. Д.

1.4 Конфигурация устройства PCI

Поскольку устройства PCI / PCIe делятся на мост и агент, существует также два типа конфигурационного пространства.

1.4.1 Пространство конфигурации устройства PCI

Схема работы шины pci ее настройка

(1) Регистр идентификатора устройства и идентификатора поставщика

Эти два регистра доступны только для чтения: идентификатор производителя представляет производителя устройства PCI, а идентификатор устройства — конкретное устройство, произведенное этим производителем. Например, сетевая карта с чипом Intel 82571EB, где идентификатор поставщика — 0x8086, а устройство — 0x105E.

(2) Регистры идентификатора версии и кода класса

Эти два регистра доступны только для чтения. В регистре Revision ID записывается номер версии устройства PCI. Этот регистр можно рассматривать как расширение регистра идентификатора устройства. В регистре кода класса записывается классификация устройств PCI. Этот регистр состоит из трех полей: кода базового класса, кода подкласса и интерфейса. Среди них код базового класса классифицирует устройства PCI как видеокарты, сетевые карты, мосты PCI и другие устройства; код подкласса дополнительно подразделяет эти устройства. Интерфейс определяет интерфейс программирования. Кроме того, при разработке аппаратной логики также необходимо использовать регистры для идентификации различных устройств. Когда регистр кода базового класса равен 0x06, а регистр кода подкласса — 0x04, это означает, что текущее устройство PCI является стандартным мостом PCI.

(3)Header Typeрегистр

Этот регистр доступен только для чтения и состоит из 8 бит.

  • 7-й бит, равный 1, указывает, что текущее устройство PCI является многофункциональным устройством, а 0 указывает на однофункциональное устройство.
  • Биты 0

6 указывают тип текущего пространства конфигурации, 0 означает, что устройство использует пространство конфигурации устройства агента PCI, а обычные устройства PCI используют этот заголовок конфигурации; 1 означает, что используется пространство конфигурации моста PCI, а мост PCI использует его. Вид заголовка конфигурации. Системное программное обеспечение должно использовать этот регистр, чтобы различать различные типы конфигурационных пространств PCI.

(4) Регистр размера строки кэша Этот регистр записывает длину строки кэша, используемой процессором. В шине PCI для транзакций шины, связанных с кешем, таких как недействительность записи в память, необходимо использовать этот регистр. Этот регистр устанавливается системным программным обеспечением и используется аппаратной логикой. (5) Регистр базового адреса ПЗУ расширения Некоторым устройствам PCI необходимо выполнить базовую инициализацию, прежде чем процессор запустит операционную систему. Чтобы реализовать эту функцию «предварительного выполнения», устройства PCI должны предоставить программу ПЗУ, и процессор будет запускать эту программу ПЗУ во время процесса инициализации для инициализации этих устройств PCI. Регистр базового адреса ПЗУ расширения записывает базовый адрес этой программы ПЗУ. (6) Регистр указателя возможностей В устройствах PCI этот регистр является необязательным, но он должен поддерживаться в устройствах PCIe. Регистр указателя возможностей хранит базовый адрес набора регистров возможностей, а набор регистров возможностей используется для хранения некоторой расширенной информации о конфигурации, связанной с устройством PCI. (7) Регистр базового адреса 0 Эта группа регистров для краткости называется регистром BAR. Регистр BAR хранит базовый адрес адресного пространства, используемого устройством PCI. Базовый адрес хранит адрес устройства в домене шины PCI. После сброса устройства PCI этот регистр сохраняет размер базового адресного пространства, которое устройство PCI должно использовать, независимо от того, является ли это пространство пространством ввода-вывода или пространством памяти. Системное программное обеспечение может использовать этот регистр для получения длины BAR-пространства, используемого устройством PCI, путем записи 0xFFFFFFFF в регистр BAR и последующего чтения этого регистра. Схема работы шины pci ее настройка
Схема работы шины pci ее настройка

1.4.2 Конфигурационное пространство для конфигурации моста PCI

Схема работы шины pci ее настройка

Многие конфигурационные пространства, используемые мостом PCI, похожи на регистры агента PCI, такие как идентификатор устройства, идентификатор поставщика, состояние, команда и т. Д. Здесь мы в основном представляем регистры в мосте PCI, которые отличаются от пространства конфигурации агента PCI. В мосте PCI есть только два набора регистров BAR, а именно регистры регистров базового адреса 0 1. Значения этих двух наборов регистров соответствуют устройству агента PCI. Но в мосте PCI эти два набора регистров необязательны. В большинстве из них нет частных регистров, и операционная система не должна предоставлять специальные драйверы для мостов PCI.Такой тип моста также называется прозрачным мостом. В пространстве конфигурации моста PCI есть много регистров, которые уникальны для кабеля моста PCI, включая память, адресное пространство ввода-вывода и номер шины, которые используются для управления различными ресурсами, используемыми деревом шины PCI, подключенным под ним. (1) Регистры номера подчиненной шины, номера вторичной шины и номера первичной шины Мост PCI может управлять поддеревом шины PCI под ним. Среди них регистр номера подчиненной шины хранит номер шины PCI с наибольшим номером в текущем поддереве PCI. Номер вторичной шины хранит номер шины, используемый вторичной шиной текущего моста PCI.Этот номер шины PCI также является номером шины PCI с наименьшим номером в поддереве PCI, управляемом мостом PCI. Следовательно, номер шины PCI, которым может управлять мост PCI, находится в диапазоне от номера вторичной шины до номера шины координаты. Значения этих двух регистров устанавливаются, когда системное программное обеспечение проходит дерево шины PCI. Регистр номера первичной шины хранит номер шины PCI перед мостом PCI. Этот регистр можно читать и записывать. Регистры номера подчиненной шины, номера вторичной шины и номера первичной шины должны быть равны 0 во время инициализации, и системное программное обеспечение определит, был ли сконфигурирован мост PCI, в зависимости от того, равны ли эти регистры 0. (2) Регистры ограничения ввода / вывода и базовые регистры ввода / вывода В поддереве PCI, управляемом мостом PCI, есть много устройств PCI, и эти устройства могут использовать адресное пространство ввода-вывода. Мост PCI использует эти два регистра для хранения базового адреса и размера набора адресного пространства ввода-вывода, используемого всеми устройствами в дереве слов PCI. (3) Регистры ограничения памяти и базы памяти Поддерево PCI, управляемое мостом PCI, содержит множество устройств PCI, и эти устройства могут использовать адресное пространство памяти. Эти два регистра хранят базовый адрес и размер набора адресов памяти, используемых всеми этими устройствами в поддереве. (4) Регистры предельной памяти с предварительной выборкой и базовые регистры с предварительной выборкой Поддерево PCI, управляемое мостом PCI, содержит множество устройств PCI.Если эти устройства PCI поддерживают предварительное чтение, адресное пространство должно быть получено из предварительно читаемого пространства моста PCI. Эти два регистра моста PCI хранят базовый адрес и размер области памяти с возможностью предварительной выборки, используемой этими устройствами PCI.

1.4.3 Инициализация дерева шины PCI

Схема работы шины pci ее настройка

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

1.4.4 Конфигурация устройства PCI на платформе x86

Процессор x86 определяет два регистра порта ввода-вывода: регистры CONFIG_ADDRESS и CONFIG_DATA с адресами 0xCF8 и 0xCFC. Используйте эти два порта ввода-вывода для доступа к пространству конфигурации устройства PCI. Регистр CONFIG_ADDRESS хранит идентификационный номер устройства PCI, а регистр CONFIG_DATA хранит данные чтения и записи конфигурации. Структура регистра CONFIG_ADDRESS следующая:
Схема работы шины pci ее настройка

  • Бит включения, когда этот бит равен 1, цикл конфигурации шины PCI будет запускаться при чтении или записи регистра CONFIG_DATA.
  • Поле номера шины, биты с 23-го по 16-й, номер шины устройства PCI.
  • Поле номера устройства, биты 15

11, номер устройства PCI-устройства.

  • Поле номера функции, биты с 10-го по 8-й, номер функции устройства PCI.
  • Поле номера регистра, цифры 7 2, запись номера регистра устройства PCI.
  • Когда бит включения регистра CONFIG_ADDRESS равен 1, доступ для чтения и записи ввода-вывода в регистр CONFIG_DATA будет преобразован мостом хоста в транзакцию шины чтения и записи конфигурации PCI, а затем отправлено на шину PCI. В соответствии с номером шины и устройством в CONFIG_ADDRESS Номер, номер функции и номер регистра завершают чтение и запись в назначенный регистр конкретного устройства.
    Схема работы шины pci ее настройкаPCIe увеличивает размер конфигурационного пространства до 4K. среди них:

    • 0-3Fh — это пространство базовой конфигурации, поддерживаются как PCI, так и PCIe
    • Структура возможностей PCI Express, дополнительная поддержка PCI, поддержка PCIe
    • Структура расширенных возможностей PCI Express, PCI не поддерживает, поддержка PCIe

    Схема работы шины pci ее настройка

    Метод доступа ввода-вывода может получить доступ только к 256-байтовому пространству, поэтому для доступа к 4K-байтам пространство конфигурации поддерживается через mmio, но для совместимости метод доступа ввода-вывода зарезервирован.

    1.5 Устройство PCI для чтения и записи

    После инициализации регистра конфигурации BAR (регистр базового адреса) устройства PCI, устройство PCI может быть прочитано и записано через адрес пространства BAR.На следующем рисунке поясняется процесс чтения и записи пространства устройства PCI.

    Схема работы шины pci ее настройка

    1.6 INTx и MSI

    В шине PCI все устройства, которым необходимо отправлять запросы прерывания, должны иметь возможность отправлять запросы прерывания через вывод INTx, а механизм MSI является дополнительным механизмом. В шине PCIe устройство PCIe должно поддерживать механизм запроса прерывания MSI или MSI-X, но может не поддерживать сообщение прерывания INTx. В шине PCIe механизмы прерывания MSI и MSI-X используют TLP запроса записи в память для отправки запроса прерывания процессору. Для краткости сообщение записи в память, которое передает сообщения прерывания MSI / MSI-X, называется сообщением MSI / MSI-X. Текст.

    По сравнению с INTx основные преимущества прерывания MSI заключаются в следующем:

    • INTx использует дополнительные контакты для передачи сигналов прерывания, которые не синхронизируются с операциями чтения и записи памяти. Когда процессор принимает сигнал прерывания, данные в памяти могут быть не самыми последними. Эта проблема может быть решена дополнительными операциями чтения с помощью программного обеспечения. Прерывание MSI генерирует прерывание записью транзакции, такой проблемы не будет
    • Прерывание IINTx позволяет каждому устройству иметь 4 прерывания, MSI позволяет каждому устройству иметь 1, 2, 4, 8, 16 или 32 прерывания.

    Схема работы шины pci ее настройка

    Реализация прерывания MSI:

    Видео:Распределение линий PCI-Express в компьютереСкачать

    Распределение линий PCI-Express в компьютере

    2. Разница между PCI и PCIe

    Сначала взглянем на топологические схемы на основе шины PCI и шины PCIe:

    Схема работы шины pci ее настройка
    Схема работы шины pci ее настройка
    PCIe и PCI сильно различаются по электрическим характеристикам, поэтому я не буду их здесь объяснять. Основное изменение топологической структуры этих двух типов шин заключается в том, что PCIe поддерживает сквозные соединения. Невозможно подключить несколько устройств или мостов к такой шине, как PCI. PCIe программно совместим с шиной PCI, и между топологиями этих двух шин существует определенная взаимосвязь преобразования:

    • RC для PCIe эквивалентен Host Bridge в PCI
    • устройства такие же
    • Отношения преобразования между мостом и коммутатором следующие.

    Схема работы шины pci ее настройка

    Видео:Влияние шин PCI-e и внутренней шины видеокарты на производительностьСкачать

    Влияние шин PCI-e и внутренней шины видеокарты на производительность

    3. Реализация перечисления PCI под Linux.

    3.1 Перечисление и назначение шин дерева PCI

    Перед перечислением linux bios фактически выполнил перечисление и завершил настройку некоторых мостов и устройств. Перечисление pci в основном включает в себя выделение номеров шин и выделение ресурсов, а поддержку горячей замены для устройств pci необходимо учитывать в процессе выделения. Если макрос CONFIG_PCI_DIRECT настроен во время компиляции, он будет повторно пройден при запуске системы.Обход имеет две функции: 1) проверить правильность работы BIOS; 2) перенастроить устройство, которое не было правильно настроено в BIOS. Ниже приводится подробная информация о соответствующей реализации под Linux.

    (1)x86_pci_root_bus_resources

    Добавьте ресурсы ресурсов, в основном включая ioport_resource и iomem_resource. Структура данных следующая:

    (2)pci_scan_root_bus_msi

    Эта функция делает много вещей, основной процесс выглядит следующим образом:

    среди них,pci_scan_child_busРеализуйте рекурсивный обход шины pci, основной код выглядит следующим образом (driver / pci / probe.c):

    Основная функция этой функции заключается в использовании root_bus в качестве начальной шины, рекурсивном обходе всех устройств и шин в рамках всего дерева pci и создании ассоциаций структур данных. Для поддержки подключения и отключения горячих мостов pci и устройств pci шину можно зарезервировать через pci_hotplug_bus_size Число, значение можно настроить. Общая блок-схема структуры данных выглядит следующим образом:

    Схема работы шины pci ее настройка

    • Каждая структура данных pci_bus имеет массив ресурсов ресурса, который указывает на ресурсы на мосту, откуда шина получена. Здесь root_bus отличается от других шин. Root_bus соответствует host_bridge. В это время структура ресурсов используется для распределения ресурсов, а именно ioport_resource и iomem_resource
    • Некоторые структуры данных не отображаются, например дочерние, родительские и т. Д., Которые относительно просты.
    • Когда linux проходит дерево шины pci, независимо от выделения шины, выделения mmio или ввода-вывода, это можно понимать как своего рода управление ресурсами. Здесь используется структура данных, показанная справа, и она также реализована в соответствии с уровнем дерева.Реализация также относительно проста.Распределением шин управляет член busn_res. Для выделения mmio или ввода-вывода это реализуется элементами источников и ресурсов, где root_bus использует только элемент ресурсов
    • Для каждого моста pci_scan_bridge будет выполняться дважды. Номер шины назначается в соответствии с алгоритмом dfs. Для каждого моста необходимо знать, сколько шин находится под текущим мостом, а затем, если под текущим мостом есть ненастроенный мост, он будет пройден до Добавить на основе. В то же время часть номера шины зарезервирована для реализации горячей замены. Конкретная реализация горячей замены будет обсуждаться позже. В то же время назначенный номер шины будет использоваться для настройки номера подчиненной шины, номера вторичной шины и первичного моста. Регистр номера автобуса

    3.2 Распределение пространства PCI

    Выше описано перечисление всего дерева PCI, и ему присвоен номер шины. Другой важный момент — это выделение пространства mmio и ввода-вывода. Здесь в основном две ситуации: одна — это выделение мостов, а другая — выделение пространства устройства. Для некоторых конфигураций, которые были завершены BIOS (и конфигурация верна), их можно использовать непосредственно здесь или распространять. Выполняется функцией pcibios_resource_survey, сначала посмотрите на поток кода (arch / x86 / pci / common.c):

    Вышеупомянутый процесс распределения пространства основан на результате обхода BIOS и проверяет правильность конфигурации. Для устройств, которые конфликтуют в конфигурации или устройств, которые не настроены в BIOS, они будут использоватьpcibios_assign_resourcesФункция распределяет ресурсы, поток кода выглядит следующим образом:

    Среди них реализация функции распределения в основном __pci_bus_size_bridges с участием __pci_bus_assign_resources 。 __pci_bus_size_bridges Он также будет вызывать себя рекурсивно и использовать функцию pbus_size_io и функцию pbus_size_mem для подсчета пространства памяти и объема пространства ввода-вывода, необходимого для текущего моста. В статистическом процессе будет учитываться поддержка горячего подключения, а некоторые будут зарезервированы Пространство используется для поддержки горячего подключения. Конкретный размер зарезервированного пространства определяется параметрами pci_hotplug_io_size и pci_hotplug_mem_size (устанавливается функцией pci_setup). После подсчета ресурсов вся статистическая информация будет сохранена в связанном списке, а зарезервированное пространство с возможностью горячей замены и пространство, необходимое для самого устройства, сохранятся отдельно.Причины будут обсуждаться позже.

    Информация о ресурсах, которую необходимо выделить, была подсчитана. __pci_bus_assign_resources Функция выполняет реальное распределение ресурсов. Основной поток функции следующий:

    Функция, которая фактически распределяет ресурсы здесь, — __assign_resources_sorted, конкретный код выглядит следующим образом (driver / pci / setup-bus.c):

    Приведенный выше код в основном разделен на следующие шаги:

    1. Сохраните информацию о ресурсах, которые необходимо выделить в save_head
    2. Объедините информацию о ресурсах, которые необходимо выделить, с ранее подсчитанной информацией о ресурсах, и добавьте add_size к информации, которая будет выделена, где add_size содержит информацию, выделенную для поддержки горячего подключения
    3. assign_requested_resources_sorted Выделите место для устройства и запишите неудачное выделение в local_fail_head
    4. Если выше произошел сбой выделения, необходимо освободить выделенные ресурсы того же типа, что и сбой, например, все ресурсы ввода-вывода или mmio.
    5. Для распространения используйте информацию, сохраненную в save_head на шаге 1. В настоящее время add_size не добавляется, чтобы увеличить вероятность успешного распределения.
    6. В процессе распределения ресурсов используетсяstruct Структура ресурсов поддерживает отношения ресурсов. Linux поддерживает распределение по умолчанию, которое не использует BIOS. Вы можете найти соответствующий код в pci_device_add—> pci_reassigndev_resource_alignment. Для достижения используйте параметр resource_alignment.

    Видео:Система Windows не смогла найти драйверы. Что делать?Скачать

    Система Windows не смогла найти драйверы. Что делать?

    4. Реализация горячего подключения pcie под linux

    Для поддержки «горячего» подключения основная задача — выделить номера шин, mmio и пространство ввода-вывода. Основная реализация находится в функции board_added (drivers / pci / hotplug / pciehp_ctrl.c), где pciehp_configure_device завершает настройку устройства. Конкретный код выглядит следующим образом:

    Логика приведенного выше кода аналогична логике перечисления, поэтому я не буду ее здесь объяснять. При выделении пространства шины, mmio и ввода-вывода используется предварительно выделенное пространство для поддержки горячего подключения во время перечисления.

    Видео:Код 28 — для устройства не установлены драйверы в Windows 10 и Windows 7 (решение)Скачать

    Код 28 — для устройства не установлены драйверы в Windows 10 и Windows 7 (решение)

    5. Поле адреса PCI

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

    Схема работы шины pci ее настройка

    Видео:Шина PCI Express: эволюция от поколения к поколениюСкачать

    Шина PCI Express: эволюция от поколения к поколению

    6. Структура адресного пространства x86

    Схема работы шины pci ее настройка
    Схема работы шины pci ее настройка

    Видео:💻Устанавливаем старую карту PCI в новую материнскую плату при помощи райзера PCI-E!Скачать

    💻Устанавливаем старую карту PCI в новую материнскую плату при помощи райзера PCI-E!

    7 SR-IOV

    Схема работы шины pci ее настройка

    Для одной из VF номер шины во всей топологии PCI рассчитывается следующим образом:

    dev->bus->number + ((dev->devfn + dev->sriov->offset +dev->sriov->stride * vf_id) >> 8);

    Devfn на текущей шине PCI рассчитывается следующим образом:

    (dev->devfn + dev->sriov->offset +dev->sriov->stride * vf_id) & 0xff;

    Схема работы шины pci ее настройка

    Для каждого VF адрес BAR в пространстве конфигурации PCI не используется, но используется пространство BAR на приведенном выше рисунке.Как и пространство BAR в PF, сначала необходимо получить длину, требуемую пространством BRA, а затем выделить пространство. Для пробела VF BAR вычисление первого адреса

    VF_N starting address = VF_BASE + (N – 1) * (VF_BAR aperture size)

    Функция sriov_enable (drivers / pci / iov.c) включает функцию sr-iov. Основная работа этой функции заключается в следующем:

    • Проверяем законность параметров
    • Вычислите номер шины и devfn в соответствии с приведенной выше формулой и определите, выходит ли рассчитанный номер шины за пределы диапазона шины восходящего моста. Во время процесса перечисления номер шины будет зарезервирован для SR-IOV.
    • Выделить пространство для текущего VF
    • Свежие записи
      • Нужно ли менять пружины при замене амортизаторов
      • Скрипят амортизаторы на машине что делать
      • Из чего состоит стойка амортизатора передняя
      • Чем стянуть пружину амортизатора без стяжек
      • Для чего нужны амортизаторы в автомобиле


      🔥 Видео

      PCI и PCI-Express что можно подключитьСкачать

      PCI и PCI-Express что можно подключить

      Шина PCIСкачать

      Шина PCI

      Системная шина персонального компьютера pci expressСкачать

      Системная шина персонального компьютера pci express

      Как включить видеокарту в биосеСкачать

      Как включить видеокарту в биосе

      лекция 403 CAN шина- введениеСкачать

      лекция 403  CAN шина- введение

      *****Как Поставить И Настроить PCI Устройство*****Скачать

      *****Как Поставить И Настроить PCI Устройство*****

      Как устранить проблему с sm контроллер шиныСкачать

      Как устранить проблему с sm контроллер шины

      🖥️ Периферийное устройство Bluetooth драйвер WindowsСкачать

      🖥️ Периферийное устройство Bluetooth драйвер Windows
    Поделиться или сохранить к себе:
    Технарь знаток