В последнее время в конференциях появилось огромное количество вопросов по стандарту AGP, и, в частности, по совместимости видеокарт и материнских плат, поддерживающих разные версии этого стандарта. Эта статья представляет собой попытку рассказать об этом интерфейсе, и дать ответ на интересующие многих вопросы, в частности, о совместимости старых материнских плат с новыми видеокартами.
Итак, магистральный интерфейс AGP. Называть его шиной не совсем верно на несколько слотов расширения он не был рассчитан изначально, и, хотя в спецификации AGP 3.0 есть упоминание о возможности подобных конфигураций, в железе ничего подобного так и не появилось. Этот интерфейс был разработан фирмой Intel для подключения видеокарт. При его внедрении строились грандиозные планы предполагался почти полный отказ от локальной видеопамяти, и использование вместо нее системной. Первым шагом в этом направлении стала видеокарта Intel 740 на ней устанавливался относительно небольшой объем памяти, использовавшийся под буфер кадра и Z-буфер, а все текстуры хранились только в системной памяти. Но путь оказался тупиковым относительно медленная системная память не смогла соперничать с широкими и быстрыми шинами памяти видеокарт отказ от модулей расширения позволил реализовать 128- и 256-битный доступ, а существенно более мягкие требования к отказоустойчивости отдельных ячеек памяти позволили поднять частоту даже на тех же самых микросхемах. Все дело в том, что изменение содержимого одной-единственной ячейки видеопамяти на картинку сильно повлиять не способно изменившую цвет на одном-единственном кадре точку заметить практически невозможно, тогда как в случае системной памяти такой сбой будет иметь куда более печальные последствия. Причем повысить частоты при таких требованиях к отказоустойчивости можно очень сильно на стоявшей у меня одно время карте RADEON VE от PowerMagic были установлены микросхемы Hynix HY5DU281622AT-K. Как несложно понять из маркировки, эти микросхемы DDR SDRAM предназначались для использования в качестве системной памяти с максимальной частотой 133MHz (266 MHz DDR). В качестве видеопамяти же они работали на номинальной частоте 166MHz (333MHz DDR), более того, не давали заметных артефактов при разгоне до частоты 210MHz (420MHz DDR). Так что текстуры соврменные карты хранят в собственной памяти, используя возможности AGP только в случае ее нехватки, а Intel 740 так и остался единственным в своем роде ускорителем, став позже основой встроенного в многие чипсеты от Intel графического ядра I752 в этом применении его особенности пришлись как раз кстати.
1. AGP 1.0 : Как это было…
За основу интерфейса AGP 1.0 была взята шина PCI 2.1, а точнее, ее вариант PCI 32/66 32х разрядная шина с частотой работы 66MHz. В стандарте AGP 3.0 предусмотрено расширение разрядности до 64х бит при сохранении обратной совместимости, но пока такие конфигурации не реализованы. Электрически (но не по слоту и разводке) AGP 1.0 остался обратно совместим с PCI, но получил и кое-какие расширения:
- Очередь запросов. На AGP, в отличие от PCI, для передачи следующего адреса дожидаться окончания текущей передачи вовсе не обязательно можно сделать сразу несколько запросов на чтение (запись), а затем последовательно считать (передать) данные.
- Частичное демультиплексирование шин адреса и данных. Реализация весьма оригинальна в дополнение к стандартной 32х-битной мультиплексированной шине (AD) имеется 8-ми разрядная «боковая» шина адреса (SBA). Алгоритм таков: при пустой очереди запросов несколько первых передач адреса производится станадартно, по мультиплексированной шине AD, а после того, как по ней пойдут запрошенные данные, передачи следующих адресов в очередь будут производиться по шине SBA.
- Режим DDR для линий данных. Уже в стандарте AGP 1.0 был реализован режим 2x передачи по линиям AD и SBA с удвоенной частотой, по фронту и спаду синхросигнала. Вопреки распостраненному заблуждению, материнских плат с поддержкой только режима 1x просто не существует в первом чипсете с поддержкой AGP, Intel 440LX, режим 2x уже был реализован.
Этот вариант AGP довольно быстро стал общим стандартом, VIA, SIS и ALi выпустили собственные чипсеты с поддержкой AGP.
2. AGP 2.0 : …и начинаются чудеса…
Довольно быстро развитие системной памяти привело к тому, что ее пропускная способность превысила пропускную способность AGP 1.0 даже в режиме 2x. Естественно, был разработан новый стандарт AGP 2.0. И вот тут-то чудеса и начались... Кроме мелких усовершенствованиях режима Bus Master, оставшегося от PCI, было одно-единственное, но глобальное изменение спецификации - для реализации передач QDR (4 передачи за такт) сигнальные уровни интерфейса были снижены до 1.5V вместо 3.3V в AGP 1.0. Из-за того, что при таких частотах емкость проводников начинает играть уже существенное значение, понижение уровня логической «1» способно уменьшить потребление выходных каскадов и повысить быстродействие и стабильность. Вопреки распостраненным заблуждениям, напряжение линий, по которым подается питание для чипа и памяти (или их стабилизаторов) не изменилось все 3 линии, VDD 3.3, VDD 5 и VDD 12 так и остались в разъеме. С 3.3V до 1.5V изменилось только VDDQ напряжение питания для выходных каскадов чипа. Мало кто знает, но подобное решение уходит корнями еще в спецификацию PCI изначально эта шина имела уровень логической «1» 5.0V, а в спецификации PCI 2.1 для реализации частоты 66MHz было предусмотрено его снижение до 3.3V. Проблем не возникло, во-первых, потому, что варианты PCI 32/66 и 64/66 широкого распостранения до сих пор не получили, присутствуя только в серверных решениях, а во-вторых, из-за того, что сигнальные уровни шины однозначно задаются ключами слота PCI:
![PCI 32/33 и 32/66](images/agp-standart/pci.jpg)
Для совместимости с AGP 1.0 новых материнских плат и видеокарт были предприняты следующие действия:
- Первый уровень совместимости ключи разъемов: Карта и разъем AGP 1.0. Сигнальные уровни 3.3V.Карта и разъем AGP 1.0/2.0 (Универсальные). Сигнальные уровни настраиваются, 3.3V или 1.5V.Карта и разъем AGP 2.0. Сигнальные уровни 1.5V.AGP Pro не отдельный стандарт, а просто обратно совместимый слот с дополнительными цепями питания.
Соответственно, несовместимую карту в материнскую плату воткнуть не получится. К сожалению, иногда конфигурация ключей карты или слота не соответствует действительности (см. ниже).
Если же карта или материнская плата поддерживают несколько сигнальных уровней, то - Сигнальные уровни задаются видеокартой, линией TYPEDET# низкий уровень на ней включает режим 1.5-вольтовых сигнальных уровней.
- В зависимости от этого сигнала материнской платой выставляется напряжение VDDQ
- В зависимости от поданного VDDQ видеокарта устанавливает свои сигнальные уровни.
Пока чипсеты поддерживали режимы AGP 1.0, все было прекрасно. Но после выпуска Intel'ом чипсетов серии 845xx, не поддерживавших сигнальные уровни 3.3V, выяснилось, что не все так гладко, как казалось…
Первой, и грубейшей ошибкой производителей была установка на эти платы универсальных слотов, вместо требуемых спецификацией слотов с ключем «1.5V Only». Казалось бы ничего страшного, VDDQ-то все равно 1.5V, карта стандарта 1.0 просто не запустится, но, как выяснилось, карты стандарта 1.0 даже при VDDQ 1.5V все равно выдавали 3.3V на входы чипсета, рассчитанные на 1.5V. Естественно, несчастный северный мост не переносил такого издевательства, и горел напрочь, после чего плату можно было смело выкидывать оборудование для пайки BGA и запасные мосты были в наличии у очень немногих фирм. К счастью, урок из этого извлекли достаточно быстро, и ключи на слотах появились. Но проблемы не исчезли. Как выяснилось, некоторые карты, не смотря на то, что имели универсальный разъем, с AGP 4x были или совместимы частично, или несовместимы вообще. В лучшем случае карты просто не запускались или работали нестабильно, в худшем тупо врубали трехвольтовые уровни, естественно, с последующим летальным исходом для северного моста. Встречались также, например, карты, на которых сигнальные уровни задавались джампером. Естественно, по умолчанию он стоял в положении «3.3V». К счастью, сигнал TYPEDET# на таких картах, как правило, выдает корректную информацию, так что некоторые производители, например, ASUStek, сделали на этом принципе схему защиты при высоком уровне TYPEDET# плата не стартует. Понять, какие карты можно ставить на эти чипсеты, а какие нет можно из приведенной ниже таблицы. Для установки на эти чипсеты (а также на все последующие с поддержкой AGP 8x) карта должна поддерживать AGP 2.0:
Производитель | Чип | AGP 1.0 | AGP 2.0 | AGP 3.0 |
ATI | Rage II | PCI(*) | - | - |
ATI | Rage PRO | + | - | - |
ATI | Rage 128 | + | - | - |
ATI | Rage 128 PRO | + | +(1) | - |
ATI | RADEON (7200) | + | + | - |
ATI | RADEON VE (7000) | + | + | - |
ATI | RADEON 7500 | + | + | - |
ATI | RADEON 8500 | + | + | - |
ATI | RADEON 9000/PRO | + | + | - |
ATI | RADEON 9200/PRO | + | + | + |
ATI | RADEON 9500/PRO | + | + | + |
ATI | RADEON 9600/PRO | -(2) | + | + |
ATI | RADEON 9700/PRO | + | + | + |
ATI | RADEON 9800/PRO | + | + | + |
NVIDIA | Riva 128/ZX | + | - | - |
NVIDIA | TNT | + | - | - |
NVIDIA | TNT 2 | + | +(3) | - |
NVIDIA | GeForce | + | + | - |
NVIDIA | GeForce 2/MX | + | + | - |
NVIDIA | GeForce 3 | + | + | - |
NVIDIA | GeForce 4 MX | + | + | - |
NVIDIA | GeForce 4 MX 8x | + | + | + |
NVIDIA | GeForce 4 Ti | + | + | - |
NVIDIA | GeForce 4 Ti 8x | + | + | + |
NVIDIA | GeForce FX 5200/Ultra | + | + | + |
NVIDIA | GeForce FX 5600/Ultra | + | + | + |
NVIDIA | GeForce FX 5800/Ultra | + | + | + |
NVIDIA | GeForce FX 5900/Ultra | + | + | + |
Matrox | Millenium II | + | - | - |
Matrox | G100 | + | - | - |
Matrox | G200 | + | - | - |
Matrox | G400 | + | +(4) | - |
Matrox | G450 | + | + | - |
Matrox | G550 | + | + | - |
Matrox | Parhelia | + | + | -(5) |
Intel | 740 | + | - | - |
S3 | Virge | PCI(*) | - | - |
S3 | Trio 3D | + | - | - |
S3 | Savage 4 | + | + | - |
S3 | Savage 2000 | + | + | - |
3DFX | Voodoo Banshee | PCI(*) | - | - |
3DFX | Voodoo 3 | PCI(*) | - | - |
3DFX | VSA-based cards | + | + | - |
#9 | Revolution 3D | PCI(*) | - | - |
#9 | Revolution IV | + | - | - |
SIS | 315 | + | + | - |
SIS | Xabre | + | + | +(6) |
PowerVR | Kyro | + | + | - |
PowerVR | Kyro II/SE | + | + | - |
(*) Карта вставляется в слот AGP, но использует его только как быструю PCI, без расширенных возможностей, описанных выше.
(1) У двухчиповых карт Rage MAXX проблемы с реализацией AGP 2.0.
(2) Возможно, поддержка AGP 1.0 осталась, а ключ в разъеме убран из-за большого потребления карты.
(3) На некоторых картах сигнальные уровни задаются джампером. Модификация TNT 2 Vanta LT не поддерживает AGP 2.0, но большинство карт на ней имеет универсальный разъем.
(4) У ранних ревизий карт проблемы с реализацией AGP 2.0.
(5) Заявлено 3.0, реально 2.0.
(6) У так и не вышедшего Xabre 80 только 2.0.
3. AGP 3.0 …все чудесатее и чудесатее…
Итак, и AGP 2.0 настала пора уйти в отставку его пропускной способности опять перестало хватать. В новом стандарте 3.0 уровень логической «1» в очередной раз был изменен уменьшен до 0.8V для режима 8x. Опорная частота интерфейса так и не изменилась, просто был введен режим ODR передача по линиям AD и SBA с частотой, в 8 раз превышающей опорную. Естественно, добавили две новых линии GC_AGP8X_DET# и MB_AGP8X_DET# соответственно, определяющие поддержку AGP 3.0 у видеокарты и материнской платы. Разъем остался тем же самым AGP 4X/1.5V Only (ох, зря, не наступили бы они опять на те же грабли при отказе от поддержки 1.5V сигнальных уровней), защита обеспечивается линией GC_AGP8X_DET# при ее высоком уровне материнская плата с поддержкой только AGP 8x стартовать не должна. И, естественно, чудеса с сигнальными уровнями продолжились… По стандарту от Intel, и карта, и материнская плата при наличии поддержки AGP 8x поддерживать режимы с уровнями 3.3V не должна (это совсем не означает отсутствия поддержки режима 1x! Еще в стандарте AGP 2.0 были определены режимы 1x/1.5V и 2x/1.5V). На практике же, хотя материнские платы действительно эту рекомендацию выполняют, с видеокартами все далеко не так. Почти все современные видеокарты с поддержкой AGP 8x имеют и поддержку материнских плат стандарта AGP 1.0 (единственное исключение RADEON 9600). Другое дело, что совместимость по сигнальным уровням необходимое, а не достаточное условие работоспособности. Например, старые блоки питания чего-нибудь типа RADEON 9700 просто, как правило, не выдерживают. Но примеры работающих конфигураций есть, так что при желании любую карту, даже RADEON 9800 PRO, можно поставить на Intel 440BX, например. Но имеет ли смысл?
Производитель | Чипсет | AGP 1.0 | AGP 2.0 | AGP 3.0 |
Intel | 440LX (1) | + | - | - |
Intel | 440BX (1) | + | - | - |
Intel | 815xx | + | + | - |
Intel | 820 | + | + | - |
Intel | 845xx | - | + | - |
Intel | 850x | - | + | - |
Intel | 865x | - | + | + |
Intel | 875x | - | + | + |
Intel | 7205 | - | + | + |
VIA | VP3/MVP3 (2) | + | - | - |
VIA | 691(Apollo PRO) | + | - | - |
VIA | 693x(Apollo PRO +/133) | + | - | - |
VIA | 694x(Apollo PRO 133A/133T) (3) | + | + | - |
VIA | Apollo 266x | + | + | - |
VIA | KT133x | + | + | - |
VIA | KT266x | + | + | - |
VIA | KT333 | + | + | - |
VIA | KT333CF | - | + | - |
VIA | KT400x | + | + | + |
VIA | KT600 | + | + | + |
VIA | P4X266x | + | + | - |
VIA | P4X400 | - | + | + |
AMD | 750 | + | - | - |
AMD | 760 | + | + | - |
ALI | Aladdin V (4) | + | - | - |
ALI | Aladdin Pro II | + | - | - |
ALI | Aladdin Pro 5T | + | + | - |
ALI | M1649 | + | + | - |
ALI | MAGiK 1 | + | + | - |
ALI | ALADDiN-P4 (M1671) | + | + | - |
SIS | 635 | + | + | - |
SIS | 735 | + | + | - |
SIS | 745 | + | + | - |
SIS | 746/FX | - | + | + |
SIS | 645/DX | + | + | - |
SIS | 648 | - | + | + |
SIS | 650 | + | + | - |
SIS | 655 | - | + | + |
NVIDIA | Nforce | - | + | - |
NVIDIA | Nforce II | - | + | + |
ATI | A3 | + | + | - |
ATI | A4 | + | + | - |
ATI | IGP9100 | - | + | + |
(1) Это самые первые чипсеты с поддержкой AGP. Возможность стабильной работы новых карт целиком и полностью зависит от конкрентых материнских плат. Естественно, что от ACORP многого ждать не стоит, тогда как на ASUSTEK, например, можно запустить и RADEON 9700…
(2) Первый чипсет с AGP не от Intel. Как ни странно, серьезных аппаратных проблем не имел (не считая конкретные реализации AGP на некоторых материнских платах, но это уже не вина VIA). Крайне рекомендуется обновить BIOS перед установкой новых карт.
(3) У ранних плат, возможно, для стабильной работы режима 4x потребуется вручную подобрать AGP Driving Value.
(4) Поскольку матерных выражений редактор не одобряет, я ничего не буду говорить про реализацию AGP у этого чипсета и материнских плат на нем. Типы работающих видеокарт узнаются только подбором…
Ну и, до кучи:
Режим | Уровень лог. «1» | AGP 1.0 | AGP 1.0/2.0 | AGP 2.0 | AGP 2.0/3.0 | AGP 3.0 |
1x | 3.3V | + | + | + | - | - |
1x | 1.5V | - | + | + | + | - |
2x | 3.3V | + | + | + | - | - |
2x | 1.5V | - | + | + | + | - |
4x | 1.5V | - | + | + | + | - |
8x | 0.8V | - | - | - | + | + |
Как видно из этой таблицы, в AGP 2.0 и 3.0 от режимов 1x и 2x не отказались, а просто перевели их на сигнальные уровни 1.5V. Так что не удивляйтесь, увидев вариант «1x» в настройках режима AGP на новых платах. 4. А теперь о том, что из этого следует, и как это все применить на практике
- Совместимость новых материнских плат и старых карт можно определить из таблиц, приведенных выше. В спорных случаях рекомендуется установить карту на материнскую плату с универсальным слотом 1.0/2.0, и проконтролировать включение режима AGP 4x с помощью RivaTuner или PowerStrip. Если карта работает в этом режиме, на новые платы ее можно ставить безбоязненно.
- Сжечь новую видеокарту установкой в старую материнскую плату невозможно. Единственная на данный момент карта без поддержки AGP 1.0 RADEON 9600/PRO, но и ей это не грозит, так как в старые платы она не влезет физически.
- Не смотря на это, стабильность работы конфигураций «старая плата + новая видеокарта» не гарантируется.
В этом разделе собрано большинство проблем, которые могут возникнуть при установке новых видеокарт на старые материнские платы:
• Недостаточная мощность блока питания.
Проблема:
Мощность блока питания недостаточна.
Симптомы:
Уход напряжений питания из допустимых пределов.
Запуск системы только после нажатия reset.
Высокий уровень помех по питанию, и, как следствие, произвольные сбои в работе (трудноопределимо).
Решение:
Заменить БП.
• На материнской плате установлен стабилизатор на линии VDD3.3 (Сразу предупреждая возможные вопросы на большинстве плат питающие напряжения на AGP подаются непосредственно с разъема питания системной платы. То, что в BIOS'е названо VAGP всего-навсего VDDQ, и повышать его не стоит).
Проблема:
Из-за маломощного стабилизатора на линии VDD3.3 видеокарте не хватает питания.
Решение:
Для AT платы установка более мощного стабилизатора (трудновыполнимо).
Для ATX платы запитка видеокарты непосредственно от БП, как правило, отключением стабилизатора и напаиванием проводника от разъема питания. На некоторых материнских платах стабилизатор отключается джамперами.
• Неверный уровень VREFGC.
Проблема:
Наряжение VREFGC, подающееся картой стандарта 2.0 на контакты A66 и B66 закорачивается на землю платой стандарта 1.0. В стандарте 1.0 эти контакты зарезервированы. Зачем зарезервированные контакты понадобилось заземлять тайна, сокрытая в мраке ночи. Так сделано, например, на Chaintech 6BTM
Симптомы:
Система не стартует.
Решение:
Изолировать два последних контакта в слоте.
• Маломощный стабилизатор VDDQ.
Проблема:
Неустойчивость передач по шине из-за маломощного стабилизатора VDDQ. В особо запущенных случаях использование общего стабилизатора VDDQ для AGP и оперативной памяти. Для информации: по стандарту AGP максимальный разрешенный ток линии VDDQ 8 ампер.
Симптомы:
Нестабильность системы, особенно в 3D-играх. Для общего стабилизатора VDDQ AGP и памяти нестабильность проявляется при установке нескольких модулей памяти или модулей с большим количеством микросхем совместно с новой картой.
Решение:
Установить более мощный стабилизатор. Для второго случая развязать VDDQ памяти и AGP. И то, и другое трудновыполнимо, проще заменить плату.
• Высокая частота AGP
Проблема:
На чипсете Intel 440BX при использовании процессоров с шиной 133MHz частота AGP составляет 89MHz вместо стандартных 66.
Симптомы:
Нестабильность системы, особенно в 3D играх. Иногда система вообще не стартует.
Решение:
Установить режим 1x. При отсутствии положительного результата СНИЗИТЬ напряжения VDDQ и VREF, но не более чем на 5% от номинала (до 3.135V и 1.5675V минимум). Учтите, что VREF=VDDQ/2, причем допустимое отклонение не более 2%. Это особенно критично для плат ABIT и ASUStek, у которых VDDQ (и, соответственно, VREF) может быть завышено по умолчанию, что стабильности в данном случае совсем не прибавляет… Часто задают вопрос а что же карта с поддержкой 4x или 8x какие-то 89MHz переварить не способна? Ответ прост во-первых, в штатном режиме работы частота всех линий, кроме AD и SBA, так и осталась 66MHz, даже в стандарте 3.0. Во-вторых хотя линии на AD и SBA в режиме 4x и выше работают с частотой, превышающей 89MHz (или 178 для режима 2x), но работают-то они при других сигнальных уровнях…