Введение
Серия видеокарт
Графический процессор R420, разработанный компанией ATI Technologies, стал основой для графических карт третьего поколения, поддерживающих DirectX 9.0/OpenGL 2.0. Впервые примененный в Radeon X800, R420 производился по 0,13-микронному (130 нм) низко-K фотолитографическому процессу и использовал память GDDR 3. Чип был разработан для графических карт AGP. Поддержка драйверов для данного ядра была прекращена с версии Catalyst 9.4, что привело к отсутствию официальной поддержки Windows 7 для продуктов серий X700 и X850.
Разработка
В плане поддерживаемых функций DirectX, R420 (кодовое название Loki) был очень похож на R300. R420 в основном придерживался подхода "чем больше, тем лучше" по отношению к предыдущей архитектуре, с небольшими доработками для её улучшения. Чип был оснащен более чем вдвое большим количеством ресурсов для обработки пикселей и вершин по сравнению с R360 в Radeon 9800 XT (незначительная эволюция R350), с 16 пиксельными конвейерами DirectX 9.0b и 16 ROP. X800 XT можно рассматривать как пару ядер Radeon 9800, соединенных вместе и работающих на ~30% более высокой тактовой частоте. Конструкция R420 состояла из 4 "квадов" (по 4 конвейера на квад). Такая организация позволяла ATI отключать дефектные "квады" и продавать чипы с 12, 8 или даже 4 пиксельными конвейерами – это развитие техники, использовавшейся в Radeon 9500/9700 и 9800SE/9800. Разделение на "квады" также позволило ATI разработать систему для оптимизации эффективности чипа в целом. Эта система, названная "системой распределения по квадам", разбивает экран на блоки и равномерно распределяет нагрузку между отдельными "квадами" для оптимизации их пропускной способности. Чипы серии R300 выполняли задачи аналогичным образом, но R420 усовершенствовал это, разрешив программируемые размеры блоков для более точного управления рабочим процессом. Уменьшая размер блоков, ATI смогла оптимизировать работу с треугольниками разных размеров. Когда ATI удвоила количество пиксельных конвейеров, они также увеличили количество вершинных шейдерных блоков с 4 до 6. Это изменило соотношение пиксельных/вершинных шейдеров с 2:1 (на R300) до 8:3, что отражает уверенность ATI в том, что в играх 2004 года и позже нагрузка будет больше ориентирована на пиксельные шейдеры и текстурирование, чем на геометрию. Нормальное и параллаксное отображение заменяли сложную геометрию для детализации моделей, и это, безусловно, повлияло на такое решение. Странно, но основная видеокарта X700 (RV410) имела 6 вершинных шейдеров, при этом была оснащена только 2 квадами. Следовательно, этот чип был явно разработан для более высокой геометрической нагрузки, чем для текстурирования, возможно, для использования в качестве чипа FireGL. RV410 также значительно превосходил GeForce 6600GT (3 вершинных шейдера) от NVIDIA по пропускной способности геометрии. Благодаря 6 вершинным шейдерам в R420 и RV410 в сочетании с более высокими тактовыми частотами, чем у предыдущего поколения, ATI смогла более чем удвоить возможности обработки геометрии 9800XT. Хотя чипы на базе R420 в целом похожи на ядра на базе R300, ATI доработала и улучшила пиксельные шейдерные блоки для большей гибкости. Новая версия пиксельного шейдера (PS2.b) обеспечивала немного большую гибкость программ шейдеров, чем обычная PS2.0, но все еще не достигала полной функциональности PS3.0. Эта новая редакция PS2.0 увеличила максимальное количество инструкций и регистров, доступных для программ пиксельного шейдера. ATI представила Temporal Anti-Aliasing (временное сглаживание), новую технологию сглаживания, поддерживаемую их чипами. Используя эффект "кадр к глазу" при частоте кадров выше 60 кадров/с, графический процессор может лучше сглаживать края, вращая шаблон сглаживания между кадрами. Настройка 2X в программном обеспечении стала восприниматься как эквивалент 4X. К сожалению, для работы этой технологии требовалось поддерживать частоту кадров не менее 60 кадров/с, иначе временное сглаживание вызывало бы заметное мерцание, поскольку пользователь мог бы видеть чередующиеся шаблоны сглаживания. Если частоту кадров не удавалось поддерживать, драйвер отключал Temporal AA. Однако в играх, где этот уровень производительности поддерживался, Temporal AA было полезным дополнением к отличным возможностям сглаживания ATI. Важно отметить, что "Temporal AA" от ATI на самом деле был временным фильтром дитеринга для пространственного сглаживания, а не полноценным временным сглаживанием (которое должно включать контролируемое смешивание временных подвыборок из последовательных кадров). Еще одним заметным дополнением к ядру стала новая разновидность сжатия карт нормалей, получившая название "3Dc". Подобно тому, как сжатие текстур было частью спецификации Direct3D на протяжении многих лет и использовалось для сжатия обычных текстур, сжатие карт нормалей сжимало этот новый тип слоя детализации поверхности. Поскольку DirectX Texture Compression (DXTC) был основан на блоках и не был разработан для различных свойств данных карт нормалей, требовался новый метод сжатия для предотвращения потери детализации и других артефактов. 3Dc был основан на модифицированном режиме DXT5, который, по сути, был запасным вариантом для оборудования, не поддерживающего 3Dc. Программное обеспечение, активно использующее карты нормалей, могло получить значительный прирост скорости за счет экономии пропускной способности и заполнения, используя 3Dc. ATI продемонстрировала многие новые функции своих чипов в рекламной демоверсии реального времени под названием Ruby: The Doublecross. Остальная часть графического процессора была чрезвычайно похожа на R300. Контроллер памяти и методы оптимизации пропускной способности памяти (HyperZ) были идентичными. R420 был, по сути, вторичным проектом 4-го поколения для ATI, поскольку первоначальный план R400, внутренне кодировавшийся как "Crayola", был отменен. R400 был бы более функциональным, с поддержкой унифицированного шейдерного модели 3 и другими улучшениями, но, как полагают, ATI посчитала R400 излишне сложным для доступных приложений и потенциально рискованным в разработке с учетом доступных в то время полупроводниковых производственных процессов. Архитектура R400 была реализована только в чипе Xenos, используемом в игровой консоли Xbox 360, и стала основой для мобильного графического процессора Qualcomm Adreno 200, первоначально называвшегося AMD Z430. В линейке Radeon поддержка функций Direct3D 9.0c была перенесена на следующее поколение на базе архитектуры R500, в то время как 4-е поколение обслуживалось R420, производным от R300.
Выпуски R420 и следующего графического процессора ATI без существенных изменений в архитектуре
Самые ранние карты серии Radeon X800 были основаны на ядре R420. В линейку вошли Radeon X800 XT Platinum Edition и Radeon X800 Pro. X800 XT PE поставлялся с частотой ядра 520 МГц и частотой памяти 560 МГц, с 16 конвейерами. X800 Pro работала на частоте 475/450 МГц с одним отключенным квадом, оставляя 12 пиксельных конвейеров активными. По сути, X800 Pro построена на полудефектных ядрах R420. Также была выпущена X800 Pro VIVO (Video in Video out), которая пользовалась популярностью у оверклокеров, поскольку обычно можно было включить отключенный квад, что приводило к полностью функциональной X800 XT PE по более низкой цене. Серия Radeon X700 (RV410) заменила X600 в сентябре 2004 года. X700 Pro работала на частоте ядра 425 МГц и производилась по 0,11-микронному техпроцессу. RV410 использовал компоновку, состоящую из 8 пиксельных конвейеров, подключенных к 4 ROP (аналогично GeForce 6600), сохраняя при этом 6 вершинных шейдеров X800. 110-нм процесс был направлен на снижение стоимости, не для высоких тактовых частот, а для уменьшения размера кристалла при сохранении высокой производительности. X700 XT планировалось выпустить в производство и была протестирована различными веб-сайтами, посвященными аппаратному обеспечению, но так и не была выпущена. Считалось, что X700 XT устанавливает слишком высокую планку по частоте для прибыльного производства ATI. X700 XT также не была достаточно конкурентоспособной по сравнению с впечатляющей GeForce 6600GT от nVidia. ATI планировала выпустить карту серии X800 для конкуренции. Серия Radeon X800 "R430", основанная на 110-нанометровом техпроцессе, была представлена в конце 2004 года вместе с новыми картами X850 от ATI. X800 была разработана для замены позиции, которую не удалось занять X700 XT, с 12 конвейерами и 256-битной шиной памяти. Эта карта значительно превзошла 6600GT, продемонстрировав производительность, сопоставимую с GeForce 6800. Близкая родственница, новая X800 XL, была позиционирована как конкурент NVIDIA GeForce 6800 GT с более высокой скоростью памяти и полными 16 конвейерами для повышения производительности. R430 не смогла достичь высоких тактовых частот, поскольку была в основном разработана для снижения стоимости GPU, поэтому требовалось новое ядро высшего класса. Новое высокопроизводительное поколение R4x0 появилось вместе с серией X850, оснащенное различными настройками ядра для немного более высокой производительности, чем серия X800 на основе "R420". Линейка X850 на основе "R480" была доступна в трех вариантах: X850 Pro, X850 XT и X850 XT Platinum Edition и была построена на надежном высокопроизводительном 130-нм Low K процессе. В 2005 году у ATI было большое количество кристаллов, которые "работали", но недостаточно хорошо для использования в картах серии X800 или X850. Поэтому была создана новая модель, X800 GT. Она использовала любые кристаллы "R480" X850 или "R430" X800 XL, имеющие 2 рабочих квада и способные работать на частоте 475 МГц. Они предназначались для конкуренции с GeForce 6600GT наряду с предыдущей X800 на основе "R430". ATI также выпустила X800 GTO, которая была 12-конвейерной картой (3 квада), использующей кристаллы "R480" или "R430" с частотой 400 МГц. Эта карта работала между X800 GT и X800 XL. Она была быстрее, чем обычная GeForce 6800, но медленнее GeForce 6800 GT. Высокие продажи этой карты были обусловлены ее относительно высокой производительностью в сочетании с ценой, лишь немного превышающей стоимость X800 GT. Сообщество оверклокеров обнаружило, что GTO на базе R480 часто может достигать тактовых частот, близких к X850 XT. Наконец, другой моделью была X800 GTO², также основанная на R480. Она снова была произведена компанией Sapphire Technology, как и X800 GTO. Эта карта обычно поставлялась с конфигурацией из 3 квадов, как X800 GTO. GTO² была уникальной в серии GTx, поскольку при изменении BIOS ее почти всегда можно было превратить в карту с 4 квадами. Некоторые карты X800 GTO² поставлялись с уже включенными 4 квадами, но некоторые из них были R430 вместо R480 и не могли достичь тактовых частот X850. Окончательными вариантами серии GTO были специальные платы GTO с 16 официально включенными конвейерами, такие как X800 GTO 16 от Powercolor на базе "R430".