GeForce 6800 Ultra особливості архітектури

NVIDIA швидко виправила свою помилку, випустивши покращену версію NV30 – графічний процесор NV35, який виявився набагато життєздатнішим. Тим не менш, гіркота поразки з NV30 виявилася великою – компанія припинила випуск NV30, зробивши лише кілька десятків тисяч цих процесорів, а потім взагалі прибрала всі згадки про NV30 з корпоративного сайту.
Минув рік. За цей час компанія випустила низку нових досить вдалих рішень, на зміну NV35 прийшов NV38. Драйверний ряд Detonator був забутий, а його місце зайняли драйвери ForceWare, з якими, завдяки застосуванню спеціального компілятора шейдерного коду, була значно підвищена продуктивність відеоадаптерів NVIDIA в іграх, що використовують піксельні шейдери DirectX 9. Тим не менш, найкраще залишалися відеоадаптери з урахуванням графічних процесорів від ATI Technologies – RADEON 9800 PRO, та був і RADEON 9800 XT.
Звичайно, весь цей час команда інженерів-розробників NVIDIA не сиділа склавши руки - компанія прагнула взяти реванш у конкурента. Чутки про графічний процесор-монстр NV40 стали з'являтися задовго того, як він був вперше втілений у кремнії. Йшлося про шістнадцять конвеєрів рендерингу, підтримку піксельних і вершинних шейдерів версії 3.0 та про інші нововведення. Чутки, що циркулювали, були найрізноманітнішими, аж до «достовірних відомостей» про те, що новинка буде використовувати пам'ять GDDR3, що працює на частоті 1600 МГц, при цьому частота ядра становитиме до 600 МГц
Цього разу компанія діяла обережніше і ґрунтовніше, намагаючись всіма силами не допустити повторення ситуації з NV30. Цікаво, що в назвах майбутніх відеоадаптерів на базі NV40 було прийнято рішення відмовитися від літер "FX" - вони були перейменовані в GeForce 6800 Ultra та GeForce 6800.
При розробці графічного процесора наступного покоління компанія NVIDIA не могла не врахувати попередній досвід – ситуація, коли практично у всіх цінових категоріях продуктивність графічних процесорів від конкурента виявляється вищою, незважаючи на формальну технологічну перевагу NVIDIA, компанію ніяк не влаштовувала. Тому, окрім подальшого розширення функціональності та введення підтримки шейдерів моделі 3.0, найпильніша увага при створенні NV40 була приділена підвищенню продуктивності та, особливо, посиленню спочатку слабких місць архітектури CineFX.
Піксельні конвеєри NVIDIA GeForce 6800/6800 Ultra Стосовно NV40 та архітектури CineFX 3.0 не можна було говорити про піксельні конвеєри в традиційному сенсі. Починаючи з NV30 та архітектури CineFX, графічні процесори від NVIDIA замість кількох "незалежних" піксельних конвеєрів мали один "широкий" піксельний конвеєр, в якому в обробці знаходяться одночасно відразу кілька пікселів. NV40 успадковує архітектуру NV3x, але при цьому, зрозуміло, мала значні вдосконалення та доповнення.
Піксельний конвеєр NV40 значно, в 4 рази, був «розширений» в порівнянні з конвеєром NV35 - тепер в обробці могли перебувати 16 пікселів одночасно, і максимальна швидкість виведення становить 16 пікселів за такт. При накладенні більш ніж однієї текстури швидкість виведення пікселів знижується - наприклад, при накладенні двох текстур обробка тих же 16 пікселів займе два такти, тобто швидкість виведення знизиться до 8 пікселів за такт. Працюючи з Z-буфером чи буфером шаблонів піксельний конвеєр NV40 як і, як і NV35, «прискорюється». Загальне чотириразове збільшення продуктивності торкнулося роботи в таких умовах: тепер графічний процесор був здатний виводити максимум 32 значення Z за такт. Отже, «грубою сили» у NV40 було достатньо: можна сміливо говорити про чотириразове збільшення швидкості заповнення порівняно з NV35.
Разом з розширенням піксельного конвеєра компанія NVIDIA наростила і обчислювальну потужність піксельного процесора. По-перше, число доступних тимчасових регістрів - найслабше місце піксельних процесорів чіпів серії GeForce FX, пов'язане з особливостями будови піксельного конвеєра NV3x і NV40 - було збільшено, і тепер складні піксельні шейдери при обчисленнях з повною 32-бітною точністю не повинні були ставити п. процесор "на коліна".
По-друге, очевидно, число повноцінних ALU (арифметико-логічних пристроїв), виконують операції над компонентами пікселів, в NV40 подвоєно. Точніше, два типи FP ALU NV35, «повноцінні» та «спрощені», що прийшли на заміну цілочисловим ALU NV30, перетворилися на «повноцінні» ALU, які виконують операції будь-якої складності з однаковою швидкістю. Ось як NVIDIA показувала перевагу CineFX 3.0 з подвоєним числом ALU над традиційними архітектурами:
Отже, арифметико-логічні пристрої NV40 могли виконати до 8 операцій над компонентами одного пікселя за один такт, а якщо врахувати, що конвеєр NV40 обробляв 16 пікселів одночасно, то в сумі виходить, що NV40 мав 32 повноцінних ALU, що працюють з плаваючою точкою, вони можуть здійснити до 128 операцій над компонентами пікселя за такт.
Піксельні шейдери 3.0
Підтримка піксельних шейдерів моделі 40, що з'явилася в NV3.0, мала на увазі, в першу чергу, підтримку динамічних циклів і розгалужень у піксельних шейдерах. Тепер рішення про те, яка гілка шейдера буде виконуватися для того чи іншого пікселя, приймалися прямо в процесі виконання шейдера - змінні, значення яких визначають хід виконання шейдера, можуть змінюватися, не будучи заздалегідь визначеними константами, як у випадку зі статичними розгалуженнями і цикл.
Очевидно, при виконанні шейдерів 2.0 нова функціональність NV40 ніяк не проявила себе, тут були важливі лише швидкісні характеристики піксельного процесора.
NVIDIA HPDR – зображення стають реалістичнішими
Графічні процесори від NVIDIA попереднього покоління не мали підтримки виведення інформації з піксельного шейдера в кілька буферів одночасно (Multiple Render Targets) та рендерингу в буфер з поданням даних у форматі з плаваючою точкою (FP Render Target). Сімейство чіпів від ATI спочатку підтримувало ці функції, вигідно відрізняючись від графічних процесорів NVIDIA.
У NV40, нарешті, з'явилася повна підтримка як Multiple Render Targets, так і FP Render Target, що дозволило маркетологам компанії ввести в ужиток новий термін: NVIDIA HPDR. За цією абревіатурою, що розшифровується як High-Precision Dynamic-Range, ховається можливість побудови сцен із високим динамічним діапазоном освітленості (HDRI, High Dynamic Range Images).
Компанія NVIDIA використала 16-бітний формат OpenEXR, розроблений студією Industrial Light and Magic (ILM). У 16-бітному описі OpenEXR один біт відводився під знак показника експоненти, п'ять біт для значення показника експоненти і десять біт для подання мантис хроматичних координат кольору (u, v), по п'ять біт на координату. Динамічний діапазон уявлення становить дев'ять порядків величини – від 6.14*10^-5 до 6.41*10^4.
Serios Sam 2 HDR
Процес побудови та виведення HDR зображення силами графічного процесора NV40 розбивався на 3 фази:
Light Transport – розрахунок сцени з високим динамічним діапазоном освітленості та збереження інформації про світлові характеристики для кожного пікселя в буфері, який використовує формат представлення даних із плаваючою точкою – OpenEXR.
NVIDIA наголошувала, що NV40 підтримував роботу з даними, представленими у форматі з плаваючою точкою, на всіх етапах побудови HDR-сцени, чим гарантував мінімальні втрати точності:
- обчислення в шейдерах з плаваючою точкою,
- фільтрація текстур з плаваючою точкою,
- операції з буферами, що використовують подання даних у форматі з плаваючою точкою.
Tone Mapping – переклад зображення з високим динамічним діапазоном у формат LDRI RGBA або sRGB.
Color and Gamma Correction – переведення зображення в колірний простір пристрою відображення – CRT або LCD монітора тощо.
Отже, з появою NV40 та технології HPDR, зображення з високим динамічним діапазоном, що ще на один крок наближають прихід фотореалістичної графіки в ігрові світи, стали доступні не тільки власникам відеокарт від ATI, але й шанувальникам NVIDIA.
Вершинні конвеєри, вершинні шейдери 3.0
Підсиливши піксельний процесор NV40, компанія NVIDIA не забула і про «геометричну силу» нових GeForce. Нові графічні чіпи мали вдвічі більше вершинних конвеєрів – шість проти трьох у NVIDIA GeForce FX 5950 Ultra. Нові ігри мали все більш складні моделі, кількість полігонів у сценах зростала, тому подвоєна вершинна продуктивність нових графічних процесорів від NVIDIA не виявилася незатребуваною.
Разом із збільшенням продуктивності зросла і функціональність вершинних процесорів NV40 – у новому графічному процесорі NVIDIA заявила повну підтримку вершинних шейдерів моделі 3.0. Як і у випадку з піксельними шейдерами, довжина вершинних шейдерів була тепер практично не обмежена (насправді вона обмежена специфікаціями шейдерів моделі 3.0 в DirectX), при цьому шейдери можуть мати динамічні розгалуження і цикли - рішення про те, який код буде виконуватися для тієї або іншої вершини, приймається прямо в процесі виконання шейдера, а чи не на етапі компіляції.
Vertex Frequency Stream Divider Ще одна цікава нагода, якій були наділені вершинні процесори NV40. Використовуючи цей дільник частоти, вершинні процесори NV40 могли зчитувати дані з потоків і оновлювати вхідні параметри вершинного шейдера не для кожної оброблюваної вершини, як раніше, а рідше, з частотою, яку можна змінювати.
NVIDIA наводить такий приклад застосування цієї можливості: зчитуючи з потоку з певною частотою дані, що визначають наприклад анімацію, можна на основі одного і того ж набору даних, що визначають геометрію моделі, наприклад, солдата, створити цілу армію з солдатів, які не будуть абсолютно однаковими «клонами» - кожен відрізнятиметься від інших, маючи унікальний зовнішній вигляд та унікальну анімацію.
UltraShadow II
Вперше заявлена у графічному процесорі NV35, технологія UltraShadow, отримавши індекс "2" у назві, перейшла і в NV40. Суть технології не змінилася: при розрахунках динамічних тіней за допомогою буфера шаблонів можна було вказати граничні величини Z (depth bounds), за межами яких облік тіней від світлових джерел не проводитиметься. Тим самим можна було заощадити на обчисленнях та підвищити продуктивність у сценах, які використовують розрахунок тіней у реальному часі.
Дія UltraShadow II компанія NVIDIA ілюструвала схемою: на ній відзначені граничні значення (zmin та zmax), за межами яких розрахунок буфера шаблонів не проводиться:
Можливість завдання граничних умов для розрахунку тіней разом із відомою здатністю NV40 «прискорюватися» при розрахунку буфера шаблонів і Z-буфера, тобто виводити вже не 16, а 32 значення за такт, дозволяло розраховувати на появу серйозної переваги NV40 перед конкурентами в іграх, широко використовують розрахунок динамічних тіней за допомогою буфера шаблонів.
Приклад гри, що використовує динамічний розрахунок тіней, або, більше того, чий ігровий процес буквально побудований на тінях - Doom3.
Програмований відеопроцесор
Домашній комп'ютер вже давно позиціонувався як універсальна платформа для розваг, а значить, розробникам не було особливого сенсу розділяти графічні процесори, призначені для використання в персональних комп'ютерах, за класами типових завдань - якомога повнішим функціональним набором наділяється вся лінійка чіпів.
NV40 мав програмований відеопроцесор, призначений для кодування/декодування відеопотоків та виконання різних операцій над ними. Раніше про це заявляла компанія S3 з її VPU DeltaChrome. Крім того, відеоадаптери ATI RADEON 9500/9600/9700/9800 також могли декодувати відео, використовуючи потужності піксельних процесорів. Відеопроцесор NV40, NVIDIA VP, мав такі можливості:
Підтримка адаптивного деінтерлейсингу
Високоякісне масштабування та фільтрація
Видалення блокових артефактів
Вбудований ТВ-кодер
Конверсія колірних просторів
Конверсія частоти кадрів
Гамма-корекція
шумозаглушення
Підтримка HDTV (режими 720p, 1080i, 480p, CGMS)
Апаратна синхронізація аудіо- та відеопотоків
Підтримка кодування та декодування MPEG-1/2/4
Підтримка декодування WMV9/H.264
Повноекранне згладжування: новий рівень якості
Однією з суттєвих відмінностей між графічними процесорами сімейства R3х0 від ATI та чіпами серії GeForce FX від NVIDIA був різний підхід до реалізації повноекранного згладжування. GeForce FX від NVIDIA підтримували мультисемплінг, суперсемплінг та їх комбінації, використовуючи традиційне розташування субпікселів на впорядкованих ортогональних гратах (Ordered Grid), в той час як графічні процесори від ATI використовують мультисеплінг з розташуванням субпікселів на повороті.
Метод повноекранного згладжування, що використовує розташування субпікселів на поверненій решітці, за тих же витрат забезпечував набагато більш високу якість згладжування меж полігонів порівняно з методом, що використовує традиційне розташування субпікселів.
Після провалу NV30 nVidia доклала всіх зусиль для повернення втрачених позицій. І це компанії вдалося зробити з випуском відеокарти NV40, також відомої як GeForce 6800. Карта була дуже ефективною і набагато продуктивнішою, ніж FX 5900, у тому числі через чимало транзисторів (222 млн.). NV45, яка теж називалася GeForce 6800, була ні що інше, як NV40 з мостом AGP-to-PCI Express, що дозволяло карті підтримувати новий стандарт інтерфейсу і, крім того, SLI. Технологія SLI дозволяла поєднувати дві відеокарти PCI Express GeForce 6 для підвищення продуктивності. Вимоги до харчування для того часу були просто колосальними – був необхідний блок живлення потужністю 222W або вище, і дві вільні лінії живлення.
Найменування | GeForce 6800 Ultra |
Ядро | NV40/NV45 |
Техпроцес (мкм) | 0.13 |
Транзисторів (млн) | 222 |
Частота роботи ядра | 400 |
Частота роботи пам'яті (DDR) | 550 (1100) |
Шина та тип пам'яті | GDDR3 256 Bit |
ПСП (Гб/с) | 35,2 |
Піксельні конвеєри | 16 |
TMU на конвеєр | 1 |
Текстур за такт | 16 |
Текстур за прохід | 16 |
Вершинних конвеєрів | 6 |
Піксельні шейдери | 3.0 |
Vertex Shaders | 3.0 |
Fill Rate (Mpix/s) | 6400 |
Fill Rate (Mtex/s) | 6400 |
DirectX | 9.0c |
Anti-Aliasing (Max) | SS & MS - 8x |
Анізотропна фільтрація (Max) | 16x |
Обсяг пам'яті | 256 |
Інтерфейс | AGP/PCI-E |
RAMDAC | 2x400 |
З виходом компанія nVidia, нарешті, змогла вийти з тяжкого болота лінійки NV30 і випустити дійсно передовий графічний прискорювач, який змусить прискорено битися серце будь-якого геймера NVIDIA - NV40 це чіп, який, вже за традицією, став родоначальником нового сімейства графічних чипів . Встановивши міцні відносини з розробниками ігор та програмного забезпечення в процесі адаптації архітектури NV30, наступний графічний процесор, NV40 компанія розробляла вже не "наобум", а з огляду на вимоги та побажання розробників. І його представник GeForce 6800 Ultra - Найшвидший на той день ігровий прискорювач, був здатний буквально підірвати ігри того часу і ігор в пізніший період.
Far Cry