TeraScale (микроархитектура) - TeraScale (microarchitecture)

TeraScale - это кодовое название семейства микроархитектур графических процессоров, разработанных ATI Technologies / AMD и их второй микроархитектурой, реализующей унифицированную шейдерную модель после Xenos . TeraScale заменил старые микроархитектуры с фиксированным конвейером и напрямую конкурировал с первой унифицированной шейдерной микроархитектурой Nvidia под названием Tesla .

TeraScale использовался в HD 2000, изготовленном с длиной волны 80 и 65 нм , HD 3000, изготовленном с длиной волны 65 и 55 нм, HD 4000, изготовленным с длиной волны 55 и 40 нм, HD 5000 и HD 6000, изготовленным с длиной волны 40 нм. TeraScale также использовался в блоках ускоренной обработки AMD под кодовыми названиями Brazos, Llano, Trinity и Richland. TeraScale даже можно найти в некоторых последующих брендах видеокарт.

TeraScale - это архитектура VLIW SIMD , а Tesla - это архитектура RISC SIMD , аналогичная преемнику TeraScale Graphics Core Next . TeraScale реализует HyperZ .

Генератор кода LLVM (то есть серверная часть компилятора) доступен для TeraScale, но, похоже, он отсутствует в матрице LLVM. Например, Mesa 3D использует это.

TeraScale 1

TeraScale 1
Дата выпуска Май 2007 г . ; 13 лет назад  ( Май 2007 г. )
История
Предшественник Неизвестно публично
Преемник TeraScale 2

На выставке SIGGRAPH 08 в декабре 2008 года сотрудник AMD Майк Хьюстон описал некоторые элементы микроархитектуры TeraScale.

На FOSDEM09 Маттиас Хопф из технологического партнера AMD SUSE Linux представил слайд, посвященный программированию драйвера с открытым исходным кодом для R600.

Унифицированные шейдеры

Предыдущие архитектуры графических процессоров реализовывали фиксированные конвейеры, т. Е. Существовали отдельные шейдерные процессоры для каждого типа шейдера . TeraScale использует множество гибких шейдерных процессоров, которые можно запланировать для обработки различных типов шейдеров, тем самым значительно увеличивая пропускную способность графического процессора (в зависимости от сочетания инструкций приложения, как указано ниже). Ядро R600 обрабатывает вершинные, геометрические и пиксельные шейдеры в соответствии со спецификацией Direct3D 10.0 для Shader Model 4.0 в дополнение к полной поддержке OpenGL 3.0.

Новая унифицированная функциональность шейдера основана на архитектуре с очень длинным командным словом (VLIW), в которой ядро ​​выполняет операции параллельно.

Кластер шейдеров состоит из 5 блоков потоковой обработки. Каждый блок потоковой обработки может исключить законченную инструкцию MAD с плавающей запятой одинарной точности (или ADD или MUL) за такт, скалярное произведение (DP и специальный корпус путем объединения ALU) и целочисленное ADD. Пятая единица более сложна и может дополнительно обрабатывать специальные трансцендентные функции, такие как синус и косинус . Каждый шейдерный кластер может выполнять 6 инструкций за такт (пик), состоящий из 5 инструкций затенения плюс 1 ветвь.

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

Ядро R600 включает 64 шейдерных кластера, а ядра RV610 и RV630 имеют 8 и 24 шейдерных кластера соответственно.

Аппаратная тесселяция

TeraScale включает несколько модулей, способных выполнять тесселяцию . Они похожи на программируемые блоки графического процессора Xenos, который используется в Xbox 360.

Тесселяция была официально указана в основных API, начиная с DirectX 11 и OpenGL 4. Графические процессоры на базе TeraScale 1 (серии HD 2000, 3000 и 4000) совместимы только с Direct3D 10 и OpenGL 3.3 и, следовательно, реализуют другой принцип тесселяции, который использует API конкретного производителя. расширения. Графические процессоры на базе TeraScale 2 (начиная с серии Radeon HD 5000 ) были первыми, кто соответствовал как технологии тесселяции Direct3D 11, так и OpenGL 4.0. Хотя тесселятор TeraScale 1 проще по конструкции, AMD описывает его как подмножество более позднего стандарта тесселяции.

Модули тесселяции TeraScale позволяют разработчикам взять простую полигональную сетку и разделить ее с помощью функции оценки криволинейной поверхности. Существуют различные формы тесселяции, такие как поверхности Безье с N-участками , B-сплайны и NURBS , а также некоторые методы подразделения поверхности, которые обычно включают карту смещения в виде текстуры. По сути, это позволяет значительно увеличить плотность полигонов простой низкополигональной модели в режиме реального времени с очень небольшим влиянием на производительность. Скотт Уоссон из Tech Report отметил во время демонстрации AMD, что получившаяся модель была настолько плотной с миллионами полигонов, что казалась твердой.

Тесселятор TeraScale напоминает ATI TruForm , торговую марку ранней единицы аппаратной тесселяции, первоначально использовавшейся в Radeon 8500 .

ATI TruForm получила мало внимания со стороны разработчиков программного обеспечения. Некоторые игры (такие как Madden NFL 2004 , Serious Sam , Unreal Tournament 2003 и 2004 и неофициально Morrowind ) поддерживали технологию тесселяции от ATI. Такая медленная адаптация связана с тем фактом, что эта функция не использовалась совместно с графическими процессорами NVIDIA, поскольку они реализовали конкурирующее решение тесселяции с использованием патчей Quintic-RT, которые получили еще меньшую поддержку со стороны основных разработчиков игр. Поскольку графический процессор Xbox 360 основан на архитектуре ATI, Microsoft рассматривала аппаратную тесселяцию поверхности как одну из основных функций графического процессора. Спустя пару лет функция тесселяции стала обязательной с выпуском DirectX 11 в 2009 году.

Хотя принцип тесселяции, представленный в TeraScale, не входил в требования OpenGL 3.3 или Direct3D 10.0, а у конкурентов, таких как серия GeForce 8, не было аналогичного оборудования, Microsoft добавила функцию тесселяции в свои планы на будущее DirectX 10.1. Наконец, Microsoft представила тесселяцию как обязательную возможность не с DirectX 10.1, а с DirectX 11.

Геометрический процессор GCN - это самое актуальное решение AMD (которая приобрела бизнес графических процессоров ATI) для выполнения тесселяции с использованием графического процессора.

Ультра-поточный диспетчерский процессор

Несмотря на то, что R600 значительно отличается от предыдущих разработок, он по-прежнему разделяет многие функции со своим предшественником, Radeon R520 . Ультра Резьбовой Dispatch Processor является одним из основных архитектурных компонентов ядра R600, так же , как это было с X1000 графическими процессорами Radeon. Этот процессор управляет большим количеством потоков на лету трех различных типов (вершинные, геометрические и пиксельные шейдеры) и переключается между ними по мере необходимости. При одновременном управлении большим количеством потоков можно реорганизовать порядок потоков для оптимального использования шейдеров. Другими словами, диспетчерский процессор оценивает, что происходит в других частях R600, и пытается поддерживать эффективность обработки на максимально высоком уровне. Есть и более низкие уровни управления; каждый SIMD-массив из 80 потоковых процессоров имеет свой собственный секвенсор и арбитр. Арбитр решает, какой поток обрабатывать следующим, в то время как секвенсор пытается переупорядочить инструкции для наилучшей производительности в каждом потоке.

Текстурирование и сглаживание

Текстурирование и окончательный вывод на ядре R600 аналогичны, но также отличаются от R580. R600 оснащен 4 текстурными блоками, которые отделены (независимы) от шейдерного ядра, как в графических процессорах R520 и R580. Модули вывода рендеринга (ROP) серии Radeon HD 2000 теперь выполняют задачу сглаживания множественной выборки (MSAA) с программируемыми сетками выборок и максимум 8 точками выборки вместо использования пиксельных шейдеров, как в серии Radeon X1000 . Также новинкой является возможность фильтровать текстуры FP16, популярные при освещении HDR , на полной скорости. ROP также может выполнять трилинейную и анизотропную фильтрацию для всех форматов текстур. На R600 это составляет 16 пикселей за такт для текстур FP16, в то время как текстуры FP32 более высокой точности фильтруют с половинной скоростью (8 пикселей за такт).

Возможности сглаживания на R600 более надежны, чем на серии R520. В дополнение к возможности выполнять 8 × MSAA по сравнению с 6 × MSAA на R300 до R580, R600 имеет новый режим настраиваемого сглаживания фильтра (CFAA). CFAA относится к реализации фильтров без рамки, которые смотрят на пиксели вокруг конкретного обрабатываемого пикселя, чтобы вычислить окончательный цвет и сглаживать изображение. CFAA выполняется шейдером, а не в ROP. Это значительно расширяет возможности программирования, поскольку фильтры можно настраивать, но также может вызвать потенциальные проблемы с производительностью из-за использования ресурсов шейдера. Начиная с выпуска R600, CFAA использует широкие и узкие тентовые фильтры. С их помощью образцы вне обрабатываемого пикселя линейно взвешиваются на основе их расстояния от центроида этого пикселя, с линейной функцией, регулируемой на основе выбранного широкого или узкого фильтра.

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

Контроллеры памяти подключаются через внутреннюю двунаправленную кольцевую шину, обернутую вокруг процессора. В Radeon HD 2900 это 1024-битная двунаправленная кольцевая шина (512-битное чтение и 512-битная запись) с 8 64-битными каналами памяти для общей ширины шины 512 бит на 2900 XT; в Radeon HD 3800 это 512-битная кольцевая шина; в Radeon HD 2600 и HD 3600 это 256-битная кольцевая шина; В Radeon HD 2400 и HD 3400 кольцевой шины нет.

Обновление половинного поколения

В серии было обновлено половину поколения с вариантами усадки матрицы (55 нм): RV670, RV635 и RV620. Все варианты поддерживают PCI Express 2.0, DirectX 10.1 с функциями Shader Model 4.1, выделенный ATI Unified Video Decoder (UVD) для всех моделей и технологию PowerPlay для настольных видеокарт.

За исключением серии Radeon HD 3800, все варианты поддерживали 2 встроенных выхода DisplayPort, поддерживающих 24- и 30-битные дисплеи с разрешением до 2560 × 1600. Каждый выход включал 1, 2 или 4 полосы на выход со скоростью передачи данных до 2,7 Гбит / с на полосу.

ATI заявила, что поддержка DirectX 10.1 может повысить производительность и эффективность обработки с уменьшенной ошибкой округления (0,5  ULP по сравнению со средней ошибкой 1,0 ULP как допустимая ошибка), лучшими деталями и качеством изображения, глобальным освещением (метод, используемый в анимационных фильмах, и больше улучшений потребительских игровых систем, что дает более реалистичный игровой процесс.)

Видеокарты

(см. список фишек на этих страницах)

TeraScale 2 "Evergreen" - семейство

TeraScale 2
Дата выпуска Сентябрь 2009 г . ; 11 лет назад  ( Сентябрь 2009 г. )
История
Предшественник TeraScale 1
Преемник TeraScale 3

TeraScale 2 (VLIW5) был представлен с графическими процессорами серии Radeon HD 5000, получившими название Evergreen.

На HPG10 Марк Фаулер представил «Evergreen» и заявил, что, например, 5870 (Cypress), 5770 (Juniper) и 5670 (Redwood) поддерживают максимальное разрешение 6 раз 2560 × 1600 пикселей, а 5470 (Cedar) поддерживает 4 раза 2560 × 1600 пикселей, что важно для поддержки нескольких мониторов AMD Eyefinity .

С выпуском Cypress архитектура графического движка Terascale была модернизирована и увеличила вдвое количество потоковых ядер, текстурных блоков и блоков ROP по сравнению с RV770. Архитектура потоковых ядер практически не изменилась, но добавлена ​​поддержка возможностей DirectX 11 / DirectCompute 11 с новыми инструкциями. Также, как и в RV770, четыре текстурных блока привязаны к 16 потоковым ядрам (каждый имеет пять элементов обработки, что в сумме составляет 80 элементов обработки). Эта комбинация называется ядром SIMD .

В отличие от предшественника Radeon R700 , поскольку DirectX 11 предусматривает полный контроль разработчика над интерполяцией, выделенные интерполяторы были удалены, вместо этого полагаясь на ядра SIMD. Ядра потоков могут обрабатывать инструкцию объединенного умножения-сложения с более высокой точностью округления (FMA) как с одинарной, так и с двойной точностью, что увеличивает точность по сравнению с умножением-сложением (MAD) и соответствует стандарту IEEE 754-2008 . Сумма абсолютных разностей команд (SAD) была изначально добавлена ​​в процессоры. Эту инструкцию можно использовать для значительного повышения производительности некоторых процессов, таких как кодирование и перекодирование видео в 3D-движке. Каждое ядро ​​SIMD оснащено локальным общим объемом данных 32 КБ и кеш-памятью L1 объемом 8 КБ, в то время как все ядра SIMD имеют общий глобальный общий ресурс данных 64 КБ.

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

Каждый контроллер памяти связан с двумя четырьмя ROP , по одному на 64-битный канал, и выделенным кэшем L2 объемом 512 КБ. Redwood имеет один четырехкратный ROP на 256-битный канал.

Энергосбережение

AMD PowerPlay поддерживается, см. Там.

Чипсы

  • Вечнозеленые чипсы:
    • Кедр RV810
    • Редвуд RV830
    • Можжевельник RV840
    • Кипарисовый RV870
    • Hemlock R800
    • Турки RV930
    • Бартс RV940
    • Caïcos RV910
  • APU, включающий TeraScale 2 IGP:
    • Онтарио
    • Закате
    • Llano

TeraScale 3 "Северные острова" - семейство

TeraScale 3
Дата выпуска Октябрь 2010 г . ; 10 лет назад  ( Октябрь 2010 г. )
История
Предшественник TeraScale 2
Преемник Графическое ядро ​​Next 1

TeraScale 3 (VLIW4) заменяет предыдущие 5-канальные конструкции VLIW на 4-канальные конструкции VLIW. Новый дизайн также включает дополнительный блок тесселяции для повышения производительности Direct3D 11.

TeraScale 3 реализован в видеокартах марки Radeon HD 6900, а также в APU Trinity и Richland . Чипы окрестили семьей «Северные острова».

Энергосбережение

Архитектура новой версии PowerTune, представленной с использованием микросхем GCN1.1.

AMD PowerTune, динамическое масштабирование частоты для графических процессоров, было представлено с Radeon HD 6900 15 декабря 2010 года и с тех пор подвергалось дальнейшему развитию, как и пара обзоров в документе AnandTech .

Чипсы

  • Фишки Северных островов:
    • Каймановы острова RV970
    • Антильские острова R900
    • Trinity и Richland включают TeraScale 3 IGP

Преемник

На HPG11 в августе 2011 года сотрудники AMD Майкл Мантор (старший научный сотрудник) и Майк Хьюстон (научный сотрудник) представили Graphics Core Next , микроархитектуру, пришедшую на смену TeraScale.

Рекомендации