gamegpu     Search find 4120

 tg2 f2 lin2 in2 X icon 3 y2  p2 тільки steam2

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

Презентація відеокарти GeForce3 відбулася 22 лютого 2001 року на виставці MacWorld Expo у Токіо. Заочно побувати на ній міг будь-хто, тому що відеозапис цієї події був викладений в Інтернет. Монстр графічних движків", "жива легенда" Джон Кармак з ID Software, розхвалюючи можливості нового чіпа помітив, що його не слід називати "GeForce3". ім'я Чому?
GeForce 3 логотип

Абсолютно новий чіп
Тому що при розробці GeForce3 інженери nVidia застосували новий собі підхід. Раніше продуктивність покращувалася за рахунок "грубої сили": нарощувалася обчислювальна потужність, підвищувалися частоти, подвоювалися конвеєри та обчислювальні блоки, а архітектура в цілому залишалася незмінною. Зростав лише fillrate, тобто швидкість заповнення пікселями тривимірної сцени. Оскільки технології виготовлення мікросхем мають певну межу, відеокарти nVidia незабаром втратили збалансованість. З'явився ефект недостатньої пропускної спроможності шини пам'яті, коли подальше підвищення продуктивності стримується низькою швидкістю надходження даних.
Особливо це стало помітно після виходу відеокарт ATI Radeon. Вони базувалися на чіпі Rage6C, у якого кількість 3D-конвеєрів вдвічі менша, ніж у GeForce2 (NV15). Однак Radeon аж ніяк не вдвічі відставав від суперника, а в деяких випадках здатний впритул до нього наблизитися. А все тому, що інженери ATI із самого початку орієнтувалися на покращення балансу та нейтралізацію "вузьких місць" в архітектурі.
GeForce3 став першою серйозною спробою покращення архітектури для досягнення кращого балансу. Крім того, в ньому з'явилися нові блоки, що дають розробникам можливість задіяти безліч раніше недоступних можливостей.

Характеристики GeForce 3
Найменування GeForce 3
Ядро NV20
Техпроцес (мкм) 0,15
Транзисторів (млн) 60
Частота роботи ядра 200
Частота роботи пам'яті (DDR) 230 (460)
Шина та тип пам'яті DDR-128 bit
ПСП (Гб/с) 7,3
Піксельні конвеєри 4
TMU на конвеєр 2
Текстур за такт 8
Текстур за прохід 4
Вершинних конвеєрів 1
Піксельні шейдери 1,1
Vertex Shaders 1,1
Fill Rate (Mpix/s) 800
Fill Rate (Mtex/s) 1600
DirectX 8.0
Anti-Aliasing (Max) MS - 4x
Анізотропна фільтрація (Max) 8x
Обсяг пам'яті 64 / 128 MB
Інтерфейс AGP 4x
RAMDAC 350 МГц

GPU – це Graphics Processing Unit
Коли було оголошено GeForce256, nVidia стверджувала, що це перший у світі графічний процесор – GPU. Однак, на відміну від центрального процесора - CPU, у нього практично була відсутня можливість справжнього програмування. Звісно, ​​певний набір операцій міг виконувати, але цей набір був жорстко заданий розробниками чіпа, а чи не самими програмістами. Операції апаратного перетворення координат, освітлення (блок T&L) і комбінування текстур (блок NSR - растеризатор) який завжди підходили тим завдань, які ставили собі розробники ігор. Тому повноцінна підтримка T&L досі нечасто.
З виходом GeForce3 ситуація змінилася докорінно. Технологія nfiniteFX (від двох слів - Infinite і Effects) передбачала наявність двох нових механізмів - Vertex Processor та Pixel Processor, кожен з яких дозволяв за допомогою набору низькорівневих команд створювати всілякі спецефекти, кількість яких (стверджувала nVidia) нескінченно.
Vertex Processor працював на етапі перетворення координат вершин трикутників (вертексів) у придатну для подальшої обробки форму. За допомогою набору команд вертексного процесора розробники могли створювати ефекти освітлення, морфінгу, анімації по ключових кадрах та багато іншого. Щоб створити, наприклад, одну фазу анімації, їм достатньо було вказати початкову та кінцеву координати, а все інше розрахує GPU. Приклад досить умовний, але ідея, гадаю, зрозуміла.
Також вперше 3D-прискорювач міг працювати не лише з полігонами, а й із кривими другого та вищого порядку. Розробнику не потрібно було дбати про розбиття криволінійної поверхні на трикутники, що складають - це зробить Vertex Processor із заданим ступенем точності.
Pixel Processor – подальший розвиток технології NSR (nVidia Shading Rasterizer). Процес накладання декількох текстур (наприклад, для отримання освітлення або обсягу) повністю програмувався, дозволяючи комбінувати до восьми текстур різних ліній конвеєра. Крім того, піксельний процесор міг працювати з текстурами, що задають не тільки колір, але й інші властивості поверхні: здатність, що відображає, наприклад, або рельєф. Особливу користь приносив при імітації водної поверхні - GeForce3 міг моделювати воду в реальному часі, що й демонструвалося на оптимізованих під нього бенчмарках.
Всі перелічені можливості реалізовувалися за допомогою набору команд інтерфейсу DirectX 8, який спеціально розроблявся для 3D-прискорювачів нового покоління. Відеокарти, що не мають повної апаратної підтримки DirectX 8 (а це все, окрім GeForce3), могли реалізовувати вертексні операції засобами процесора, а піксельні операції були недоступні. Інтерфейс OpenGL теж не залишився осторонь: до його складу нещодавно було додано всі необхідні розширення.

Блискавична архітектура пам'яті
Такий переклад ще однієї архітектурної новинки, яка вперше застосована в GeForce3. Lightspeed Memory Architecture (LMA) - набір технологій, покликаних компенсувати невисоку (з технологічних причин) продуктивність шини локальної відеопам'яті. Основний недолік графічних чіпів nVidia, що існували до GF3 - була відсутність балансу між графічним ядром і підсистемою пам'яті. Швидкість у 16-бітних відеорежимах набагато перевищувала швидкість у 32-бітних, оскільки пам'ять просто не справлялася з покладеним на неї навантаженням з видачі величезних обсягів даних. GeForce3 мав кілька механізмів, покликаних збільшити ефективність роботи з пам'яттю.
Crossbar Memory Controller – зовсім новий принцип організації шини пам'яті. GeForce3 мав у своєму складі не один 128-бітний контролер, а чотири 32-бітові, кожен з яких працював незалежно від сусідів. Навіщо це потрібно? Для оптимізації звернень до пам'яті. Якщо чіп запитував два блоки даних по 32 біти, розміщених у пам'яті не поспіль, він отримував їх відразу - від двох контролерів. Чекати, доки спочатку буде прочитане одне 256-бітове слово, а потім – інше, вже було не потрібно.
Подібна архітектура особливо була важлива при обробці деталізованих тривимірних сцен, коли кожен об'єкт складався з безлічі дрібних (розміром у пару пікселів) трикутників. Щоб отримати текстуру для двох пікселів, не доводилося вхолосту проганяти великі обсяги даних по шині.
Крім нового контролера, було використано кеші великого розміру, здатні задовольняти запити працюючих конвеєрів без звернення до шини. Точні розміри кешів та механізми їх роботи не уточнюватимемо, але про їх наявність опосередковано говорить велика кількість використаних транзисторів.
Visibility Subsystem - набір методів підвищення ефективності роботи з Z-буфером. Як відомо, кожен об'єкт на екрані має третю координату - Z, що задає видалення його від спостерігача. Відповідно до неї об'єкти відображуються на екрані, починаючи з найвіддаленіших. Очевидно, деякі з них повністю закриваються іншими і зовсім не видно. Але 3D-прискорювач все одно витрачає на них дорогоцінний час, чесно заповнюючи текстурами. Це явище називається overdraw. Коефіцієнт overdraw у сучасних іграх становить від 1.3 до 3.5 залежно від кількості об'єктів.
Вперше технологію оптимізації Z-буфера застосувала ATI, назвавши її HyperZ. Саме завдяки їй Radeon у високих роздільних здібностях екрану здатний посперечатися з GeForce2. У GeForce3 також застосовувалася така оптимізація. Z-Occlusion Culling – механізм відкидання невидимих ​​об'єктів, виключення їх із постановки на обробку.

Механізм компресії Z-буфера, застосовуваний в Radeon, виявив і в ядрі GeForce3. За твердженнями розробників чіпа, він дозволяв вчетверо зменшувати обсяг даних у цьому буфері.
Зате швидке очищення (Fast Z-clear) використовувалося лише в Radeon. nVidia вважала за непотрібне створювати щось подібне. Втім, їй було видніше.

GeForce 3

Згладжування ще швидше
Найпомітнішим недоліком картинки, що генерується 3D-прискорювачем, можна назвати ефект "сходів" (aliasing) на краях трикутників, з яких складається зображення. Це неминуче явище, пов'язане з тим, що екран монітора складається з прямокутної матриці пікселів, лінії на ньому виходять ламаними. Для того, щоб згладити краї об'єктів, потрібно або підвищити роздільну здатність (тоді пікселі стануть менше), або застосувати метод FSAA (Full Screen Anti-Aliasing), при якому кольори сусідніх пікселів усереднюються по всьому екрану. Усі попередні 3D-прискорювачі використовували механізм суперсемплінгу. Це розв'язання задачі "в лоб": у буфері будується зображення зі збільшеним у кілька разів роздільною здатністю по вертикалі, горизонталі або відразу по обох напрямках. Після цього колір пікселя (семплу) виходить усередненням кольорів сусідніх пікселів на укрупненому зображенні. При цьому виникають два неприємні ефекти: по-перше, зображення помітно "розмазується", по-друге, різко падає швидкість, оскільки фактично 3D-прискорювач працює у вищій роздільній здатності екрану.
GeForce3 використовував два нові механізми. Перший - алгоритм з невимовною назвою Quincunx. Суть - використання не простої 2- або 4-семплової маски сусідніх пікселів, а 5-семплової. Тобто. береться блок 3х3 і результуюче значення обчислюється на основі п'яти, а не дев'яти пікселів цього блоку. У результаті при витратах як на 2-семпловий FSAA ми отримували якість 4-семплового FSAA.
Другий алгоритм – мультисемплінг, який nVidia назвала HRAA (High-Resolution Anti-Aliasing). В його основі лежить генерація того ж зображення з високою роздільною здатністю, тільки колір пікселів, які в результаті все одно зіллються в один, не обчислюється щоразу заново. Якщо група пікселів, яка має бути згорнута в один, лежить усередині трикутника, то вона заповнюється одним і тим же значенням кольору. Якщо ж група лежить на кордоні, то вона розраховується звичайним чином. Тим самим кількість розрахунків при проведенні HRAA скоротилася в кілька разів, а якість покращилася, тому що всередині трикутників текстури не згладжуються.

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

Max Payne

Max Payne


Коментарі (0)