Стандартный мост pci isa что это
В далеком 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. Как обычно, при переходе на новую шину широко использовали переходные мосты. История повторяется вот уже который раз, и с каждым новым витком она становится все интереснее! Мы уже сообщали о продукции компании WINBOND [1], выпускающей широкую гамму разнообразных микросхем, начиная с памяти и микроконтроллеров и заканчивая приборами для мобильных средств связи и распознавания речи. Примерно в середине этого списка находятся ИС для компьютеров. На этот раз рассмотрим контроллеры ввода/вывода W83С553F и W83С554F, которые выполняют функции моста между шинами PCI и ISA. Тема эта должна быть интересна хотя бы уже потому, что смена поколений компьютеров требует от разработчиков встроенных плат с интерфейсом ISA стремительной модернизации оборудования, чтобы не потерять своих заказчиков. Терминология Общие сведения Системный контроллер ввода/вывода W83С553F/W83С554F с PCI арбитром (W83С554F полностью аналогичен W83С553F, но поддерживает режим UltraDMA, поэтому в дальнейшем речь пойдёт об обеих микросхемах) предназначен для использования с микроконтроллерами семейства х86 или PowerPC в любой системе с шиной PCI. Эта микросхема поддерживает все реализации главного (CPU) моста, совместимые с протоколом PCI 2.1, и обеспечивает прямое сопряжение шин PCI и ISA, включая два канала IDE с поддержкой до четырех внешних устройств. W83С553F является универсальным устройством PCI, которое можно использовать для построения различных видов CPU-PCI моста. Данная ИС имеет 32-разрядную ISA DMA адресацию (что предпочтительнее, чем 24-разрядная) для упрощения применения в устройствах с рекомпилированными версиями 32-разрядных операционных систем (Windows NT, PowerPC, Alpha или иные на базе RISC-процессоров). В состав контроллера W83С553F входят два 7-канальных 32-разрядных контроллера DMA 82С37А, поддерживающих быструю DMA передачу данных от ISA шины на изолированную шину PCI через 4-байт линейный буфер. Оба этих контроллера способны выполнять передачу с "разбросанной" записью/чтением со сбором данных из нескольких блоков памяти. Cистемный контроллер ввода/вывода обеспечивает мост между шиной PCI и шиной расширения ISA. Кроме этого, он имеет встроенный ведущий IDE-контроллер для шины PCI, арбитр шины PCI (который может быть отключен в случае необходимости) и множество фун кций ввода/вывода для современных систем на базе ISA. В состав W83С553F входит также блок логики полного интерфейса PCI (инициатор и целевое устройство) и интерфейса ISA (ведущий и ведомый). Наличие арбитража PCI и ISA, контроллера прерываний на 14 уровней, 16-разрядного BIOS таймера, трёх программируемых счётчиков-таймеров, логики управления немаскируемого прерывания и регистра управления питанием при сбойных ситуациях позволяет говорить о контроллере W83С553F как о мощном аппаратном средстве. Встроенный контроллер двунаправленного порта PCI IDE обеспечивает высокую скорость передачи данных между IDE-устройствами и PCI-шиной. Каждое из четырёх устройств IDE имеет свои программируемые регистры для выбора скорости конвейерной передачи данных (16 и 32 разряда), систему опережающего чтения и задержки записи. Наличие большого буфера DMA FIFO (64 байт) позволяет избавиться от необходимости введения состояния ожидания при передаче данных через шину PCI. Ведущий шины IDE-устройств значительно повышает общую производительность системы с PCI-конфигурацией со многими инициаторами обмена за счёт резкого снижения использования центрального процессора при обращении к жёсткому диску или к CD-ROM. При частоте шины 33 МГц может быть обеспечена пакетная передача данных со скоростью 132 Мбайт/с на шине PCI. В качестве ядра системного контроллера ввода/вывода W83С553F использовано оригинальное ядро Sonata контроллера W83789F с некоторыми изменениями в маршрутизации прерываний. Рассматриваемая ИС полностью совместима с адаптером Bus-Master фирмы INTEL и спецификацией SFF8038i. Поддержка BIOS обеспечивается ПО всех ведущих компаний. Архитектура системы Контроллер W83С553F представляет собой многофункциональное PCI-устройство: "функция 0" - мост PCI-ISA; "функция 1" - IDE-контроллер ведущего шины. Каждая из функций имеет свою собственную область конфигурации PCI и область регистров ввода/вывода. Контроллер принимает циклы (адреса и данных) от шины PCI и преобразует их на шину ISA. Он также запрашивает PCI-мост ведущего для формирования PCI-циклов по запросу IDE DMA-устройства или ведущего шины ISA. Таким образом, интерфейс шины ISA содержит контроллер стандартной шины ISA и схему буферизации данных. Управление ISA-шиной обеспечивает формирование команд ISA, восстановление при сбое ввода/вывода, введение тактов ожидания и маршрутизацию данных в буфере. Дополнительно возможна поддержка пяти слотов ISA без схемы внешней буферизации. W83С553F инициализирует и выполняет регенерацию стандартной ISA-шины. Формирование команды и адреса регенерации шины ISA выполняет встроенный контроллер. Поскольку регенерация ISA-шины "прозрачна" для шины PCI и цикла DMA, то арбитр моста разрешает любые конфликты между шиной PCI, регенерацией и циклами DMA. Передача данных устройств IDE выполняется по двум специальным протоколам. Стандартный протокол - выполнение PIO-циклов на PCI-шине и IDE-интерфейсах. Расширенный протокол позволяет W83С553F передавать данные через шину PCI (как ведущего шины) в/из памяти и через IDE-интерфейсы с циклами DMA (единичными или многословными). Этот протокол снижает загрузку процессора при одновременном увеличении пропускной способности шины PCI. Поддержка передачи данных/команд выполняется в соответствии со спецификацией "Programming Interface for Bus Master IDE Controller" ред.1.0 (SFF8038i). Как следствие, системному процессору нет необходимости заниматься передачей данных между контроллером IDE и системной памятью (что требуется при использовании стандартного протокола PIO). Кстати, при многозадачном режиме процессор может заниматься другими задачами (при этом производительность шины PCI будет максимальной), а передачей данных займётся W83С553F (W83С554F). Активное состояние В активном состоянии W83С553F (W83С554F) контролирует все такты на шине PCI и реагирует на циклы конфигурации и ввода/вывода, причём для конфигурирования необходима непосредственная адресация, а для ввода/вывода используются данные из внутренних регистров конфигурации. Циклы ввода/вывода используются для передачи команды/состояния и данных к/от IDE-устройствам, в соответствии с данными в регистрах ведущего шины. Мост PCI-ISA В том случае, когда шина PCI выступает в роли целевого устройства, контроллер W83C553F отвечает за транзакции и ввода/вывода и памяти. Он всегда устанавливается как ведомый после первой фазы данных пакетной передачи. W83C553F преобразует также отдельный цикл прерывания в два для встроенных контроллеров прерываний 82С59. Работа интерфейса IDE Передача данных по протоколу PIO При передаче данных по протоколу PIO циклы чтения/записи для ввода/вывода выполняются на интерфейсе IDE, а передача данных выполняется на шине PCI. При этом адрес IDE-устройства и сигналы выбора кристалла будут изменяться только в том случае, когда на PCI-шине определён цикл декодирования. Это уменьшает помехи от переключения IDE-интерфейса и электромагнитные помехи. Для повышения быстродействия передачи данных по протоколу PIO в W83C553F реализован алгоритм работы с опережающим чтением и задержанной записью. Циклы чтения или записи выполняются до тех пор, пока буфер опережающего чтения не будет заполнен или буфер задержанной записи не освободится. В результате, в начало и конец блока передаваемых данных добавится только установка адреса и время удержания. 16-байт буфер PIO FIFO позволяет передавать данные одновременно по двум каналам без потери данных между ними. Передача 32-разрядных данных Для уменьшения загрузки системы и повышения производительности в W83C553F реализована возможность передачи 32-разрядных данных. При использовании стандартного протокола PIO за один цикл ввода/вывода и один цикл памяти между устройством IDE и памятью передаётся 2 байт. Чтобы передать 4 байт данных, требуется, соответственно, два цикла ввода/вывода и два цикла памяти. Такую передачу можно выполнить за один 32-разрядный цикл ввода/вывода и один цикл памяти. Цикл процессора уменьшится вдвое, а опережающее чтение и задержанная запись улучшат производительность системы как при чтении, так и при записи данных. Передача данных инициатором обмена Когда устройства DMA выступают в качестве инициатора обмена на шине PCI, то циклы DMA выполняются на интерфейсе IDE. В этом режиме регистр управления инициатора шины устанавливает W83C553F в состояние запрета выбора для данного порта и обращается к DRQ. Если прерывание выставляется на интерфейсе IDE, то оно будет задержано при передаче данных от IDE-устройства в память до тех пор, пока буфер FIFO не освободится (содержимое перепишется в память). Для увеличения пропускной способности шины PCI, буфер FIFO инициатора шины независим от буферов PIO FIFO. Его "глубина" составляет 64 байт, что позволяет системному контроллеру передавать 8 двойных слов. Если в режиме инициатора обмена находятся два порта, то они будут совместно использовать один и тот же буфер FIFO. Для обеспечения "справедливой" передачи данных каждым из портов применяется арбитраж. Применение этого протокола для передачи данных позволяет снизить загрузку центрального процессора в среднем на 90%, поскольку ему необходимо только передать команду целевому IDE-устройству, вызвать таблицу PRD-инициатора и запрограммировать его регистры. Таким образом, на обслуживание одной команды необходимо только одно прерывание, в отличие от команд протокола PIO, где одно прерывание требуется на сектор или блок секторов, а процессор должен "вручную" предавать все данные. Помимо этого, по сравнению с протоколом PIO, почти на 90% сокращается загрузка PCI-шины: вне зависимости от скорости передачи данных IDE-устройством, передача одного сектора данных занимает не более 6 мкс. Протокол PIO позволяет передать такой же объём данных за 150 мкс. Контроллер прерываний 82С59А Контроллер DMA 82С37А Системный контроллер W83C553F поддерживает A-, B- и F-типы циклов передачи. Оба контроллера DMA работают с полной 32-разрядной адресацией и обладают возможностью передачи с "разбросанной" записью/чтением со сбором данных из нескольких блоков памяти. Счетчик-таймер 82С54 После подачи питания по умолчанию арбитр устанавливает схему кругового обслуживания, предоставляющую всем инициатором обмена равный доступ к шине PCI. При необходимости приоритетного доступа для любой пары REQ/GNT возможно задание через регистр управления приоритетом (PCI Priority Control Register) "1" по индексу 80h функции 0 области конфигурации шины PCI. Режимы процессора (Х86 или PowerPC) Особенностью W83C553F является наличие двух режимов процессора, которые изменяют функциональное назначение некоторых выводов микросхемы. В режиме х86 поддерживаются Intel-совместимые процессоры, включая Pentium, AMD K6, Cyrix M1, Intel P6 и другие. Режим PowerPC предназначен для процессоров IBM/Apple/Motorola PowerPC, а также для RISK-процессоров, таких как DEC Alpha, Sun SPARC и MIPS R4xxx, то есть системный контроллер ввода/вывода может формировать все необходимые сигналы сброса для микропроцессора, шины PCI и шины ISA. Фирма RAINBOW Technologies является дистрибьютором компании WINBOND, потребители могут получить консультации и разместить свои заказы в наших офисах. 1. Ракович Н.Н. Продукция Winbond Elecnronics // Chip News. 2001. № 3. С. 4-7. Мосты PCI (PCI Bridge) — специальные аппаратные средства соединения шин PCI (и PCI-X) между собой и с другими шинами. Главный мост (Host Bridge) используется для подключения PCI к центру компьютера (системной памяти и процессору). «Почетной обязанностью» главного моста является генерация обращений к конфигурационному пространству под управлением центрального процессора, что позволяет хосту (центральному процессору) выполнять конфигурирование всей подсистемы шин PCI. В системе может быть и несколько главных мостов, что позволяет предоставить высокопроизводительную связь с центром большему числу устройств (число устройств на одной шине ограниченно). Из этих шин одна назначается условно главной (bus 0). Равноранговые мосты PCI (PeertoPeer Bridge) используются для подключения дополнительных шин PCI. Эти мосты всегда вносят дополнительные накладные расходы на передачу данных, так что эффективная производительность при обмене устройства с центром снижается с каждым встающим на пути мостом. Для подключения шин PCMCIA, CardBus, MCA, ISA/EISA, X-Bus и LPC используются специальные мосты, входящие в чипсеты системных плат или же являющиеся отдельными устройствами PCI (микросхемами). Эти мосты выполняют преобразование интерфейсов соединяемых ими шин, синхронизацию и буферизацию обменов данных. Каждый мост программируется — ему указываются диапазоны адресов в пространствах памяти и ввода-вывода, отведенные устройствам его шин. Если адрес ЦУ текущей транзакции на одной шине (стороне) моста относится к шине противоположной стороны, мост транслирует транзакцию на соответствующую шину и обеспечивает согласование протоколов шин. Таким образом, совокупность мостов PCI выполняет маршрутизацию (routing) обращений по связанным шинам. Если в системе имеется несколько главных мостов, то сквозная маршрутизация между устройствами разных шин может оказаться невозможной: главные мосты друг с другом могут оказаться связанными лишь через магистральные пути контроллера памяти. Поддержка трансляции всех типов транзакций PCI через главные мосты в этом случае оказывается чересчур сложной, а потому спецификацией PCI строго и не требуется. Таким образом, все активные устройства всех шин PCI могут обращаться к системной памяти, но возможность равнорангового общения может оказаться в зависимости от принадлежности этих устройств той или иной шине PCI. Применение мостов PCI предоставляет такие возможности, как:
Каждый мост PCI соединяет только две шины: первичную (primary bus), находящуюся ближе к вершине иерархии, с вторичной (secondary bus); интерфейсы моста, которыми он связан с этими шинами, называются соответственно первичным и вторичным. Допускается только чисто древовидная конфигурация, то есть две шины соединяются друг с другом лишь одним мостом и нет «петель» из мостов. Шины, подсоединяемые ко вторичному интерфейсу данного моста другими мостами, называются подчиненными (subordinated bus). Мосты PCI образуют иерархию шин PCI, на вершине которой находится главная шина с нулевым номером, подключенная к главному мосту. Если главных мостов несколько, то из их шин (равных друг другу по рангу) условно главной будет шина, которой назначен нулевой номер. Мост должен выполнять ряд обязательных функций: Мосты, выполняющие данные функции, называются прозрачными (transparrent bridge); для работы с устройствами, находящимися за такими мостами, не требуется дополнительных драйверов моста. Именно такие мосты описаны в спецификации PCI Bridge 1.1, и для них, как устройств PCI, есть специальный класс (06). В данном случае подразумевается «плоская» модель адресации ресурсов (памяти и ввода-вывода): каждое устройство имеет свои адреса, уникальные (не пересекающиеся с другими) в пределах данной системы (компьютера). Существуют и непрозрачные мосты (non-transparrent bridge), которые позволяют организовывать обособленные сегменты со своими локальными адресными пространствами. Непрозрачный мост выполняет трансляцию (преобразование) адресов для транзакций, у которых инициатор и целевое устройство находятся по разные стороны моста. Досягаемыми через такой мост могут быть и не все ресурсы (диапазоны адресов) противоположной стороны. Непрозрачные мосты используются, например, когда в компьютере выделяется подсистема «интеллигентного ввода-вывода» (I20) со своим процессором ввода-вывода и локальным адресным пространством. Маршрутизация по иерархическому адресуЗадача маршрутизации — определение, где по отношению к мосту находится ресурс, адресованный каждой транзакции, — является первоочередной при обработке каждой транзакции, «увиденной» мостом на любом из своих интерфейсов. Эта задача решается двояко, поскольку в фазе адреса может передаваться как иерархический адрес PCI (шина -> устройство -> функция), так и «плоский» адрес памяти или порта ввода-вывода. Маршрутизация по иерархическому адресу
Все шины с номерами в диапазоне от Secondary Bus Number до Subordinate Bus Number включительно будут лежать со стороны вторичного интерфейса, все остальные — на стороне первичного. Знание номеров шины позволяет мостам распространять обращения к конфигурационным регистрам устройств в сторону от хоста к подчиненным шинам и распространять специальные циклы во всех направлениях. Ответы на расщепленные транзакции (Split Complete) мост транслирует с одного интерфейса на другой, если они адресованы к шине противоположного интерфейса. Конфигурационные циклы типа 0 и специальные циклы мостами не транслируются. Конфигурационные транзакции типа 1, обнаруженные на первичном интерфейсе, мост обрабатывает следующим образом:
Со стороны вторичного интерфейса мост передает на первичный только конфигурационные циклы типа 1, относящиеся к специальным циклам (в полях номера устройства и функции все биты единичные, а в поле номера регистра — нулевые). Если номер шины соответствует номеру первичной шины, мост преобразует эту транзакцию в специальный цикл. Если конфигурационный цикл не воспринимается ни одним из устройств, мосты могут эту ситуацию отрабатывать двояко: фиксировать отсутствие устройства (сработает Master Abort) или же выполнять операции вхолостую. Однако в любом случае чтение конфигурационного регистра несуществующего устройства (функции) должно возвращать значение FFFFFFFFh (это будет безопасной информацией, поскольку даст недопустимое значение идентификатора устройства). Маршрутизация по «плоскому» адресуДля манипулирования с транзакциями обращения к памяти и портам ввода-вывода мосту нужны карты адресов, на которых отмечены области, принадлежащие устройствам вторичной и подчиненных шин. В системе с плоской уникальной адресацией этого достаточно. Для отмеченных областей мост должен отвечать в качестве целевого устройства на транзакции, «увиденные» им на первичном интерфейсе, и инициировать их в роли мастера на вторичном интерфейсе; остальные транзакции на первичном интерфейсе он игнорирует. Для адресов вне этих областей мост должен вести себя «зеркально»: отвечать в качестве целевого устройства на транзакции, «увиденные» им на вторичном интерфейсе, и инициировать их на первичном интерфейсе; остальные транзакции на вторичном интерфейсе он игнорирует. Каким образом мост транслирует транзакции, описано далее. Каждый мост PCI-PCI имеет по одному описателю на каждый из трех типов ресурсов: ввода-вывода, «настоящей» памяти (допускающей предвыборку) и памяти, на которую отображены регистры ввода-вывода. В описателе указывается базовый адрес и размер области. Ресурсы одного типа для всех устройств, находящихся за мостом (на вторичной и всех подчиненных шинах), должны быть собраны в одну, по возможности компактную, область. Мост транслирует транзакции ввода-вывода указанной области с первичного интерфейса на вторичный только при установленном бите I/O Space Enable в регистре команд. Транзакции ввода-вывода со вторичного интерфейса на первичный транслируются только при установленном бите Bus Master Enable. Вводвывод, отображенный на память, может использовать адреса в пределах первых 4 Гбайт (предел 32-битной адресации) с гранулярностью 1 Мбайт. Транслируемая область задается регистрами Memory Base (начальный адрес) и Memory Limit (конечный адрес), в которых задаются только старшие 12 бит адреса AD[31:20], младшие биты AD[19:0] подразумеваются равными 0 и FFFFFh соответственно. Кроме того, транслироваться может и область памяти VGA . «Настоящая» память устройств PCI, допускающая предвыборку, может располагаться как в пределах 32-битной адресации (4 Гбайт), так и 64-битной, с гранулярностью 1 Мбайт. Транслируемая область задается регистрами Prefetchable Memory Base (начальный адрес) и Prefetchable Memory Limit (конечный адрес). Если в младших битах [3:0] этих регистров чтение возвращает 0001, то это признак поддержки 64-битной адресации. В этом случае старшая часть адресов находится в регистрах Prefetchable Base Upper 32 Bits и Prefetchable Limit Upper 32 Bits. Мост может и не иметь специальной поддержки предвыбираемой памяти, тогда вышеуказанные регистры будут при чтении возвращать нули. Мост транслирует транзакции памяти указанных областей с первичного интерфейса на вторичный только при установленном бите Memory Space Enable в регистре команд. Транзакции памяти со вторичного интерфейса на первичный транcлируются только при установленном бите Bus Master Enable. Поддержка адресации ввода-вывода шины ISAВ адресации портов ввода-вывода есть особенности, связанные с «наследием», доставшимся от шины ISA. 10-битное декодирование адреса, применявшееся в шине ISA, приводит к тому, что каждый из адресов диапазона 0–3FFh (предел охвата 10-битным адресом) имеет еще по 63 псевдонима (aliase), по которым можно обращаться к тому же устройству ISA. Так, например, для адреса 0378h псевдонимами являются x778h, xB78h и xF78h (x — любая шестнадцатеричная цифра). Псевдонимы адресов ISA используются в разных целях, в частности, и в системе ISA PnP. Область адресов 0–FFh зарезервирована за системными (не пользовательскими) устройствами ISA, для которых псевдонимы не используют. Таким образом, в каждом килобайте адресного пространства ввода-вывода последние 768 байт (адреса 100–1FF) могут являться псевдонимами, а первые 256 байт (0–0FFh) — нет. В регистре управления мостом присутствует бит ISA Enable, установка которого приведет к вычеркиванию областей-псевдонимов из общей области адресов, описанной регистрами моста I/O Base и I/O Limit. Это вычеркивание действует только для первых 64 Кбайт адресного пространства (16-битного адреса). Мост не будет транслировать с первичного интерфейса на вторичный транзакции, принадлежащие этим вычеркнутым областям. И наоборот, с вторичного интерфейса транзакции, относящиеся к данным областям, будут транслироваться на первичный. Эта возможность нужна для совместного использования малого (64 Кбайт) пространства адресов устройствами PCI и ISA, примиряя «изрезанность» карты адресов ISA с возможностью задания лишь одной области адресов ввода-вывода для каждого моста. Данный бит имеет смысл устанавливать для мостов, за которыми нет устройств ISA. Эти мосты будут транслировать «вниз» все транзакции ввода-вывода, адресованные к первым 256 байтам каждого килобайта области адресов, описанной регистрами моста I/O Base и I/O Limit. Эти адреса конфигурационное ПО может выделять устройствам PCI, находящимся «ниже» данного моста (кроме адресов 0000h–00FFh, относящихся к устройствам системной платы). Специальная поддержка VGAВ мостах может присутствовать специальная поддержка графического адаптера VGA, который может находиться на стороне вторичного интерфейса моста. Эта поддержка индицируется и разрешается битом VGA Enable конфигурационного регистра моста. При включенной поддержке мост осуществляет трансляцию обращений к памяти VGA в диапазоне адресов 0A0000h–0BFFFFh, а также регистрам ввода-вывода в диапазонах 3B0h–3BBh и 3C0h–3DFh и всех их 64 псевдонимов (линии адреса AD[15:10] не декодируются). Такой особый подход объясняется данью обеспечения совместимости с самым распространенным графическим адаптером и невозможностью описания всех необходимых областей в таблицах диапазонов адресов для позитивного декодирования. Кроме того, для поддержки VGA требуется особый подход к обращениям в регистры палитр, которые расположены по адресам 3C6h, 3C8h и 3C9h, и их псевдонимам (здесь опять же линии адреса AD[15:10] не декодируются). Межсоединения периферийных компонентов , как правило , сокращенно PCI , является автобус стандартом для подключения периферийных устройств к чипсету в процессоре . Существует множество вариантов и областей применения стандарта ( ПК , промышленность , телекоммуникации ). Самый известный вариант в основном используется в среде ПК и официально называется PCI Conventional . Практически каждый IBM PC-совместимый компьютер, построенный примерно с 1994 года , обычно оснащен от двух до семи слотов для карт PCI (за исключением миниатюрных и мобильных версий). Более новые компьютеры Apple (с 1995 по 2005 год, позже PCI Express ) и рабочие станции Sun также имеют шину PCI. В слоты могут быть вставлены всевозможные карты от многих производителей, включая сетевые карты , модемы , карты SCSI , звуковые карты , (старые или вторые) графические карты , карты с параллельным подключением к принтеру или с дополнительными слотами USB . Это позволяет легко адаптировать ПК к особым потребностям. Версия 1.0 стандарта была определена Intel в 1991 году. Intel не поддерживала V ESA L ocal B us not (VLB), поскольку она была разработана специально для 486-й архитектуры и обеспечивала меньшую пропускную способность. Напротив, шину PCI можно использовать в любой архитектуре. Сейчас существует три разных стандарта:
Шина PCI заменила шину ISA и недолговечную шину VL, которая использовалась в старых ПК. Однако мост PCI-ISA позволяет подключать шину ISA к шине PCI. В системах поколения Pentium и новее это единственный способ подключения карт ISA, поскольку шина ISA является внешней системной шиной исходного ПК. Шина PCI давно удовлетворяла требованиям к графическим, сетевым и другим интерфейсным картам. В отличие от шины ISA, PCI позволяет динамическое конфигурирование устройства без вмешательства пользователя. В процессе загрузки системная BIOS анализирует существующие устройства PCI и выделяет необходимые ресурсы. Это позволяет назначать IRQ , адреса портов и области памяти в соответствии с местными условиями. С картами ISA вам часто приходилось устанавливать IRQ и т. Д. Для использования вручную с помощью перемычки . Кроме того, шина PCI предоставляет операционной системе и другим программам подробное описание всех подключенных устройств PCI через пространство конфигурации PCI. Спецификация PCI также регулирует физическую схему шины (включая расстояние между токопроводящими дорожками), электрические свойства, синхронизацию и протоколы. Устройства или интерфейсы не обязательно должны быть размещены на сменных картах , но также могут быть расположены непосредственно на материнской плате компьютера; в спецификации здесь говорится о планарных устройствах . ОглавлениеОбщие характеристики шины PCIШина PCI представляет собой синхронную шину с тактовой частотой 33,33 МГц (= 30 нс на такт) или, согласно спецификации 2.1, тактовой частотой 66,66 МГц, то есть 15 нс за такт. Эти значения являются максимальными значениями; согласно спецификации, цикл также может быть меньшим и также изменчивым, например, для экономии энергии. Поэтому в автобусе есть линия часов. Все сигналы передаются только с нарастающим фронтом тактовой частоты ( единая скорость передачи данных ). Сигналами можно управлять через драйверы CMOS, поэтому общее энергопотребление относительно невелико. Шина может быть оборудована до 10 устройствами, при этом делается различие между ведущим (контроллером передачи) и ведомым (возможно, придется ждать данных (или команд)). При необходимости мастер может взять под контроль процессы на самой шине, что особенно удобно для карт с большим объемом операций ввода-вывода , таких как сетевые карты или контроллеры жестких дисков. Устройства, размещенные на материнской плате и устанавливающие соединение с хостом (интерфейс PCI / хост) или с возможно существующей шиной ISA (интерфейс PCI / ISA), также считаются устройствами . Для более чем 10 устройств PCI в системе дополнительные шины PCI могут быть интегрированы в систему через интерфейсы PCI / PCI (мост PCI-PCI). Передача данных происходит параллельно. Мастер всегда связывается с подчиненным по шине PCI. Большинство устройств PCI можно адресовать и как подчиненные, и как ведущие транзакции. Мастер выбирается через арбитра , который затем контролирует шину. Он начинает передачу с размещения адреса в 32 строках данных / адреса и команды в 4 строках команд / байтов. Данные и адреса передаются по одним и тем же линиям и отделяются друг от друга с использованием мультиплексирования с временным разделением . Дополнительная линия четности позволяет распознавать ошибки. ЦП и основная память подключаются к шине через так называемый мост хоста. Большинство транзакций на шине происходит между этим мостом и остальными периферийными устройствами. Теоретически периферийные устройства также могут связываться друг с другом, но эта опция используется редко и поддерживается только как опция большинством мостов. Поскольку периферийные устройства, поддерживающие ведущее устройство, могут обращаться к главному мосту как к ведомым устройствам, они могут выполнять запись напрямую и читать из основной памяти - это соответствует прямому доступу к памяти (DMA). В наиболее распространенном варианте PCI с 32 бит / 33 МГц максимум 32 бит, т.е. ЧАС. Передается 4 байта, так что максимальная скорость передачи составляет 133 Мбайт / с (4 байта за 30 нс). И ведущий, и ведомый могут сигнализировать по линиям готовности, что они готовы к приему данных. Если ведущий или ведомый не готовы, данные не будут переданы, передача будет остановлена или замедлена. Обычно мастер завершает передачу данных. Подчиненное устройство может принудительно завершить передачу с помощью сигнала STOP. Другой мастер может запросить шину через REQ, при этом текущая передача должна быть завершена после указанного периода задержки, и новый мастер может занять шину. Шина PCI требует минимум 47 (подчиненных) или 49 (главных) сигналов на шине. Начиная с версии 2.1 спецификации, было определено 64-битное расширение, которое расширяет шину данных до 64 бит. 32-битные и 64-битные устройства могут сосуществовать и взаимодействовать друг с другом в системе. На шине имеется четыре линии прерывания, поэтому каждое устройство может генерировать до четырех различных прерываний (от INTA до INTD). Линии прерывания не подключаются к шине, но их можно маршрутизировать и назначать индивидуально . Обычно используется только INTA. Однако, в зависимости от слота, это может быть назначено собственному прерыванию или, если прерываний недостаточно, оно может быть разделено между разными картами. Проблемы шины ISA, которая часто не могла назначать слишком мало прерываний, в основном остались в прошлом. Шина PCI подает напряжение на подключенные устройства. Максимально допустимая сила тока указывается для каждого напряжения питания . Кроме того, общая мощность на слот ограничена 25 Вт.
Сигналы шины PCIТипы входов и выходов можно разделить следующим образом: PCI IDКаждое устройство или съемная карта на шине PCI имеет уникальный идентификатор оборудования (ID). Он состоит из трех частей, которые используются для идентификации функции (ID класса), производителя и модели (ID устройства). Class-ID : Hersteller-ID : Geräte-ID 0200:8086:10B5
Устройство назначается определенной группе с помощью идентификатора класса. Это упрощает идентификацию неизвестных устройств. Операции на шине PCIПосле того, как все устройства настроены в BIOS, все устройства могут быть адресованы через командный протокол. Он состоит из команды, адреса и последовательности данных. На зарезервированные команды не должны реагировать устройства PCI. Базовые варианты PCI
Размеры вариантов PCI
Кодировка контактной полосыКодировки для различных 32-битных и 64-битных карт PCI
Другие варианты PCI
Управление питанием с помощью PCIХотя устройства можно переключать в другой режим энергосбережения вручную во время работы, в большинстве случаев глобальный режим энергосбережения устанавливается для компьютера с помощью APM или ACPI , которые контролируются системой управления питанием операционной системы. В режимах D1 и D2 соответствующим образом оборудованное устройство PCI имеет возможность в любое время разместить так называемый сигнал события управления питанием (PME) на шине, который затем передается в управление питанием операционной системы и может быть используется для этой цели, чтобы снова «разбудить» систему глобально по запросу, например, когда сетевая карта обнаруживает входящие данные, которые должны быть обработаны. УсловияГруппы по интересамСпециальная группа по интересамВ 1992 году была основана группа по интересам "PCI-SIG" (первоначальное название: "Peripheral Component Interconnect Special Interest Group"). Задача PCI-SIG - администрирование и дальнейшее развитие стандарта PCI. Компании и организации могут стать членами PCI-SIG. В 2007 г. насчитывалось более 800 членов. Группа производителей промышленных компьютеров PCIГруппа производителей промышленных компьютеров PCI ( PICMG ), основанная в 1994 году, представляет собой консорциум из более чем 450 компаний, которые хотят расширить стандарт PCI для использования в промышленном секторе, медицине, военной сфере и телекоммуникациях. Это привело к появлению таких спецификаций, как CompactPCI или AdvancedTCA . Читайте также:
|