Выбрать главу

Вторая группа изменений коснулась оптимизации графического процессора для работы на больших и очень больших тактовых частотах. Например, архитектура подсистемы памяти была полностью переделана для поддержки казавшейся невероятно быстрой видеопамяти - 1500 МГц GDDR3[И ведь это еще не предел - ходят вполне правдоподобные слухи, что R520 поддерживает не вышедшую пока в свет графическую оперативную память следующего поколения, GDDR4]. Вместо традиционной схемы с множеством текстурных модулей (TMU), централизованно подключавшихся к единому контроллеру оперативной памяти, который, в свою очередь, по широким шинам запрашивал данные из памяти и возвращал ответ по тем же каналам связи, по которым пришел запрос, ATI изобрела принципиально новую, кольцевую внутреннюю шину видеопамяти, «размазывающую» контроллер памяти едва ли не по всему графическому процессору. Идея в том, что вместо одного большого и сложного контроллера мы делаем до восьми маленьких контроллеров, каждый из которых контролирует только свой относительно небольшой кусочек видеопамяти. Причем он расположен в кристалле так, чтобы сравнительно узкую (32-разрядную) шину видеопамяти от него было удобнее разводить на печатной плате и тем самым сводить к минимуму помехи, обычно возникающие из-за несовершенства разводки. Вдобавок, небольшим контроллерам требуются небольшие же кэши данных, что позволяет отказаться от традиционных упрощенных и имеющих ряд недостатков кэшей прямого отображения и наборно-ассоциативных кэшей в пользу более сложных, но лишенных этого недостатка полностью ассоциативных кэшей.

Маленькие контроллеры (точнее, интерфейсы для подключения модулей памяти) объединяются очень быстрой внутренней двунаправленной кольцевой шиной (шириной 256 линий в каждом направлении для моделей с 256-разрядной основной шиной памяти и 128 линий - для более дешевых). На кольце имеется четыре «остановки» - точки подключения к внешних устройств. Например, для топовых R520 к каждой такой «остановке» подключено по два модуля памяти (шина памяти 2x32 разряда) и какая-то часть внутренних устройств процессора, расположенных поблизости. Каких? А неважно: какие было удобно подключить именно в этом месте, такие и подключили. Кроме того, по специальным простым управляющим шинам (по которым передаются только инструкции) каждая такая «остановка» подключена к «диспетчеру» - тому самому централизованному контроллеру памяти, который не занимается доставкой данных к исполнительным устройствам, а только «отдает распоряжения» и «присматривает» за тем, чтобы нужные данные прочитал нужный маленький контроллер и отправил их по кольцу до нужной «остановки», где их сможет снять само исполнительное устройство.

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

***

Третья группа усовершенствований в R520 - это «доводка» ранее существовавших элементов. Например, этот графический процессор хранит в своих кэшах сжатые данные, сжимая и разжимая их на лету. Обычно подобный подход применяется только для хранения данных в видеопамяти (поскольку позволяет записать намного больший объем информации), а в R520 разработчики ухитрились применить тот же принцип и для самих кэшей, что почти равнозначно увеличению их объема. До восьми штук доведено число вершинных процессоров. Значительно улучшены вычислительные устройства блока пиксельных шейдеров - в них вдвое увеличено число собственно «вычислялок», поэтому за один такт это устройство способно выполнять до пяти разных операций над пикселом (две векторные над 3-векторами, две скалярные и одну операцию условного перехода). Таким образом, ATI почти догнала по этому показателю nVidia, которая использует в одном пиксельном процессоре G70 один векторный (но умеющий выполнять две разные операции одновременно) и один скалярный ALU. Правда, у nVidia векторные ALU работают с векторами длины 4, а у ATI - только с 3-векторами, и если приходится вычислять четвертую компоненту, то приходится задействовать и скалярное ALU, однако в целом заметной разницы в играх между подходами обеих компаний быть не должно.

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

Четвертая группа усовершенствований - «косметические» мелочи, в основном влияющие на разные «красивости». Поддержка некогда фирменного 30-битного (против обычного 24-битного) цвета Matrox, поддержка Adaptive Antialiasing - аналога Transparency SuperSampling в видеокартах nVidia9, поддержка более качественной, хотя и довольно медленной анизотропии. Аппаратное ускорение воспроизведения большинства распространенных современных видеокодеков, включая MPEG-2, WMV и H.264, позволяющее без проблем воспроизводить то, что мы называем High Definition Video (как Blu-ray, так и HD-DVD). Специальный аппаратный блок AVIVO, обеспечивающий качественную аппаратную обработку видеосигнала (10-битный цвет, гамма-коррекция, цветокоррекция, масштабирование, деинтерлейсинг); причем для кодирования TV-сигнала используется высококлассный кодер Xilleon, поддерживающий HDTV (а через переходник можно и HDMI организовать). Усовершенствованные блоки DVI и традиционная полноценная поддержка двух мониторов. В общем, грех на что-либо жаловаться.

Наконец, последняя, пятая группа усовершенствований - это чисто технологические новинки. В первую очередь, конечно же, новый технологический процесс 90-нм low-k, позволивший разместить 320 млн. транзисторов (да-да, детище ATI с шестнадцатью конвейерами переплюнуло по сложности даже nVidia G70 с его двадцатью четырьмя конвейерами!) на чуть меньшей, чем у конкурента, площади ядра и сыгравший свою роль в увеличении тактовой частоты R520. Тут все очевидно и особых комментариев, думаю, не требует

Практика

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

Как видим, графические ускорители одного вроде бы семейства радикальнейшим образом отличаются друг от друга. Особенно выделяется R520 (Radeon X1800) - он просто наголову превосходит ближайшего «конкурента» новой линейки, словно это два абсолютно разных процессора! Вот она, гибкость новой архитектуры: как захотели - так и сделали. И сверхнавороченный, и скромный процессор - на основе одних и тех же подходов. Впечатляют и тактовые частоты, не опускающиеся ниже 450 МГц у ядра (у GeForce 7800 GTX, для сравнения, «всего» 430 МГц, пусть и гораздо более «полновесных», чем мегагерцы какого-нибудь X1600 XT), и оперативной памяти (1,4-1,5 ГГц - не шутки!). Правда, доступно все это великолепие будет далеко не сразу - с «высокочастотными» карточками придется подождать до ноября-декабря (да и X1800 XL на момент написания статьи в московской рознице еще не встречалась). Однако стараниями нашего замечательного редактора Х, в неравном бою отбившего нам на тестирование топовую карточку нового семейства Radeon X1800 XT, краткое «превью» новой быстродействия архитектуры мы можем сделать уже сейчас.