Как настроить смартфоны и ПК. Информационный портал
  • Главная
  • Советы
  • Linux для начинающих: графическая подсистема. Аппаратная графическая подсистема будущего

Linux для начинающих: графическая подсистема. Аппаратная графическая подсистема будущего

Не будем в очередной раз вспоминать пословицу о том, что «все новое это», а просто попробуем логическим путем рассудить, к чему придут ускорители трехмерной графики в ближайшем и (даже) более-менее отдаленном времени. Рассуждать будем не просто, а по частям. Итак.

Внешние интерфейсы и вывод изображения

Нет сомнений, что через некоторое время все системы отображения (мониторы, проекторы и пр.) будут подсоединяться к ускорителю по цифровому интерфейсу. В начале это будут плоды эволюции специализированного интерфейса (DVI), но позже, вполне логично ожидать постепенное замещение специализированной цифровой последовательной шины ее аналогом общего назначения, например одним из потомков USB или FireWire. Почему я в этом уверен?

Во-первых, разрешение и тем более частота кадров отображающих устройств не будут расти столь же стремительно, как вычислительная мощь ускорителя. Этому есть несколько причин, первая из них - ограниченное разрешение глаза, для которого изображение с 3..4 тысячами точек по горизонтали уже воспринимается (при условии разглядывания целиком) как монолитное и бесконечно детализированное. Во-вторых, кадровая частота выше 150..200 смен изображений в секунду не имеет смысла даже при условии отсутствия сглаживания движущихся объектов: почти десятикратное превосходство над кинематографической частотой обеспечит сглаживание движения за счет инерции восприятия в глазу, который невольно будет накапливать, и усреднять по нескольку кадров подряд. Разумеется, возможны варианты - такие как панорамные и сферические дисплеи, или стереодисплеи, требующие две картинки для разных глаз, но все они, так или иначе, могут довольствоваться разрешением порядка десяти тысяч точек по горизонтали. Дальнейшее увеличение разрешения возможно, но не видится приоритетной задачей - гораздо больше сил (уже сейчас) тратится на повышение реалистичности картинки, чем на ее сглаживание.

Итак, медленный (относительно) рост разрешения и кадровой частоты позволит в скором времени обычным шинам общего назначения служить каналом для передачи информации на монитор и другие устройства отображения. Почему это важно? Потому что это очень удобно. Представьте себе, что в каждый из 6 USB портов вы можете подключить (при желании по дисплею). Представьте, что самый элементарный фотоаппарат или КПК может быть при желании подсоединен к проектору или монитору через тот же интерфейс, через который вы осуществляете синхронизацию и передачу данных на PC. И т.д. и т.п.

В более отдаленном времени возможность соединять «все-со-всем», пользуясь одними и теме же интерфейсами (+ открытые протоколы передачи данных разных форматов) откроет прекрасные перспективы, причем не только в области отображения визуальной информации…

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

В этом же ключе, логично ожидать появление дисплеев и проекторов со встроенными радиоинтерфейсами (уже существуют первые модели проекторов с разновидностями 802.11). Очевидно что все будущие ПК, КПК, ноутбуки и прочие устройства будут включать в себя те или иные беспроводные интерфейсы и передача изображений на ближайший экран, без какого-либо проводного соединения очень удобна, как в бизнес, так и в бытовых или персональных применениях. Кстати, о дисплеях:

Дисплеи и другие системы отображения

Обсудим вопрос демонстрации передаваемых с ускорителя картинок. Во-первых, очевидно, что в ближайшем будущем практически все дисплеи станут плоскими и будут использовать ту или иную технологию плоских панелей. Пока мы не говорим о проекторах, но и они в большинстве своем используют в наше время не сканирующие вакуумные трубки, а работающие на просвет миниатюрные высокотемпературные ЖК матрицы или матрицы с массивами микромеханических зеркал. Разрешение и размер дисплеев подрастут, но ничего особенно нового здесь ждать не приходится - слишком большие панели не удобны и даже вредны - они занимают много места и их не просто транспортировать (вес, хрупкость). Поэтому, размеры более 20 дюймов по диагонали по-прежнему будут сопутствовать только специфическим нишам. Идеальным решением для больших размеров являются те или иные разновидности проекторов - в паре с очень компактными экранами они могут обеспечивать изображение разных размеров в достаточно широких пределах и при этом являются сами по себе вполне компактными устройствами.

Итак, персональный дисплей будущего это плоская панель размером от 17 до 20..24 дюймов с разрешением порядка 3..4 тысяч точек по горизонтали и предельной физической частотой обновления информации около 100 кадров в секунду. Далее, в игру вступают различные проекторы и составные панели. Первые получат более высокое разрешение и яркость, опять таки до 3..4 тысяч точек - что не только позволит полноценно отображать на них фильмы очень высокого качества, но и потребует новых стандартов для съемки, сжатия и передачи движущегося изображения - даже передовые HDTV стандарты далеки от таких цифр. Именно в этой области и произойдет наиболее значимый прогресс, в плане качества захвата, хранения и передачи картинки. Но мы не должны забывать, что основная тема данной статьи - трехмерная графика в будущем.

Во-вторых, очень широкое, если не повсеместное, распространение получат панели способные создавать объемное изображение без применения дополнительных средств, таких как специальные стерео очки. Здесь могут дать результат различные технологии. В отдаленном будущем вероятны голографические ЖК матрицы (я лично знаком с бывшими сокурсниками занятыми такими исследованиями для компании LG), способные воспроизводить больше характеристик захваченного потока света, чем традиционные системы и давать объемную, цветную(!) голографическую картинку. Такие решения потребуют существенно большего разрешения матрицы и специальной формы представления данных, а потому не следует ожидать их появления в коммерческих количествах в ближайшие пять лет. Возможны и какие либо гибридные решения, в которых дифракционные динамически настраиваемые структуры разводят свет от матрицы для правого и левого глаза, следя при этом за положением головы и обеспечивая оптимальную глубину зоны устойчивого восприятия стереоизображения. И, наконец, наиболее вероятные уже в ближайшее время системы с простым разделением изображения для правого и левого глаза, на основе одной ЖК панели. Такие системы уже доступны коммерчески. Очевидно, что в ближайшее время появятся реконфигурируемые матрицы, способные работать как в режиме разделения изображения на два глаза, так и в режиме обычной плоской матрицы с широкими углами обзора - чисто технически это не представляет никакой трудности.

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

Системная шина, шина памяти и передача данных

То, что системные шины вскоре все станут последовательными, уж не является секретом для большинства читателей. Проприетарные соединения между компонентами чипсета, HT, PCI-Express и даже LPC четко продемонстрировали реализацию уже не новой тенденции на перевод всего и вся на последовательные сигнальные каналы. Однако давайте прикинем, как конкретно этот процесс отразится на ускорителях. В ближайшее время появятся ускорители с PCI-Express интерфейсом с пропускной способностью 16х - именно такой слот для графических и других высокопроизводительных PCI-Express карт будут иметь первые PC. Однако гибкая возможность масштабирования этой шины позволяет пойти далее.

Представьте себе, что в чип заранее встроены 32 канала PCI-Express с возможностью динамической конфигурации. Во-первых, как только появятся производительные рабочие станции (и чипсеты) со слотами конфигурации 32х, можно будет сделать профессиональную карту на основе того же чипа. Во-вторых, можно сделать серверный вариант карты с 8х (типичный серверный разъем), и в сервер может быть одновременно установлено несколько таких карт. И, наконец, при необходимости можно сделать многочиповое решение, просто соединив двое или несколько чипов тем или иным образом, с участием вторых 16 каналов.

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

А теперь самое интересное - а, собственно, почему последовательная шина памяти и последовательная системная шина должны быть разными? Рано или поздно мы можем ожидать схожую, при желании совместимую, а возможно и просто четко совместимую сигнальную технологию, которая позволит просто снабдить чип 256-ю (или скорее 256+32+8 - догадайтесь почему;-)) высокоскоростными последовательными каналами и, в зависимости от воли разработчиков конкретного продукта, раздавать их на общение с системой (процессором и чипсетом), на общение с локальной памятью, на общение с другими чипами в многочиповом решении, а также на различные интерфейсы ввода и вывода, например, один канал можно отдать на чип захвата видеосигнала. Изначально каналы равноправны, и каждый из них, например, может занимать 4-ку соседних выводов чипа. Это позволит расположить прочие элементы на плате ускорителя так, как того пожелает душа разработчика, а затем, не особенно задумываясь, протянуть к ним каналы с ближайших выводов чипа.

Очевидно, что подобный подход - обширный массив одинаковых и гибко распределяемых каналов передачи данных, имеет и более глобальные перспективы. Рано или поздно (скорее рано - см. материалы по HT) и системная логика (чипсеты) и процессоры тоже придут к подобной схеме, позволив в итоге создавать совершенно фантастические топологии вычислительных систем, как наборов активных компонент, соединенных различными по числу каналов шинами - словно игрушки собранные из детского конструктора «Лего».

Архитектура и программируемость ускорителя

Происходящая унификация хорошо заметна. Например, вершинные и пиксельные блоки (далее процессоры) внутри ускорителя уже сейчас имеют унифицированную систему команд и схожую программную архитектуру (отличается число регистров, но не методы работы с ними). Но, еще до общей унификации, нас ждет появление третьего типа процессоров - процессор генерации вершин или, иначе, «тесселяции». И, соответственно новый тип шейдеров - тесселяционные шейдеры. Его место в графическом конвейере - перед вершинными процессором:


А так же, очень вероятно появление отдельного процессора для выборки, распаковки, фильтрации и генерации текстур.

Основная задача блока тесселяции, на основе гибкой программы (шейдера тесселяции, TS) создавать новые треугольники и вершины, и затем, передавать их вершинному шейдеру (VS) на уже привычную нам трансформацию и освещение. Этот подход позволит наиболее общим путем переложить на ускоритель построение примитивов более высокого порядка, нежели треугольники, например гладких сплайновых поверхностей. В первую очередь, наличие такого процессора позволит увеличить сложность сцен и реализовать адаптивную детализацию моделей и окружения без дополнительной нагрузки на центральный процессор и системный канал передачи данных. Например, хорошо известная разработчикам симуляторов задача построения ландшафта с адаптивной детализацией в данный момент не может быть решена эффективно только на ускорителе. Любые решения выглядят как компромисс, а с появлением тесселяционного процессора позволит генерировать адаптивное представление ландшафта на лету, не загружая системный процессор или шину.

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

Между процессорами расположены очереди данных, отмеченные на рисунке стрелками. Они позволяют накапливать (а по возможности и кэшировать для повторного использования) рассчитанные одним процессором для другого данные, и таким образом избежать задержек, позволив процессорам работать параллельно и в должной степени асинхронно. Именно наличие таких четких однонаправленных потоков данных позволяет эффективно распараллеливать задачи по построению изображения и одновременно именно этот факт накладывает на шейдеры существенные ограничения - например, они не могут иметь произвольный доступ к данным соседних примитивов или пикселей, т.к. они могут рассчитываться параллельно или еще не быть рассчитанными. Впрочем, обладая возможностью, так или иначе, записать поток данных с выхода шейдерного процессора и снова подав его на вход, мы можем (так сказать «в несколько проходов») реализовать более сложные алгоритмы, включая произвольный доступ, пускай и не самым удобоваримым путем.

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


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


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

Итак, появляется множество возможностей. Не только альтернативные методы фильтрации, выбора и генерации вершин и пикселей, но и такие варианты как шейдер программирующий новый метод полноэкранного сглаживания, и даже шейдер отвечающий за динамическое перераспределение ресурсов (вычислительных и памяти) ускорителя, т.е. некая «операционная система». Понятно, что самому программисту крайне тяжело управлять всей коммуникацией блоков такого чипа, но это и не надо - этим будет заниматься API. Программист будет формулировать задачу в виде набора шейдеров различного назначения (фактически - функций на некоем языке программирования высокого уровня) и описания структур передаваемых и получаемых или параметров, а следовательно, и того, в каком порядке данные будут проходить через эти шейдеры. Остальное берет на себя API - DirectX или OpenGL будущего. API компилирует шейдерный код в машинные инструкции, оптимизирует их, настраивает взаимодействие очередей и блоков, распределяет кэш и другие ресурсы. Например, встает логичный вопрос - сколько процессоров отдать под шейдер А а сколько под шейдер Б, так, чтобы вся система была максимально сбалансирована и ни одного миллиметра силикона не простаивало без дела. Ответ на этот вопрос не однозначен. Можно грубо указывать важность шейдера в тех или иных единицах, еще при написании его на языке высокого уровня, а можно и создать API анализирующий по ходу построения кадров значения внутренних счетчиков производительности в чипе и динамически перераспределяющий процессоры по мере исполнения приложения каждую секунду или около того.

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

Новые и улучшенные подходы к построению изображения

Разумеется, получив в свое распоряжение столь гибкую систему, мы не можем не обратить свой взгляд к альтернативным методам построения изображения. Новые примитивы, например объемные (3D) полигоны с заданным картой смещения рельефом (с точностью до одного пикселя!), шары или гладкие поверхности (на сей раз истинно гладкие, а не аппроксимированные треугольниками). И, конечно, мягкие тени: станет возможна трассировка лучей для расчета т.н. «глобального» освещения, в то время как закраска идет традиционным методом. Хотите? -Пожалуйста. Комбинированные методы с использованием Radiosity? - Нате. Да, и на худой конец, может быть легко реализована «стопроцентная» старая добрая обратная трассировка лучей. При условии, что сцена, пусть даже описанная примитивами достаточно высокого уровня, будет полностью размещена в локальной памяти ускорителя. Тогда она сможет интерпретироваться им практически без участия процессора.

Несомненно, важным видится сглаживание движущихся объектов. Именно оно отличает реалистичную кинематографическую графику от игровой аппаратной, и именно благодаря ему, мультфильмы с использованием компьютерных персонажей смотрятся при 25 кадрах в секунду куда как лучше, чем всем лучшие шутеры при 120. Подход к сглаживанию должен быть сбалансированным - грубая сила, выражаемая в расчете N кадров вместо одного и последующем их усреднении не допустима. Грамотное использование пиксельных, текстурных и специальных сглаживающих шейдеров вкупе с информацией о скорости каждой конкретной точки позволит создать очень аккуратно и качественно сглаженные движущиеся предметы, нарисовав при этом только одно (!) изображение за один проход. Ключ к этому - гибкая архитектура ускорителя описанная мной.

Толи еще будет, ой-ой-ой

Интересно, что вопросы питания, энергопотребления и теплорассеивания беспокоят конструкторов современных PC куда как сильнее вопросов надежности. Следует ожидать новых форм факторов для ускорителей, в виде некоего похожего на процессорный модуля (картриджа), такого, каким был в свое время процессор Pentium II или, например, такого, каким сконструирован ныне Itanium. Металлическая коробка, снизу контактный разъем, вертикальная установка оным на плату. Внутри, чип ускорителя и память. Интерфейсы перенесены на материнскую плату - все данные, включая захват видео и результирующую картинку, идут в цифровом виде по общей системной шине.

Итоги

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

Итак, ставка сделана, придет время, и я смогу ответить, насколько процентов я был прав, а насколько ошибался;-)

Ждать не так уж и долго.

Приложение

Вопрос, чем эта штука отличается от CPU?

Ответ 1 - ориентацией на эффективную параллельную обработку достаточно простых потоков данных, наличием специализации.

Ответ 2 - если рассуждать строго, то чем дальше, тем практически ничем.

Очень сложно сказать, кто первый придет к логической точке сращивания - или очередной CPU от Intel научится программно рассчитывать изображения уровня современных компьютерных мультфильмов (на что надо не так уж много - ~20 лет) или очередной ускоритель от NVIDIA или ATI научится исполнять Microsoft Windows или (на худой конец) один из клонов Linux. Может быть и такое.

Считается, что прадедушкой современной видеокарты является адаптер MDA (MonochromeDisplayAdapter), представленный в 1981 году для IBM PC. Видеокарта того времени имела 4Кбайт видеопамяти, работала только с текстовой информацией и с разрешением 720х350 точек и могла выдавать на дисплей 25 строк по 80 символов в строке. Цвет букв зависел от типа монитора: белые, изумрудные или янтарные, а сами буквы могли выводиться в обычном, подчеркнутом, инверсном (темные на светлом фоне) и мигающем режимах. Дальнейшее развитие MDA было выпущено в 1982 году известной тогда компаниейHerculesи называлосьHerculesGraphicsController(HGC). «Геркулес» отличался отMDAспособностью выводить текст в 132 колонки и 44 строки. Но и эта видеокарта не позволяла работать с графикой. Стоит заметить, что длина карты HGC была более 30 см.

Рисунок 7. Видеоадаптер HGC

И только с выходом видеоадаптера CGA (ColorGraphicsAdapter), который стал основой для последующих стандартов, появилась возможность работать с цветной графической информацией в разрешении 320х200 (4 цвета) и 640х200 (монохромный режим), при этом объём памяти видеокарты уже равнялся 16 Кбайт. Все упомянутые выше карты для соединения с ПК использовали шинуMultibus.

Следующий стандарт для видеокарт – EnhancedGraphicsAdapter(EGA), разработанный в 1984 году, позволял при разрешении 640x350 работать с 16 цветами из 64-цветной палитры одновременно. Ёмкость видеопамяти составляла теперь от 64 до 256 Кбайт, а также была заявлена совместимость с CGA и MDA. Начиная сEGA, видеоадаптеры начали использовать «широкую» шинуISA.

Все описанные выше видеокарты подключались к монитору через 9-контактный разъём и передавали информацию в цифровом виде. Только с выходом адаптера стандарта MCGA (MultiColorGraphicsAdapter– многоцветный графический адаптер) произошёл переход на аналоговый сигнал, так как палитра была увеличена до 262144 цветов (по 64 оттенка на каждый из базовых цветовRed/Green/Blue). Разрешение экрана, выдаваемое MCGA при работе с текстом, было 640х400 с 256 одновременно отображаемыми цветами, для графических приложений – 320х200 точек. Разъём для подключения к монитору приобретает привычный для нас вид – 15-контактный «D-Sub». Еще одна особенностьMCGA– точка на экране теперь сталаквадратной (раньше она была прямоугольной). Это означает, что окружность, выведенная на экран, будет действительно окружностью, а не эллипсом.

Следующим витком эволюции компьютерной видеоподсистемы является VGA (VideoGraphicsArray– графический видеомассив), который появился в 1987 году. Адаптеры VGA уже поддерживали разрешение 640х480 и 256 цветов (из палитры в 262144 цвета), объём памяти составлял 256-512 Кбайт, а соотношение сторон экрана равнялось привычным сейчас 4:3.

И наконец, в 1991 году появляются первые адаптеры SVGA (SuperVGA), позволяющие работать при разрешении 800х600 и 1024х768 точек, количество отображаемых цветов увеличилось до 65536 (HighColor) и 16,7 млн. (TrueColor). Также появляется возможность пользователю задать частоту обновления экрана монитора – до этого момента она была жёстко привязана к определённому значению. Память видеоадаптеров SVGA была уже более 1 Мбайт.

С развитием графических оболочек операционных систем (например, Windows) видеокарты взяли на себя часть вычислений по окончательному выводу изображения на экран, которые обычно производил центральный процессор: перемещение окон, рисование линий, шрифтов и другие. С появлением трёхмерных игр видеокарты обзавелись 3D-акселератором, который сначала имел вид отдельной карты, вставляемой в свободный разъём на материнской плате – до этого момента видеоадаптер позволял работать только с двухмерной графикой (2D). Акселератор, как правило, включался в разрыв кабеля между видеокартой и монитором и брал на себя видеовывод, когда этого требовала выполняющаяся на компьютере программа. Далее, с развитием технологий производства полупроводников, графический чип стал содержать в себе все необходимые блоки, отвечающие как за 2D-, так и 3D-графику.

Именно тогда доминирующая на тот момент компания 3dfx (все активы 3dfx после банкротства перешли к NVIDIA) представляет технологию SLI (ScanLineInterleave– чередование строчек), благодаря которой появилась возможность объединить две подобные видеокарты с шиной PCI для формирования изображения методом чередования строк, что увеличивало быстродействие графической подсистемы и разрешение экрана.

Рисунок 8. Спаренный видеоускоритель (SLI)

На рисунке 7 показана видеокарта Quantum3D ObsidianX-24 на базе двух Voodoo2 в режиме SLI

Действительно, всё новое – это хорошо (в данном случае – очень хорошо) забытое старое: спустя почти 15 лет NVIDIA возродила SLI в видеокартах для шины PCIe.

Рисунок 9. Видеокарта с шиной AGP

Ближе к концу 90-х прошлого века видеоадаптеры получили собственную шину – AGP (AcceleratedGraphicsPort– ускоренный графический порт) и приобрели черты современных видеокарт: объём локальной видеопамяти достиг десятков мегабайт, появилась возможность выводить видеоизображение на ещё один приёмник, например, телевизор. На рисунке 8 изображена видеокарта на базе SiS315 с шиной AGP.

Практически все современные видеокарты состоят из следующих основных компонентов:

    Видеопамять.

    Набор микросхем, (видеочипсет).

    Видео BIOS.

    Тактовые генераторы.

Принцип работы видеокарт (при формировании двумерного изображения) не сильно отличается от принципов, на которых была основана работа адаптера CGA. Центральный процессор компьютера формирует изображение (кадр) в виде массива данных и записывает его в видеопамять, а конкретно - в кадровый буфер. После этого видеочипсет последовательно, бит за битом, строка за строкой, считывает содержимое кадрового буфера и передает его RAMDAC (цифро-аналоговый преобразователь данных, хранящихся в памяти). Он в свою очередь формирует аналоговый RGB-сигнал, который вместе с сигналами синхронизации передаётся на монитор. Сканирование видеопамяти осуществляется синхронно с перемещением луча по экрану монитора, сигналы синхронизации вырабатывают встроенные в видеокарту тактовые генераторы.

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

Дисплеи бывают монохромные (то есть одноцветные - черно-белые, с желтым или зеленоватым оттенком) и цветные. Кроме того, различают алфавитно-циф- ровые и графические дисплеи. У алфавитно-цифровых дисплеев группа пиксе- лов, занимающая небольшую прямоугольную область экрана и используемая для размещения изображения одного символа, образует знакоместо. Например, для растра размером 600 х 480 область, занимаемая знакоместом, образуется груп- пой 8x8 пикселов. Изображение символа формируется примерно так же, как из группы точек на почтовом конверте получается изображение какой-либо цифры почтового индекса адресата. Подчеркнем, что у алфавитно-цифровых дисплеев не существует возможности работать с отдельным пикселом. Информация вы- водится на экран сразу целым знакоместом, символом. Поэтому такие дисплеи могут использоваться только для вывода различного рода текстов. Рисунки, графики, чертежи, картинки не могут быть выведены на алфавитно-цифровые дисплеи. В настоящее время алфавитно-цифровые дисплеи используются для управления различного рода серверами, то есть там, где отображение графики не является обязательным.

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

Основными техническими характеристиками дисплеев являются:

Принцип действия;

Размер экрана по диагонали;

Разрешающая способность;

Размер «зерна» экрана;

Частота регенерации;

Форма экрана;

Класс защиты.

По принципу действия выделяют дисплеи на электронно-лучевой трубке (ЭЛТ, или CRT - от Cathode Ray Terminal, т. е. терминал на катодно-лучевой труб- ке), жидкокристаллические (ЖК, или LCD - от Liquid-Crystal Display, то есть жидкокристаллический дисплей) и плазменные дисплеи.

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

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

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

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

Самыми дорогими в настоящее время являются плазменные мониторы, которые обладают высоким качеством формируемого изображения и могут иметь значи- тельные размеры - до 1 м и более по диагонали при толщине всего 10 см.

Перспективным направлением в развитии устройств отображения данных яв- ляются дисплеи, построенные по технологии ОLЕD (от Organic Light Emitting Diodes - органические светодиоды).

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

Размер экрана дисплея по диагонали определяется в сантиметрах или дюймах. В настоящее время выпускаются мониторы с экранами от 9 до 42 дюймов или от 23 до 107 см. Наиболее распространенными являются экраны размером 15, 17, 19 и 21 дюйм. Для стандартных целей достаточно 17-дюймового экрана. При большом объеме работы с графикой желательно выбирать 19- или 21-дюймовые мониторы.

Важной характеристикой дисплеев является разрешающая способность экрана, определяющая степень четкости изображения. Разрешающая способность зави- сит от количества строк на весь экран и количества пикселов в строке. В настоя- щее время существует несколько стандартных разрешений, в частности: 800 х 600, 1024 X 768,1152 х 864,1280 х 1024,1600 х 1200,1600 х 1280,1920 х 1200,1920 х 1600, 2048 X 1536. Здесь первая цифра определяет количество пикселов в строке, а вто- рая - количество строк на экране. Возможное разрешение существенно зависит от фактического размера экрана. Например, для 17-дюймового монитора стан- дартным считается разрешение 1024 х 768, а максимальным может быть разре- шение 1600 X 1200.

Отметим, что у ЭЛТ-мониторов разрешающая способность лучше, она может достигать 2048 х 1536, в то время как у лучших ЖК-мониторов она пока значи- тельно ниже - до 1280 х 1024. Попутно заметим, что у телевизионных приемни- ков наилучшим на сегодняшний день считается разрешение 1024 х 768.

Качество изображения определяется не только разрешающей способностью, но и так называемой зернистостью экрана. Зернистость разными производителями определяется либо как фактический линейный размер пиксела, либо как рас- стояние между двумя соседними пикселами. В настоящее время этот параметр у большинства мониторов равен 0,18-0,28 мм. Чем меньше размер зерна, тем лучше, но и дороже монитор.

Частота регенерации (обновления) - это параметр, который показывает, сколь- ко раз в секунду обновляется изображение на экране дисплея. Без такого обнов- ления невозможно формирование нормального зрительного восприятия телеви- зионного изображения, а также невозможна передача движений. Если частота регенерации меньше 60 Гц, то есть если обновление происходит менее чем 60 раз в секунду, то появляется мерцание изображения, что отрицательно сказывается на зрении. В настоящее время частота регенерации большинства мониторов со- ставляет 60-100 Гц, а стандартной считается частота 85 Гц.

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

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

Для создания изображения на экране дисплея необходим еще один компонент компьютера, который называют видеоплатой, видеокартой или видеоадапте- ром. Если быть точным, то это устройство следует называть графическим кон- троллером. Именно видеоадаптер определяет разрешающую способность монито- ра и количество передаваемых цветовых оттенков. Видеоадаптер вместе с дис- плеем образуют видеоподсистему компьютера. В настоящее время в основном используются адаптеры типа SVGA (от Super Video Graphics Array - супервидео- графический массив), способные передавать 16,7 млн. цветовых оттенков.

Для обеспечения такого количества цветов, а также хорошего разрешения ви- деоадаптеры содержат собственную видеопамять довольно большого объема - 64 Мбайт и выше. Построение высококачественных изображений и, тем более, какие-либо их преобразования, как правило, требуют выполнения большого ко- личества математических операций. Чтобы освободить процессор компьютера от действий с изображениями и тем самым существенно ускорить их построение, а также повысить общую эффективность работы компьютера, современные ви- деоадаптеры берут на себя значительную часть этих операций. При этом часть работы по формированию изображения возлагается на аппаратные средства адаптера - микросхемы видеоускорителя, которые могут входить в состав ви- деоадаптера или размещаться на отдельной плате, подсоединяемой к адаптеру. Различают два типа видеоускорителей: плоские, или 2D (от 2-dimension - двухмер- ный), и трехмерные, или 3D (от 3-dimension - трехмерный). Требования совре- менных видеоадаптеров, особенно с аппаратным ускорением, уже не удовлетво- ряются стандартными шинами компьютера. Поэтому для них были разработаны уже упоминавшиеся специализированные шины AGP.

План
Введение



Введение

Графическая система персонального компьютера включает средства для работы с видеоизображениями.

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

Дополнительными компонентами часто выступают TV-тюнер, карта видеозахвата, проектор и другие устройства.

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

Рисунок 1. Видеокарты

1. История развития видеокарт

Одним из первых графических адаптеров для IBM PC стал MDA (Monochrome Display Adapter) в 1981 году. Он работал только в текстовом режиме с разрешением 80×25 символов (физически 720×350 точек) и поддерживал пять атрибутов текста: обычный, яркий, инверсный, подчёркнутый и мигающий. Никакой цветовой или графической информации он передавать не мог, и то, какого цвета будут буквы, определялось моделью использовавшегося монитора. Обычно они были чёрно-белыми, янтарными или изумрудными.

Рисунок 2. Адаптер MDA (Monochrome Display Adapter)

Рисунок 3. Система с адаптером MDA (Monochrome Display Adapter)

Фирма Hercules в 1982 году выпустила дальнейшее развитие адаптера MDA, видеоадаптер HGC (Hercules Graphics Controller — графический адаптер Геркулес), который имел графическое разрешение 720×348 точек и поддерживал две графические страницы. Однако, он всё ещё не позволял работать с цветом.

Рисунок 3. Видеоадаптер HGC

Рисунок 4. Видеоадаптер Hercules Thriller 3D TH2318SGA

Первой цветной видеокартой стала CGA (Color Graphics Adapter), выпущенная IBM и ставшая основой для последующих стандартов видеокарт. Она могла работать либо в текстовом режиме с разрешениями 40×25 и 80×25 (матрица символа - 8×8), либо в графическом с разрешениями 320×200 или 640×200. В текстовых режимах доступно 256 атрибутов символа - 16 цветов символа и 16 цветов фона (либо 8 цветов фона и атрибут мигания), в графическом режиме 320×200 было доступно четыре палитры по четыре цвета каждая, режим высокого разрешения 640×200 был монохромным.

Рисунок 5. Адаптер CGA (Color Graphics Adapter)

Рисунок 6. Кабель подключения адаптера CGA и устройства вывода(монитор и др.)

Рисунок 7. Штекер подключения адаптера CGA

Рисунок 8. Отображение текстовой и графической информации CGA адаптера

Рисунок 9. Игра Warcraft I на CGA адаптер

В развитие этой карты появился EGA (Enhanced Graphics Adapter) - улучшенный графический адаптер, с расширенной до 64 цветов палитрой, и промежуточным буфером. Было улучшено разрешение до 640×350, в результате добавился текстовый режим 80×43 при матрице символа 8×8. Для режима 80×25 использовалась большая матрица - 8×14, одновременно можно было использовать 16 цветов, цветовая палитра была расширена до 64 цветов. Графический режим так же позволял использовать при разрешении 640×350 16 цветов из палитры в 64 цвета. Был совместим с CGA и MDA.

Рисунок 10. Цветовая гамма EGA адаптера

Стоит заметить, что интерфейсы с монитором всех этих типов видеоадаптеров были цифровые, MDA и HGC передавали только светится или не светится точка и дополнительный сигнал яркости для атрибута текста «яркий», аналогично CGA по трём каналам (красный, зелёный, синий) передавал основной видеосигнал, и мог дополнительно передавать сигнал яркости (всего получалось 16 цветов), EGA имел по две линии передачи на каждый из основных цветов, то есть каждый основной цвет мог отображаться с полной яркостью, 2/3, или 1/3 от полной яркости, что и давало в сумме максимум 64 цвета.

Рисунок 11. Кабель подключения адаптера EGA и устройства вывода(монитор и др.)

Рисунок 12. Адаптер EGA (Enhanced Graphics Adapter)

В ранних моделях компьютеров от IBM PS/2, появляется новый графический адаптер MCGA (Multicolor Graphics Adapter - многоцветный графический адаптер). Текстовое разрешение было поднято до 640×400, что позволило использовать режим 80×50 при матрице 8×8, а для режима 80×25 использовать матрицу 8×16. Количество цветов увеличено до 262144 (64 уровня яркости по каждому цвету), для совместимости с EGA в текстовых режимах была введена таблица цветов, через которую выполнялось преобразование 64-цветного пространства EGA в цветовое пространство MCGA. Появился режим 320x200x256, где каждый пиксель на экране кодировался соответствующим байтом в видеопамяти, никаких битовых плоскостей не было, соответственно с EGA осталась совместимость только по текстовым режимам, совместимость с CGA была полная. Из-за огромного количества яркостей основных цветов возникла необходимость использования уже аналогового цветового сигнала, частота строчной развертки составляла уже 31,5 KГц.

Рисунок 13. Адаптер MCGA (Multicolor Graphics Adapter)

Рисунок 14. Переходник VGA to MCGA

Потом IBM пошла ещё дальше и сделала VGA (Video Graphics Array - графический видео массив), это расширение MCGA совместимое с EGA и введённое в средних моделях PS/2. Это фактический стандарт видеоадаптера с конца 80-х годов. Добавлены текстовое разрешение 720×400 для эмуляции MDA и графический режим 640×480, с доступом через битовые плоскости. Режим 640×480 замечателен тем, что в нём используется квадратный пиксел, то есть соотношение числа пикселов по горизонтали и вертикали совпадает со стандартным соотношением сторон экрана - 4:3. Дальше появился IBM 8514, a с разрешениями 640x480x256 и 1024x768x256, и IBM XGA с текстовым режимом 132×25 (1056×400) и увеличенной глубиной цвета (640x480x65K).

Рисунок 15. Цветовая гамма VGA адаптера

Рисунок 16. Кабель подключения к адаптеру VGA и разъем для подключения VGA-кабеля

С 1991 года появилось понятие SVGA (Super VGA - «сверх» VGA) - расширение VGA с добавлением более высоких режимов и дополнительного сервиса, например возможности поставить произвольную частоту кадров. Число одновременно отображаемых цветов увеличивается до 65536 (High Color, 16 бит) и 16777216 (True Color, 24 бита), появляются дополнительные текстовые режимы. Из сервисных функций появляется поддержка VBE (VESA BIOS Extention - расширение BIOS стандарта VESA). SVGA воспринимается как фактический стандарт видеоадаптера где-то с середины 1992 года, после принятия ассоциацией VESA (Video Electronics Standart Association - ассоциация стандартизации видео-электроники) стандарта VBE версии 1.0. До того момента практически все видеоадаптеры SVGA были несовместимы между собой.

Графический пользовательский интерфейс, появившийся во многих операционных системах, стимулировал новый этап развития видеоадаптеров. Появляется понятие «графический ускоритель» (graphics accelerator). Это видеоадаптеры, которые производят выполнение некоторых графических функций на аппаратном уровне. К числу этих функций относятся, перемещение больших блоков изображения из одного участка экрана в другой (например при перемещении окна), заливка участков изображения, рисование линий, дуг, шрифтов, поддержка аппаратного курсора и т. п. Прямым толчком к развитию столь специализированного устройства явилось то, что графический пользовательский интерфейс несомненно удобен, но его использование требует от центрального процессора немалых вычислительных ресурсов, и современный графический ускоритель как раз и призван снять с него львиную долю вычислений по окончательному выводу изображения на экран.

2. Устройство видеокарт (основные блоки)

Современная видеокарта состоит из следующих частей:

графический процессор (Graphics processing unit — графическое процессорное устройство) - занимается расчётами выводимого изображения, освобождая от этой обязанности центральный процессор, производит расчёты для обработки команд трёхмерной графики. Является основой графической платы, именно от него зависят быстродействие и возможности всего устройства. Современные графические процессоры по сложности мало чем уступают центральному процессору компьютера, и зачастую превосходят его как по числу транзисторов, так и по вычислительной мощности, благодаря большому числу универсальных вычислительных блоков. Однако, архитектура GPU прошлого поколения обычно предполагает наличие нескольких блоков обработки информации, а именно: блок обработки 2D-графики, блок обработки 3D-графики, в свою очередь, обычно разделяющийся на геометрическое ядро (плюс кэш вершин) и блок растеризации (плюс кэш текстур) и др.

видеоконтроллер - отвечает за формирование изображения в видеопамяти, даёт команды RAMDAC на формирование сигналов развёртки для монитора и осуществляет обработку запросов центрального процессора. Кроме этого, обычно присутствуют контроллер внешней шины данных (например, PCI или AGP), контроллер внутренней шины данных и контроллер видеопамяти. Ширина внутренней шины и шины видеопамяти обычно больше, чем внешней (64, 128 или 256 разрядов против 16 или 32), во многие видеоконтроллеры встраивается ещё и RAMDAC. Современные графические адаптеры (ATI, nVidia) обычно имеют не менее двух видеоконтроллеров, работающих независимо друг от друга и управляющих одновременно одним или несколькими дисплеями каждый.

видеопамять - выполняет роль кадрового буфера, в котором хранится изображение, генерируемое и постоянно изменяемое графическим процессором и выводимое на экран монитора (или нескольких мониторов). В видеопамяти хранятся также промежуточные невидимые на экране элементы изображения и другие данные. Видеопамять бывает нескольких типов, различающихся по скорости доступа и рабочей частоте. Современные видеокарты комплектуются памятью типа DDR, DDR2, GDDR3, GDDR4 и GDDR5. Следует также иметь в виду, что помимо видеопамяти, находящейся на видеокарте, современные графические процессоры обычно используют в своей работе часть общей системной памяти компьютера, прямой доступ к которой организуется драйвером видеоадаптера через шину AGP или PCIE.

цифро-аналоговый преобразователь (ЦАП, RAMDAC — Random Access Memory Digital-to-Analog Converter) - служит для преобразования изображения, формируемого видеоконтроллером, в уровни интенсивности цвета, подаваемые на аналоговый монитор. Возможный диапазон цветности изображения определяется только параметрами RAMDAC. Чаще всего RAMDAC имеет четыре основных блока - три цифроаналоговых преобразователя, по одному на каждый цветовой канал (красный, зелёный, синий, RGB), и SRAM для хранения данных о гамма-коррекции. Большинство ЦАП имеют разрядность 8 бит на канал - получается по 256 уровней яркости на каждый основной цвет, что в сумме дает 16,7 млн. цветов (а за счёт гамма-коррекции есть возможность отображать исходные 16,7 млн. цветов в гораздо большее цветовое пространство). Некоторые RAMDAC имеют разрядность по каждому каналу 10 бит (1024 уровня яркости), что позволяет сразу отображать более 1 млрд. цветов, но эта возможность практически не используется. Для поддержки второго монитора часто устанавливают второй ЦАП. Стоит отметить, что мониторы и видеопроекторы, подключаемые к цифровому DVI выходу видеокарты, для преобразования потока цифровых данных используют собственные цифроаналоговые преобразователи и от характеристик ЦАП видеокарты не зависят.

видео-ПЗУ (Video ROM) - постоянное запоминающее устройство, в которое записаны видео-BIOS, экранные шрифты, служебные таблицы и т. п. ПЗУ не используется видеоконтроллером напрямую - к нему обращается только центральный процессор. Хранящийся в ПЗУ видео-BIOS обеспечивает инициализацию и работу видеокарты до загрузки основной операционной системы, а также содержит системные данные, которые могут читаться и интерпретироваться видеодрайвером в процессе работы (в зависимости от применяемого метода разделения ответственности между драйвером и BIOS). На многих современных картах устанавливаются электрически перепрограммируемые ПЗУ (EEPROM, Flash ROM), допускающие перезапись видео-BIOS самим пользователем при помощи специальной программы.

система охлаждения - предназначена для сохранения температурного режима видеопроцессора и видеопамяти в допустимых пределах.

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

3. Классификация и основные характеристики видеокарт

Классификация видеокарт

  • Бюджетные карты (low-end)– недорогие, но и не очень мощные. Предназначены в основном для офисных приложений.
  • Видеокарты бизнес-класса(meddle end) – могут обрабатывать все современные игры. Имеют некоторые ограничения, связанные с разрешением, частотой кадров и др.
  • Топовые модели(hi-end) – имеют самые высокие технические характеристики.


Основные характеристики видеокарт:

  • Интерфейс
  • Графический процессор
  • Рабочая частота графического ядра:
  • Программная поддержка
  • Тип памяти и объем
  • Рабочая частота памяти
  • Разрядность интерфейса памяти
  • Число потоковых процессоров
  • Технологии
  • Охлаждение
  • Выходы

Память видеокарты:

Типы памяти

  • GDDR — память, построенная на технологии Double Data-Rate. Используется в бюджетных моделях.
  • GDDR2 работает на более высокой частоте, чем предыдущий тип памяти. Недостаток сильный перегрев.
  • GDDR3 схожа GDDR2, работает на несколько большей частоте и меньше греется.
  • GDDR4 более производительна по сравнению с GDDR3. Работает с временем доступа до 0.6 нс, что соответствует частоте 3330 МГц. Более экономична чем предыдущие поколения
  • GDDR5 более высокая, скорость работы по сравнению с прежними поколениями.

Шина обмена с памятью
Число бит данных (разряды), которое может быть передано за один цикл. Производительность памяти — это объем данных, переданных за единицу времени. Она зависит от частоты памяти и от

разрядности шины

  • дешевые модели — шина в 64 бит;
  • бюджетные видеокарты — шина 128 бит;
  • бизнес-класс видеокарты — шина 256 бит;
  • топовые модели видеокарт — шина в 256 бит и выше.

Частота памяти:

  • бюджетные модели — до 800 МГц;
  • бизнес-класс — до 1500 МГц;
  • топовые модели — от 1500 МГц и выше.

Объем памяти
В памяти видеокарты хранится образ изображения (экранный кадр), а также элементы, необходимые для построения трехмерной картинки. В современных моделях видеокарт память устанавливается в объеме от 128 Мб до 1 Гб.

  • дешевые модели — 32-64 Мб;
  • бюджетные видеокарты — 128 Мб;
  • бизнес-класс видеокарты — 256-512 Мб;
  • топовые модели видеокарт — 512 Мб и выше.

Частота работы GPU

4. Программно-аппаратные интерфейсы видеокарт

Программные средства

DirectX
DirectX - это набор API функций, разработанных для решения задач, связанных с игровым и видеопрограммированием под Microsoft Windows. Наиболее широко используется при написании компьютерных игр. Пакет средств разработки DirectX под Microsoft Windows бесплатно доступен на сайте Microsoft. На данный момент самой новой версией является DirectX 11. Зачастую, свежие версии DirectX поставляются вместе с игровыми приложениями, так как DirectX API обновляется достаточно часто, и версия, включённая в ОС Windows зачастую является далеко не самой новой. Практически все части DirectX API представляют собой наборы COM-совместимых объектов.

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

В 1995 г. компания Microsoft представила первую версию библиотеки DirectX (тогда она называлась Game SDK). В 2004 г. вышла девятая версия DirectX (реально выпущено восемь версий, по каким-то причинам Microsoft пропустила четвертую версию). DirectX - это корпоративный стандарт, все права на который принадлежат компании Microsoft. И только Microsoft определяет, что включать в очередную версию API, а какие предложения игнорировать. Такой диктаторский подход позволил быстро привести к единому знаменателю игры и графические процессоры, избавил пользователей от большинства проблем с совместимостью программи железа. С недавних пор и программы, и видеоадаптеры принято даже разделять на поколения согласно поддерживаемым версиям DirectX.
API DirectX предназначен для:

  • программирования двухмерной графики (модуль DirectDraw);
  • создания трехмерной графики (модуль Direct3D);
  • работы со звуками и музыкой (модули DirectSound и DirectMusic);
  • поддержки устройств ввода (модуль Directlnput);
  • разработки сетевых игр (модуль DirectPlay).

Таким образом, DirectX представляет собой набор из нескольких сравнительно независимых API, позволяющих разработчикам игр и других интерактивных приложений получать доступ к специфическим функциям аппаратного обеспечения, без необходимости написания аппаратнозависимого программного кода. DirectX основан на наборе интерфейсов Component Object Model (компонентная модель объектов), а объекты СОМ могут описываться практически любыми языками программирования, например C/C++, Delphi и даже Basic.

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

  • DirectX Graphics, набор интерфейсов, ранее (до версии 8.0) делившихся на:
  • DirectDraw: интерфейс вывода растровой графики.
  • Direct3D (D3D): интерфейс вывода трёхмерных примитивов.
  • DirectInput: интерфейс, используемый для обработки данных, поступающих с клавиатуры, мыши, джойстика и пр. игровых контроллеров.
  • DirectPlay: интерфейс сетевой коммуникации игр.
  • DirectSound: интерфейс низкоуровневой работы со звуком (формата Wave)
  • DirectMusic: интерфейс воспроизведения музыки в форматах Microsoft.
  • DirectShow: интерфейс, используемый для ввода/вывода аудио и/или видео данных.
  • DirectSetup: часть, ответственная за установку DirectX.
  • DirectX Media Objects: реализует функциональную поддержку потоковых объектов (например, энкодеры/декодеры)

OpenGL
В 1982 г. фирма Silicon Graphics в рабочей станции Silicon IRIS реализовала конвейер рендеринга, опирающийся на систему команд графической библиотеки IRIS GL. На основе библиотеки IRIS GL в 1992 г. был разработан и утвержден графический стандарт OpenGL (Open Graphics Library - открытая графическая библиотека). Программы, написанные с помощью OpenGL, можно переносить практически на любые платформы, будь то персональный компьютер или графическая станция, получая при этом одинаковый результат.

Базовый набор OpenGL включает в себя около 150 различных команд, с помощью которых реализуют основные функции: определение объектов, указание их местоположения в трехмерном пространстве, установку других параметров (поворот, масштаб), изменение свойств объектов (цвет, текстура, материал), положение наблюдателя. Дополнительные библиотеки OpenGL (расширения) реализуют функции, отсутствующие в стандартной библиотеке. Например, библиотека GLAUX разработана фирмой Microsoft для применения OpenGL в операционной среде Windows. Разработчики видеодаптеров создают собственные расширения OpenGL, учитывающие возможности конкретного графического процессора.

Технология SLI

Аббревиатура SLI расшифровывается как Scalable Link Interface (масштабируемый соединительный интерфейс). Технология nVidia SLI требует наличия двух одинаковых видеокарт с поддержкой SLI, системнойплаты, также поддерживающей SLI, переходника MIO, связывающего видеокарты, драйвера ForceWare соответствующей версии. На момент написания книги технологию SLI поддерживали видеокарты семейств nVidia GeForce 6800 и 6600GT и системные платы с чипсетами nVidia nForce4 SLI (для процессоров AMD Athlon 64), Intel 7525 (для процессоров Xеоn) и nForce4 SLI Intel Edition (для процессоров Pentium 4).

Технология SLI поддерживает два режима работы пары видеокарт: Split Frame Rendering (SFR) и Alternate Frame Rendering (AFR). Для запуска устаревших игр предусмотрен режим совместимости, когда задействуется лишь одна графическая карта. В режиме Split Frame Rendering (SFR) происходит разделение кадра на две части, за рендеринг каждой из

которых отвечает отдельный видеоадаптер. При этом кадр разделяется динамически в зависимости от сложности сцены. Такой режим позволяет добиться максимальной производительности, так как нагрузка на каждую карту распределяется равномерно. Метод разделения называется Symmetric Multi-Rendering with Dynamic Load Balancing (SMR), то есть симметричный мультирендеринг с динамическим распределением нагрузки. В режиме Alternate Frame Rendering (AFR) происходит поочередный рендеринг кадров каждым видеоадаптером.

Учитывая высокую пропускную способность интерфейса PCI Express, можно было ограничиться передачей данных по этой шине, однако с целью минимизировать возможные задержки видеокарты SLI оснащаются интерфейсом MIO. Когда карты установлены в системную плату, оснащенную двумя слотами PCI Express xl6, их требуется соединить специальным переходником — небольшой текстолитовой платой, оснащенной двумя разъемами соответствующего типа. Для включения режима SLI и его корректной работы необходимо два условия: оба слота PCI Express xl6 должны поддерживать конфигурацию ≪16 линий + 8 линий≫, либо конфигурацию 8 линий + 8 линий; чипсет должен поддерживаться драйверами ForceWare. В случае успешного запуска конфигурация SLI демонстрирует повышение производительности в некоторых играх до 80%.

CrossFire
В ответ на разработку и продвижение старой-новой технологии SLI (МК №30(357) 2005) компанией NVIDIA, главный конкурент на рынке видеоускорителей, компания ATI, разработала и внедрила свое аналогичное решение - технологию CrossFire. Так же, как и SLI от NVIDIA, она позволяет объединять ресурсы двух видеокарт в одном компьютере между собой, повышая производительность видеоподсистемы. Технология CrossFire в корне отличается от SLI, соответственно, имеет мало общего с конкурентом. Отдавая предпочтение определенным преимуществам той или иной технологии, в недалеком будущем пользователи будут выбирать между NVIDIA и ATI не только исходя из годами сформировавшихся мнений о брэндах, но и базируясь на фактах о технологиях SLI или

Техническая база

По аналогии с NVIDIA, для размещения двух видеокарт ATI в одной «упряжке» потребуется материнская плата с чипсетом того же производителя (планируется, что поддерживать CrossFire также будет чипсет Intel i975X), с двумя слотами PCI Express. Как и SLI, CrossFire требовательна к системным ресурсам, что потребует качественного БП. Рассмотрим требования к системе более детально.

Материнская плата
— должна быть основана на чипсете ATI Radeon Xpress 200 CrossFire и выше. Данные платы выпускаются как для процессоров AMD Sempron/Athlon 64, так и для Intel Pentium 4/Celeron. Так что ATI теперь будет зарабатывать и на чипсетах, производство которых ранее не достигало больших масштабов.

Видеокарты.
Для работы технологии необходима ведущая карта CrossFire master (детальнее об этом - ниже) и любая другая видеокарта на базе чипа из того же семейства, что и ведущая карточка. Ведущую карточку от других отличает наличие разъема DMS–59 (соединяемого с DVI на ведомой карте), чипа CrossFire, ну и, конечно же, стоимость.

Блок питания . Для содержания такого серьезного комплекта понадобится БП с мощностью 400–450 Вт минимум, желательно более мощный.

Ну вот, собственно, и все что нужно для сборки видеосистемы CrossFire. Как вы заметили, ATI более гибко относится к своим покупателям, не привязывая их, как землю к колхозу, к обязательной покупке двух карточек с одинаковым чипом от одного производителя. Привязка осуществляется только к семейству видеочипа, на котором основан ускоритель. То есть, можно приобрести ведущий видеоускоритель Radeon X800 и ведомый Radeon X800 XL. Master Radeon X800 будет совместим с карточкой любого производителя на базе любой модификации чипа X800. Это безусловное преимущество над конкурентом - если брать один ускоритель, с перспективой дальнейшей модернизации путем доустановки еще одной видеокарты, то не придется рыскать в поисках карточки какого-то определенного производителя на базе конкретного чипа. На данный момент технологию CrossFire поддерживают видеокарты на базе X800 и X850, а также новинки на базе X1xxx.

Основные принципы

На ведущей видеокарте (master CrossFire) находится специальный чип, позволяющий совмещать усилия ускорителей. Он попиксельно (в реальном времени) обрабатывает изображения, сгенерированные каждой карточкой, и объединяет их в единую картинку. Вся информация с ведомой видеокарты ведущей передается по соединению через разъемы DMS-59 и DVI. Длина кабеля между двумя карточками в таком случае довольно мала, что позволяет избежать потерь при передаче данных (теоретически).

Особенности и режимы работы CrossFire
Всего для CrossFire доступно 3 режима рендеринга: SuperTiling, AFR, Scissor. В отличие от SLI-систем свободный выбор режимов недоступен и нужный режим выбирается драйвером автоматически.

Scissor
Достаточно известный метод обработки изображения. Его суть заключается в разделении кадра на две части, каждую из которых обрабатывает отдельная видеокарта. В теории кадр может делиться пропорционально мощности видеочипов установленных в ПК видеокарт. Для одинаковых карточек кадр делится в соотношении 50:50; если одна из них более мощная, то выбирается соотношение 30:70 или 40:60. Однако, как может показаться на первый взгляд, не для всех игровых приложений такой режим будет предпочтителен. К примеру, в 3D–шутерах нижняя часть кадра мало меняется на протяжении игры, чего не скажешь о верхней. Для этого предусмотрено увеличение обрабатываемой в кадре зоны для карточки, простаивающей в данный момент времени. Правда, для расчета геометрии сцены также потребуются дополнительные ресурсы.

SuperTiling
Стандартный режим CrossFire. Делит изображение на множество квадратиков, визуально напоминающих шахматную доску. Часть таких квадратиков обрабатывает одна видеокарта, часть - другая. Это позволяет грамотно распределить нагрузку между видеокартами в пиксельных приложениях. Однако обе карточки должны просчитывать всю геометрию сцены. Известно, что данный режим не поддерживают игры на основе API OpenGL.

Alternate Frame Rendering (AFR)
Один из самых быстрых режимов работы CrossFire. Его суть заключается в том, что одна карточка рассчитывает четные кадры, вторая - нечетные. Таким образом, между обеими ускорителями равномерно распределяется нагрузка на графические процессоры. В принципе, данный метод - не новинка, AFR был задействован и на старых двухчиповых картах ATI. Единственный недостаток режима - он не будет работать в компьютерных играх, использующих функции render-to-texture. Также стоит помнить, что производительность CrossFire в режиме AFR будет зависеть от особенностей обрабатываемой сцены. Наконец, учтите, что обрабатываемый и отображаемый в данное время - разные кадры. Так что AFR будет эффективен для отображения качественной картинки в приложениях, не требующих плавной смены кадров для комфортной работы с ними. Говоря простым человеческим языком, в шутерах и симуляторах AFR будет менее эффективен, чем, скажем, в стратегиях.

Super AA
Режим, позволяющий существенно улучшить качество изображения в ущерб дополнительным FPS. Суть работы SuperAA заключается в том, что обе карточки генерируют одну сцену с разными шаблонами FSAA. Затем чип CrossFire объединяет их в единое целое. Это позволяет добиться лучшего сглаживания «зернистости», известной под именем aliasing.

По количеству режимов работы ATI таки обошла NVIDA, однако не факт, что качество их реализации на должном уровне. Режимом AFR обладают технологии обеих компаний, а Scissor - просто несколько переработанный режим Split Frame Rendering от NVIDIA. Режим SuperAA повышает качество в ущерб производительности, а практичность SuperTiling вызывает сомнения. Так что пока не известно, кто победит в борьбе за дополнительные FPS.

Как уже было сказано выше, существуют версии чипсетов как для процессоров AMD, так и для Intel. Материнские платы на основе чипсета ATI не требуют установки режимов работы с одной или двумя видеокартами - связку CrossFire плата определяет автоматически, чем опять-таки выгодно отличается от NVIDIA nForce4 SLI. 130-нанометровый техпроцесс изготовления чипов обеспечит неплохие возможности для разгона без применения дорогих высококачественных систем охлаждения. Да и вообще, сама технология максимально нацелена на энтузиастов и оверклокеров.

Проведем параллели
Думаю, будет разумно взвесить все за и против, сравнив недостатки и преимущества технологий ATI CrossFire с NVIDIA SLI.

Преимущества CrossFire:

  • для ATI CrossFire необязательна адаптация игры под данную технологию, она работает со всеми играми на основе API DirectX и API OpenGL;
  • нет необходимости покупать карточки одного и того же производителя с одинаковыми чипами и версией BIOS - карты ATI CrossFire могут быть произведены разными компаниями;
  • ATI CrossFire работает и с уже продававшимися моделями Radeon X800/X850;
  • у ATI CrossFire больше режимов работы, чем у NVIDIA SLI, однако один из них делает акцент на качество, но вовсе не на производительность.

Недостатки CrossFire:

  • стоимость ведущей (master) карточки CrossFire заметно выше, чем у ведомой, в то время как стоимость обеих карт NVIDIA одинакова;
  • малая доступность технологии на рынке.

В общем, с уверенностью можно сказать, что у обеих технологий есть будущее.

Краткий справочник терминов, упоминающихся в статье

Шейдер (shader) - это программа для одной из ступеней графического конвейера, используемая в трёхмерной графике для определения окончательных параметров объекта или изображения. Она может включать в себя произвольной сложности описание поглощения и рассеяния света, наложения текстуры, отражение и преломление, затенение, смещение поверхности и эффекты пост-обработки.

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

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

Геометрический шейдер (geometry shader) , в отличие от вершинного, способен обработать не только одну вершину, но и целый примитив. Это может быть отрезок (две вершины) и треугольник (три вершины), а при наличии информации о смежных вершинах (adjacency) может быть обработано до шести вершин для треугольного примитива. Кроме того, геометрический шейдер способен генерировать примитивы «на лету», не задействуя при этом центральный процессор.

Шейдерный конвейер (процессор) - это устройство для обработки одного элемента данных одной командой (типичными элементами данных могут быть целые или числа с плавающей запятой).

Блок растеризации (ROP, Raster Operator) - устройство, выполняющее Z-буферизацию, сглаживание и запись обработанного изображения в буфер кадра видеокарты.

Блок текстурирования (TMU, Texture Mapping Unit) - устройство, отвечающее за наложение изображений (текстур) на поверхности геометрических объектов.

Рисунок 5. Адаптер CGA

Кабель подключения адаптера CGA и устройства вывода(монитор и др.)

UNIX не требователен к интерфейсу, когда речь идет об управлении системой. Типичный способ администрирования UNIX -сервера – удаленная работа по сети, причем (спасибо Internet ) удалиться от компьютера можно сколь угодно далеко, лишь бы связь была достаточно надежной для терминальной работы. Это означает, что все прочие возможности взаимодействия машины с человеком понимаются системой как ресурс , который следует распределять между пользовательскими задачами так же, как и оперативную память , дисковое пространство или, скажем, ресурсы подсистемы печати .

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

Выходит, что пользователю этого ресурса недостаточно представлять графический адаптер как большую страницу видеопамяти, частично отображаемую на устройстве вывода – мониторе: ведь пользователю диска мало представлять его в виде массива секторов! Разница в том, что этого было бы недостаточно и самой системе, так что в UNIX введено понятие файловой системы , объекты которой значительно сложнее, чем "сектор" или " диск ". А что касается графики – у UNIX нет ни предпочтений, ни особых видов на эти способности машины. Значит, со стороны системы разумно организовать именно доступ к устройству , а требуемую объектную модель пусть реализует пользовательская задача.

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

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

Лучшие статьи по теме