Итак, переходим к самому интересному. Что же находится на сегодняшний день внутри большинства наших компьютеров? Естественно, шина PCI. Другой вопрос, почему именно эта шина. Попробуем разобраться.
Итак, разработка шины PCI началась весной 1991 года как внутренний проект корпорации Intel (Release 0.1). Специалисты компании поставили перед собой цель разработать недорогое решение, которое бы позволило полностью реализовать возможности нового поколения процессоров 486/Pentium/P6 (вот уже половина ответа). Особенно подчеркивалось, что разработка проводилась «с нуля», а не была попыткой установки новых «заплат» на существующие решения. В результате шина PCI появилась в июне 1992 года (R1.0). Разработчики Intel отказались от использования шины процессора и ввели еще одну «антресольную» (mezzanine) шину.
Благодаря такому решению шина получилась, во-первых, процессоро-независимой (в отличие от VLbus), а во-вторых, могла работать параллельно с шиной процессора, не обращаясь к ней за запросами. Например, процессор работает себе с кэшем или системной памятью, а в это время по сети на винчестер пишется информация. Просто здорово! На самом деле идиллии, конечно, не получается, но загрузка шины процессора снижается здорово. Кроме того, стандарт шины был объявлен открытым и передан PCI Special Interest Group, которая продолжила работу по совершенствованию шины (в настоящее время доступен R2.1), и в этом, пожалуй, вторая половина ответа на вопрос «почему PCI?»
Основные возможности шины следующие.
- Синхронный 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 байта региона используются для определения прерывания и времени запроса/владения.
Видео:Шина PCI Express: эволюция от поколения к поколениюСкачать
Национальная библиотека им. Н. Э. Баумана
Bauman National Library
Персональные инструменты
Видео:Что такое PCIe? Все виды скоростного интерфейса подключения PCIe 1.0-6.0 (x1 x4 x8 x18 x32)Скачать
PCI (Peripheral Component Interconnec)
PCI (Peripheral Component Interconnect) (Межсетевое соединение периферийных компонентов) — это аппаратная шина, используемая для добавления внутренних компонентов в компьютер. Например, плата PCI может быть вставлена в слот PCI на материнской плате, обеспечивая дополнительные порты ввода-вывода на задней панели компьютера.
Архитектура PCI, также известная как «обычная PCI», была разработана Intel и представлена в 1992 году. Многие настольные ПК с начала 1990-х до середины 2000-х годов имели место для двух-пяти карт PCI. Каждой карте требовалось открыть слот на материнской плате и съемную панель на задней панели системного блока. Добавление PCI-карт было простым способом обновления компьютера, поскольку вы могли добавить лучшую видеокарту, более быструю проводную или беспроводную сеть или добавить новые порты, такие как USB 2.0.
Исходный 32-разрядный стандарт PCI стандарта 33 МГц поддерживает скорость передачи данных 133 мегабайта в секунду. Обновленный 64-разрядный стандарт 66 МГц был создан несколько лет спустя и позволил значительно ускорить передачу данных до 533 МГц. В 1998 году IBM, HP и Compaq представили PCI-X (или «PCI eXtended»), который был обратно совместим с PCI. Интерфейс PCI-X 133 МГц поддерживает скорость передачи данных до 1064 МГц.
PCI и PCI-X были заменены PCI Express, который был представлен в 2004 году. [Источник 1]
Видео:Какой выбрать SSD? M2 или PCI Express? #HappyPCСкачать
История
Корпорация Intel начала работу над интерфейсом периферийных компонентов или PCI в 1990 году. 22 июня 1992 года PCI 1.0 был представлен в компьютерном мире. PCI 1.0 был только спецификацией на уровне компонентов. PCI 2.0, выпущенный в следующем году, был первым, кто установил стандарты для разъема и разъема материнской платы. PCI был реализован на серверах, и в итоге он заменил MCA и EISA и стал шиной расширения сервера.
Тем не менее, PCI потребовалось некоторое время, чтобы заменить VESA Local Bus, широко известную как VLB; также потребовалось некоторое время, чтобы стать базовым стандартом шины ввода-вывода на компьютерах второго поколения Pentium. К 1996 году VESA Local Bus перестал существовать, и PCI был принят почти всеми производителями даже на 486 компьютерах. Но EISA пережила немного дольше, до 2000 года. PCI был также принят Apple Computer для своих профессиональных компьютеров Power Macintosh в середине 1995 года. Потребительская линейка продуктов Performa также приняла PCI в середине 1996 года, заменив LC PDS.
PCI добавила несколько новых функций и улучшений производительности в своих последних версиях. Это включает в себя 66 МГц 3,3 В и 133 МГц PCI-X. Другим улучшением является адаптация сигнализации PCI к другим форм-факторам. Последовательный стандарт PCI Express, представленный в 2004 году, является последним выпуском на компьютерном рынке и получил хорошие результаты. [Источник 2]
Видео:💻Устанавливаем старую карту PCI в новую материнскую плату при помощи райзера PCI-E!Скачать
Принцип работы
Рисунок 1 — Aрхитектура PC с шиной PCI
Шина обладает процессоро-независимостью (в отличие от VLbus) и может работать параллельно с шиной процессора, не обращаясь к ней за запросами. Например, процессор работает с кэшем или системной памятью, а в это время по сети на ЖД производится запись информации, тем самым загрузка шины процессора значительно снижается. Кроме того, стандарт шины был объявлен открытым и передан PCI Special Interest Group, которая продолжила работу по совершенствованию шины (в настоящее время доступен R2.1).
Основные возможности
Синхронный 32-х или 64-х разрядный обмен данными (однако 64-разрядная шина в настоящее время используется только в Alpha-системах и серверах на базе процессоров Intel Xeon). При этом для уменьшения числа контактов (и стоимости) используется мультиплексирование, то есть адрес и данные передаются по одним и тем же линиям.
Поддержка 5V и 3.3V логики. Разъемы для 5 и 3.3V плат различаются расположением ключей.
Разъемы
Существуют и универсальные платы, поддерживающие оба напряжения. Заметим, что частота 66MHz поддерживается только 3.3V логикой. Частота работы шины 33MHz или 66MHz (в версии 2.1) позволяет обеспечить широкий диапазон пропускных способностей (с использованием пакетного режима):
- 132 МВ/сек при 32-bit/33MHz;
- 264 MB/сек при 32-bit/66MHz;
- 264 MB/сек при 64-bit/33MHz;
- 528 МВ/сек при 64-bit/66MHz.
При этом для работы шины на частоте 66MHz необходимо, чтобы все периферийные устройства работали на этой частоте.
Полная поддержка multiply bus master (например, несколько контроллеров жестких дисков могут одновременно работать на шине).
Поддержка write-back и write-through кэша.
Автоматическое конфигурирование карт расширения при включении питания.
Спецификация шины позволяет комбинировать до восьми функций на одной карте (например, видео + звук и т.д.).
Шина позволяет устанавливать до 4 слотов расширения, однако возможно использование моста PCI-PCI для увеличения количества карт расширения.
PCI-устройства оборудованы таймером, который используется для определения максимального промежутка времени, в течении которого устройство может занимать шину.
При разработке шины в ее архитектуру были заложены передовые технические решения, позволяющие повысить пропускную способность.
Шина поддерживает метод передачи данных, называемый «linear burst» (метод линейных пакетов). Этот метод предполагает, что пакет информации считывается (или записывается) «одним куском», то есть адрес автоматически увеличивается для следующего байта. Естественным образом при этом увеличивается скорость передачи собственно данных за счет уменьшения числа передаваемых адресов.
Шина PCI является той черепахой, на которой стоят слоны, поддерживающие «Землю» — архитектуру Microsoft/Intel Plug and Play (PnP) PC architecture. Спецификация шины PCI определяет три типа ресурсов: два обычных (диапазон памяти и диапазон ввода/вывода, как их называет компания Microsoft) и configuration space — «конфигурационное пространство».
Рисунок 3 — Конфигурационное пространство
Конфигурационное пространство состоит из трех регионов(см. рис. 3):
- заголовка, независимого от устройства (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 байта региона используются для определения прерывания и времени запроса/владения. [Источник 3]
Видео:От него отказались ВСЕ! Редкий HP ZBook без схем, запчастей и надежд на ремонтСкачать
Архитектура
Адресные пространства
ЦП и устройства PCI должны иметь доступ к памяти, которая совместно используется между ними. Эта память используется драйверами устройств для управления устройствами PCI и для передачи информации между ними. Обычно разделяемая память содержит регистры управления и состояния для устройства. Эти регистры используются для управления устройством и считывания его состояния. Например, драйвер устройства PCI SCSI должен был прочитать свой регистр состояния, чтобы узнать, было ли устройство SCSI готово записать блок данных на диск SCSI. Или он может записать в регистр управления, чтобы запустить устройство после его включения.
Системная память ЦП может использоваться для этой общей памяти, но если это так, то каждый раз, когда устройство PCI получает доступ к памяти, CPU должен останавливаться, ожидая завершения работы устройства PCI. Доступ к памяти обычно ограничен одним системным компонентом за раз. Это замедлит работу системы. Также не рекомендуется позволять периферийным устройствам системы получать доступ к основной памяти неконтролируемым образом. Это было бы очень опасно; устройство-изгои может сделать систему очень неустойчивой.
Периферийные устройства имеют свои собственные пространства памяти. ЦП может получить доступ к этим пространствам, но доступ к устройствам в память системы очень строго контролируется с использованием каналов DMA (прямой доступ к памяти). У устройств ISA есть доступ к двум адресным пространствам, ISA I / O (вход / выход) и ISA-памяти. PCI имеет три; PCI I / O, PCI Memory и PCI Configuration.
Процессор Alpha AXP не имеет естественного доступа к адресным пространствам, отличным от адресного пространства системы. Он использует чипсеты поддержки для доступа к другим адресным пространствам, таким как пространство конфигурации PCI. Он использует схему разреженного адреса, которая крадет часть большого виртуального адресного пространства и сопоставляет ее с адресными пространствами PCI.
Структура передаваемой информации
Каждое PCI-устройство в системе, включая мосты PCI-PCI, имеет структуру данных конфигурации, которая находится где-то в адресном пространстве конфигурации PCI. Заголовок конфигурации PCI позволяет системе идентифицировать и управлять устройством. Точно там, где заголовок находится в адресном пространстве конфигурации PCI, зависит от того, где в топологии PCI это устройство. Например, видеокарта PCI, подключенная к одному слоту PCI на материнской плате ПК, будет иметь свой заголовок конфигурации в одном месте, и если он подключен к другому слоту PCI, его заголовок появится в другом месте в конфигурационной памяти PCI. Это не имеет значения, поскольку везде, где находятся устройства и мосты PCI, система найдет и настроит их, используя регистры состояния и конфигурации в своих конфигурационных заголовках.
Как правило, системы разработаны таким образом, что каждый слот PCI имеет свой PCI Configuration Header в смещении, относящемся к его слоту на плате. Так, например, первый слот на плате может иметь свою конфигурацию PCI со смещением 0 и вторым слотом со смещением 256 (все заголовки имеют одинаковую длину, 256 байтов) и так далее. Системный аппаратный механизм определен таким образом, что код конфигурации PCI может попытаться изучить все возможные заголовки конфигурации PCI для данной шины PCI и узнать, какие устройства присутствуют и какие устройства отсутствуют, просто попытавшись прочитать одно из полей заголовка (обычно поле идентификации поставщика) и получение какой-либо ошибки. В описании описывается одно возможное сообщение об ошибке, возвращающее 0xFFFFFFFF при попытке прочитать поля идентификации идентификации и идентификации устройства для свободного слота PCI.
Идентификация поставщика | Уникальный номер, описывающий создателя устройства PCI. Цифровая идентификация поставщика PCI — 0x1011, а у Intel — 0x8086. |
Идентификация устройства | Уникальный номер, описывающий само устройство. Например, устройство быстрого доступа Ethernet 21141 Digital имеет идентификатор устройства 0x0009. |
Статус | Это поле дает статус устройства со значением бит этого поля, установленным стандартом. |
Команда | При записи в это поле система управляет устройством, например, позволяя устройству получать доступ к памяти PCI I/O |
Код класса | Это определяет тип устройства, которым это является. Существуют стандартные классы для всех типов устройств; видео, SCSI и т. д. Код класса для SCSI равен 0x0100. |
Регистры базового адреса | Эти регистры используются для определения и распределения типа, количества и местоположения PCI I/O и памяти PCI, которые устройство может использовать. |
Вывод прерывания | Четыре физических контакта на плате PCI несут прерывания от платы до шины PCI. Стандартные метки обозначают их как A, B, C и D. Поле Pin прерывания описывает, какой из этих контактов этот PCI-устройство использует. Как правило, он предназначен для устройства с парификатором. То есть, каждый раз, когда система загружается, устройство использует один и тот же вывод прерывания. Эта информация позволяет подсистеме обработки прерываний управлять прерываниями с этого устройства. |
Линия прерывания | Поле Interrupt Line заголовка PCI Configuration устройства используется для передачи дескриптора прерывания между кодом инициализации PCI, драйвером устройства и подсистемой обработки прерываний операционной системы. Число, написанное там, не имеет смысла для драйвера устройства, но позволяет обработчику прерываний правильно маршрутизировать прерывание с устройства PCI на правильный код обработки прерываний драйвера устройства в операционной системе. |
Инициализация
Код инициализации PCI можно разбить на три логические части:
- Драйвер устройства PCI. Этот драйвер псевдо-устройства выполняет поиск в системе PCI, начиная с шины 0, и находит все устройства PCI и мосты в системе. Он создает связанный список структур данных, описывающих топологию системы. Кроме того, он отображает все найденные мосты.
- PCI BIOS. Это программный уровень, который должен предоставлять различные услуги, необходимые для pci. Это снова зависит от операционной системы и отличается от всех остальных
- PCI Fixup. Код исправления, специфичный для системы, отображает системные специфические свободные окончания инициализации PCI.
Драйвер устройства PCI
Драйвер устройства PCI на самом деле не является драйвером устройства, а функцией операционной системы, вызываемой при инициализации системы. Код инициализации PCI должен сканировать все шины PCI в системе, которые ищут все устройства PCI в системе (включая мостовые устройства PCI-PCI).
Он использует код PCI BIOS, чтобы выяснить, занят ли каждый слот в текущей шине PCI, которую он сканирует. Если слот PCI занят, он создает структуру данных pci_dev, описывающую устройство, и ссылки в список известных устройств PCI (на которые указывают pci_devices).
Код инициализации PCI начинается с сканирования PCI-шины 0. Он пытается прочитать поля идентификации идентификации и идентификации устройства для каждого возможного устройства PCI в каждом возможном слоте PCI. Когда он находит занятый слот, он создает структуру данных pci_dev, описывающую устройство. Все структуры данных pci_dev, созданные кодом инициализации PCI (включая все PCI-PCI Bridges), связаны в односвязный список; pci_devices.
Если PCI-устройство, которое было найдено, было мостом PCI-PCI, то структура данных pci_bus построена и связана с деревом структур данных pci_bus и pci_dev, на которые указывает pci_root. Код инициализации PCI может определить, является ли PCI-устройство PCI-PCI Bridge, поскольку он имеет код класса 0x060400. Затем ядро конфигурирует PCI-шину на другой (ниже по потоку) стороне PCI-PCI Bridge, которую он только что нашел. Если будет найдено больше PCI-PCI Bridges, они также будут настроены. Этот процесс известен как алгоритм глубины; топология PCI системы полностью отображается в глубину перед поиском по ширине. Когда операционная система ищет шины PCI по нисходящей линии связи, она также должна настраивать промежуточные и подчиненные шины шины PCI-PCI. [Источник 4]
💥 Видео
ОБЪЯСНЯЕМ PCI Express 4.0Скачать
03. Основы устройства компьютера. Память и шина. [Универсальный программист]Скачать
GPU PCIe Clip Lock Replace By:NSCСкачать
Adaptec AHA-2910C PCI VINTAGE SCSI PCСкачать
Шина PCIСкачать
Оперативка на 4 ТБ с портом PCIe5?Скачать
5 лекция "Шины AGP и PCI Express"Скачать
Системная шина персонального компьютера PCIСкачать
Влияние шин PCI-e и внутренней шины видеокарты на производительностьСкачать
Новинка Kingston 🚀KC3000 PCIe 4.0 NVMe M.2 SSD🚀Скачать
Raspberry Pi 5 with RP1 I/O Controller Connected via PCI Express to the Main Processor #shortsСкачать
Другие устройства в диспетчере устройств как убрать Windows 11.Неизвестное устройство.PCI-контроллерСкачать
Линии PCIe - сколько их реально нужно и чем линии CPU отличаются от линий MB?Скачать
How to Add USB Type C to Your PCСкачать
whats the difference between 6pin and 8pin pcie cables?Скачать