Тысячная серия: технологии видеокарт семейства Radeon X1000

Как ни крути, конкуренция – один из основных факторов, благодаря которому столь интенсивно развивается современный IT-рынок. Если бы не было противостояния на рынке графических процессоров, то в области графики мы бы сейчас наверняка не наблюдали такого качества изображения и производительности.

К счастью, непрерывная борьба двух гигантов, NVIDIA и ATI, с завидной регулярностью рождает все более и более совершенные технологии. И сегодня речь пойдет о том, чем ответила ATI на выход GeForce 7800.

В погоне за G70

Как известно, в июне прошлого года произошло более чем знаменательное событие: корпорация NVIDIA выпустила на свет долгожданный графический чип под названием G70, который лег в основу семейства двух мощнейших видеокарт – GeForce 7800 GTX и GeForce 7800 GT.

Как и ожидалась, появившееся решение без особых проблем присвоило себе красную майку лидера, в подавляющем большинстве тестов опередив не только всех представителей предыдущего поколения видеокарт NVIDIA – GeForce 6×00, но и заодно флагмана ATI – Radeon X850 XT Platinum Edition, не говоря уже о более скромных платах.

Конечно же, событие такого масштаба никак не могло остаться без внимания извечного конкурента NVIDIA, ATI Technologies, который к тому времени уже подготавливал достойный ответ чипу G70 в лице нового графического процессора под кодовым названием R520.

Однако время шло, а дата релиза все откладывалась и откладывалась. Задержки с выходом представители ATI аргументировали тем, что новый 90-нанометровый техпроцесс (пришедший на смену 110 нм и 130 нм, используемым в предыдущих процессорах – R4xx) нуждается в доведении до ума, ввиду высокого процента выхода бракованных чипов.

Стоит заметить, что тех же самых возможных проблем компании NVIDIA удалось избежать благодаря тому, что при разработке процессора G70 они остались верны проверенному и отработанному 110-нанометровому техпроцессу. К тому же NVIDIA с новой линейкой плат отнюдь не собирались совершать какой-либо технологической революции на рынке графических акселераторов, так как, по большому счету, G70 получился просто серьезно доработанной и усовершенствованной версией предыдущей разработки компании – NV4x.

Напротив, специалисты ATI подошли к работе над R520 с куда более амбициозными планами, поэтому совсем не удивительно, что новый чип от ATI оказался неизмеримо богаче на различные оригинальные решения, которым в сегодняшней статье будет отведено немало места.

Модельный ряд

Итак, в октябре 2005 года все-таки состоялась запоздалая презентация семейства видеокарт нового поколения от ATI под обобщенным названием Radeon X1000 Family. В отличие от NVIDIA, канадская компания сразу замахнулась не только на High-End сегмент рынка, а выпустила полноценную линейку продуктов, которые способны заменить собой все предыдущие графические решения компании.

По традиции все представленные видеокарты были разделены на три класса: высокопроизводительные – Radeon X1800, средний вариант – Radeon X1600 и бюджетные – Radeon X1300. Естественно, к этим названиям добавляются различные суффиксы (XT, XL, PRO, HM), по которым можно определить тактовую частоту ядра и памяти, а также некоторые другие характеристики.

Впрочем, я не буду заострять на этом внимание – если тебя интересуют точные значения частот, то можешь взглянуть в соответствующую таблицу.

Старшим представителям семейства, Radeon X1800, конечно же, досталось все самое лучшее. В первую очередь, это самый мощный графический чип – R520, который содержит в себе 320 миллионов транзисторов (в G70 – 302 млн.). Максимальная тактовая частота ядра составляет внушительные 625 МГц (для модификации X1800 XT), а тактовая частота памяти – и вовсе заоблачные 750 МГц (эффективная – 1.5 ГГц).

Никто не сомневался, что такие скорости никак не в лучшую сторону скажутся на тепловыделении, поэтому система охлаждения даже в базовом варианте полностью занимает соседний слот. Чип R520 содержит 16 пиксельных процессоров, сгруппированных четверками в процессоры квадов (так называемые Quad Pixel Shader Cores), а также 16 текстурных блоков и 8 вершинных процессоров.

Во всех платах семейства Radeon X1000 появилась долгожданная поддержка DirectX 9.0c, а это означает, что все шейдерные процессоры (конвейеры) полностью удовлетворяют требованиям Shader Model 3.0. У Radeon X1800 разрядность внешней шины памяти составляет 256 бит, при этом на плату можно установить до гигабайта памяти типа GDDR3 (теоретически поддерживается и новейшая GDDR4).

Кстати, одним из революционных нововведений можно считать внутреннюю 512-битную шину памяти (получившую названию RingBus), которая состоит из двух кольцевых шин, передающих данные в противоположных направлениях.

Еще на этапе проектирования архитектура Radeon X1000 затачивалась под широкую масштабируемость, поэтому при разработке бюджетных модификаций для достижения наиболее привлекательной цены у ATI был огромный простор для разного рода урезании.

Таким образом, рекомендованную стартовую цену для младшей модели – X1300 HM – удалось сократить до $79 (в то время как флагман оценивался в $549)! К сожалению, для того чтобы сбросить цену и в X1600, и тем более в X1300, пришлось отказаться от самых заманчивых прелестей.

Так, X1600 работает на упрощенном чипе RV530, состоящем из 157 миллионов транзисторов. Количество пиксельных процессоров урезано до двенадцати (три квада), вершинных процессоров – до пяти, а текстурных блоков и вовсе до четырех. Шине памяти пришлось похудеть до 128 бит (соответственно RingBus – до 256 бит), а максимальный объем поддерживаемой памяти сократился до 512 Мб.

К тому же для дополнительного выигрыша в цене производитель видеокарты может отказаться от GDDR3 в пользу DDR или DDR2. Бюджетным моделям X1300 пришлось еще тяжелее: они основаны на младшем чипе, RV515, в котором осталось всего 105 миллионов транзисторов. Пиксельных процессоров стало четыре (один квад), текстурных блоков – четыре, а вершинных процессоров – два. Также оказалось не по карману оборудовать X1300 шиной RingBus, которую заменили традиционными решениями.

Разрядность шины памяти остановилась на 128 битах (возможны конфигурации с 32 или 64 битами), предельный объем памяти равняется 256 Мб, а из типов памяти по-прежнему можно устанавливать DDR, DDR2 и GDDR3. Дополнительно в модели X1300 поддерживается технология HyperMemory, которая при недостатке видеопамяти способна заимствовать ресурсы оперативной, хотя, понятно, что все это не от хорошей жизни, и на общей производительности сказывается не в лучшую сторону.

Вершинные и пиксельные процессоры

С основными характеристиками вроде разобрались, и теперь настала пора рассмотреть, как же все это функционирует на практике. Как эталон архитектуры Radeon X1000 возьмем платы семейства X1800, тем более принципиальных технологических отличий по сравнению с X1600 и X1300 не так много (разве что у X1300 отсутствует шина RingBus). Начнем с внутреннего устройства ядра.

Итак, на первом этапе поток данных поступает на блок вершинных процессоров. Каждый процессор способен за один такт одновременно обработать две различные инструкции – одну над вектором (три компоненты) и одну над скаляром (такую схему принято называть 3+1).

Это действие, соответственно, осуществляют 128-битный векторный ALU (Arithmetic Logic Unit) и 32-битный скалярный ALU, содержащиеся в каждом процессоре. Кстати, производительность такого блока находится на уровне 10 миллиардов операций в секунду.

Помимо двух ALU каждый вершинный процессор содержит по одному модулю управления потоком (Flow Control), данные модули предназначены для контролирования процесса обработки данных, и именно благодаря ним появилась возможность работать с шейдерами, состоящими из практически неограниченного числа инструкций. На следующем шаге выполняются необходимые геометрические трансформации: удаление скрытых поверхностей, трансформация точки зрения и так далее.

То, что кроется под массивным блоком охлаждения.

Грамотное применение тепловых трубок позволяет сделать бесшумным даже X1600.

На втором этапе осуществляется процедура растеризации

Третий этап представляет для нас наибольший интерес. После растеризации поток данных попадает на интеллектуальный распределительный блок – Ultra-Threading Dispatch Processor (UTDP), в обязанности которого входит равномерно загружать пиксельные процессоры и текстурные блоки работой, чтобы ни один из них не простаивал без дела.

Входящий поток шейдерных данных в блоке UTDP разбивается на 512 параллельных потоков – тредов (threads), состоящих из небольших блоков по 16 (4х4) пикселей (в чипах RV530 и RV515 это удовольствие урезали, оставив всего 128 тредов).

Все 512 тредов обслуживаются одновременно – четыре могут получать текстуры из текстурных блоков, четыре – обрабатываться на пиксельных процессорах (которые, напомню, сгруппированы четверками), а остальные – ждать своей очереди. Каждый из тредов может находиться на собственной стадии выполнения шейдера, при этом для хранения промежуточной информации по каждому из них используются специально отведенные регистры (General Purpose Register Array).

Блок UTDP непрерывно следит за степенью загруженности пиксельных процессоров и текстурных блоков, и если какой-либо из них освободился, то ему отправляется очередной квад на обработку. В том случае, когда необходимые данные для конкретного квада еще не получены из текстурного блока, то он не будет задерживать друге квады в очереди, и пропустит вперед тех, кто уже готов к обсчету.

Данная многопоточная архитектура, названная Ultra-Threaded Architecture, является одной из основных причин для гордости ATI, и, как заверяют специалисты компании, благодаря ей пиксельные процессоры простаивают не более 10% от эффективного времени работы.

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

Таким образом, за один такт может быть выполнено до пяти инструкций (две – над вектором, две – над скаляром и одна – ветвления), к тому же одновременно можно выполнить операцию запроса данных из текстурного блока. В результате, при грамотном распределении нагрузки, за один такт мы получаем до шести инструкций.

Еще одной новинкой архитектуры Ultra-Threaded Architecture можно считать то, что пиксельные процессоры и текстурные блоки отныне больше не «общаются» друг с другом напрямую, а связаны через блок UTDP.

Контроллер памяти и шина RingBus

Как уже говорилось, очередным заметным нововведением архитектуры X1000 стала новая внутренняя кольцевая шина памяти под названием RingBus. Чтобы принцип ее организации стал понятнее, посмотри на ее схематическое изображение. Физически шина RingBus состоит из двух 256-битных кольцевых шин, которые передают данные в противоположных направлениях (по сумме как раз получаются заявленные 512 бит).

В случае X1600 разрядность колец уменьшена до 128 бит (RingBus – 256 бит). В предыдущих поколениях видеокарт было принято разделять 256-битную шину на четыре интерфейсных канала по 64 бита (4х64), однако для Radeon X1000 была использована новая схема с восемью 32-битными каналами (8х32). Данные каналы соединяют модули памяти с остановочными блоками (Ring Stop).

Всего имеется четыре остановочных блока (и, соответственно, восемь модулей памяти), блоки соединяются последовательно друг с другом через два 256-битных канала, и в результате образуется «двойное» кольцо. Каждый из остановочных блоков также соединен с собственным набором кэшей и с несколькими клиентами. Дирижирует всеми этими процессами контроллер памяти.

Операция чтения происходит следующим образом. Инициатором выступает клиент, который отправляет запрос на необходимые данные из памяти.

Если в кэше запрошенная информация отсутствует, то контроллер принимает запрос на обработку. Для каждого запроса определяется его уровень приоритета (по тому, насколько он влияет на общую производительность), после чего контроллер приступает к выполнению запроса, получившего наивысший приоритет.

За требуемой информацией контроллер обращается через ближайший остановочный блок к модулю памяти, затем считанные данные по кратчайшему маршруту пересылаются (при необходимости) до того остановочного блока, который соединен с клиентом, запросившим информацию, и сохраняются в кэше данного блока (на схеме маршрут передачи выделен красным цветом).

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

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

Теперь кэш является полностью ассоциативным, то есть любая область памяти может отражаться в любом месте кэша. Несмотря на то, что он сложнее в управлении, при больших потоках данных он оказывается на порядок эффективнее, чем используемый ранее кэш с прямым отображением (каждый блок основной памяти имеет только одно фиксированное место для отображения в кэше).

Фирменные технологии

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

В Radeon X1000 наконец появилась адекватная поддержка представления цвета в широком динамическим диапазоне – HDR (High Dynamic Range), плюс качественная технология сглаживания прозрачных текстур – Adaptive Anti-Aliasing. В эпоху повсеместного наступления телевидения высокого разрешения – HDTV – весьма кстати придется фирменная технология AVIVO, которая отвечает за обработку и аппаратное кодирование/декодирование видео.

Я не буду делать выводов по производительности видеокарт семейства X1000, тем более этому в нашем журнале было уделено уже достаточно внимания. Скажем лишь, что новый король действительно появился. Однако имя ему вовсе не Radeon X1800 XT, а Radeon X1900 XTX :).

До этого момента семейство X1900 в статье специально не упоминалось, так как вышло на свет оно значительно позже – в начале этого года. В новинке в разы увеличилось количество пиксельных процессоров – до 48, также была несколько усовершенствована работа текстурных блоков, плюс было внесено еще несколько изменений, не касающихся архитектуры в целом.

Во главе линейки X1900 встал новый чип R580, который содержит в себе 380 миллионов транзисторов и заслуженно считается на данный момент самым сложным графическим процессором.

Перспективы

Кстати, давай вспомним, какое же наиболее эпохальное событие ожидает нас уже в этом году (ориентировочно поздней осенью, если не будет очередных переносов сроков): контроль над многими домашними компьютерами возьмет новая операционная система от Microsoft – Windows Vista.

Как ты наверняка знаешь, одним из основных нововведений в ней будет навороченный до предела графический интерфейс, однако нам гораздо важнее то, что в Vista будет введен графический API нового поколения – WGF 2.0 (Windows Graphics Foundation 2.0 – новое название DirectX 10).

Главной отличительной чертой нового API станет отказ от традиционного разделения шейдеров на пиксельные и вершинные, а на смену им придет так называемая технология объединенных шейдеров (Unified Shader). По слухам, анонс первых плат, поддерживающих WGF 2.0, ожидается уже в июне этого года на выставке Computex.

Дебютантом должен стать новый чип от NVIDIA – G80, выполненный по 80-нм техпроцессу. Ответа от ATI опять придется ждать несколько дольше – презентация процессора под кодовым названием R600 ожидается ближе к концу этого года. Кстати, в анонсируемом чипе ATI снова обещает преподнести немало сюрпризов, ведь R600 обязательно позаимствует часть находок из другого чипа ATI, Xenos, который сейчас служит графическим сердцем в консоли Xbox 360.

Оцените статью
GPS