Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Эволюция адаптеров фирмы IBM



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

MDA ( Monochrom Dispay and Parallel Printer Adapter ) заключалось в получении высококачественных текстовых изображений. MDA формирует на экране 25 строк растра текста по 80 символов в каждой. Символьная позиция состоит из матрицы размером 9 x 14 пикселей. Большинство пикселей фактически занимают матрицу 7х9, а «лишние» пиксели повышают удобочитаемость текста. Разрешающая способность 720 на 350 пикселей.

Адаптер CGA ( Color Graphic Adapter ) по сравнению с MDA обладает 2 новыми возможностями: формирует графические изображения в виде диаграмм, графиков и рисунков, а также выводит на экран цветные текстовые и графические изображения. Цветовая палитра для текстовой информации – 16 цветов, графический режим позволяет наблюдать одновременно на экране только 4 цвета. Разрешающая способность 640х320 пикселей.

Адаптер EGA ( Enhanced Graphic Adapter ). Разработан в 1984 г. фирмой IBM. Разрешающая способность в графическом режиме доведена до 640х350 пикселей, а число одновременно наблюдаемых на экране цветов составляет 16 из общей палитры в 64 цвета.

Адаптер MCGA ( Multi-Color Graphic Array – многоцветная графическая матрица). Появился в 1987 г. Имеет символьную матрицу 8х16 пикселей. Разрешающая способность 640х480 пикселей. Отличие от рассмотренных выше адаптеров заключается в том, что генерируются аналоговые видеосигналы красного, зеленого и синего цветов. Предыдущие адаптеры формируют для управления монитором только цифровые двоичные сигналы. В MCGA имеется быстродействующий цифро-аналоговый преобразователь, благодаря чему на экране можно одновременно наблюдать 256 цветов.

Адаптер VGA ( Video Graphic Array ). Появился в 1987 г. С адаптером VGA появился новый стандарт, который включает в себя все режимы предыдущих адаптеров и расширяет их на большее число цветов и более высокую разрешающую способность. Максимальная разрешающая способность составляет 720х480 пикселей в текстовом режиме и 640х480 пикселей в графическом режиме. Символьная матрица состоит из 9х16 символов. Позволяет наблюдать 256 цветов. Рассчитан на подключение аналогового цветного или монохроматического монитора.

 

Существуют большое количество видеокарт, хотя и совместимых с VGA, но предоставляющих достаточно большой набор дополнительных режимов. Обычно такие карты называют SuperVGA. Существует большое количество SVGA -карт различных производителей, сильно различающихся по основным возможностям и, как правило, несовместимых друг с другом. Сам термин SVGA обозначает скорее не стандарт (как VGA ), а некоторое расширение.

Ассоциацией стандартов в области видео-электроники VESA была сделана попытка стандартизации работы с различными SVGA -платами путем добавления в BIOS некоторого стандартного набора функций, обеспечивающего получение необходимой информации о карте, и отвечающих за установку заданного режима. При этом вводится стандартный набор расширенных режимов. Номер режима является 16-битовым числом, где биты 9-15 зарезервированы и должны быть равны 0, бит 8 для VESA -режимов равен 1, а для родных режимов карты равен 0.

28. Структура видеоадаптера и назначение его составных частей.(км)

Структура видеоадаптера условно делится на четыре логических блока:

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

2. Видеопамять. В видеопамяти размещаются данные, отображаемые адаптером на экране дисплея. Для EGA и VGA видеопамять обычно имеет объем 256 Кбайт, на некоторых моделях SVGA объем видеопамяти может быть увеличен до 2Мбайт. Видеопамять находится в адресном пространстве процессора, и программы могут непосредственно производить с ней обмен данными.

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

3. RAMDAC. Имеет два режима работы:

· в первом режиме чипсет оперирует данными цветовой гаммы, или палитры (palletized data). В этом режиме 8-битные данные конвертируются в RGB цвета. Каждый раз, когда новый пиксель передается в DAC для отображения на экране, значение передаваемых данных используется в качестве указателя положения в палитре, информация из палитры используется в качестве значения цвета для DAC. Палитра, хранится в RAM и имеет 256 позиций, каждая из которых хранит 24 бита данных о цвете, по 8 бит для каждого из трех основных составляющих цветов Red, Green и Blue. Емкость RAM соответствует значению 256 х 24 = 6144 бит или 768 байт. Для RAM используется стандартная память, и она интегрирована вместе с DAC в одну микросхему.

· во втором режиме RAMDAC оперирует цветовыми данными. В этом режиме (при 16, 24 или 32 бит представлении цвета) данными является RGB цвет. Например, при 16-битном представлении цвета 5 бит определяют красный (Red), 6 бит -- зеленый (Green) и 5 бит -- синий (Blue) цвета. Для зеленого цвета используется больше бит, так как человеческий глаз более чувствителен к зеленому. При 24 или 32 бит представлении цвета для каждого из цветов используется по 8 бит данных. В этом режиме данные, определяющие цвет, передаются непосредственно в DAC без использования RAM, т.е. не используются загружаемые палитры и данные передаются напрямую из видеопамяти.

4. Видео-ПЗУ - постоянное запоминающее устройство, в которое записаны видео – BIOS, экранные шрифты, служебные таблицы и т.п. ПЗУ не используется видеоконтроллером напрямую - к нему обращается только центральный процессор, и в результате выполнения им программ из ПЗУ происходят обращения к видеоконтроллеру и видеопамяти. ПЗУ необходимо только для первоначального запуска адаптера и работы в режиме MSDOS; операционные системы с графическим интерфейсом - Windows или OS/2 - не используют ПЗУ для управления адаптером.

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

29. Кодирование и формирование цвета пикселя. Непалитровые режимы VGA.

Цвет является композицией трех основных цветов – красного, зеленого и синего. В цифровых компьютерах вес каждого цвета должен быть представлен дискретной величиной. В простейшем случае для кодирования каждого из основных цветов достаточно по одному биту (1=цвет включен, 0=цвет выключен), называемых битами R, G, B. Из трех основных цветов с двоичным кодированием получается 8 цветовых комбинаций (см. рис.). Когда все цвета выключены, получается черный цвет. Если ввести еще один бит, который управляет яркостью или интенсивностью ( Intensity ), то получится 4-х битная композиция, называемая IRGB -цветом. Поэтому на экране можно получить 16 цветов.

В адаптере EGA имеются режимы, в которых для кодирования каждого из основных цветов отведено по два бита, т. е. полный цвет кодируется шестью битами RrGgBb (00-цвет выключен, 01-слабый цвет, 10-обычный цвет, 11-яркий цвет). Такое кодирование расширяет число цветов до 64. Тем не менее, одновременно на экране можно наблюдать только 16 цветов, так как в видеопамяти пиксели кодируются 4-битными значениями.

В адаптере VGA введены режимы, в которых для кодирования каждого из основных цветов отведено по 6 бит. Однако одновременно на экране можно наблюдать только 256 цветов, т. к. в режиме с максимальной «цветностью» каждый пиксель кодируется 8 битами.

 

Пример формирования цвета


Для 16-цветных режимов под каждый пиксель изображения необходимо выделить 4 бита видеопамяти. Однако эти 4 бита выделяются не последовательно, а разнесены в 4 разных блока (цветовые плоскости) видеопамяти.

Вся видеопамять делится на 4 равные части, называемые цветовыми плоскостями. Каждому пикселю ставится в соответствие по одному биту в каждой плоскости, причем эти биты одинаково расположены относительно ее начала. Обычно эти плоскости представляются расположенными параллельно одна над другой, так что каждому пикселю соответствует 4 расположенные друг под другом бита. Все эти плоскости проектируются на один и тот же участок адресного пространства процессора. Для работы с пикселем необходимо определить адрес байта в видеопамяти, содержащего данный пиксель, и позицию пикселя внутри байта (поскольку один пиксель отображается на один бит в каждой плоскости, то байт соответствует сразу 8 пикселям). Байты видеопамяти линейно отображаются на экран. 7-й бит 1-го байта – точка в верхнем левом углу экрана. Если у нас разрешение 640х350 VGA, то каждые 80 байт описывают 1 строку экрана.

Каждое 4-х битное значение маскируется младшими битами регистра разрешения цветовой плоскости в атрибутном контроллере и полученное после этого 4-битное значение выбирает один из 16 регистров палитры. Считываемое из выбранного регистра палитры 6-битное значение RrGgBb определяет окончательный цвет пикселя.

Непалитровые режимы SVGA

Ряд SVGA -карт поддерживает использование так называемых непалитровых режимов – для каждого пикселя вместо индекса в палитре непосредственно задается его RGB значение.

Обычно такими режимами являются режимы:

· HiColor (15 или 16 бит на пиксель)

· Truecolor (24 бита на пиксель).

Видеопамять устроена аналогично 256-цветным режимам SVGA – под каждый пиксель отводится целое количество байт памяти (2 байта для HiColor и 3 байта для TrueColor ), и все они расположены подряд и сгруппированы в банки. Наиболее простой является организация режима TrueColor – под каждую из трех компонент цвета отводится по одному байту.

Несколько сложнее организация режимов HiColor, где под каждый пиксель отводится 2 байта и возможны варианты:

· под каждую компоненту отводится по 5 бит, последний бит не используется (32 тысячи цветов)

· под красную и синюю компоненты отводится по 5 бит, под зеленую – 6 бит (65 тысяч цветов).

 

30. Аппаратные ускорители графики. 3D-конвейер.

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

 

D-конвейер

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

 

  1. Определение состояния объектов (Situation modeling) – эта часть программы не имеет прямого отношения к компьютерной графике, она моделирует тот мир, который будет отображаться в дальнейшем. Например, правила игры и физические законы перемещения игрока, искусственный интеллект монстров и т.д.
  2. Определение соответствующих текущему состоянию геометрических моделей (Geometry generation) – эта часть конвейера создает геометрическое представление текущего момента нашего маленького " виртуального мира".
  3. Разбиение геометрических моделей на примитивы (Tesselation) – эта первая действительно зависимая от " железа" стадия. На ней создается внешний вид объектов в виде набора определенных примитивов, разумеется, на основе информации из предыдущего шага конвейера. Наиболее распространенным примитивом в наше время является треугольник, и большинство современных программ и ускорителей работают именно с треугольниками. На треугольники всегда можно разбить любой плоский многоугольник, и именно тремя точками можно однозначно задать плоскость в пространстве.
  4. Привязка текстур и освещения (Texture and light definition) – на этой стадии определяется, как будут освещены геометрические примитивы (треугольники), а также какие, и как на них в дальнейшем будут наложены текстуры. Как правило, на этой стадии информация вычисляется только для вершин примитива.
  5. Видовые геометрические преобразования (Projection) – здесь определяются новые координаты, для всех вершин примитивов исходя из положения наблюдателя и направления его взгляда. Сцена как бы проецируется на поверхность монитора, превращаясь в двухмерную, хотя информация о расстоянии от наблюдателя до вершин сохраняется для последующей обработки.
  6. Отбрасывание невидимых примитивов (Culling) – на этой стадии из списка примитивов исключаются полностью невидимые (оставшиеся позади или сбоку от зоны видимости).
  7. Установка примитивов (Setup) – здесь информация о примитивах (координаты вершин, наложение текстур, освещение и т.д.) преобразуется в вид, пригодный для последующей стадии. (Например: координаты точек буфера экрана или текстур - в целые числа фиксированного размера, с которыми работает аппаратура).
  8. Закраска примитивов (Fill) – на этой стадии, собственно, и происходит построение в буфере кадра (памяти, отведенной под результирующее изображение) картинки на основе информации о примитивах, сформированной предыдущей стадией конвейера, и прочих данных (текстуры, таблицы тумана и прозрачности и пр.). Как правило, на этой стадии для каждой точки закрашиваемого примитива определяется ее видимость, например, с помощью буфера глубин (Z-буфера) и, если она не заслонена более близкой к наблюдателю точкой (другого примитива), вычисляется ее цвет. Цвет определяется на основе информации об освещении и наложении текстур, определенной ранее для вершин этого примитива. Большинство характеристик ускорителя, которые можно почерпнуть из его описания, относятся именно к этой стадии, так как в основном именно эту стадию конвейера ускоряют аппаратно (в случае недорогих и доступных плат).
  9. Финальная обработка (Post processing ) – обработка всей результирующей картинки как единого целого какими-либо двумерными эффектами.

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

 

Итак, самый общий ускоритель состоит из:

o геометрического процессора (Geometry Processor, пока практически всегда отсутствует);

o механизма установки (Setup engine, стадия 7 конвейера)

o механизма отрисовки примитивов – закраски (Fill engine, стадии 8 и 9)который при детальном рассмотрении оказывается комбинацией двух блоков:

o обработки текстур (Texel engine)

o обработки буфера кадра (Pixel engine).

Производительность ускорителя зависит от процессора, производительности памяти, шины и самих обрабатывающих блоков. Как правило, приводятся два числа – максимальная пропускная способность (треугольников в секунду, triangle throughput) и максимальная производительность закраски (точек в секунду, fill rate).

31. Аппаратная структура ускорителя. Ускорители будущего.

Во-первых, обращает на себя внимание многоканальный контроллер памяти. Вместо одной очень широкой 128- или 256-бит шины памяти используются 2 или 4 полностью независимые (разведены отдельные управляющие сигналы) шины памяти шириной 32 или 64 бита соответственно. Зачем это сделано? Давайте посмотрим внимательно на потоки данных, которые идут во время работы ускорителя. Текстуры, как правило, только считываются. Геометрия, тоже, как правило, только считывается. Буфер кадра (цвет), как правило, только записывается. Буфер глубины (Z) - считывается и записывается. На лицо как раз 4 непрерывных потока данных. Если мы сумеем разнести их (хотя бы частично) по разным контроллерам, то мы получим многократный выигрыш с точки зрения времени задержки при обращении к данным. Нам не придется регулярно переключать память из режима чтения в режим записи и скакать по ней от буфера к буферу. А это значит, что мы можем сделать очень небольшие и эффективные КЭШи! Типичные размеры (получены экспериментально или предположены):

 

· Кэш вершин: ~50..100..200 вершин;

· Пост Кэш вершин: ~16..32 вершины;

· Кэш текстур: ~32..64 килобайт (~512 блоков 4х4);

· Кэш буфера кадра и глубины: 16..32 килобайт (~256 блоков 4х4);

· Минибуфер глубины: ~256 килобайт максимум, скорее всего меньше;

 

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


Поделиться:



Популярное:

Последнее изменение этой страницы: 2017-03-03; Просмотров: 558; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.037 с.)
Главная | Случайная страница | Обратная связь