Стандарты PCI и AGP

Шина PCI

Едва карта VLB успела закрепиться на рынке, как в июне 1992 года фирма Intel изготовила новую шину — шину PCI (Peripheral Component Interconnect). Именно этот «периферийный соединительный компонент» находится в большинстве современых компьютеров, де-факто став стандартом для шинной индустрии нашего времени.

Разработчики шины поставили своей целью создать принципиально новый интерфейс, который бы не являлся усовершенствованиями других технологий (как, например EISA), не зависел от платформы (то есть мог работать с будущими поколениями процессоров), имел высокую производительность и был дешев в производстве. Ну а если за дело взялась Intel, то можно было не сомневаться, что цель будет достигнута. Благодаря отказу от использования шины процессора шина PCI оказалась не только процессоронезависимой, но и могла работать самостоятельно, не обращаясь к последней с запросами. Например, процессор может работать с памятью, в то время как по шине PCI передаются данные. Основополагающим принципом шины PCI является применение так называемых мостов (Bridges), которые осуществляют связь шины с другими компонентами системы (например, PCI to ISA Bridge). Другой особенностью является реализация так называемых принципов Bus Master и Bus Slave. Например, карта PCI-Master может как считывать данные из оперативной памяти, так и записывать их туда без обращения к процессору. Карта PCI-Slave (например, графический контроллер), как вы, наверное, уже догадались, может только считывать данные.

В чем же секрет столь широкой распространённости этой шины в сегодняшнем мире персональных компьютеров?

  • Синхронный 32-х или 64-х разрядный обмен данными (правда, насколько мне известно, 64-разрядная шина в настоящее время используется только в Alpha-системах и серверах на базе процессоров Intel Xeon, но, в принципе, за ней будущее). При этом для уменьшения числа контактов (и стоимости) используется мультиплексирование, то есть адрес и данные передаются по одним и тем же линиям
  • Шина поддерживает метод передачи данных, называемый linear burst (метод линейных пакетов). Этот метод предполагает, что пакет информации считывается (или записывается) одним куском, то есть адрес автоматически увеличивается для следующего байта. Естественным образом при этом увеличивается скорость передачи собственно данных за счет уменьшения числа передаваемых адресов
  • В шине PCI используется совершенно отличный от ISA способ передачи данных. Этот способ, называемый способом рукопожатия (handshake), заключается в том, что в системе определяется два устройства: передающее (Iniciator) и приемное (Target). Когда передающее устройство готово к передаче, оно выставляет данные на линии данных и сопровождает их соответствующим сигналом (Iniciator Ready), при этом приемное устройство записывает их (данные) в свои регистры и подает сигнал Target Ready, подтверждая запись данных и готовность к приему следующих. Установка всех сигналов производится строго в соответствии с тактовыми импульсами шины
  • Относительная независимость отдельных компонентов системы. В соответствии с концепцией PCI передачей пакета данных управляет не CPU, а мост, включенный между ним и шиной PCI (Host Bridge Cashe/DRAM Controller). Процессор может продолжать работу и тогда, когда происходит обмен данными с RAM. То же происходит и при обмене данными между двумя другими компонентами системы
  • Низкая нагрузка на процессор. Эта особенность вытекает из предыдущей
  • Частота работы шины 33 MHz или 66 MHz позволяет обеспечить широкий диапазон пропускных способностей (с использованием пакетного режима):
    • 132 МВ/сек при 32-bit/33 MHz
    • 264 MB/сек при 32-bit/66 MHz
    • 264 MB/сек при 64-bit/33 MHz
    • 528 МВ/сек при 64-bit/66 MHz

    При этом для работы шины на частоте 66 MHz необходимо, чтобы все периферийные устройства работали на этой частоте

  • Поскольку шина процессора и шина расширения PCI соединены с помощью главного моста (Host Bridge), то последняя может работать с CPU последующих поколений
  • Полная поддержка multiply bus master (например, несколько контроллеров жестких дисков могут одновременно работать на шине)
  • Поддержка 5V и 3.3V логики. Разъемы для 5 и 3.3V плат различаются расположением ключей
  • Существуют и универсальные платы, поддерживающие оба напряжения. Заметим, что частота 66 MHz поддерживается только 3.3 V логикой

  • Поддержка write-back и write-through кэша
  • PCI приспособлена для распознавания аппаратных средств и анализа конфигурации системы в соответствии со стандартом Plug&Play, разработанным корпорацией Intel. Спецификация шины 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). Последние 4 байта региона используются для определения прерывания и времени запроса/владения

  • Спецификация шины позволяет комбинировать до восьми функций на одной карте (например, видео+звук и прочее)
  • Шина позволяет устанавливать до 4 слотов расширения, однако возможно использование моста PCI to PCI для увеличения их количества
  • PCI-устройства оборудованы таймером, который используется для определения максимального промежутка времени, в течении которого устройство может занимать шину
  • При разработке шины в ее архитектуру были заложены передовые технические решения, позволяющие использовать шину в будущем и модернизировать ее

Назначение выводов 32-разрядного слота PCI (33 MHz)

Вывод Сигнал (cторона пайки) Сигнал (сторона монтажа) Вывод Сигнал (сторона пайки) Сигнал (сторона монтажа)
1 TRST# -12 V 48 GND AD10
2 +12 V TCK 49 AD09 GND
3 TMS GND 50 GND/5 V GND/5 V
4 TDI TDO 51 GND/5 V GND/5 V
5 +5 V +5 V 52 C/BE0 AD08
6 INTA# +5 V 53 +3.3 V AD07
7 INTC# INTB# 54 AD06 +3.3 V
8 +5 V INTD# 55 AD04 AD05
9 Зарезервировано PRSNT1# 56 GND AD03
10 +5 V Зарезервировано 57 AD02 GND
11 Зарезервировано PRNST2# 58 AD00 AD01
12 GND/3.3 V GND/3.3 V 59 +5 V +5 V
13 GND/3.3 V GND/3.3 V 60 REQ64# ACK64#
14 Зарезервировано Зарезервировано 61 +5 V +5 V
15 RST# GND 62 +5 V +5 V
16 +5 V CLK 63 GND Зарезервировано
17 GNT# GND 64 C/BE7# GND
18 GND REQ# 65 C/BE5# C/BE6#
19 Зарезервировано +5 V 66 +5 V C/BE4#
20 AD30 AD31 67 PAR64 GND
21 +3.3 V AD29 68 AD62 A63
22 AD28 GND 69 GND A61
23 AD26 AD27 70 AD60 +5 V
24 GND AD25 71 AD58 AD59
25 AD24 +3.3 V 72 GND AD57
26 ISDEL C/BE3# 73 AD56 GND
27 +3.3 V AD23 74 AD54 AD55
28 AD22 GND 75 +5 V AD53
29 AD20 AD21 76 AD52 GND
30 GND AD19 77 AD50 AD51
31 AD18 +3.3 V 78 GND AD49
32 AD16 AD17 79 AD48 GND
33 +3.3 V C/BE2# 80 AD46 AD47
34 FRAME# GND 81 GND AD45
35 GND IRDY# 82 AD44 GND
36 TRDY# +3.3 V 83 AD42 AD43
37 GND DEVSEL# 84 +5 V AD41
38 STOP# GND 85 AD40 GND
39 +3.3 V LOCK# 86 AD38 AD39
40 SDONE PERR# 87 GND AD37
41 SBO# +3.3 V 88 AD36 +5 V
42 GND SERR# 89 AD34 AD35
43 PAR +3.3 V 90 GND AD33
44 AD15 C/BE1# 91 AD32 GND
45 +3.3 V AD14 92 Зарезервировано Зарезервировано
46 AD13 GND 93 GND Зарезервировано
47 AD11 AD12 94 Зарезервировано GND

В настоящее время используется 32-разрядная шина PCI, работающая на частоте 33 MHz, то есть самая медленная спецификация шины. Но уже сегодня получающихся при этом 132 Mb/s начинает нехватать (кстати, по скоростным показателям PCI сейчас висит на краю системы, как когда-то висела ISA). Поэтому вполне логично, что в ближайшем будущем будут использоваться более скоростные стандарты PCI. Скорее всего, это будет 33-мегагерцевая 64-разрядная шина, так как не все карты, предназначенные для работы на 33 мегагерцах, смогут работать на 66. То, что появится какой-нибудь новый стандарт, претендующий на место нынешней шины в наших компьютерах, маловероятно, во-первых, потому, что PCI получила за эти годы очень большую популярность, и мало кто захочет отказываться от тех PCI-устройств, которые уже выпущены и выпускаются в грандиозных количествах а, во-вторых, потому, что вряд ли Intel допустит появление на рынке конкурента (если, конечно, инициатива не будет исходить не от самой Intel, но это вряд ли). В общем, поживем еще немного — увидим, а сейчас давайте не будем делать каких-либо поспешных прогнозов.

Шина AGP

Получившая в последнее время большое распространение 3D-графика, а также все возрастающая нагрузка на PCI со стороны разных там жестких дисков, сетевых карт и других высокоскоростных устройств привели к тому, что пропускной способности локальной шины для удовлетворения всех этих требований начало явно недоставать. Казалось бы, вот вам простейшее решение: переходите на 66-мегагерцовую 64-разрядную шину PCI, так нет же. Intel на базе того же стандарта PCI R2.1 разрабатывает новую шину — AGP (1.0, затем 2.0), которая отличается от своего родителя в следующем:

  • Шина способна передавать два блока данных за один 66 MHz цикл (AGP 2x)
  • Устранена мультиплексированность линий адреса и данных (напомню, что в PCI для удешевления конструкции адрес и данные передавались по одним и тем же линиям)
  • дальнейшая конвейеризация операций чтения/записи, по мнению разработчиков, позволяет устранить влияние задержек в модулях памяти на скорость выполнения этих операций

В результате пропускная способность шины была оценена в 500 МВ/сек, и предназначалась она для того, чтобы графические карты могли хранить необходимые им данные (текстуры) не только в своей дорогой локальной памяти, установленной на борту, но и в дешевой системной памяти компьютера. При этом они (карты) могли иметь меньший объем этой самой локальной памяти и, соответственно, дешевле стоить.

Принципиально AGP — это вторая магистраль PCI, которая соединена с другими компонентами системы специальным мультимедиа-мостом (Multimedia Bridge).

Парадокс в том, что видеокарты (точнее, их производители) все-таки предпочитают иметь больше памяти, и почти никто не хранит текстуры в оперативной памяти. Во первых, пока еще (но только пока) в современных приложениях не используются такие грандиозные по размеру текстуры, которые требовали бы чересчур много памяти. Во вторых, видеопамять быстро дешевеет и ее увеличение не сильно сказывается на стоимости видеокарты (сейчас карта с 64 Mb стоит почти столько же, как всего год-полтора назад стоила похожая карта с 32 Mb памяти). Хотя главная причина, очевидно, в том, что системная RAM имеет куда меньшее быстродействие, чем локальная видеопамять, и использовать все то, что может предоставить AGP, было бы вряд ли рационально, пусть даже от этого уменьшилась цена видеоадаптера. Тем не менее, все современные видеоккарты имеют интерфейс AGP, потому что, во первых, даже если не использовать прокачку текстур между системной памятью и видеоадаптером, при большой нагрузке на шину PCI со стороны периферии данные от различных устройств (например, процессора или платы видеомонтажа) могут не успевать поступать в видеокарту настолько быстро, насколько это нужно, и, во-вторых, бурно развивающиеся технологии 3D-графики скоро могут привести к тому, что текстуры перестанут помещаться в локальную видеопамять (если, конечно, в системе установлена не самая наворочанная видеоплата с большим объемом RAM). Да и потом, если учесть мощности современных CPU, шина PCI со своими 132 мегабайтами в секунду смотриться очень хило даже для простого обмена данными видеоконтроллера с центральным процессором и другими компонентами системы, так что появление в свое время AGP было действительно востребовано, а сейчас без этого интерфейса просто невозможно представить современный персональный компьютер.

Итак, начнем с самого начала, то есть с AGP 1.0. Шина имеет два основных режима работы: Execute и DMA. В режиме DMA основной памятью является память карты. Текстуры хранятся в системной памяти, но перед использованием копируются в локальную память карты. Таким образом, AGP действует в качестве тыловой структуры, обеспечивающей своевременную доставку «патронов» (текстур) на «передний край» (в локальную память). Обмен ведется большими последовательными пакетами.

В режиме Execute локальная и системная память для видеокарты логически равноправны. Текстуры не копируются в локальную память, а выбираются непосредственно из системной. Таким образом, приходится выбирать из памяти относительно малые случайно расположенные куски. Поскольку системная память выделяется динамически, блоками по 4 Кb, в этом режиме для обеспечения приемлемого быстродействия необходимо предусмотреть механизм, отображающий последовательные адреса на реальные адреса 4-х килобайтных блоков в системной памяти. Эта нелегкая задача выполняется путем использования специальной таблицы (Graphic Address Re-mapping table или GART), расположенной в памяти.

Шина AGP полностью поддерживает операции шины PCI, поэтому AGP-трафик может представлять из себя смесь чередующихся AGP и PCI операций чтения/записи. Операции шины AGP являются раздельными. Это означает, что запрос на проведение операции отделен от собственно пересылки данных. Такой подход позволяет AGP-устройству генерировать очередь запросов, не дожидаясь завершения текущей операции, что также повышает быстродействие шины.

В 1998 году спецификация шины AGP получила дальнейшее развитие — вышел Revision 2.0. В результате использования новых низковольтных электрических спецификаций появилась возможность осуществлять 4 транзакции (пересылки блока данных) за один 66-мегагерцовый такт (AGP 4x), что дает пропускную способность шины в 1Gb/s. Единственное, чего не хватает для полного счастья, так это чтобы устройство могло динамически переключаться между режимами 1х, 2х и 4х, но, с другой стороны, это никому и не нужно.

Потребности и запросы в области обработки видеосигналов все возрастают, и Intel приготовила новую спецификацию — AGP Pro — направленную на удовлетворение потребностей высокопроизводительных графических станций. Новый стандарт не видоизменяет шину AGP. Основное направление — увеличение энергоснабжения графических карт. С этой целью в разъем AGP Pro добавлены новые линии питания.

Вообще говоря, существует два типа карт AGP Pro — High Power и Low Power. Карты High Power могут потреблять от 50 до 110 W. Естественно, такие карты нуждаются в хорошем охлаждении. С этой целью спецификация требует наличия двух свободных слотов PCI с component side (стороны, на которой размещены основные чипы карты).

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

  • Не использовать для питания линии V I/O
  • Не устанавливать линию M66EN (контакт 49В) в GND (что вполне естественно, так как это переводит шину PCI в режим 33 MHz)
  • Подсистема PCI I/O должна разрабатываться под напряжение 3.3V c возможностью функционирования при 5 V
  • Поддержка 64-разрядного или 66 MHz режимов не требуется

Карты Low Power могут потреблять 25-50 W, поэтому для обеспечения охлаждения спецификация требует наличия только одного свободного слота PCI.

Причем все retail-карты AGP Pro должны иметь специальную накладку шириной соответственно в 3 или 2 слота, из-за этого карта приобретает вид достаточно устрашающий.

В разъем AGP Pro, естественно, можно устанавливать и обычные карты AGP.

Где-то с начала 2001-го года слоты AGP Pro начал вытеснят обычный AGP на большинстве серьезных материнских плат — производители, видно, стали считать, что негоже делать дорогие продукты без поддержки новейших веяний в области компьютерных технологий. Вот только самих видеоплат, которые требовали бы этого разъема, не так-то много. Например, просмотрев прайсы нескольких весьма солидных фирм, торгующих компьютерными комплектующими, я так и не увидел нигде рядом с названием видеокарты соответствуюющей пометочки. Впрочем, это и не удивительно, так как новая спецификация рассчитана прежде всего на профессиональные графические станции, а не на обычный ширпотребный РС (о которых, собственно, и идет речь на страницах этого сайта). Хотя, с другой стороны, можно предположить, что по прошествии некоторого времени начнут активно выпускаться и обычные «пользовательские» карточки, так как при все большей мощности видеочипов и увеличения потребляемого ими тока действительно может потребоваться такое солидное охлаждение и питание — ведь вешают же сейчас на некотрые видеокарты чуть ли не килограммовые радиаторы с вентиляторными лопастями как у вертолета, и эти видеокарты часто не удается заставить сколь-либо нормально работать с дешевыми блоками питания мощностью менее 250 VA (в связи с этим, кстати, было даже как-то придумано решение оснащать плату собственным внешним блоком питания). Закрадывается мысль, что когда-нибудь компьютеры будут продаваться в комплекте с портативной атомной электростанцией, и в них будет использоваться система жидкостного охлаждения! Опять-таки, поживем — увидим.

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *