Совместимость стандартов AGP
Прислано wasp January 10 2015 11:36:08

Совместимость стандартов AGP

 

 

0. Вместо предисловия

 

В последнее время в конференциях появилось огромное количество вопросов по стандарту 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, но получил и кое-какие расширения:

 

1 - Очередь запросов. На AGP, в отличие от PCI, для передачи следующего адреса дожидаться окончания текущей передачи вовсе не обязательно - можно сделать сразу несколько запросов на чтение (запись) , а затем последовательно считать (передать) данные.

2 - Частичное демультиплексирование шин адреса и данных. Реализация весьма оригинальна - в дополнение к стандартной 32х-битной мультиплексированной шине (AD) имеется 8-ми разрядная "боковая" шина адреса (SBA). Алгоритм таков: при пустой очереди запросов несколько первых передач адреса производится станадартно, по мультиплексированной шине AD, а после того, как по ней пойдут запрошенные данные, передачи следующих адресов в очередь будут производиться по шине SBA.

3 - Режим 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

 

Для совместимости с AGP 1.0 новых материнских плат и видеокарт были предприняты следующие действия:

 

1) Первый уровень совместимости - ключи разъемов:

 

 

 

Карта и разъем AGP 1.0. Сигнальные уровни - 3.3V

 

 

AGP-разъем, описание и характеристики стандарта

 

Карта и разъем AGP 1.0/2.0 (Универсальные). Сигнальные уровни настраиваются, 3.3V или 1.5V

 

AGP распиновка

 

AGP 1.0/2.0 универсальный разъем

 

Карта и разъем AGP 2.0. Сигнальные уровни - 1.5V

 

 

AGP Pro - не отдельный стандарт, а просто обратно совместимый слот с дополнительными цепями питания.

Соответственно, несовместимую карту в материнскую плату воткнуть не получится. К сожалению, неправильно вырезанные ключи редко, но встречаются (см. ниже).

Если же карта или материнская плата поддерживают несколько сигнальных уровней, то

 

2) Сигнальные уровни задаются видеокартой, линией TYPEDET# - замыкание ее на землю включает режим 1.5-вольтоых уровней.

 

3) В зависимости от этого сигнала материнской платой выставляется напряжение VDDQ

 

4) В зависимости от поданного VDDQ видеокарта устанавливает свои сигнальные уровни.

 

Пока чипсеты поддерживали режимы AGP 1.0, все было прекрасно. Но после выпуска Intel'ом чипсетов серии 845xx, не поддерживавших сигнальные уровни 3.3V, выяснилось, что не все так гладко, как казалось...

Первой, и грубейшей ошибкой производителей была установка на эти платы универсальных слотов, вместо требуемых спецификацией слотов с ключем "1.5V Only". Казалось бы - ничего страшного, VDDQ-то все равно 1.5V, карта стандарта 1.0 просто не запустится, но, как выяснилось, практически все карты стандарта 1.0 не брали VDDQ с разъема, и на входы чипсета, рассчитанные на 1.5V, в таких случаях подавалось 3.3V... Естественно, несчастный северный мост не переносил такого издевательства, и горел напрочь, после чего плату можно было смело выкидывать - оборудование для пайки BGA и запасные мосты были в наличии у очень немногих фирм. К счастью, урок из этого извлекли достаточно быстро, и ключи на слотах появились. Но проблемы не исчезли. Как выяснилось, некоторые карты, не смотря на то, что имели универсальный разъем, с AGP 4x были или совместимы частично, или несовместимы вообще. В лучшем случае карты просто не запускались или работали нестабильно, в худьшем - тупо врубали трехвольтовые уровни, естественно, с последующим летальным исходом для северного моста. Встречались также, например, карты, на которых сигнальные уровни задавались джампером. Естественно, по умолчанию он стоял в положении "3.3V"... К счастью, сигнал TYPEDET# на таких картах, как правило, выдает корректную информацию, так что некоторые производители, например, ASUStek, сделали на этом принципе схему защиты - при высоком уровне TYPEDET# плата не стартует. Понять, какие карты можно ставить на эти чипсеты, а какие нет можно из приведенной ниже таблицы. Для установки на эти чипсеты (а также на все последующие с поддержкой AGP 8x) карта должна поддерживать AGP 2.0:

 

Таблица поддержки стандартов AGP для видеокарт:

 

Производитель

Чип

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

Rageon (7200)

+

+

-

ATI

Rageon VE (7000)

+

+

-

ATI

Rageon 7500

+

+

-

ATI

Rageon 8500

+

+

-

ATI

Rageon 9000/PRO

+

+

-

ATI

Rageon 9200/PRO

+

+

+

ATI

Rageon 9500/PRO

+

+

+

ATI

Rageon 9600/PRO

- 2

+

+

ATI

Rageon 9700/PRO

+

+

+

ATI

Rageon 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. Опорная частота интерфейса так и не изменилась, просто был введен режим 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 для чипсетов:

 

Производитель

Чипсет

AGP 1.0

AGP 2.0

AGP 3.0

Intel

440LX

+

-

-

Intel

440BX

+

-

-

Intel

815xx

+

+

-

Intel

820

+

+

-

Intel

845xx

-

+

-

Intel

850x

-

+

-

Intel

865x

-

+

+

Intel

875x

-

+

+

Intel

7205

-

+

+

VIA

VP3/MVP3

+

-

-

VIA

691(Apollo PRO)

+

-

-

VIA

693x(Apollo PRO +/133)

+

-

-

VIA

694x(Apollo PRO 133A/133T) 1

+

+

-

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 2

+

-

-

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

-

+

+

NVIDIA

Nforce 3

-

+

+

ATI

A3

+

+

-

ATI

A4

+

+

-

ATI

IGP9100

-

+

+

 

1 - У ранних плат, возможно, для стабильной работы режима 4x потребуется вручную подобрать AGP Driving Value.

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

 

Ну и, до кучи:

 

Таблица всех режимов 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 - Совместимость новых материнских плат и старых карт можно определить из таблиц, приведенных выше. В спорных случаях рекомендуется установить карту на материнскую плату с универсальным слотом 1.0/2.0 , и проконтролировать включение режима AGP 4x с помощью RivaTuner или PowerStrip. Если карта работает в этом режиме, на новые платы ее можно ставить безбоязненно.

2 - Сжечь новую видеокарту установкой в старую материнскую плату невозможно. Единственная на данный момент карта без поддержки AGP 1.0 - Radeon 9600/PRO, но и ей это не грозит, так как в старые платы она не влезет физически.

3 - Не смотря на это, стабильность работы конфигураций "старая плата + новая видеокарта" не гарантируется.

 

5. Старые платы и новые видеокарты - как заставить работать?

 

В этом разделе собрано большинство проблем, которые могут возникнуть при установке новых видеокарт на старые материнские платы: