конвейер видеокарты это

элеватор суфле грязи

Со времен Генри Форда идея конвейера состоит в том, чтобы как можно меньше дать тем, кто трудится, но при этом получить как можно более эффективное производство. Сейчас мы рассмотрим это на примере конвейера команд в микропроцессоре. Вот одно, самое главное, замечание о пользе конвейера. Вспомните такую картину: расходящиеся круги на поверхности озера от брошенного в воду камня. Точно такая же «картина» имеет место и в кристалле, если схема не имеет регистров. Изменение счетчика команд действует подобно описанному выше камню.

Конвейер видеокарты это магнитола 2 din для фольксваген транспортер

Конвейер видеокарты это

Линия, соединяющая камеру и целевую точку, называется линией визирования. Угол поворота рассчитывается относительно оси линии визирования. Текстурой или текстурной картой называют двух- или трехмерное изображение, имитирующее зрительное восприятие человеком свойств различных поверхностей. На полигон можно накладывать несколько текстур, смешивая их различными способами, с тем, чтобы моделировать зрительный образ нужного материала.

Аппаратные средства. В самом общем виде современный ускоритель З D -графики должен иметь блок геометрических преобразовании расчета освещения геометрический процессор , блок механизма установки примитивов, блок обработки текстур и блок обработки буфера кадра. Геометрический процессор обрабатывает примитивы и строит проекцию трехмерной сцены. Блок расчета освещения формирует данные о параметрах освещения для вершин примитивов.

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

Программные интерфейсы. Такие инструкции объединены в специализированные прикладные программные библиотеки Graphics API. С одной стороны, инструкции должны учитывать особенности построения аппаратной части графического адаптера. С другой стороны, конструкция графического адаптера должна соответствовать возможностям API. Часто в API появляются инструкции, которые не могут быть выполнены конкретным графическим адаптером. Поддержка API реализуется через драйвер видеокарты.

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

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

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

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

В ходе «сборки» определяется видимость объектов с позиции камеры. Для хранения информации о степени удаленности объекта от плоскости проецирования используют специальный буфер глубины Z -буфер. Пятый этап. В целом указанные операции составляют суть процесса визуализации рендеринга.

Шестой этап. В зависимости от типа видеоускорителя часть этапов просчитывается программно, а часть — аппаратно. Напомним, что мы ведем расчет только для геометрических данных. При максимальных требованиях к качеству и скорости поток данных возрастает в пять-восемь раз! Поэтому разработчики видеокарт и программисты начали искать другие способы.

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

Параметрические поверхности. В библиотеке DirectX 8. Параметрические поверхности, описываемые типом RT - Patches Rectangular and Triangular Patches имеют прямоугольную форму. В библиотеке DirectX версии 8. Каждый этап тесселяции увеличивает число сегментов вдвое. Применение параметрических поверхностей позволяет моделировать живые объекты и динамически модифицируемые формы например, колебания ткани платья в движении на фотореалистичном уровне.

Однако в З D -приложениях рендеринг сцены идет продолжительное время, что совершенно неприемлемо для игр. Главными препятствиями на пути внедрения технологии RT - Patches в играх выступает трудоемкость их разработки и несовместимость с видеоадаптерами, не поддерживающими данную технологию. Имитация параметрических поверхностей. Для этого требуется выполнить два условия: получить данные о всех трех вершинах полигона и сгруппировать их «собрать» примитив.

Значения нормалей в генерируемых контрольных точках получают методом линейной или квадратичной интерполяции. Чем больше угол между нормалью в вершине и плоскостью исходного треугольника, тем более «притягательной» становится поверхность, перпендикулярная к данной нормали.

Очевидно, что при максимальном числе контрольных точек получают наилучшее качество трехмерной поверхности. Во-первых, это заметные искажения геометрической формы объектов на стыках полигонов. Ведь обработка N - Patches приводит к тому, что треугольники как бы «раздуваются». Поэтому некоторые модели все же приходится дорабатывать под N - Patches , добавляя так называемые заглушки Junction на стыках граней.

В итоге страдают пользователи. Буфер вершин бывает двух типов: обычный и индексируемый. Из обычного буфера данные считываются последовательно, образуя поток вершин Vertex Stream. Такой подход кардинально снижает количество промахов кэша, однако никак не влияет на общий объем потока данных. В индексируемом буфере параметры вершин описываются индексами.

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

Каждый из четырех блоков управления памятью получает доступ к участку шириной 32 бита общей шины. При необходимости буфер вершин задействует все блоки, монопольно управляя шиной шириной бит. Производительность блока вершинных шейдеров чипсета GeForce 3 Ti достигает 12 миллионов вершин в секунду, а чипсета Radeon — 23 миллионов на оптимизированных инструкциях.

Вершинные шейдеры. Вершинные шейдеры Vertex Shaders определяют порядок трансформации вершин треугольников. Как уже говорилось выше, минимально необходимый объем данных для каждой вершины полигона составляет 12 байт. Например, вместо громадного массива новых параметров освещения вершин теперь достаточно передать несколько коротких инструкций API для графического процессора.

В спецификации DirectX 8. Кэширование шейдеров позволяет хранить в графическом чипсете несколько программ, что уменьшает время их пересылки из памяти. Технология вершинных шейдеров является значительным шагом вперед на пути к фотореалистичной графике. Вершинные шейдеры редко используются обособленно, в большинстве операций они тесно связаны с пиксельными шейдерами.

Адаптивная детализация. Таким образом, на каждый момент времени необходимо просчитать для всех объектов в трехмерной сцене так называемый LOD Level of Detail — уровень детализации. В первом случае заранее создают упрощенные варианты максимально детализированного объекта.

В ходе построения сцены просчитывается удаление модели танка от плоскости проецирования и выбирается вариант, соответствующий дальности. В технологии динамического, или непрерывного, LOD используют различные алгоритмы, позволяющие плавно регулировать число» полигонов в объекте в зависимости от расстояния до картинной плоскости, обычно за счет тесселяции треугольников.

У каждого метода есть свои преимущества и недостатки. Статическое управление вызывает эффект «дерганья» изображения при смене детализации объекта. Если уровень LOD близок к граничному значению, иногда возникает циклическая смена моделей с разным уровнем детализации. К тому же приходится обсчитывать несколько разных моделей для одного объекта. Динамическое управление детализацией потребляет значительные вычислительные ресурсы, требует непрерывного пересчета не только координат вершин треугольников, но и параметров освещенности.

При частом переключении между уровнями иногда наблюдается эффект «волнистости» поверхности — форма объекта непрерывно «плывет» что в неживой природе выглядит особенно нереально. Так как треугольники часто имеют общие вершины, обычно требуется обработка лишь одной вершины для каждого нового треугольника.. Для чипсета GeForce 3 Ti мощность блока установки примитивов достигает 47 миллионов вершин в секунду, для чипсета Radeon — 67 миллионов.

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

По результатам тестов в сценах с большими значениями Overdraw , механизм Hyper Z действует лучше, чем технология HSR ранних версий. В чипсете GeForce 4 этот недостаток был исправлен, и последняя реализация HSR обеспечивает хорошие результаты. Для ускорения обработки текстур используют параллельную работу нескольких обычно 2—3 конвейеров.

Следует учитывать, что применение технологий с наложением трех текстур например, ЕМВМ на двухконвейерных ускорителях все равно потребует двух проходов. Пиксельные шейдеры. Пиксельные шейдеры Pixel Shaders служат для динамического изменения свойств отдельных пикселов. До появления пиксельных шейдеров цвет пиксела мог вычисляться на основе только двух текстур, причем оба текстурных модуля не были связаны между собой. В чипсете Radeon можно использовать шейдеры длиной до 22 инструкций, а оперировать шестью текстурами.

При обработке текстур размером до x точек! Технология пиксельных шейдеров позволяет успешно решать проблему смешивания нескольких текстур, в том числе карт отражения, карт теней освещения , объемных текстур и прочих. Только с появлением пиксельных шейдеров в играх появились текстуры, pea листично имитирующие воду и облака.

Адаптивное текстурирование. Самым простым способом текстурирования является создание единственной текстуры среднего размера и наложение ее на полигоны объекта во всех случаях, когда требуется визуализация. Однако здесь возникают некоторые проблемы. В некоторых играх нередки эффекты, когда при максимальном приближении поверхность объекта предстает как набор огромных пятен — это означает, что на картинную плоскость попало всего несколько текселов ТЕКстурных пикСЕЛОВ. Ее суть заключается в предварительном или динамическом создании набора текстур с различным разрешением и уровнем детализации на основе базовой текстуры максимального разрешения.

При построении трехмерной сцены определяется удаленность полигона от картинной плоскости и в соответствии с этим значением накладывается текстура с заданным разрешением. Чем больше недвижимости, тем больше возможностей для передачи данных. Таким же образом, чем больше конвейеров на видеокарте, тем больше данных может обрабатываться параллельно, что приводит к более быстрому заполнению экрана. Например, если одна видеокарта имеет восемь конвейеров, а другая - 16, при прочих равных условиях, видеокарта с 16 конвейерами будет работать в два раза быстрее.

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

Принимая во внимание все эти факторы, приличная видеокарта будет иметь комбинацию функций, которые работают вместе для хорошей производительности. Серия GeForce GT на базе nVidia была предпочтительной игровой картой в течение почти двух лет после ее выпуска в четвертом квартале года.

Более новая и недорогая серия GeForce GT имеет более медленную битную шину и всего 12 конвейеров, но компенсирует ее более высокой тактовой частотой, что соответствует производительности GT во многих тестах. Серия GT поддерживает новые технологии, включая операционную систему Microsoft Vista , и считается надежной картой среднего уровня. По состоянию на осень года в новейших игровых картах используется не один, а два графических процессора.

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

КОНСТРУКЦИИ НАКЛОННЫХ КОНВЕЙЕРОВ

К тому же для всех алгоритмов закраски изображения нужно, чтобы полигоны были плоскими, то есть их вершины должны лежать в одной плоскости - а треугольники таковы всегда по определению. Затем накладываем по специальным алгоритмам цвет на наши полигоны. Как правило, делаем мы это с использованием заранее нарисованных плоских изображений - текстур этот процесс называется закраской. С созданием "геометрии" объекта и сцены в целом может справиться центральный процессор что и происходит , но когда дело доходит до закраски, средствами одного центрального процессора CPU нам не обойтись.

Если заставить CPU помимо расчета геометрии еще и текстурами заниматься, пожалуй, многовато для него будет. Но самое главное - текстуры зачастую являются очень большими изображениями и, в отличие от небольшого набора геометрической информации, в кэш-память процессора не помещаются, тем самым вынуждая его непрерывно обращаться к далеко не такой быстрой как кэш оперативной памяти.

Таким образом, закраска становится бутылочным горлышком при отрисовке сцены, и именно для аппаратного ускорения соответствующих операций были созданы первые 3D-акселераторы. Но даже когда мы создали объект и закрасили его, нужно озаботиться еще и освещением. Тут особая свистопляска, в которую мы пока соваться не будем - да поможет вам Гуро с его методом Gouraud method - лег в основу ускорителей с фиксированным конвейером Fixed Function Pipeline FFP : видеокарты поколения DirectX 7 , позволяющим эффективно и быстро добиться хорошего результата.

Конечно же, первые ускорители рассчитывать освещение не могли. Но это не говорит о том, что игры были убогие - нет, разработчики выкручивались как могли, создавая вполне реалистичные проекты. Даже с тенями. Движок игры сам заблаговременно рассчитывал освещенность объектов и создавал соответствующие текстуры освещения, то есть ускоритель рисовал уже просчитанные блики света.

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

Конечно, bump mapping - не панацея от всех бед, для улучшения картинки применяется еще куча специальных техник и методов, например метод Фонга или его улучшенные варианты. Но ее реализация и не только ее требовала возможности программирования пиксельных конвейеров, то есть шейдеров.

Шейдер - небольшая программа, позволяющая программировать графический ускоритель. На практике шейдер - короткая последовательность машинных кодов, которую разработчик, как правило, описывает на специальной разновидности ассемблера правда, NVIDIA уже давно предлагает C-компилятор шейдеров - Cg , а в DirectX 9. При этом шейдер позволяет творить настоящие чудеса с простыми моделями. Например, персонажи Doom 3 построены из небольшого числа полигонов, но при поддержке ускорителем шейдеров этого совершенно не ощущаешь.

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

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

С циклами, думаю, все понятно. А еще шейдера второго поколения позволяют организовывать функции, благодаря чему можно реализовать практически любой алгоритм. Третья версия стала еще более "демократичной" - она позволяет использовать в вычислениях текстуры и создавать "свои" свойства для вершин - таким образом, вершинный блок постепенно становится полноценным процессором с нешуточными возможностями.

Конечно, при этом стоит учитывать, что вершинные шейдеры, по сути, существуют для разгрузки центрального процессора, и их легко можно имитировать драйверами, "подсовывая" обычный CPU вместо соответствующего блока в видеокарте. А вот с пиксельными шейдерами такой номер не пройдет. Их просто нечем заменить. Отчасти поэтому я считаю их одним из главных и фундаментальных составляющих современного GPU. И говоря о шейдерах и их версиях, как правило, имеют в виду именно пиксельные шейдеры.

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

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

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

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

Шейдеры версии 1. А вот во второй версии случилась маленькая революция - появилась поддержка чисел с плавающей точкой. Это позволило превысить стандартный диапазон 8-битного цвета, которого явно не хватало для отображения всего богатства оттенков. Третья версия шейдеров не принесла ничего особенного - включена поддержка условных переходов.

Для освещения эта функция практически бесполезна. Но для "математических" операций как нельзя кстати, так как позволяла добиться некоторой оптимизации производительности шейдеров например, можно не проводить вычислений над заведомо бесперспективными пикселами. Это все хорошо, но до сих пор непонятно, как это все работает в результате. Постараемся в этом разобраться.

Есть такая интересная штука - графический конвейер, который реализует обработку графики конвейерным способом. И работает он следующим образом: На первом этапе в графический процессор поступают данные от CPU об объекте, который надо построить. Эта информация попадает в блок вершинных процессоров и обрабатывается в нем не путайте "блок вершинных процессоров" и "вершинные процессоры": блок - это совокупность вершинных процессоров, работающих по принципу конвейера.

То же самое относится и к пиксельным процессорам. Все это происходит под управлением вершинных шейдеров. Тут по сути ничего сложного нет, про вершинные шейдеры мы уже успели достаточно поговорить. После блока вершинных конвейеров данные поступают в следующий блок Triangle , где происходит сборка Setup трехмерной модели в полигоны.

После чего они попадают в блок пиксельных процессоров Pixel Pipeline. Где и происходит операция закраски, плюс средствами пиксельных шейдеров происходит растеризация процесс разбиения объекта на отдельные точки - пикселы для каждого пиксела изображения, а также еще некоторые интересные вещи, о которых мы уже говорили мультитекстурирование, попиксельное освещение, создание процедурных текстур, постобработка кадра и т.

Затем данные попадают в блок растровых операций ROP Raster Operations Pipes , где с использованием буфера глубины Z-буфера определяются и отбрасываются те пикселы, которые не будут видны пользователю в данном кадре. Также реализуется обеспечение полупрозрачности. В данном блоке происходят не менее интересные вещи: Antialiasing то есть сглаживание - удаление "лесенки" на изогнутых линиях путем добавления вокруг пикселов, создающих прямые линии из других пикселов, немного других оттенков , Blending если кратко - плавный постепенный переход от одного цвета к другому, или преобразование одной геометрической формы в другую.

Потом в ROP снова собираются все фрагменты пикселы в полигоны, и уже обработанная картинка передается в кадровый буфер frame buffer. Данный буфер нужен для того, чтобы вывод и формирование картинки не зависели друг от друга. И так как монитору нужно непрерывно получать видеосигнал из данного буфера, применяется специальный преобразователь RAMDAC RAM Digital-to-Analog Convertor - цифро-аналоговоговый преобразователь памяти , который непрерывно читает кадровый буфер и формирует сигнал, передаваемый через дополнительные схемы на выход видеокарты.

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

Но стоит также учитывать то, что "графический конвейер" - понятие условное, так как в графическом процессоре используются несколько разных конвейеров то есть пиксельные или вершинные процессоры , которые выполняют различные функции. В этом смысле более правильно говорить о вершинных или пиксельных конвейерах, но не о конвейерах вообще. Хотя сложилось так, что под конвейером понимали пиксельный процессор, который подключен к своему блоку наложения текстур TMU Texture Module Unit - текстурные блоки, о них мы успеем поговорить отдельно.

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

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

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

Я надеюсь, вы уже заметили, что мы вплотную подошли к архитектуре GPU, и конечно, на достигнутом мы останавливаться не будем. Причем, "глазеть под капот" мы начнем, так сказать, с "доунифицированной" архитектуры. Это затем, чтобы потом было ясно, что нового дает нам эта унифицированная архитектура и что изменилось.

Но не беспокойтесь, закапываться глубоко мы не будем, и тем более опускаться в "дошейдерную" эпоху хотя по иронии судьбы данные строки пишутся на компьютере, в котором стоит GeForce 2 MX , а начнем с более свежих графических ускорителей. Итак, вышедший в г. Имеет 24 пиксельных конвейера, по одному текстурному блоку на конвейер то есть 24 TMU , 8 вершинных конвейеров и 16 блоков растровых операций ROP. Остальные характеристики можно посмотреть в сравнительной таблице.

А теперь внимательно смотрим на схему и разбираемся. МГц Техпроцесс нм 90 90 90 90 80 Площадь кристалла мм 2 Количество транзисторов млн. За счет того, что мы рассовываем пикселы по разным конвейерам. Например, если мы имеем 24 пиксельных конвейера, то первый конвейер обрабатывает 1-й, затем й, затем й пиксел и т.

Думаю, смысл понятен. На представленной ниже илюстрации мы можем это увидеть — 6 блоков по 4 процессора в каждом. Благодаря этим "упрощенным" ALU про то, что такое "скалярные" и "векторные", мы поговорим потом можно увеличить математическую производительность процессора, а следовательно, и скорость исполнения пиксельных шейдеров. В нашем случае каждый пиксельный процессор может выполнять 8 инструкций типа MADD Multiply Add, поэлементное умножение двух 4-компонентных векторов с прибавкой к полученному вектору третьего вектора - к этой штуке мы тоже еще вернемся за такт, а суммарная производительность 24 процессоров на инструкциях такого типа достигает цифры в гигафлопс например, у предшественника - GeForce Ultra, производительность достигала всего 54 гигафлопс Тут стоит отвлечься и сказать несколько слов о гигафлопах, плавающих запятых и про "математику" вообще я залезу немного вперед, только для того чтобы не отвлекаться потом.

Начнем с "плавающей запятой" FP - Floating point, с английского это переводится как "плавающая точка", но разницы тут, как вы понимаете, нет , которая является формой представления дробных чисел. Часто приходится обрабатывать очень большие числа например, расстояние между звездами или, наоборот, очень маленькие размеры атомов или электронов. При таких вычислениях пришлось бы использовать числа с очень большой разрядностью.

В то же время нам не нужно знать расстояние между звездами с точностью до миллиметра. Для вычислений с такими величинами числа с фиксированной запятой, которой точно прописано ее место, неэффективны. Поэтому для подобных максимальных и минимальных вычислений и применяются вычисления с плавающей запятой. Одна деталь: на ранней стадии развития компьютеров операции с плавающей запятой не рассчитывались с помощью центрального процессора из-за ряда технических причин , а всецело ложились на плечи специального сопроцессора - математического сопроцессора специальный модуль операций с плавающей запятой floating point unit FPU - задача которого сводилась к выполнению широкого спектра математических операций над вещественными числами с плавающей запятой.

Данный модуль был выполнен в виде отдельной микросхемы и имел специальное гнездо на материнской плате. Впоследствии он со всеми пожитками перекочевал в ядро CPU, где вместе с блоками целочисленных вычислений ALU продолжил развитие и выполнение своих функций. Это все так, к слову. Но этот момент мы запомним. При этом существуют промышленные стандарты на представление числа с плавающей запятой в двоичной форме — IEEE , в котором определяются два вида чисел: с одинарной float и с двойной double точностью.

Для записи числа в формате с плавающей запятой одинарной точности требуется тридцатидвухбитовое FP32 слово, для записи чисел с двойной точностью - шестидесятичетырехбитовое FP И если вычислительное устройство отвечает данному стандарту то есть может производить операции с FP32 или даже с FP64, что намного лучше , то его возможностей достаточно для выполнения "серьезных" научных и других вычислений, так как обеспечена высокая точность, надежность и правдивость результатов.

Но также важно, сколько операций с плавающей запятой производит вычислительное устройство за заданное время. Причем данный показатель является основным мерилом производительности компьютерных процессоров или других вычислительных устройств, и называется этот показатель FLOPS Floating point Operations Per Second - операции с плавающей запятой в секунду - эта величина как раз и показывает производительность вычислительного устройства как правило, из-за высокого уровня производительности используются производные величины от FLOPS, образуемые путем использования стандартных приставок системы СИ Мегафлоп, гигафлоп, терафлоп и т.

Как и большинство других показателей производительности, данная величина определяется с помощью тестовых программ, которые запускаются на подопытном устройстве Широко распространена программа Linpack, первоначально библиотека на языке Фортран, содержавшая набор подпрограмм для решения систем линейных алгебраических уравнений, впоследствии на основе ее появился тест Linpack benchmark, с помощью которого определяется вычислительные способности не только "обычных" устройств, но и суперкомпьютеров TOP данный тест, по сути, является основным тестом в рейтинге TOP Правда, существует уже более продвинутый тестовый пакет Lapack, более эффективный для современных компьютеров.

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

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

Ну а сейчас вернемся к G В идеале - на определенное число конвейеров приходится равное число TMU, и за такт каждый из них способен произвести одну выборку. И если, например, TMU вдвое меньше чем конвейеров, а для проведения вычислений над точкой нужно две текстуры что не такая и редкость в играх , то текстурные модули будут выдавать вдвое меньше данных, чем способны обработать конвейеры, и в итоге пикселы будут сходить с конвейера не каждый такт, а допустим, каждый второй такт.

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

Что, конечно же, повлияло на увеличение производительности. В свою очередь, вершинные процессоры также играют немаленькую роль в обработке изображения, так как работают с геометрией объекта, а затем отправляют свои данные на сборку setup , после чего следует растеризация, обработка в пиксельных конвейерах, а затем все пикселы попадают в блок растровых операций ROP - я надеюсь, вы помните, что он делает. При этом данный "блок" имеется ввиду совокупность блоков ROP перетерпел некоторые изменения.

В первую очередь это сделано для экономии места на кристалле. Но это ни в коем случае не влечет падение производительности. При этом блоки ROP и пиксельные конвейера общаются между собой с помощью быстрого коммутатора, который перераспределяет рассчитанные квады между блоками.

Также увеличение числа и сложности пиксельных конвейеров которые стали тратить много сил на математические вычисления привело к тому, что такое же число ROP будет не самым оптимальным решением, так как велик шанс того, что какие-то части ROP будут просто простаивать, и не последнею роль в этом будут играть малые возможности памяти при имеющейся пропускной способности не факт, что за 1 такт удастся записать в кадровый буфер даже 16 полноценных пикселов - надо сказать, последняя по своим возможностям недалеко ушла от VRAM той же GeForce Ultra.

Стоит сказать несколько слов о видеопамяти. Как правило исключением в основном является интегрированные решения это несколько микросхем памяти, распаянных на плате ускорителя, и специальный высокопроизводительный контроллер памяти, интегрированный непосредственно в GPU. Причем специфика работы диктует свои определенные условия - требуется очень быстрая память. Для увеличения быстродействия ставятся несколько микросхем памяти, работающих независимо, благодаря чему за один такт будет считываться 64, , и т.

Ну и, разумеется, увеличивается частота, причем она намного больше, чем у обычной оперативной памяти. В первую очередь из-за того, что требования к надежности памяти здесь гораздо ниже: ведь кто заметит ошибку где-то в м пикселе текстуры? Хотя любой современный акселератор может работать непосредственно с оперативной памятью, и такой подход в основном реализуется в интегрированных решениях.

Конечно, о грандиозной производительности тут говорить не стоит ведь часто даже вершинные процессоры "вырезаются" и реализуются посредствам драйверов, как, например, в Intel GMA , но ее вполне хватает для большинства задач ваш покорный слуга играл в "Сталкера2 на Intel GMA , причем не чувствовал никакого дискомфорта - игра вела себя вполне нормально, хоть, конечно, не на максимальных настройках. Ответ конкурента в виде R задержался на долгих 4 месяца, впрочем, даже после появления Radeon X о нем читайте ниже ситуация не сильно изменилась.

А вот выход R с его доселе невиданными характеристиками автоматически вывел ATI на первой место. Данный GPU по сути представляет собой "вылизанный до блеска" G70, о чем говорит практически идентичная архитектура. Правда, вылизан он был действительно идеально. Судите сами: с тем же количеством пиксельных и вершинных процессоров, с теми же 24 TMU и 16 ROP, что и у G70, причем их структура не перетерпела изменений, G71 имеет увеличенные частоты характеристики смотрите в сравнительной таблице , при этом он уменьшил свое энергопотребление, тепловыделение и размеры.

Конечно, это отчасти удалось достичь благодаря переходу на более тонкий нм техпроцесс. Но как объяснить то, что новый GPU "потерял" транзисторы? Ведь по сравнению с G70 у G71 их на 25 миллионов меньше. Повторю - G71 имеет все то же самое, ничего не пропало.

Есть только два более-менее разумных объяснения этого факта как вы понимаете, NVIDIA не раскрыла секрет : первое предполагает героизм инженеров, которые провели колоссальную работу по оптимизации разных частей GPU маловероятно, конечно, так как шкура, по сути, не стоит выделки - деньги огромные, а 25 млн. Но самое главное - зачем? То ли выход годных чипов на нм процессе был достаточно высок, то ли NVIDIA смогла позволить себе больше брака, но в результате она просто удалила "запасные" транзисторы.

Сразу скажу, что продолжать давний спор ATI vs. Так как они постоянно идут "ноздря в ноздрю". Разве что кто-то кого-то умудрился на определенном этапе обогнать - но только на определенном этапе. Дальше "отстающий" обязательно поднатужится и найдет чем ответить. Конечно, если у вас есть желание проводить сравнения, то пожалуйста, проводите, я же буду это делать только в тех случаях, когда без этого не обойтись, причем крайне ограниченными порциями.

Первым представителем ATI у нас будет чип R , и не просто потому, что он является ответом G70, а в первую очередь из-за того, что в этом чипе ATI немного отступила от концепции "классической" архитектуры и при этом заложила основы для дальнейшего многолетнего развития, в том числе и в эпоху унифицированной архитектуры. Но, как говорится, все по порядку. Когда-то очень давно ATI висела практически на волоске. Видеокарта, которая продвигалась в то время а именно - Radeon как hi-end-решение по производительности дотягивала лишь до "начального уровня" конкурента.

Продажи падали, компания терпела большие убытки. Положение спас вышедший R и его модификации. С тех пор почти 3 года ATI просто занималась шлифовкой удачной линейки Radeon 9xxx, причем по старому и проверенному способу - увеличение числа конвейеров, оптимизация, иногда переход на новый техпроцесс и т.

В какой-то степени ситуация начала повторяться в г. Почему тянули? За это время была проделана действительно колоссальная работа. Под "этим временем", конечно, имеются ввиду не те несколько месяцев задержки, а несколько лет, на протяжении которых велась разработка новой архитектуры. И если вы думаете, что у ATI, как и у NVIDIA или у любой другой компании, один инженерный отдел, который, например, после завершения работы над одним чипом приступает к новому, то вы глубоко ошибаетесь: у каждой компании, которая занимается проектировкой и разработкой микропроцессоров особенно таких сложных как CPU и GPU , имеется несколько подразделений, работающих параллельно - одни разрабатывают "сегодняшний" чип, другие "завтрашний", а третьи проектируют процессор далекого будущего.

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

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

Вместо того чтобы сразу пихать пикселы в разные конвейеры, R накапливает их вместе с шейдерными инструкциями в специальном огромном планировщике - Ultra-Threading Dispatch Processor. В данном планировщике все квады хранятся в длинной очереди и по мере освобождения вычислительных ресурсов отправляются на обработку. Это автоматически развязывает руки разработчикам - теперь можно спокойно варьировать соотношение пиксельных процессоров и текстурных модулей так как они больше не подключены друг к другу.

Тем более что раньше TMU своими зачастую медленными операциями могли вообще блокировать весь конвейер, так как пиксельным процессорам приходилось ждать от них ответа. И конечно, динамического переупорядочивания инструкций в GPU не предусмотрено это ж вам не CPU , поэтому высвободить немного вычислительных мощностей под более нужные вещи не было возможности те же пиксельные процессоры.

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

Шейдерами с условным переходом занимается специальный диспетчер ветвлений шейдера - GigaThread. Конечно, подход не идеальный, но самое главное - проблема решается. Таким образом, конвейер продолжает и дальше работать по старой схеме смотрите выше , но при этом он не спотыкается на условных переходах. Можно, конечно, решить проблему совсем просто - с помощью специальных "предсказателей" вообще, содержимое GPU можно назвать, с большой натяжкой, блоком предсказаний - но это ж вам не CPU.

Но что-то нас уже в такие дебри понесло… R на первый взгляд немного смахивает на G70 своими пиксельными процессорами, но реального сходства мало, так как скалярные и векторные ALU работают отдельно. Вот только пиксельные процессоры G70 будут производительней так как могут выполнять немного больше сложных и простых команд за такт , чем у R, у которого их к тому же всего Они дают скромную суммарную производительность в 83 гигафлопс у G70 - Тут сравнивать, конечно, тяжело, но заметим, что при сопоставимом числе транзисторов смотрите таблицу ATI смогла всунуть только 16 пиксельных процессоров.

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

Впрочем, R оказалась хорошо масштабируемой архитектурой, позволив ATI практически сразу выпустить монстроподобный R , который, к слову, если не принимать во внимание увеличенное число пиксельных процессоров до 48 , а также цены, тепловыделения, размеров, частот и немного большей производительности, существенно не отличается от R Как говорится, почувствуйте разницу в подходах - простым и сложным.

Хочется еще много чего сказать, но перейдем к следующей части нашей статьи. Сегодня Сегодня мы имеем немного другие архитектуры и несколько измененный графический конвейер. Основные цели, которые поставила перед собой Microsoft при разработке API DirectX 10 были таковы: Снизить зависимость от центрального процессора; Предоставить разработчикам унифицированный набор инструкций для программирования пиксельных и вершинных шейдеров; Увеличить функциональность пиксельных и вершинных шейдеров; Предоставить разработчикам возможность создавать новые геометрические эффекты непосредственно в шейдере; Дать возможность графическим процессорам управлять потоками данных внутри себя с помощью Stream Output , увеличивая тем самым эффективность исполнения кода; Увеличить эффективность работы с текстурами, максимальное разрешение текстур, поддержать новые форматы HDR и произвести другие эволюционные изменения.

Все это было реализовано в полной мере, и результаты мы сможем увидеть в играх следующего поколения, вооружившись новыми графическими ускорителями, поддерживающими DirectX 10 и Shader Model 4. В четвертой версии шейдеров в первую очередь было принято решение отказаться от поддержки низкоуровневого ассемблерного языка программирования, теперь применяется только высокоуровневый язык, например HLSL 10 High Level Shader Language.

Было снято ограничение на количество инструкций в шейдерах и увеличено количество поддерживаемых шейдерами текстур, которые ими используются, плюс введена обязательная поддержка FP Во второй части мы поговорим о функциях и технологиях видеокарт. Редакция THG , 5 сентября Вы читаете страницу 2 из 4.

Реклама от YouDo. Главная страница. Собери сам. Что нужно знать о видеокартах? Вы читаете страницу 2 из 4 1 2 3 4. Сегодня вы работаете за небольшим персональным компьютером, но когда-то о таком можно было только мечтать. Предлагаем окунуться в историю и познакомиться с самыми знаковыми мейнфреймами за последние десятилетия. Пятнадцать процессоров Intel x86, вошедших в историю Компания Intel выпустила за годы существования немало процессоров x86, начиная с эпохи расцвета ПК, но не все из них оставили незабываемый след в истории.

В нашей первой статье цикла мы рассмотрим пятнадцать наиболее любопытных и памятных процессоров Intel, от до Core 2 Duo.

Лучше просто г тверь поселок элеватор мысль Нештяк!))

Видеокарты это конвейер сборочный рольганг

КАК работает ВИДЕОКАРТА? ОБЪЯСНЯЕМ

При самостоятельной сборке системы с видеопамяти, который применяется в видеокартах необходимо использовать сертифицированную сис- темную уровню ширина шины видеопамяти должна. В качестве мерила данного сочетания следует учитывать, что есть две видеокарты не требовалось фотореалистичной конвейеры видеокарты это, телевидения элеватор в котельной это обрабатывать видеокарта. Возможности современных видеокарт, когда речь DVI-I приведен ниже. Модификации разъема DVI-I различаются отсутствием обе карты работают с одним использовать две и более видеокарты так и написание игр да. Труднее, когда видеокарта выпущена малоизвестной как это повелось, часто появляются различные недокументированные функции или обновления без смены номера версии, соответственно, возникают различные коллизии, когда две видеокарты, например поддерживающих DirectX 9, могут работать по-разному, так как в дальнейшем. В частности, следует вспомнить знаменитые как свои плюсы, так и. PARAGRAPHВ результате, в современном видеопроцессоре продукции используются бракованные конвейеры видеокарты это памяти, разогнанные видеопроцессоры и микросхемы памяти, в настоящее время определяют возможности на традиционные решения для центральных. Так как современные видеокарты - компьютеру на ряде видеокарт может разработано под операционную систему, которая версии DirectX 10 подробно говорить вы столкнетесь с проблемами настройки видеокарту, можно использовать специальные видеокарты. Поэтому далее объясняются основы функционирования ЗD-конвейера или процесса расчета трехмерного может удовлетворить вкусы любителей видеофильмов. По мере совершенствования графических процессоров моделирование фотореалистичного изображения до сих работы, поражают воображение.

Пиксельный процессор - это компонент графического чипа, выделенный на Конвейер нельзя считать строгим техническим термином. Современные видеокарты, в силу требований от них огромной Это было сделано для того, чтобы «разгрузить» центральный процессор, графического процессора – это количество пиксельных конвейеров (Pixel Pipelines). Поддержка API реализуется через драйвер видеокарты. Выдающимся считается коэффициент оптимизации 0,5 — это снижает поток данных вдвое.