РЕКЛАМА
ИНФОРМАЦИЯ
ПОЛЕЗНЫЕ ССЫЛКИ
Журналистское расследование: трюки ATi с оптимизацией текстурной фильтрации

Brightside intros 200,000:1 contrast ratio display

Rambler's Top100 Рейтинг@Mail.ru

ВИДЕОКАРТЫ

Radeon X1300, Radeon X1600 и Radeon X1800: тест
Краткое содержание статьи: ATi смогла (наконец-то) представить новую линейку карт, в которую включены Radeon X1300, Radeon X1600 и Radeon X1800. Результаты наших тестов новейших Radeon показывают, что вы не будете разочарованы. ATi провела тщательную оптимизацию архитектуры Radeon и получила достойный результат. На момент публикации статьи Radeon было сложно купить, но затем ситуация улучшилась.

Radeon X1300, Radeon X1600 и Radeon X1800: тест


Редакция THG,  6 октября 2005
Назад
Вы читаете страницу 4 из 9
1 2 3 4 5 6 7 8 9
Далее


Переходим к ядру

По поводу новой архитектуры ходило немало слухов, и сегодня настало время пролить свет на истину. Вместо размещения дополнительных вычислительных блоков на пиксельном конвейере, как в случае 7800 GTX, ATi решила доработать практически каждую деталь архитектуры.

X1800 Core

Диаграмма графического ядра X1800.

Начнём с того, что ATi изменила обработку потока данных. Поток теперь разбивается и разделяется, чтобы более эффективно использовать вычислительные блоки пиксельных шейдеров. ATi решила внедрить настоящую многопоточность.

Первый шаг в обработке данных должен быть вам знаком: все данные проходят через восемь вершинных блоков. Здесь ATi соглашается с тем, что подход SM 3.0 успешен. Кроме того, ATi сообщила нам, что поддержка Shader Model 3.0 в линейке X1000 прошла сертификацию Microsoft Display Compatibility Test (DCT).

Вершинные блоки могут обрабатывать две вершинные инструкции (векторную и скалярную) за такт или около 10 млрд. инструкций в секунду. Дело в том, что каждый вершинный блок оснащён двумя АЛУ: одним 128-битным векторным АЛУ и одним 32-битным скалярным АЛУ. В итоге возможны непрерывные вычисления с плавающей запятой с 32-битной точностью. В каждый вершинный блок входит модуль управления потоком (flow control), следящий за процессом обработки данных.

Переходим к ядру

Когда будут выполнены отсечение скрытых поверхностей, обрезка, разделение перспективы (перенос в урезанное пространство), трансформация точки зрения и другие геометрические операции, следующим этапом явится движок сборки (setup engine), содержащий блок растеризации геометрии. Отсюда пиксельные данные поступают в новый процессор распределения Ultra-Threading. Процессор может разбивать шейдерные данные на целых 512 параллельных потоков. Именно здесь ATi надеется получить существенный прирост производительности - путём оптимизации выполнения пиксельных шейдеров, а также опираясь на новую архитектуру памяти (о которой мы поговорим чуть позже).

После движка сборки (setup engine) и процессора распределения (Ultra-Threading Dispatch Processor) потоки поступают в пиксельные блоки затенения. Да, блоки. ATi собрала пиксельные блоки вместе по четыре, в единые виртуальные ядра (Quad Pixel Shader Cores). Эти ядра поддерживают стандарт Pixel Shader 3.0, причём каждое может работать над 16 пикселями на поток (максимальная эффективность). Каждый пиксельный блок может выполнять шесть шейдерных инструкций за такт (2 скалярных, 2 векторных, 1 текстурная и 1 ветвления).

Потоки включают в себя до 16 пикселей, а процессор может обрабатывать до 512 потоков одновременно (128 в картах среднего и низшего уровней). Потоки не совсем похожи на традиционные потоки CPU, поскольку программисты не отвечают за их создание. Карта автоматически разделяет графические данные экрана по потокам. Так как одновременно поддерживается несколько потоков GPU, больше не нужно выполнять контекстное переключение для выполнения разных наборов инструкций на разных пикселях: процессор может работать со множеством контекстных данных одновременно. Конечно, для поддержки всех регистров и переменных 512 потоков требуется немалый регистровый файл. Но работа с большим количеством инструкций, пикселей и потоков "на лету" позволяет эффективно снизить задержки.

На диаграмме ниже показано, как карта теней разбивается на блоки 4x4 пикселей.

Переходим к ядру

Иллюстрация на примере карты теней показывает, насколько эффективно оказывается динамическое ветвление. Логика графического процессора позволяет выполнять операции "если/иначе" (if/else). Зелёные области отображают первую половину операции - или ветку "если". А голубые области - вторую половину операции, ниже "иначе". "Если" тень выводить не нужно, то текстура остаётся прежней. "Иначе", если нужно вывести тень, то текстуру следует менять. Розовым цветом помечены блоки 4x4 пикселей, которые частично удовлетворяют обоим условиям.

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

В итоге мы получаем более быстрое выполнение по сравнению с традиционной архитектурой.

Переходим к ядру

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

Переходим к ядру

Работа с памятью

Существенной переработке подверглась архитектура памяти. Контроллер памяти перешёл из внутренностей ядра "наружу". ATi реализовала кольцевую шину (ring bus), которая позволяет избавиться от перегрузок и задержек. Действительно, зачем усложнять и так сложную и комплексную архитектуру?

Новая архитектура поддерживает память GDDR4, но текущим платам придётся довольствоваться GDDR3, пока не появятся модули GDDR4.

Последние годы high-end графические чипы оснащались 256-битной шиной, разделённой на четыре 64-битных канала. Но при этом возникали проблемы с прокладкой линий, упаковкой и тактовыми частотами. Действительно, проложить 256 линий от GPU к памяти не так-то просто. Производителям приходилось использовать многослойные печатные платы, в отличие от более простых решений для узкой шины.

Для поддержки 256-битной шины графический процессор должен обладать 256 физическими контактами. Добавить такое число внешних контактов на один кристалл кремния тоже непросто, что накладывает свои ограничения. Да и электрически развести контакты и связать их по частотам тоже сложно.

Вместо того чтобы опереться на широкую шину для улучшения производительности, ATi пошла другим путём: улучшила управление и внутренний роутинг данных. Вместо четырёх 64-битных каналов памяти, подключённых к большом интегрированному кэшу, в чипе используется четыре остановочных блока (ring stop) в кольце. Каждый блок подключён к другим (через кольцо), к графической памяти, нескольким кэшам и клиентам внутри графического процессора. Каждый остановочный блок использует два 32-битных подключения к двум модулям памяти и два выходящих 256-битных канала к двум другим остановочным блокам. ATi называет эту шину 512-битной, поскольку между остановочными блоками используется два канала по 256 бит (в противоположных направлениях).

Работа с памятью

Начало операции чтения. Сначала клиент отсылает запрос на требуемую информацию в памяти.

Работа с памятью

Запрос принят контроллером памяти.

Работа с памятью

Контроллер памяти отсылает команду в нужный модуль памяти.

Работа с памятью

Наконец, данные считываются и отсылаются по кольцевой шине. По дуге кольца, которая ближе всего к устройству, запросившему данные. Шина отдаёт данные запросившему блоку, и цикл чтения считается завершённым.

Работа с памятью

Роутинг по 512-битной внутренней шине позволяет шине ATi быстро получить данные в требуемом месте. Каждый остановочный блок подключается к своему набору кэшей. Внутри GPU находятся больше 30 клиентов, которым нужен доступ к памяти. Когда один из этих клиентов требует данные, и они не находятся в кэше, контроллер памяти перенаправляет запрос к остановочную блоку, к которому подсоединена требуемая память. После считывания данных остановочный блок передаёт данные по кольцу к тому остановочному блоку (и кэшу), который находится ближе к клиенту.

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

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

Кроме того, в архитектуре памяти появились ещё два преимущества. Первое связано с дизайном каналов. В линейке X850 было четыре 64-битных канала. X1000 использует восемь 32-битных каналов. В результате мы получаем больше одновременных передач данных и улучшенное управление каналами со стороны контроллера памяти.

Второе преимущество связано с дизайном кэша. Раньше кэш использовал прямое отображение (direct mapping). В результате осуществлялся прямой доступ, но при увеличении объёма данных эффективность снижалась. ATi теперь использует полностью ассоциативный кэш. У него больше затраты на управление, но он способен справляться с большим числом и частотой запросов, да и требования по пропускной способности шины памяти у него меньше.
Назад
Вы читаете страницу 4 из 9
1 2 3 4 5 6 7 8 9
Далее


СОДЕРЖАНИЕ

Обсуждение в Клубе Экспертов THG Обсуждение в Клубе Экспертов THG


РЕКЛАМА
РЕКОМЕНДУЕМ ПРОЧЕСТЬ!

История мейнфреймов: от Harvard Mark I до System z10 EC
Верите вы или нет, но были времена, когда компьютеры занимали целые комнаты. Сегодня вы работаете за небольшим персональным компьютером, но когда-то о таком можно было только мечтать. Предлагаем окунуться в историю и познакомиться с самыми знаковыми мейнфреймами за последние десятилетия.

Пятнадцать процессоров Intel x86, вошедших в историю
Компания Intel выпустила за годы существования немало процессоров x86, начиная с эпохи расцвета ПК, но не все из них оставили незабываемый след в истории. В нашей первой статье цикла мы рассмотрим пятнадцать наиболее любопытных и памятных процессоров Intel, от 8086 до Core 2 Duo.

ССЫЛКИ
Реклама от YouDo
Расчет сметы на демонтажные работы на http://remont.youdo.com/engineering/estimates/building/dismantling/.
Смотрите здесь - https://youdo.com/lp-phone24703/ по этой ссылке.