|
Шина Порт
Московский
Государственный
Институт
Радиотехники, Электроники и
Автоматики
(Технический
Университет)
курсовой
проект по теме:
Шина PCI. Порт
AGP.
Студент
Головченко Владимир
Группа ВВ-2-95
Преподаватель Дешко И.П.
МОСКВА 1997
План
Стр.
Введение
1
Сигналы шины
4
Разъемы шины
7
Порт AGP
10
Литература
15
ВВЕДЕНИЕ
Стандарт PCI разработан и распространяется
специальной группой взаимодействия периферийных компонентов (Peripheral
Component Interconnect Special Interest
Group - PCI SIG), являющейся некорпоративной ассоциацией представителей
микрокомпьютерной промышленности.
Группа PCI SIG поставила задачу разработать стандарт,
который допускал бы аппаратное расширение и был применим на разнообразных
платформах.
PCI (Peripheral Component Interconnect bus) - шина соединения
периферийных компонентов. Занимает особое место в PC - архитектуре, являясь
мостом между локальной шиной процессора и шиной ввода-вывода ISA/EISA или MCA.
Разработана для Pentium-систем, хорошо сочетается и с 486 процессорами. Частота
шины 20-33 Мгц, теоритическая максимальная скорость 132/264 Мбайт/с для 32/64
бит. Имеет версии с питанием 5В, 3.3В и универсальную (с переключением линий +V
I/O с 5В на 3.3В). Ключами являются пропущенные ряды контактов 12, 13 и 50, 51.
Для 5В-слота ключ расположен на
месте контактов 50, 51; для 3.3В
- 12, 13; для универсального - два ключа: 12, 13 и 50, 51. 32-битный слот
заканчивается контактами А62/В62, 64-битный - А94/В94.
Технология PCI дает возможность воспроизводить
цветные видеофильмы с высоким разрешением во многих окнах экрана. Она позволяет
использовать дополнительные порты, автоматически устанавливающие свою
конфигурацию, а также гарантирует высочайшую скорость обмена с жесткими
дисками.
Строго говоря, PCI вовсе не
является истинной локальной шиной, а представляет собой дополнительную, или
промежуточную шину. Она занимает промежуточный уровень между процессорной шиной
системы и такими стандартными шинами расширения, как ISA, EISA или MCA, причем
соединяется с ними при помощи электронных мостов.(рис. 1) Благодаря изоляции от
локальной шины центрального процессора шина PCI подключает больше устройств,
чем VL-BUS, так как эти устройства не будут представлять электрической нагрузки
для шины ЦП. Спецификация PCI предусматривает до десяти единичных нагрузок.
Рис.1 Шина PCI в
архитектуре типичного
настольного
компьютера PC
ЦЕНТРАЛЬНЫЙ МОНИТОР
ПРОЦЕССОР
КЭШ
МОСТ/
КОНТРОЛЛЕР ДЗУПВ ГРАФИЧЕСКАЯ
ПАМЯТИ ПОДСИСТЕМА
ЛОКАЛЬНАЯ ШИНА PCI
ФАКС
ВСТРОЕННАЯ
ИНТЕРФЕЙС
ЭЛЕКТРОНИКА ШИНЫ МОДЕМ
IDE
РАСШИРЕНИЯ
ПЛАТА
РАСШИРЕНИЯ
ПЛАТЫ PCI
ШИНА
ISA, EISA или MCA
ВИНЧЕСТЕР
Если развязка процессора от шины PCI реализована недостаточно
удачно, это может вызвать задержки при выполнении любых операций обмена между
ЦП и устройствами, подключенными к шине PCI. Компания Intel, которая
разработала шину PCI, создала и наборы микросхем PCI, позволяющие решить эту
проблему благодаря рационально организованной буферизации в мостовом интерфейсе
при выполнении операций чтения и записи. Набор ИС компании Intel позволяет
центральному процессору компьютера произвести запись (выдачу) данных на
периферийное устройство, с тем чтобы
контроллер PCI немедленно запомнил эти данные в своем буфере, а ЦП мог
быстро перейти к следующей операции, не
дожидаясь завершения вывода. Затем буфер сам передаст данные устройству PCI в эффективном
режиме группового обмена. Изоляция шины
PCI - это своего рода шаг в будущее архитектуры PC, поскольку тем самым обеспечивается возможность работы
с более быстродействующими микропроцессорами. Теоритически можно подключить
шину PCI к 100-Мгц МП Pentium или 200-Мгц RISK-процессору Alpha, в то время как
о прямом соединении истинной локальной шины с ЦП фактически не может быть и
речи. Такая независимость от процессора служит весьма важным преимуществом с
точки зрения изготовителя системы,
поскольку позволяет снизить расходы на разработку благодаря тому, что одни и
теже периферийные устройства шины можно при минимальных доработках использовать
с центральными процессорами нескольких различных поколений. Поскольку шина PCI
независима от процессора, периферийная плата или ИС этой шины будет в равной
мере хорошо работать в машине с процессором 486, Pentium, Alpha, а со временем
и в компьютере Macintosh с процессором PowerPС.
Автоконфигурирование
устройств (выбор адресов, запросов прерывания, каналов DMA) поддерживается средствами
BIOS и ориентировано на технологию Plug and Play.
Стандарт PCI определяет для каждого слота конфигурационное
пространство размером до 256 восьмибитных регистров, не приписанных ни к
пространству памяти, ни к пространству ввода-вывода. Доступ к ним
осуществляется по специальным циклам шины Configuration Read и Configuration
Write, вырабатываемым контроллером при обращении процессора к регистрам
контроллера шины PCI, расположенным в его пространстве ввода-вывода.
СИГНАЛЫ ШИНЫ PCI
AD[31:0] - мультиплексированная шина
адреса/данных. Адрес передается по сигналу -FRAME, в последующих тактах
передаются данные.
-C/BE[3:0] - команда/разрешение обращения к байтам.
Команда, определяющая тип очередного цикла шины (чтение-запись памяти,
ввода-вывода или конфигурационное чтение-запись, подтверждение прерывания и
другие) задается четырехбитным кодом в фазе адреса (по сигналу -FRAME).
-FRAME - индикатор фазы адреса (иначе - передача данных).
-DEVSEL - попытка инициатора обратиться к основной памяти.
-IRDY - готовность инициатора к обмену данными.
-LOCK - используется
для установки, обслуживания и
освобождения захвата ресурса на PCI.
-REQ[3:0] - запрос от PCI-мастера на захват шины (для слотов
3:0).
-GNT[3:0] - разрешение мастеру на использование шины.
PAR - общий бит паритета для линий AD[31:0] и
C/BE[3:0].
-ParityER - сигнал об ошибке паритета (от устройства, ее
обнаружившего).
-RST - сброс всех регистров в начальное состояние.
IDSEL - выбор устройства в циклах конфигурационного
считывания и записи.
-SERR - системная ошибка, активизируется любым устройством
PCI и вызывает NMI.
-REQ64 - запрос на 64-битный обмен.
-ACK64 - подтверждение 64-битного обмена.
-INTR A,B,C,D - линии запросов прерывания, циклически
сдвигаются в слотах и направляются на доступные линии IRQ с помощью
конфигурационных регистров. Запрос по низкому уровню позволяет использовать
одну линию несколькими источниками.
Clock - тактовая частота шины.
Test Clock, -TSTRES,
TestDO, TestDI - сигналы для тестирования
адаптеров по интерфейсу JTAG (на системной плате обычно не задействованы).
TSTMSLCT - перевод в режим тестирования.
-TRDY - готовность целевого устройства к обмену данными.
-STOP - запрос целевого устройства к инициатору на останов
текущей транзакции.
РАЗЪЕМЫ ШИНЫ PCI Ряд В № Ряд А Ряд В № Ряд А - 12 В 1 -TSTRES GND/Ключ 51* GND/Ключ Test Clock 2 + 12B AD 8 52 -C/BE 0 GND 3 TSTMSLCT AD 7 53 + 3.3B Test DO 4 Test DI + 3.3B 54 AD 6 + 5В 5 + 5B AD 5 55 AD 4 + 5B 6 -INTR A AD 3 56 GND -INTR B 7 -INTR C GND 57 AD 2 -INTR D 8 + 5B AD 1 58 AD 0 -PRSNT 1 9 Reserved +V I/O 59 +V I/O Reserved 10 + V I/O -ACK64 60 -REQ64 -PRSNT 2 11 Reserved + 5B 61 + 5B GND/Ключ 12* GND/Ключ + 5B 62 + 5B GND/Ключ 13* GND/Ключ Конец 32-битного разъема Reserved 14 Reserved GND 15 -RST Reserved 63 GND Clock 16 +V I/O GND 64 -C/BE 7 GND 17 -GNT -C/BE 6 65 -C/BE 5 -REQ 18 GND -C/BE 4 66 +V I/O +V I/O 19 Reserved GND 67 PAR64 AD 31 20 AD 30 AD 63 68 AD 62 AD 29 21 + 3.3B AD 61 69 GND GND 22 AD 28 +V I/O 70 AD 60 AD 27 23 AD 26 AD 59 71 AD 58 AD 25 24 GND AD 57 72 GND + 3.3B 25 AD 24 GND 73 AD 56 -C/BE 3 26 IDSEL AD 55 74 AD 54 AD 23 27 +3.3B AD 53 75 +V I/O GND 28 AD 22 GND 76 AD 52 AD 21 29 AD 20 AD 51 77 AD 50 AD 19 30 GND AD 49 78 GND +3.3B 31 AD 18 +V I/O 79 AD 48 AD 17 32 AD 16 AD 47 80 AD 46 -C/BE 2 33 +3.3B AD 45 81 GND GND 34 -FRAME GND 82 AD 44 -IRDY 35 GND AD 43 83 AD 42 +3.3B 36 -TRDY AD 41 84 + V I/O -DEVSEL 37 GND GND 85 AD 40 GND 38 -STOP AD 39 86 AD 38 -Lock 39 +3.3B AD 37 87 GND -ParityER 40 SDONE +V I/O 88 AD 36 +3.3B 41 -SBOFF AD 35 89 AD 34 -SysERR 42 GND AD 33 90 GND +3.3B 43 PAR GND 91 AD 32 -C/BE 1 44 AD 15 Reserved 92 Reserved AD 14 45 +3.3B Reserved 93 GND GND 46 AD 13 GND 94 Reserved AD 12 47 AD 11 Конец 64-битного разъема AD 10 48 GND GND 49 AD 9 GND/Ключ 50* GND/Ключ
*12, 13 - ключ для 3.3В
*50, 51 - ключ для 5В
Определены два типа устройств стандарта PCI - целевое и ведущее. Целевое устройство
воспринимает команды и реагирует на запросы ведущего. Ведущее устройство
представляет собой более “интеллектуальное” устройство, которое может
производить обработку независимо от шины или других устройств. Ведущее
устройство разделяет шину с основным процессором и целевыми устройствами. Кроме
того, оно может выступать целевым устройством для других ведущих устройств.
Определение стандарта PCI требует 47 контактов только для целевого и 49
контактов для ведущего. Это число представляется невероятно малым, если учесть
потенциальные возможности шины и тот факт, что сюда включены функции передачи
данных и адресации, управления интерфейсом, арбитража, а также системные
функции. Однако спецификация предусматривает до 120 соединений для стандартной
32-битовой платы и 184 для 64-битовых плат. В основе стандарта лежит
мультиплексирование, при котором через одни и те же контакты передаются
разнотипные сигналы. Адреса и данные мультиплексируются на одни и те же
контакты, поэтому одиночная передача
по шине PCI состоит из двух фаз: фаза адресации сопровождается одной
или несколькими фазами данных. Ведущее устройство выдает адрес и
обращается к конкретному устройству на шине. Выбранное устройство переходит в
соответствующий режим для приема данных или инструкций, а затем ведущее
устройство посылает пакет данных по тем же контактам, которые использовались
для вызова. После определения адреса ведущее устройство может посылать данные
без повторения адресации, так как целевое устройство уже выбрано. Отметим, что
передача данных может включать в себя и чтение и запись информации.
Для PCI определяются три физических адресных пространства:
памяти, ввода-вывода и конфигурации. Адресация памяти и ввода-вывода аналогична
применяемой во всех шинах. Адресное пространство конфигурации PCI предназначено
для входящего в определение стандарта средства автоматического аппаратного
конфигурирования.
Еще одной интересной особенностью шины,
способствующей её упрощению, является распределенное дешифрирование адреса,
когда каждое подключенное к локальной шине PCI устройство производит
дешифрирование адреса самостоятельно. Благодаря этому становятся ненужными
схемы централизованного дешифрирования адреса и сигналы выбора устройств, за
исключением одного сигнала, предназначенного для конфигурирования.
ПОРТ AGP
AGP (Acselerated Graphics
Port)
Прежде чем приступить к дальнейшему изложению, определим
некоторые термины.
Фрейм - буфер - память, расположенная на видеокарте и являющаяся хранилищем
видеоизображения.
Текстурными
данными называются
материалы”, отображаемые на 3D-объектах (цвет, фактура.. ). Для хранения
текстур используется специальная текстурная память, расположенная на
видеокарте.
Информацию о “видимости” трехмерных поверхностей хранит
z-буфер, так-же расположенный на
видеокарте.
Итак, например, для того чтобы в трехмерной игре виртуальный
воин не размахивал попусту бластером, ожидая смены интерьера, необходимо как
можно быстрее “прокачать” информацию об этих изменениях между графическим
акселератором и соответствующими областями памяти. Во многих графических
подсистемах для этого используются дорогие быстродействующие чипы памяти, увеличивающие
и стоимость компьютера. Вот тут-то и выявляется узкое место сегодняшних PC.
Во-первых, для повышения качества отображения 3D-графики необходимо все больше
и больше текстур, соответственно и текстурной памяти, поэтому размещение их в
видеопамяти продолжало бы увеличивать стоимость графической подсистемы. И, что
самое главное, эта память заведомо потеряна для системы в целом, поскольку
имеет только целевое назначение ( хранение текстур ). Во-вторых, текстурные данные
довольно статичны по своей природе, и их все равно надо куда-то поместить на
период работы конкретного 3D-приложения. Альтернативным решением этой
проблемы стало бы перемещение текстур
из памяти видеокарты в основную память. Такое перемещение позволило бы освободить
ресурсы, которые могли бы использоваться другими элементами системы. Однако
быстрое наложение текстур на объекты в масштабе реального времени требует
значительно большой пропускной способности, что может предоставить шина PCI с
портом AGP.
AGP - специализированная надстройка над шиной PCI, позволяющая
создать скоростной канал обмена данными между графическим акселератором и
системной логикой PC. При этом прожорливые текстурные данные вместо драгоценной
видеопамяти “отъедят” кусочек основной.(рис. 3)
Итак, AGP - расширение основной PCI-архитектуры основывается
на трех китах: многоканальной шине адреса, конвейерной обработке данных и
рабочей частоте шины 133 Мгц. Для того чтобы достигнуть высокой скорости
передачи, AGP определен как непосредственное или прямое соединение
(point-to-point), а не через общую шину. (рис. 4) Как видно, новая подсистема
связана с памятью и процессором через системное логическое устройство и предназначена
исключительно для графики, причем эта система поддерживает графический
контроллер как на материнской плате, так и на внешней графической карте.
Непосредственное соединение двух оконечных устройств, несомненно упростит
задачу синхронизации, улучшит целостность данных, упростит AGP-протоколы и
устранит арбитражные потери, присущие шине PCI.
Как видно из рисунка 4, системная архитектура предлагаемого
порта, добавляя высокоскоростной маршрут между графической подсистемой и
системной памятью, не оказывает влияния на любой другой периферийный порт. При
этом Intel пытается в трансляционном отношении сохранить в значительной мере
часть PCI-спецификации, особо избегая использования любой из зарезервированных
областей и штырьков в PCI-спецификации. Большинство PCI - сигналов используется
в AGP - командах, но, по сравнению с PCI, добавлено еще 16 сигналов,
ответственных за расширенные функции AGP. Специфические AGP-протоколы, подобно
конвейеру, перекрываются на PCI таким образом, что для стандартного устройства
в шине PCI “надстройка” AGP “прозрачна”. Тем не менее всем AGP–устройствам
потребуется отвечать на PCI-запросы, поэтому
они должны оперировать едиными сигналами, как определено спецификацией
PCI .
Несмотря на совместимость AGP и PCI, они
предназначены для различных устройств. Главная причина в том, что AGP - это не
шина в широком смысле и поддерживает единственное графическое устройство. Если
бы Intel пыталась сформировать AGP как расширенный набор PCI, устанавливая AGP-устройства
в этой шине, то это решение должно было или ограничить AGP частотой 33 Мгц, или
обязать все PCI–устройства поддерживать 66 Мгц, удорожая большинство
периферийных устройств. Кроме того, AGP определяет собственный слот, отличный
от PCI, и многоканальная адресация сигналов не должна приспосабливаться к
существующему PCI-слоту. Значительная совместимость с PCI-шиной позволила Intel
разработать спецификацию на AGP очень быстро. Сходство с PCI также упростит
задачу разработчиков аппаратных средств. В течении следующих нескольких лет
многие графические чипы, будут носителями двойного AGP/PCI-интерфейса, давая
системному разработчику больше гибкости.
Конвейер
данных -
основное расширение протокола, предусматриваемое AGP. Но только
операции чтения и записи, инициируемые видеоускорителем и направленные в
основную память, поставлены на конвейер. Системная логика может иметь доступ к
графическому чипу только по стандартам PCI-протокола. Все операции шины,
включая чтение и запись, обращенные в графический контроллер, выполнены как
стандартные PCI-запросы. Конвейерная обработка данных, определяемая AGP,
работает по методу разделения транзакций (групповые операции чтения/записи).
Рассмотрим это на примере чтения из системной
памяти. Графический чип выдает запрос на конвейерную обработку (запрос доступа)
в чип системной логики. Системная логика отвечает на запрос и обеспечивает
затем передачу данных из основной памяти. Графический чип, не дожидаясь
получения предшествующей порции данных, выдает следующий запрос. Это перекрытие
результатов и обеспечивает конвейер различных запросов (чтения или записи),
причем очередь запросов всегда активна. Что особенно важно, AGP-спецификация не
навязывает предела длины очереди запросов, этот предел определяется возможностями
системной реализации. Для конвейерной AGP-обработки характерна несвязанность
фаз адреса и данных. (см. рис. 5)
Другое важное различие между AGP и PCI - техника двойной
синхронизации, используемая для достижения скорости передачи данных с тактовой частотой 133 Мгц. Непосредственное
соединение графического акселератора и чипа системной логики упростит не только
электрическую среду их взаимодействия, но и обеспечит хорошее нагрузочное
согласование, таким образом, открывается возможность осуществлять синхронизацию
от импульсов одного и того же задающего тактового генератора частотой 66Мгц как
по переднему фронту импульса, так и по заднему.
За счет этого и появляется возможность синхронизации
по стробам 66 Мгц и 133 Мгц. При этом передача данных на частоте 66 Мгц
соответствует некоторой расчетной спецификации 66 Мгц шины PCI, а режим AGP-133
требует дополнительного интерфейса - Intel добавляет 8-разрядную адресную шину (SBA Bus), причем адреса и
данные демультиплексированы, а адресация по шине SBA служит исключительно для
передачи AGP-запросов доступа в системную память. На частоте 133 МГц AGP
достигает максимальной пропускной способности 533 Мбайт/с. Очевидно, что
принцип двойной синхронизации предъявляет особые требования к качеству
импульсов задающего генератора.
Текстурные данные, которые планируется загружать в основную
память, должны быть непрерывными с точки зрения трехмерного приложения и
графического акселератора. Типичная текстура размерностью 256х256 пикселов и 16
бит на цвет занимает 128 Кбайт, и сколько таких текстур! Как разместить их
непрерывно в физической памяти? Windows такой возможности не предоставляет. Решение
Intel: надо расположить текстурные данные в системной памяти постранично по 4
Кб, а информацию об их местоположении
поместить в некую область памяти - карту
текстуры, и затем распределить эти участки в физической памяти ( здесь
прослеживается явная аналогия с формированием FAT - file allocation table на
винчестере).Таблицу такого перевода виртуального адреса в физический Intel
назвал GART (Graphics Address
Remapping Table). Intel в AGP установит
чип, в котором и будет реализована GART. Этот чип назван 440LX и
разрабатывается для взаимодействия с процессором Klamath. GART потенциально
довольно велик. Описание 4 Мбайт текстурных данных требует 1024 записи по 4
байта каждая. Логическая спецификация AGP не описывает, как GART будет
формироваться этим чипом. Взамен поставщик такого чипа должен обеспечить его
драйвером, управляющим GART согласно вызовам API (Application Programming Interface), которые определены в
AGP-спецификации. Такой подход должен помочь другим поставщикам в разработке
AGP - устройств, совместимых с Intel на системном уровне.
Итак, AGP - не универсальное решение, а средство оптимизации
видеографики путем более полной реализации возможностей графических
акселераторов. Это новшество никак не скажется на быстродействии шины PCI.
Литература
1. Михаил Гук
“Карманная
энциклопедия. Аппаратные средства IBM PC”
Второе
издание. Санкт-Петербург 1997. Изд. “Питер Пресс”
2. Питер Нортон, Кори Сандлер,
Том Баджет
“ПК изнутри”
Изд. “Бином”
Москва 1995
3. “Мир ПК” 2’97 с.178 – 180
4. “КомпьюТерра” 2декабря
#47(174) с.40 - 42
статья
Л.Подбережного “Интелвидение будущего”
5. “PC magazine” № 1 1994 с.61
- 68
статья
Д.Роуэлла “Локальная шина PCI
|
|
|