Шина pci что это
В далеком 1981 году создатели IBM PC и подумать не могли о том, что всего через двадцать пять лет компактные домашние компьютеры смогут выдавать практически фотореалистичную картинку с миллионами полигонов, а игровые миры раскинутся на тысячи виртуальных километров.
Интересно, что сказал бы Герман Холлерит (Herman Hollerith), узнав, что основанная им компания по изготовлению перфокарт и счетных машин в очередной раз оказалась у истоков наших ретро-исследований?
От простого к сложному
В 1981 году компания IBM представила первый в мире персональный компьютер — IBM PC. В нем использовалась допотопная видеокарта с возможностью вывода монохромного изображения, но не это главное. Все наше внимание приковано к шине Industry Standard Architecture (ISA), разработанной в недрах IBM. Основное назначение ISA — соединение периферийных компонентов с системой.
Шина ISA использовалась далеко не только (и даже не столько) для нужд видеокарт. Сторонние производители выпустили массу дополнительных устройств для расширения возможностей компьютера. Оно и понятно, ведь тогда в системную плату не устанавливали звуковой кодек, сетевой контроллер и т.д. Все это можно было реализовать лишь с помощью карт расширения. Сами по себе ISA-порты не сильно отличались от более привычных PCI-разъемов.
Предшественниками полноценных видеокарт были чипы с возможностью вывода спрайтов на экран. Графические возможности компьютеров в те времена не волновали людей: когда IBM представила первый в мире чип с поддержкой вывода нескольких цветов, люди и не поняли, зачем это нужно. Графические карты для интерфейса ISA в середине 1980-х выпускали компании Cirrus Logic, Avance Logic, ATI, S3.
EISA заткнула за пояс шину MCA от IBM и стала стандартом де-факто.
Изначально у шины ISA было много ограничений: недостаточная пропускная способность, малое число прерываний, система распределения питания не ахти. Заменить ISA должна была шина Micro Channel Architecture (MCA), представленная в 1987 году вместе с компьютером IBM PS/2. Новая разработка решила многие проблемы, свойственные ISA: частота шины поднялась до 10 МГц, появился вменяемый Plug-n-Play (до этого прописывать новое устройство в систему приходилось вручную), шина стала 32-битной. Теоретическая пропускная способность MCA достигала 66 Мб/с, на практике — максимум 40 Мб/с. Устройства наконец-то могли общаться друг с другом напрямую, минуя центральный процессор. С такими улучшениями MCA могла бы стать индустриальным стандартом, но IBM сама все испортила. Компания не стала развивать рынок периферии для новой шины, более того, тщательно тормозила этот процесс — сторонние производители должны были получать специализированный ID для каждого устройства, за право выпуска устройств под MCA нужно было платить лицензионные отчисления и роялти. И это при том, что IBM не получила патенты на шину.
История сохранила лишь несколько упоминаний о видеокартах под MCA. Очевидно, что производители испугались всех трудностей, связанных с лицензированием и получением ID. Да и стоило ли мучиться? Компьютеры с шиной MCA оказались значительно дороже аналогов с использованием ISA. Все большей популярностью пользовались системы от Dell, Research Machines и Olivetti. Самые известные дискретные видеокарты для MCA — это монструозные IBM XGA, XGA-2, несколько моделей от Infotronic, Actix и ATI. Кстати, примерно в то же время появился разъем VGA (D-sub) для подключения мониторов.
Видеокарта ATI Mach32 для шины VLB едва помещалась в корпуса того времени. Да-да, и тогда выпускали громадные видеокарты.
Внешне порты EISA были похожи на 16-битные разъемы ISA — они точно так же были разделены на части для сохранения совместимости. С точки зрения производителей, шина EISA не сильно отличалась от оригинальной ISA, так что и видеокарт с ее поддержкой было выпущено предостаточно.
Надстройка продлила жизнь ISA, но в начале 1990-х была представлена шина VESA Local Bus (VL-bus, VLB). За ее разработку ответственна всем известная ассоциация Video Electronics Standards Association (VESA), основанная NEC в середине 1980-х годов. Почему бы не успокоиться на время и не продолжить использование EISA? Все просто — производителям опять не хватало скорости. Решением стала совершенно неудобная по современным меркам «добавка» в виде PCI-образного порта, который располагался в один ряд с 16-битным разъемом ISA, таким образом продлевая его. Устройство с поддержкой VLB устанавливалось сразу в два разъема — порт VLB обслуживал обращения к памяти, а ISA обрабатывал прерывания. Топорное решение, ничего не скажешь.
Несмотря на все недостатки, VLB стала стандартом де-факто в компьютерах с процессорами Intel 80486. Многочисленные производители видеокарт представили длинные модели с двумя разъемами.
В 1991 году ATI выпустила видеокарту Mach 8, которая могла обрабатывать картинку без помощи процессора. Уже в 1992 году последовала Mach 32 с возможностью ускорения обработки графического интерфейса Windows. Начались первые войны за рынок графики. В стычках участвовали S3, Cirrus Logic, ATI, PowerVR, Rendition и более мелкие игроки. На горизонте замаячили трехмерные пространства и аппаратное ускорение графики.
Проследив за компьютерным рынком, Intel решила взять все в свои руки и начала работу над шиной Peripheral Component Interconnect (PCI). Intel подошла к вопросу со всей серьезностью и организовала специальную группу для продвижения стандарта — PCI Special Interest Group (PCI-SIG). В нее вошли представители наиболее крупных IT-компаний.
Карта расширения с четырьмя дополнительными разъемами ISA. Такие устройства использовали, когда доступных портов уже не хватало.
Финальные спецификации PCI 1.0 были готовы к 1993 году. В серверах новый интерфейс заменил и EISA, и MCA. Захват рынка настольных компьютеров произошел не сразу — на тот момент люди были вполне довольны возможностями VLB. С появлением мощных процессоров Pentium недостатки шины стали очевидны — пользователям не давали жить постоянные помехи, наводки от оборудования и испорченные данные на жестких дисках.
В один прекрасный момент Intel представила процессор Pentium Pro в паре с новым чипсетом, в нем место VLB не нашлось. Да, вот так просто компания взяла, да и убрала разъем. Силовые наклонности Intel проявляются и по сей день, ведь именно она форсировала переход на Serial ATA, ратовала за отказ от PS/2 в пользу USB. Что интересно, интерфейс EISA тогда сохранили — соответствующие разъемы оставались на платах еще довольно долго.
К выходу Pentium II в 1995 году PCI-SIG представила спецификации PCI 2.0 (33 МГц). В новой версии была решена проблема прерываний и определения установленных устройств — под эти цели отвели дополнительный канал связи. Периферия могла свободно обращаться к памяти, выделять для себя необходимые участки, а технологию Plug-n-Play довели до ума.
Участники PCI-SIG не почивали на лаврах и продолжали работу над стандартом — в последующие годы появились ревизии 2.1, 2.2 и даже 3.0. Самая ходовая версия PCI обладала пропускной способностью 133 Мб/с. Тем временем на рынке видеокарт только разгоралась борьба за место под солнцем. Производители работали над реализацией аппаратного ускорения 3D-графики. Ярчайшие представители той эпохи — разновидности S3 ViRGE и первый комбинированный 2D/3D графический ускоритель ATI Rage. Не выдержав конкуренции, рынок видеокарт начали покидать различные компании. Многие из них — например, Cirrus Logic — перепрофилировались и успешно существуют до сих пор.
Разъемы PCI Express даже внешне не похожи на PCI, от одноименного предшественника остались лишь воспоминания.
Все описанные тогдашние модели использовали интерфейс PCI — до поры до времени он обеспечивал достаточную пропускную способность. История шины как идеального интерфейса для видеокарт стала подходить к концу с появлением на рынке компаний 3Dfx и NVIDIA. К 1997 году последняя представила сравнительно мощную Riva 128, ATI продолжила развивать Rage, а 3Dfx выпустила легендарные 3D-акселераторы Voodoo и Voodoo 2. Несмотря на то, что шина PCI позволяла вытворять фокусы, вроде установки двух Voodoo 2 и объединения их в режим SLI, пропускной способности стало не хватать. И снова на арену вышла Intel.
Главное уязвимое место шины PCI заключается в том, что 133 Мб/с делятся между всеми установленными устройствами. Стало быть, для требовательной графической карты нужен обособленный разъем. На разработку Accelerated Graphics Port (AGP) ушло немного времени. Первую версию интерфейса представили вместе с процессорами Pentium II для Slot 1. Шина AGP 1x обеспечила пропускную способность до 266 Мб/с. Впервые соединение с процессором было прямым — их «общению» никто больше не мешал. Появилась дополнительная адресация, которая позволила видеокартам посылать новый запрос во время получения уже заказанных данных.
Первая волна видеокарт под AGP не заставила себя долго ждать. В числе пионеров были Rendition Verite V2200, 3dfx Voodoo Banshee, NVIDIA RIVA 128, 3Dlabs PERMEDIA 2, Intel i740, ATI Rage, Matrox Millennium II и S3 ViRGE GX/2. Разумеется, многие из них при работе задействовали переходной мост.
В дальнейшем Intel совершенствовала шину AGP — появились AGP 2x, AGP 4x и AGP 8x. Каждая новая версия отличалась от предыдущей еще большей пропускной способностью и улучшенными электротехническими характеристиками. AGP 8x обладала внушительной пропускной способностью 2133 Мб/с. Достигнуть этого предела производители видеокарт не успели, по команде Intel индустрия двинулась дальше.
«Дикая утка» IBM | |
На протяжении всей истории человечества всегда находились провокаторы в хорошем смысле слова, выдумщики и просто светлые головы. Люди, которые никогда не сидели на месте и старались привнести в мир что-то новое. Встречайте одного из таких — Чета Хита (Chet Heath). Этот сотрудник IBM с тридцатилетним стажем отвечал за разработку многих ключевых компонентов, которые в том или ином виде присутствуют в компьютерах и по сей день. В нашей статье мы затронули сразу два из них — шину MCA и технологию Plug-n-Play. Подобных ему в IBM называют «дикими утками» (wild duck), и именно они вращают колесо прогресса. Хит пока является единственным сотрудником IBM, дважды получившим награду компании за технологические достижения! Зная, какое влияние оказал «Голубой гигант» на компьютерную индустрию, можно предположить, что Чету мы обязаны многим. В июне 2000 года Хит покинул родные пенаты. Стало тесно — руководство компании не захотело принимать в оборот предлагаемую им серверную технологию, а раз так, надо двигать дальше. В данный момент наш герой трудится в роли технологического директора на славу компании OmniCluster. Посмотрим, что еще он явит миру. Задел на будущееПереход на PCI Express вызвал немало вопросов. К моменту появления интерфейса в 2004 году многие лишь недоуменно поднимали бровь — зачем нужна пропускная способность порядка 4 Гб/с, если видеокарты до сих пор не используют всех возможностей AGP 8x? И зачем возвращаться к PCI? Уже потом люди узнали, что от PCI-архитектуры в PCI Express осталось только название, шина таит в себе много новых возможностей. Так, инновационный интерфейс вернул позабытую технологию 3Dfx SLI в виде подретушированных NVIDIA SLI и ATI CrossFire. Как обычно, при переходе на новую шину широко использовали переходные мосты. История повторяется вот уже который раз, и с каждым новым витком она становится все интереснее! Неудивительно, что ISA очень долго сохраняла свою популярность, и даже сейчас, за весьма большие деньги продаются материнские платы с поддержкой этой шины — по ней подключается слишком много незаменимых устройств. На основании ISA был разработан ряд производных интерфейсов, начиная с PCMCIA и заканчивая ATA (по сути — упрощенное подмножество интерфейса ISA). Разрабатывались ускоренные варианты шины: EISA (32 бита, 8 МГц) и VESA Local Bus (использовалась для подключения видоадаптера). Со временем, IBM утратили лидирующую роль в разработке PC, поэтому над следующим поколением интерфейсов уже работали инженеры компании Intel. В самом начале 90-х гг… был разработан новый стандарт, получивший название Peripheral Component Interconnect или PCI. В 1992 году свет увидел первый стандарт PCI, тогда же была создана PCI Special Interest Group — организация, занимающаяся разработкой и продвижением данного стандарта. Стандарт был объявлен открытым, поэтому любой желающий мог разрабатывать PCI-устройства без выплаты отчислений. Первая версия шины поддерживала 32 и 64 бита, работала на частоте 33 мегагерца и в теории обеспечивала скорость до 133 Мб/с (на практике около 80 Мб/с). Начав свое победное шествие с рынка серверов, новый стандарт не сразу завоевал настольные ПК. Одним из пионеров его использования была компания Apple, отказавшаяся от интерфейса NuBus в своих продуктах 95-96 годах. Максимальная популярность к новому интерфейсу пришла в 1995 году с появлением версии 2.1 (так же названной «параллельная шина PCI»). Данная ревизия подразумевала работу с частотой 66 МГц и максимальную скорость передачи в 533 Мбайт/с (для 64-битного варианта). Появились реализации PCI для платформ с процессорами Alpha, MIPS, PowerPC, SPARC и т.д. Кстати, одним из главных нововведений PCI стала возможность автоматического конфигурирования параметров устройства, эту технологию в Intel назвали Plug-n-Play, а благодаря «стабильной» реализации ее программной поддержки в продуктах Microsoft, эта технология стала объектом множества шуток и анекдотов. Попыткой экстенсивного развития технологии можно считать шину PCI-X, в основном использовавшуюся в серверах. Первая версия данного стандарта работала с частотой 100 и 133 МГц, а также вводила механизм раздельных транзакций для оптимизации работы нескольких карт. Сейчас иногда используется шина PCI-X 2.0, обеспечивающая работу на частотах в 266 и 533 МГц. В 2004 году свет увидел новый стандарт, в котором были учтены все проблемы PCI. Новая шина получила название PCI Express или просто PCIe (главное — не путать ее с PCI-X). Новая технология предложила массу интересных решений. — для передаваемых данных осуществляется контроль целостности Главное же отличие состоит в том, что PCIe использует не «шинную» топологию а «звезду», то есть каждое устройство связанно с коммутатором отдельной линией. Пропускная способность односвязной PCIe первой версии составляла 4 Гбит/с в обе стороны. Максимальная скорость в стандарте PCIe 4 версии (находится в разработке и планируется к выходу в 2015 году) достигает 1024 Гбит/с. Как видите, по этому параметру PCIe обладает хорошим запасом, хотя расслабляться не приходится, конкуренты не дремлют. Недавно Джереми Вернер (Jeremy Werner), один из старших директоров подразделения флэш-технологий (SandForce) в LSI дал очень интересное интервью, касающееся PCIe и SSD. В полном виде вы можете ознакомиться с ним на английском, я же вкратце перескажу одну мысль, которая мне показалась особенно интересной: Максимальная скорость современного интерфейса SATA составляет 6 Гбит/с, при этом SATA является полудуплексным, то есть не умеет одновременно передавать и принимать данные. Не так редко встречающийся PCIe 2 поколения с 4 линиями передачи данных обеспечивает скорость до 20 ГБит/с в полнодуплексном режиме. Фактически, PCIe получается где-то в 7 раз быстрее. Но традиционные жесткие диски просто не нуждаются в таких скоростях передачи данных. Только SSD сейчас могут обеспечивать скорость, достаточную для полноценного использования высокоскоростных интерфейсов. Сочетание интерфейсов типа M.2 и высокоскоростных флэш-накопителей, похоже, приближает будущее, в котором дисковая подсистема перестанет быть самым узким местом в ПК. Ярким примером могут послужить компьютеры Apple — компания как игрок премиум сегмента может себе позволить эксперименты с новыми решениями, и они оказываются очень удачны с точки зрения производительности. Но в силу дешевизны, традиционные жесткие диски и SATA-интерфейс еще не думают сдаваться так просто, поэтому тотального наступления светлого будущего придется немного подождать. PCI (англ. Peripheral component interconnect , дословно — взаимосвязь периферийных компонентов) — шина ввода/вывода для подключения периферийных устройств к материнской плате компьютера. Стандарт на шину PCI определяет:
Развитием стандарта PCI занимается организация PCI Special Interest Group. СодержаниеИстория созданияВесной 1991 года компания 486, Pentium Pro. Кроме того, было необходимо учесть ошибки допущенные VLB (электрическая нагрузка не позволяла подключать более 3 плат расширения), а также реализовать автоконфигурирование устройств по примеру протокола Amiga. В 1992 году появляется первая версия шины PCI, Intel объявляет, что стандарт шины будет открытым и создаёт PCI Special Interest Group. Благодаря этому, любой заинтересованный разработчик получает возможность создавать устройства для шины PCI без необходимости приобретения лицензии. Первая версия шины имела тактовую частоту 33 МГц, могла быть 32 или 64 битной, а устройства могли работать с сигналами в 5 В или 3,3 В. Теоретически, пропускная способность шины 133 Мбайт/с, однако в реальности пропускная способность составляла около 80 Мбайт/с. В середине 1993 года компания Intel выходит из ассоциации VESA и начинает предпринимать активные шаги по продвижению шины PCI на рынке. Ответом на критику со стороны специалистов из конференций В 1995 году появляется версия PCI 2.1 (ещё одно название — «параллельная шина PCI», которая обеспечила передачу данных по шине с частотой 66 МГц и максимальную скорость передачи в 533 Мбайт/с (для 64-битного варианта с частотой 66 МГц). Кроме того, эта шина уже была поддержана на уровне ОС Windows 95 (технология Plug and Play), что позволило пользователям IBM PC больше не чувствовать себя ущемлёнными по отношению к другим платформам. Версия шины PCI 2.1 оказалась настолько популярной, что вскоре уже она была перенесена на платформы с процессорами Alpha, MIPS, SPARC и др. В 1997 году, в связи с развитием компьютерной графики и разработкой шины видеокартам и перестала использоваться для установки видеокарт. Смысла приобретать PCI-видеокарту нет уже более 10 лет. В настоящее время интерфейс PCI постепенно вытесняется интерфейсами PCI Express и 2008 год) устанавливается всего лишь 2-3 разъёма PCI вместо 5-6, устанавливавшихся ранее. Основные сведенияПервоначально 32 проводника адрес/данные на частоте 33 МГц. Позже появились версии с 64 проводниками (используется дополнительная колодка разъема) и частотой 66 МГц. Шина децентрализована, нет главного устройства, любое устройство может стать инициатором транзакции. Для выбора инициатора используется арбитраж с отдельно стоящей логикой арбитра. Арбитраж «скрытый», не отбирает времени — выбор нового инициатора происходит во время транзакции, исполняемой предыдущим инициатором. Транзакция состоит из 1 или 2 циклов адреса (2 цикла адреса используются для передачи 64-битных адресов, поддерживаются не всеми устройствами, дают поддержку DMA на памяти более 4 Гб) и одного или многих циклов данных. Транзакция со многими циклами данных называется «взрывной» (burst), понимается как чтение/запись подряд идущих адресов и даёт более высокую скорость — один цикл адреса на несколько, а не на каждый цикл данных, и отсутствие простоев (на «успокоение» проводников) между транзакциями. Специальные типы транзакций используются для обращений к конфигурационному пространству устройства. «Взрывная» транзакция может быть временно приостановлена обеими устройствами из-за отсутствия данных в буфере или его переполнения. Поддерживаются «расщеплённые» транзакции, когда целевое устройство отвечает состоянием «в процессе» и инициатор должен освободить шину для других устройств, захватить её снова через арбитраж и повторить транзакцию. Это делается, пока целевое устройство не ответит «сделано». Используется для сопряжения шин с разными скоростями (сама PCI и frontside процессора) и для предотвращения тупиковых ситуаций в сценарии с многими межшинными мостами. Богатая поддержка межшинных мостов. Богатая поддержка режимов кэширования, таких, как:
КонфигурированиеPCI-устройства с точки зрения пользователя самонастраиваемы (Plug and Play). После старта компьютера системное программное обеспечение обследует конфигурационное пространство PCI каждого устройства, подключённого к шине, и распределяет ресурсы. Каждое устройство может затребовать до семи диапазонов в адресном пространстве памяти PCI или в адресном пространстве ввода-вывода PCI. Кроме того, устройства могут иметь ПЗУ, содержащее исполняемый код для процессоров PA-RISC, Open Firmware (системное ПО компьютеров на базе PowerPC) или драйвер EFI. Настройка прерываний осуществляется также системным программным обеспечением (в отличие от шины IRQ, поэтому имеется возможность работы нескольких устройств с одной линией запроса прерывания; обычно системное ПО пытается выделить каждому устройству отдельное прерывание для увеличения производительности. PCI Local Bus (Peripheral Component Interconnect, межсоединение периферийных компонентов) — синхронная параллельная шина, предназначенная для соединения различных контроллеров, находящихся на системной плате компьютера или установленных в гнёзда расширения, друг с другом и с так называемым «центральным ресурсом» (central resource), т.е. с процессорами и памятью. Эта шина порядка 10 лет была основой ПК, полностью вытеснив другие шины (ISA, EISA, MicroChannel, VLB). Сейчас ей на смену пришла PCI Express , хотя гнёзда для установки плат расширения стандарта PCI имеются пока на практически всех системных платах. Помимо шины PCI, на ПК ранее широко применялась её специализированная версия PCI Express История Развитием стандарта PCI занимается организация PCI Special Interest Group. Спецификации официально доступны лишь за плату, хотя на просторах Интернета их можно найти и бесплатно. Прототип шины PCI был разработан фирмой Intel весной 1991 г. Новая шина должна была обладать высокой пропускной способностью, необходимой для эффективной работы процессоров 80486 и Основные особенности Шина PCI предназначена для подключения достаточно большого количества устройств одновременно, однако на практике их число довольно мало — ограничителями являются нагрузочная способность электронных схем и паразитная ёмкость цепей, растущая по мере увеличения количества устройств и длины линий шины. Кроме того, под номер устройства на шине, используемый в процессе конфигурирования, отведено 5 бит, что не позволяет подключить более 32 устройств. Чтобы увеличить их общее число, была предусмотрена организация шины PCI в виде дерева. «Корнем» этого дерева является специальный мост Host–PCI, с помощью которого «ствол» — основная шина PCI — подключается к процессору. «Ветви» — дополнительные шины PCI — подключаются к «стволу» с помощью мостов PCI–PCI. К «ветвям» с помощью таких же мостов могут подключаться следующие «ветви» и так далее. Практическим ограничением «ветвистости» шины являются ограничение на общее число шин PCI (под номер шины отводится один байт) и дополнительная задержка, вносимая в обмен данными каждым новым мостом. На практике шина PCI не обязательно связана с процессором напрямую. Например, в ПК на базе чипсета Intel P45 процессор посредством шины FSB связан с микросхемой северного моста — собственно кристаллом P45. Внутри последнего имеется мост Host–DMI, связывающий шину FSB с шиной DMI, которая, в свою очередь, является связующим элементом северного и южного мостов (в роли последнего обычно выступает микросхема ICH10). В состав южного моста входит мост DMI–PCI, он и будет реальным «корнем» шины PCI. К шине PCI с помощью специальных мостов могут подключаться другие шины. Например, в каждом ПК на ранних процессорах Pentium имелся мост PCI–ISA. Чтобы правильно маршрутизировать трафик, каждая шина PCI имеет свой номер, используемый в процессе конфигурирования мостов и других устройств, подключенных к шине, а также выделенные ей диапазоны адресов памяти и ввода-вывода. Когда некоторый мост «видит» запрос, обращённый к его шине, он транслирует его на эту шину. Естественно, не допускается дублирование номеров мостов (а значит, и шин), а также перекрытие диапазонов адресов. Для программного обеспечения, за исключением конфигурационного, иерархическая организация шины PCI и достаточно сложная цепочка, соединяющая её с процессором и памятью, абсолютно прозрачна. Каждое устройство PCI включает одну или несколько функций (до 8 — под номер функции, используемый в процессе конфигурирования, отведено 3 бита). Функция — это логически независимая часть устройства. Например, в состав микросхемы южного моста обычно входят контроллеры SATA, Ethernet, USB и другие устройства. Каждый из них с точки зрения шины PCI может быть отдельным устройством или же одной из функций одного и того же устройства. Многофункциональные устройства обязательно должны иметь функцию с номером 0, однофункциональные могут в процессе конфигурирования игнорировать номер функции или же «откликаться» только на обращение к функции 0. Шина PCI имеет три независимых адресных пространства: памяти, ввода-вывода и конфигурационное. Разрядность адреса памяти и ввода-вывода составляет 32 или 64 бита (причём 64-разрядный адрес может использоваться и на 32-разрядной шине); на практике его разрядность определяется процессором (так, у современных процессоров ПК адреса портов ввода-вывода имеют длину 16 бит, а физические адреса памяти — обычно 36). Пространство ввода-вывода может отсутствовать, если шина применяется в вычислительной системе, процессор которой не имеет отдельного адресного пространства ввода-вывода. По этой причине устройства, не ориентированные на использование с конкретной процессорной архитектурой, должны иметь возможность работать исключительно с адресным пространством памяти. Для нормальной работы каждая функция каждого устройства должна иметь собственный диапазон адресов в необходимых ей адресных пространствах. Конфигурационное адресное пространство имеется у каждой реализованной функции всех устройств шины PCI, кроме, возможно, моста Host–PCI. Адреса регистров конфигурации состоят из четырёх полей: номера шины (8 бит), номера устройства (5 бит), номера функции (3 бита) и номера регистра (6 бит). Все конфигурационные регистры 32-разрядные. Используя их, программное обеспечение определяет тип, конкретную модель устройства и его требования к диапазонам адресов памяти и ввода-вывода, после чего по возможности выделяет запрашиваемые ресурсы и загружает драйвер, обеспечивающий работу с этим устройством. Обычно устройства до выполнения конфигурирования не отвечают на любые операции на шине, кроме обращённых к ним конфигурационных транзакций, однако предусмотрена возможность создания «преднастроенных» устройств. Такие устройства после сброса устанавливают определённую стандартную конфигурацию, что позволяет использовать их до проведения общего конфигурирования. Обычно это устройства, необходимые для осуществления начальной загрузки системы. Для ПК эта возможность не является особенно важной, поскольку настройку необходимых устройств до загрузки выполняет BIOS, однако её наличие позволяет применять шину PCI в вычислительных системах, лишённых какого-либо аналога BIOS. Устройства могут иметь порты ввода-вывода, расположенные по строго определённым адресам. Такие устройства называются унаследованными (legacy). Фиксированные порты применяются для обеспечения совместимости со старым оборудованием, не имевшим возможности программного конфигурирования. Например, современные видеоконтроллеры эмулируют видеоконтроллер VGA, для чего используют несколько стандартных портов ввода-вывода, однако для использования их в современных режимах они должны быть правильно настроены как «настоящие» устройства PCI. Передача данных обычно ведётся пакетами (burst), что позволяет повысить пропускную способность, поскольку в каждом пакете адрес передаётся лишь один раз независимо от количества передаваемых данных. Тем не менее, поддерживаются устройства, не обладающие способностью пакетной передачи. Из-за очень большого объёма информации подробные сведения о принципах работы и использовании шины PCI приведены в отдельных статьях: Читайте также:
|