На правах рукописи Корниленко Александр Владимирович ВЫСОКОПРОИЗВОДИТЕЛЬНЫЕ ГРАФИЧЕСКИЕ УСКОРИТЕЛИ ДЛЯ СИСТЕМ ИНДУСТРИАЛЬНОГО НАЗНАЧЕНИЯ 05.13.05 - «Элементы и устройства вычислительной техники и систем управления» Автореферат диссертации на соискание ученой степени кандидата технических наук Автор: Москва – 2008 г. Диссертация выполнена в Научно-исследовательском институте системных исследований Российской Академии Наук. Научный руководитель: кандидат технических наук, старший научный сотрудник Бобков Сергей Геннадьевич. Официальные оппоненты: доктор технических наук, профессор Адамов Юрий Федорович, ООО «Юник Ай Сиз» кандидат технических наук, Черников Владимир Михайлович, НТЦ «Модуль» Ведущая организация: ФГУП ЦНИИ автоматики и гидравлики Защита диссертации состоится 20 октября 2008 года в 15 часов 00 минут на заседании диссертационного совета Д212.130.02 в Московском инженерно-физическом институте (государственном университете) по адресу 115409, г. Москва, Каширское шоссе, 31. тел. 323-91-67. С диссертацией можно ознакомиться в библиотеке МИФИ. Автореферат разослан “19” сентября 2008 г. Ученый секретарь диссертационного совета д.т.н., профессор П.К. Скоробогатов 2 ОБЩАЯ ХАРАКТЕРИСТИКА ДИССЕРТАЦИИ Актуальность проблемы Развитие индустриальных компьютерных систем требует отображения графической информации на экран для оперативной оценки хода технологического процесса и принятия решений. Требования, выдвигаемые к индустриальным системам – сохранять функционирование в заданных техническим заданием параметрах при работе в условиях повышенных или пониженных температур (от – 85 ºC до +125 ºC), электромагнитных помех и изменения напряжения питания в диапазоне ±10%. Эти требования приводят к задачам построения высокопроизводительных графических подсистем, способных функционировать в данных условиях. При этом современные условия требуют вывода информации с высокими разрешениями экрана до 1600 на 1200 точек и отображения до 16 млн. цветов. Графические контроллеры являются неотъемлемой частью современных ЭВМ, обеспечивая взаимодействие оператора и вычислительной системы. На дисплее отображается не только текстовая, но и графическая информация, делая ЭВМ мощным средством управления и контроля. По сложности некоторые современные графические контроллеры уже превосходят центральный процессор. Первые ЭВМ, использующие в качестве устройства ввода-вывода терминал, отображали только текстовую информацию, при этом вывод на экран информации осуществлял центральный процессор. Появление графического интерфейса способствовало как популяризации первых персональных ЭВМ, так и развитию различных САПР, позволяющих увидеть на экране результат, максимально приближенный к конечному разрабатываемому с помощью САПР продукту. Для обеспечения разгрузки центрального процессора от рутинных задач работы с графическими примитивами в современные микросхемы графических контроллеров встраивают графические ускорители. Многие зарубежные фирмы выпускают микросхемы именно для применения в индустриальных компьютерных системах. При этом, как правило, характеристики таких видеоконтроллеров отличаются от характеристик микросхем, используемых в персональных ЭВМ, например, отсутствием ускорителя трёхмерной графики, но при этом наличием функции вывода на ЭЛТ-дисплей, ЖКдисплей и ТВ. Следует отметить, что универсальность 3D-адаптеров и сложность выполняемых ими задач приводят к тому, что для их нормального функционирования требуется мощная система охлаждения, в ряде современных моделей даже используется водяное охлаждение. В индустриальных видеоадаптерах охлаждение должно обеспечиваться пассивными радиаторами. Выпускаемые микросхемы графических контроллеров для персональных ЭВМ, 3 обеспечивающие поддержку эффектов трёхмерной графики, не удовлетворяют требованиям функционирования в жестких индустриальных условиях. Для большинства индустриальных применений достаточно реализовать быстродействующую видеосистему с выводом информации на различные типы мониторов. Весьма важной для этих видеосистем является реализация аппаратной поддержки выполнения системы графических команд X Window. Эта система команд является общепринятой для вывода графической информации в операционных Unix-системах, таких, как Linux, Solaris, HPUX. При этом именно Unix-системы в большинстве своём применяются для управления и контроля технологических процессов, а также в бортовых ЭВМ. Таким образом, создание графического ускорителя, ориентированного на графическую систему команд X Window, позволит впоследствии применять его в широком спектре индустриальных систем управления и контроля. В СССР и России работы по созданию графических ускорителей велись в конце 80-х – начале 90-х годов, когда ещё не существовало единых стандартов графических контроллеров, например, была создана БИС графического сопроцессора К1809ВГ4. В настоящее время эти разработки морально устарели, а новые не ведутся. Для создания отечественных встроенных систем разработчики вынуждены закупать зарубежные графические микросхемы (Cirrus Logic, Chips, Fujitsu), ассортимент которых довольно велик. Однако эти микросхемы не удовлетворяют требованиям специального и индустриального применения по диапазону температур, влагостойкости, не поддерживают систему команд X Window. Кроме того, применение в отечественной аппаратуре зарубежных микросхем может вызвать значительные трудности при дальнейшем производстве этой аппаратуры в случае прекращения выпуска используемых импортных комплектующих, что уже неоднократно имело место. Цель диссертации заключается в создании и развитии алгоритмов работы с графическими примитивами, разработке на основе полученных алгоритмов методик проектирования, структурных и схемотехнических решений для реализации высокопроизводительных 2D графических ускорителей, ориентированных на использование в системах индустриального и специального применения. Для достижения данной цели необходимо выполнение следующих исследований и разработок: 1. рассмотреть операции X Window, графические стандарты и методы их реализации; 2. провести анализ требований к графическим ускорителям, обусловленных индустриальной областью их применения; 4 3. провести анализ команд X Window для определения набора команд, эффективного для аппаратной реализации; 4. на основе анализа команд и требований к области применения определить общие подходы и методики построения аппаратных средств графического ускорителя, рассмотреть возможные схемотехнические решения для отдельных блоков; 5. предложить методы увеличения быстродействия аппаратной реализации графических операций, если недостаточное быстродействие. прямая реализация алгоритма имеет В соответствии с этим были определены следующие основные задачи диссертации: 1. Определить набор графических команд X Window, аппаратная реализация которых позволит существенно ускорить их выполнение. 2. Предложить методику оценки эффективности аппаратной реализации графических команд. 3. Разработать алгоритмы или структурные решения для аппаратной реализации выбранного набора графических команд. 4. Предложить возможные методы дальнейшего увеличения быстродействия блоков, реализованных на основании разработанных алгоритмов и структурных решений. 5. Предложить схемотехнические методы организации арбитрирования доступа к видеопамяти для оптимального распределения времени доступа к ней. 6. С применением разработанных средств и методов разработать и реализовать высокопроизводительный графический ускоритель для видеоконтроллеров, предназначенных для использования в системах индустриального и специального назначения. Методы исследования Для описания предлагаемых алгоритмов реализации основных графических процедур используется язык псевдокода. При описании предложенных структурных решений использованы графы состояний управляющих конечных автоматов для каждого из разработанных функциональных блоков. Программные модели алгоритмов разрабатывались на языках высокого уровня С/С++ и на поведенческом 5 уровне языка Verilog HDL. После объединения получавшиеся архитектуры разрабатывались и тестировались на языке описания аппаратуры Verilog. Для программного моделирования архитектуры устройств использовалась система Verilog-XL фирмы Cadence. Для создания макетных образцов с реальными задержками и аппаратного моделирования использовались программируемые логические микросхемы типа FPGA фирмы Altera и системы автоматизированного проектирования Max+PlusII и QuartusII фирмы Altera. Эти пакеты имеют возможность получения на выходе величин реальных временных задержек в микросхеме, что позволяет промоделировать приближенное к реальности поведение разработанного средствами САПР и сконфигурированного в ПЛИС устройства, а также удешевить и ускорить процесс проектирования в целом. Научная новизна диссертации 1. Обоснованы принципы выбора наиболее часто употребляемых графических 2. операций графических систем X Window для аппаратной их реализации. Основными критериями выбора таких операций являются частота вызова операции и степень получаемого аппаратного ускорения. Ограничивающим критерием являлась сложность аппаратной реализации данной функции. На основе этих принципов предложена общая методика проектирования графических ускорителей. Предложены алгоритмы для аппаратной реализации выбранного набора графических операций X Window. Данные алгоритмы представляют собой описания работы на псевдокоде блока аппаратного ускорения той или иной функции и обеспечили при практическом применении значительное ускорение аппаратного выполнения основных графических процедур до 37,6 раз при допустимых затратах ресурсов на их реализацию (увеличении площади кристалла за счёт ускорителя на 54 % , повышении потребления мощности на 41 %). 3. На базе предложенных алгоритмов разработаны структурные решения и получены графы машин состояний для реализации основных блоков графических ускорителей. Полученные структурные решения и графы состояний позволяют выполнить дальнейшую схемотехническую и топологическую разработку графических ускорителей средствами САПР. 4. Предложены методы повышения производительности алгоритмов работы блоков аппаратного выполнения графических операций по сравнению с их прямой реализацией: 6 а) ускорение рисования отрезка линии по алгоритму Брезенхема методом введения промежуточных буферов данных (достигается увеличение быстродействия в 2,1 раза по сравнению с прямой реализацией), б) ускорение заливки прямоугольной области с помощью увеличения разрядности шины данных (увеличение быстродействия работы блока до 16 раз), в) ускорение копирования прямоугольной области методом введения буферов данных на чтение и запись (увеличение быстродействия работы блока до 5 раз). К другим существенным результатам диссертации, имеющим практическое значение, могут быть отнесены следующие: 1. Предложена реализация канала очереди графических команд, позволившая снизить затраты времени на опрос окончания аппаратного выполнения графической операции. При этом минимальный выигрыш по времени за счёт отсутствия по локальной шине PCI циклов ожидания окончания операции составит при глубине очереди графических команд M = 8 до 168 тактов частоты шины PCI. Выигрыш времени зависит от суммарного времени выполнения графических операций, помещенных в очередь команд. 2. Предложена принципиальная схема арбитра доступа к видеопамяти с переключаемыми приоритетами для оптимизации времени работы с видеопамятью блока интерфейса локальной шины и графического ускорителя. Схема обеспечивает предоставление доступа к видеопамяти со стороны графического ускорителя и блока интерфейса локальной шины PCI таким образом, чтобы процесс ожидания данных при совместном обращении PCI и графического ускорителя к видеопамяти со стороны ускорителя как более быстродействующего устройства имел минимальную длительность. При этом выигрыш во времени работы составляет до 16 периодов тактовой частоты памяти за счёт минимизации ожидания подготовки процессором данных. 3. Предложена методика оптимизации схемотехнической реализации графических ускорителей по количеству транзисторов путем выделения функционально идентичных блоков и их использования для выполнения различных функций. Для разделения доступа к этим общим блокам разработан алгоритм арбитрирования запросов. Для созданного графического ускорителя данная методика обеспечила снижение количества требуемых логических элементов на 7,5 %, и, соответственно, уменьшение на такую же величину потребляемой графическим ускорителем мощности. 7 Результаты диссертации, выносимые на защиту 1. Методика выделения графических функций X Window, предназначенных для аппаратной реализации. 2. Методика построения аппаратных средств графического ускорителя, предназначенного для отображения графической информации в индустриальных ЭВМ. Методика позволяет реализовать аппаратное выполнение основных графических операций X Window, ускоряя функцию рисования отрезка линии в 4 раза по сравнению с программным выполнением, и до 30 раз для копирования в 8разрядном режиме, наращивать функциональные возможности таких микросхем, например, добавляя ещё одну очередь команд вывода на экран. Предложены методы и способы повышения быстродействия прямой реализации алгоритмов аппаратного выполнения графических операций. 3. Структура блоков графического ускорителя, реализующего аппаратное выполнение основных графических операций X Window, в составе графического контроллера, предназначенного для вывода графической информации на экран в системах на базе высокопроизводительных индустриальных ЭВМ. Диаграммы работы машин состояний блоков аппаратного ускорения графических операций. Практическая ценность Разработанные в диссертации методики проектирования графических ускорителей и алгоритмы реализации графических операций, предложенные структурные и схемотехнические решения для реализации основных блоков и субблоков были использованы при разработке двух типов отечественных микросхем графических контроллеров индустриального назначения 1890ВГ10Т и 1890ВГ14Т, выпускаемых серийно. Графические контроллеры 1890ВГ10Т и 1890ВГ14Т позволяют выводить на экран изображение с высоким разрешением и кадровой частотой с глубиной цвета 8, 16 и 32 разряда на точку; при этом находящийся в их составе графический ускоритель способен осуществлять следующие графические операции: копирование прямоугольных областей в видеопамяти; копирование прямоугольных областей в видеопамяти с графической операцией; заливка прямоугольной области в видеопамяти фиксированным цветом; заливка прямоугольной области в видеопамяти фиксированным цветом с графической операцией; постановка точек по координатам; заливка прямоугольной области по маске, расположенной в памяти (копирование с расширением цвета); заливка прямоугольной области с отсечением по маске расположенной в памяти (копирование с расширением цвета с отсечением); 8 заливка произвольной прямоугольной области с использованием расположенного в регистре шаблона 8х8 (как двухцветной, так и с отсечением); рисование линии нулевой толщины с использованием графической операции по начальной и конечной точкам (в том числе и пунктирной линии) с поддержкой отрицательных экранных координат; рисование линии нулевой толщины (в том числе и пунктирной) с использованием графической операции по начальной точке, длине и характеризующей наклон величине ошибки; обработка очереди графических команд. Проведенные экспериментальные исследования и испытания микросхем 1890ВГ10Т и 1890ВГ14Т позволили оценить эффективность введения разработанного графического ускорителя для повышения производительности систем при выполнении графических процедур. Возможности функционирования в расширенном диапазоне температур обеспечиваются особенностями технологического процесса и применением металлокерамического или стеклокерамического корпуса, обладающих способностью повышенного отвода тепла от кристалла. Данные микросхемы используются в ряде ОКР по созданию автоматизированных систем управления индустриального и специального применения. С использованием данных микросхем создано новое поколение компьютеров серии «Багет», что подтверждается приложенными актами о внедрении. Апробация диссертации Основные положения диссертации докладывались и обсуждались на научно-технических конференциях и семинарах: Научно-техническая конференция «Электроника, микрои наноэлектроника», 2001 г. (г. Пушкинские горы), 2002 г. (г. Пушкин), 2003 г. (г. Кострома). Научные сессии МИФИ-2001 и МИФИ-2002. На семинарах НИИСИ РАН, межведомственных совещаниях и семинарах. Публикации По теме диссертации опубликовано 10 работ. Структура и объем диссертации Диссертация состоит из введения, трех глав, заключения и списка литературы. Диссертация содержит 145 страниц, 43 рисунка, 16 таблиц. Список литературы насчитывает 91 наименование. 9 В первой главе рассматривается назначение графического ускорителя в составе графического контроллера, рассматриваются основные составляющие части графического контроллера и их предназначение. Приводятся направления развития современных микросхем, поддерживающих ускорение двумерной графики и предназначенных для применения во встроенных системах. Приводится сравнительная характеристика рассмотренных микросхем и делаются выводы о реализованном в них наборе операций. Во второй главе описывается предлагаемая методика выделений графических операций из системы графических команд, которые следует выполнять аппаратно, приводится теоретический расчёт быстродействия программного и аппаратного выполнения графических операций. Выбирается тип локальной памяти и видеопамяти, с которыми будет работать графический ускоритель. В третьей главе приводятся разработанные алгоритмы работы и структурные схемы блоков графического ускорителя, диаграммы работы машин состояний блоков. Приводятся способы и методы повышения быстродействия выбранных для аппаратной реализации алгоритмов. В заключении формулируются основные результаты диссертации, полученные автором на основе исследований, проведенных в диссертации. Содержание диссертации Введение. Во введении обоснована актуальность темы, определена цель диссертации. Сформулирована постановка задачи и основные положения, выносимые на защиту. Изложены научная новизна и практическая ценность диссертации. 1. Направления развития содержащих 2D-ускорители современных микросхем, При решении задач проектирования современных графических ускорителей существует два основных подхода: 1. Разработка универсального высокопроизводительного графического ускорителя, выполняющего широкий набор графических операций. При этом аппаратное ускорение графических операций происходит с помощью выполнения графическим ускорителем инструкций микрокода, которые соответствуют выполняемой операции. Сменой микропрограмм, хранящихся в ПЗУ начальной загрузки графического ускорителя, обеспечивается возможность смены и расширения набора выполняемых графических операций. 2. Разработка графического ускорителя, выполняющего ограниченный набор требуемых графических операций. При этом выполнение отдельных операций обеспечивается соответствующими специализированными конечными автоматами, которые соединяются локальной шиной и работают под управлением центрального микропроцессора. Второй вариант построения графических ускорителей наиболее подходит для создания микросхем, которые будут применяться в системах индустриального и 10 специального назначения. Применение такого аппаратного ускорителя графических операций позволяет разгрузить центральный процессор, повысить производительность системы и, как следствие, улучшить параметры выводимого изображения, частоту смены изображения. При выборе технологических норм для реализации графических ускорителей, ориентированных на использование в системах индустриального и специального применения, необходимо учитывать особенности функционирования микросхем в условиях предельных температур. Среди климатических факторов температура окружающей среды является наиболее важным параметром, который должен приниматься во внимание при проектировании микросхем для индустриальных вычислительных систем. Наиболее приемлемыми технологическими нормами для индустриальных систем в настоящее время являются нормы не лучше 0,25 мкм. 2. Выбор состава аппаратных средств графического ускорителя Чтобы реализовать аппаратную поддержку системы графических команд X Window, необходимо проанализировать принципы обработки графического приложения средствами пакета X Window. При выполнении данной процедуры реализуются два варианта интерфейса: - между клиентским приложением и X-сервером с использованием библиотеки Xlib, - между X-сервером и драйвером графического контроллера с помощью архитектуры XAA (XFree86 Acceleration Architecture). В процессе обработки X-сервер производит разложение функций и операций, поддерживаемых библиотекой Xlib, на более примитивные и передает их драйверу с помощью аппаратно-программных средств, реализующих архитектуру XAA. Основные графические функции, поддерживаемые XAA. 1. Функция копирования экран-в-экран. 2. Функция сплошной заливки. 3. Функция рисования сплошного отрезка. 4. Функция рисования штрихпунктирного отрезка. 5. Функция копирования с расширением цвета. 6. Функция копирования с расширением цвета из видеопамяти в экранную область. 7. Функция копирования с расширением цвета из ЦПУ в экранную область. 8. Функция заливки прямоугольной области узором 8x8. 9. Функция заливки прямоугольной области полноцветным узором 8x8. 10. Функция записи изображений в видеопамять. 11 11. Окно отсечения. Для оценки целесообразности аппаратной реализации графических функций предлагается ввести коэффициент эффективности, вычисляемый по следующей формуле: Kэфф = (1 - Qотн) · PX Win · Kуск, где Qотн - относительная сложность требуемых аппаратных блоков, которая определяется как отношение количества логических элементов, обеспечивающих аппаратную реализацию графической функции, к общему количеству логических элементов ускорителя; PX Win – частота вызова X Window той или иной функции , Kуск - коэффициент ускорения, показывающий отношение между временами программного и аппаратного выполнения функции. Чем больше величина Kэфф, тем целесообразнее функцию, которую она характеризует, выполнить аппаратно. Коэффициент эффективности позволяет оценить целесообразность аппаратной реализации тех или иных графических функций. С его помощью можно ранжировать функции по приоритету их аппаратной реализации. Значение коэффициента эффективности ниже 1 показывает, что хотя скорость аппаратного выполнения графической функции выше программной, это преимущество нивелируется сложностью аппаратной реализации или малой частотой ее использования. Также можно выявить «узкие места» реализации аппаратного ускорения, в частности, в таблице 1 показано, что скорость аппаратного рисования линии необходимо повысить минимум в 3 раза. Табл. 1. Коэффициент эффективности аппаратной реализации графических функций Функция Коэффициент эффективности, Кэфф Поддержка аппаратного эллипса 0,07 Поддержка пунктира при аппаратном 0,11 рисовании линии Заливка полноцветным узором 0,28 Аппаратное рисование линии 0,43 Поддержка заливки узором 8x8 1,26 Аппаратная заливка 1,52 Аппаратное копирование 4,13 Поддержка заливки по маске рисования 6,54 Поддержка заливки по маске отсечения 6,54 Использование окна отсечения 7,87 Графический ускоритель не все операции выполняет аппаратно. Например, стандартом XAA не предусмотрено рисование линии толщиной более, чем 1 точка. Программно рисуются сложные фигуры, состоящие из набора кривых. Для того, 12 чтобы в этом случае производительность подсистемы памяти была максимальной, требуется переключать приоритеты запросов доступа к памяти со стороны блока интерфейса PCI и графического ускорителя. В случае арбитрирования с фиксированными или циклически меняющимися приоритетами соотношение времён работы блока интерфейса PCI и блока ускорителя одинаковое. Отсюда можно сделать вывод, что при максимальной нагрузке шины памяти со стороны как блока PCI, так и блока памяти, быстродействие работы графической подсистемы за счёт снижения простоя графического ускорителя в ожидании данных может быть поднята до 8 раз. В реальной системе сначала происходит подготовка данных, затем запускается графический ускоритель. Поэтому выигрыш при подобном арбитрировании наблюдается при совместном обращении PCI и графического ускорителя к видеопамяти при работе над последовательностью графических примитивов, требующих обновления графической памяти по локальной шине со стороны центрального процессора. В данном случае выигрыш во времени работы составляет до 16 периодов тактовой частоты за счёт минимизации времени ожидания подготовки процессором данных. Высший приоритет доступа к памяти обеспечивается либо для локальной шины PCI, либо для графического ускорителя. При этом приоритет меняется в зависимости от того, какое время работы с памятью было предоставлено графическому ускорителю и блоку интерфейса PCI при выполнении данной графической операции. Таким образом, применение разделения приоритета доступа к памяти со стороны PCI и графического ускорителя позволяет увеличить общее быстродействие графической подсистемы за счёт эффективного распределения времени работы графического ускорителя и блока интерфейса PCI. В данной диссертации предлагается следующая методика проектирования графического ускорителя с использованием разработанных средств и устройств: 1. Составляются требования к графическому ускорителю: 1а. Определяется набор возможных графических операций. Для этого анализируется система команд, передаваемых от графической системы драйверу. Каждая команда несёт с собой набор разрешающих или запрещающих флагов и параметров, указывающих, как надо выполнять данную графическую операцию. Используя эти данные, разработчик графического ускорителя получает следующую информацию: на основе анализа флагов, сопутствующих графической операции, формируется предварительный вариант алгоритма аппаратной реализации этой операции. Например, если флаг указывает направление копирования, то разработчик должен предусмотреть возможность копирования как с положительным, так и с отрицательным приращением адресов. на основе передаваемых параметров формируется массив конфигурационных и управляющих регистров, отвечающих в графическом 13 ускорителе за выполнение той или иной графической операции, например, координаты области источника и области назначения при копировании, а также геометрические размеры копируемой области. 1б. Определяются наиболее часто используемые графические операции из списка, полученного в п 1а. Для этого средствами операционной системы набирается статистика, основанная на анализе вызовов графических команд при работе с приложениями, характерными для того сегмента промышленных систем, в котором будет использоваться проектируемый ускоритель. В случае, например, картографического устройства основное внимание уделяется реализации функции копирования участков изображения, а также работы с «прозрачным» цветом. Если сегмент не определён, анализируется работа с наиболее часто встречающимися элементами графического интерфейса, например, формирование окошка графического меню. 1в. Анализируется сложность аппаратной реализации каждой из выбранных в пункте 1б операций. Для этого осуществляется выбор алгоритмов реализации графических операций, или разрабатываются оригинальные варианты алгоритмов. При необходимости производится моделирование алгоритма на программном языке высокого уровня – например, получение координат точек при рисовании линии методом Брезенхема. Созданные или выбранные алгоритмы аппаратно реализуются на ПЛИС, после чего оценивается доля ресурсов, требуемых для реализации данных алгоритмов в графическом ускорителе. Вычисляется коэффициент ускорения аппаратного решения по сравнению с программным, затем определяется коэффициент эффективности аппаратной реализации данной функции. Выполнение этих процедур подробно описано в разделе диссертации 2.1.2. 1г. В случае неудовлетворительного значения коэффициента эффективности (меньше 1) рассматриваются возможности модификации и оптимизации алгоритма выполнения соответствующей операции. Так, для алгоритма рисования линии производится конвейеризация вычислений и применение накопительного буфера для хранения рассчитанных координат точек линии. На основе итогового значения коэффициента эффективности принимается окончательное решение о целесообразности аппаратной реализации данной графической функции. 2. Выбираются внешние интерфейсы графического ускорителя.: 2а. Исходя из требуемых разрешений экрана и выбранных операций оценивается необходимая пропускная способность локальной шины. По результатам оценки выбирается локальная шина и тип поддерживаемых передач: одиночный или пакетный. Также оценивается необходимость использования ведущего устройства (master) на шине. Анализируется спектр промышленных систем, в которых предполагается применять графический контроллер с проектируемым графическим ускорителем. Если в данных системах предъявляются повышенные требования к характеристикам шины PCI (тактовая частота 66 МГц 14 или разрядность 64 бит), то необходимо использовать схемотехнические и конструкторско-технологические средства, чтобы обеспечить эффективную работу графического ускорителя с такой шиной. Схемотехнические способы используются для поддержки 64-разрядного обмена по локальной шине, а также для сокращения задержек комбинационных блоков, расположенных между регистрами (триггерами), с целью повышения тактовой частоты. Конструктивнотехнологические методы обеспечивают повышение соответствующих характеристик проектируемого ускорителя благодаря использованию более совершенной технологии изготовления и применения при проектировании специальных библиотек элементов. 2б. Исходя из требуемых разрешений экрана, количества поддерживаемых одновременно устройств вывода и потока данных через локальную шину, выбирается тип видеопамяти, её тактовая частота и разрядность шины данных. При этом также следует оценить значение потребляемого тока (см. раздел 2.3.1) и, в случае необходимости, ограничить разрядность шины. 3. Производится отладка модели и прототипа будущей микросхемы. 3а. Отлаживается на регистровом уровне ранее написанная в предварительном варианте (п. 1в) модель графического ускорителя. Моделирование выполняется при помощи соответствующих САПР (ModelSim фирмы Mentor Graphics, NCVerilog фирмы Cadence и подобных) с использованием высокоуровневых языков описания аппаратуры (например, Verilog HDL, VHDL, AHDL и т.д.). При моделировании отлаживается взаимодействие между блоками, вносятся изменения как в алгоритм работы, так и в интерфейс между создаваемыми блоками для повышения эффективности функционирования. Для блоков, выполняющих похожие операции, производится оптимизация по количеству транзисторов за счёт выделения общих субблоков и организации разделённого доступа к ним со стороны выполняющих графические операции блоков. 3б. Разработанная модель реализуется на базе программируемых логических интегральных схем (ПЛИС), после чего полученный прототип тестируется и отлаживается в реальной системе. На данном этапе написанная модель будет верифицирована с учётом некоторых сопутствующих реальной микросхеме условий, таких как задержки логических вентилей, тепловыделение. Кроме того, тестирование на ПЛИС позволяет реализовать более длительные и разнообразные механизмы верификации за счёт того, что аппаратно алгоритмы выполняются во много раз быстрее, чем на модели. Данный этап позволяет выявить основные ошибки, могущие проявиться в реальной микросхеме, с поправкой на более низкую частоту работы ПЛИС-прототипа. 3в. По разработанной и протестированной модели средствами САПР проектируется заказная СБИС, содержащая необходимый графический ускоритель. На основе данной методики были разработаны алгоритмы работы и структурные схемы блоков графического ускорителя. 15 3. Реализация блоков графического ускорителя Для реализации алгоритма рисования линии был взят за основу целочисленный алгоритм Брезенхема. Выбор был обусловлен в первую очередь тем, что этот алгоритм прост в реализации, не требует вычисления сложных функций, обработки чисел с плавающей запятой. При его реализации используется только целочисленное сложение, что снижает требования к количеству ресурсов, необходимых для аппаратной реализации данного алгоритма. Второй вариант алгоритма Брезенхема требует предварительного проведения процессором вычислений ошибки и наклона линии, но требует ещё меньше ресурсов, чем первый. Этот алгоритм преимущественно используется в X Window ещё с тех пор, когда простота вычисления – ввиду необходимости экономии ресурсов – была важнее удобства. Ввиду того, что X-сервер может задавать параметры линии двумя способами – через задание начальной и конечной точки и через задание начальной точки, длины рисуемой линии и радиус-вектора – были реализованы оба алгоритма рисования линии. Скорость работы прямой реализации алгоритма рисования отрезка прямой линии недостаточна. Для получения приемлемого коэффициента эффективности работы аппаратной реализации алгоритма его производительность необходимо увеличить минимум в 2 раза. Повышение быстродействия предлагается достичь методом введения буфера на некоторое количество значений координаты и цвета точек, который будет наполняться блоком рисования отрезка, а затем подряд записывается в память в одном цикле разрешения работы от арбитра памяти. Увеличение скорости работы блока рисования отрезка с помощью введения буфера теоретически может достигнуть 2,5 раз по сравнению с прямой реализацией алгоритма рисования отрезка. Однако при величине буфера, например, равной 8, полученное увеличения быстродействия также позволяет достигнуть необходимого коэффициента эффективности. Функция рисования эллипса не поддерживается напрямую интерфейсом драйвера X Window. Включение этого блока позволяет расширить функциональные возможности графического ускорителя, поскольку при выполнении ряда задач может возникнуть необходимость отобразить эллипс. Ввиду несложности алгоритма он не требует много ресурсов, но является при этом самым быстрым из существующих. Наличие блока рисования эллипса повышает универсальность микросхемы, увеличивая возможности пиксельного процессора. Блок занимает на кристалле примерно такую же площадь, как и блок рисования линии. При этом субблок пересчёта координат в адреса в памяти используется им совместно с блоками рисования отрезка линии. Заливка прямоугольной области является широко распространенной графической операцией, используемой X Window. Заливка прямоугольной области может быть сплошной, то есть фактически производится рисование обычного прямоугольника того или иного цвета, и по шаблону или маске - одноцветной и 16 двуцветной. Заливка по маске – это термин, удобный для понимания происходящего процесса; в терминах команд X Window это произносится как «копирование с расширением цвета (Color expand)». Одна точка представлена одним разрядом, байт маски содержит информацию о восьми точках. Маску можно представить как изображение глубиной цвета 1 бит на точку. Маска может быть двухцветной, в этом случае ставится точка как основного, так и фонового цвета, в случае равенства соответствующего разряда маски единице или нулю соответственно, и одноцветной, при которой подавляется запись в точку, если маска равна нулю, и заносится фоновый цвет, если маска равна единице. Выбор типа маски производится драйвером графического ускорителя и заносится в соответствующий регистр в блоке заливки по маске перед запуском процедуры аппаратной заливки. Узор 8 на 8 точек является очень распространённым для заливки фона, в частности, фоновая сетка представляет собой вариант заливки этим способом. Для реализации этого механизма значения узора записываются не в память, как при работе с масками, а в два 32-разрядных регистра. Прямым методом повышения быстродействия блока заливки по маске является увеличение разрядности шины данных. В этом случае чем выше разрядность, тем большее количество точек будет поставлено за один цикл работы механизма заливки. Количество точек зависит также от глубины цвета, так как при той же разрядности шины увеличение глубины цвета до 32-х бит на точку приводит к уменьшению быстродействия механизма в 4 раза по сравнению с 8-битным режимом. Одна из наиболее часто используемых операций графического ускорителя – это копирование больших прямоугольных (то есть в виде окна в пространстве памяти) массивов данных – такова особенность оконного интерфейса. Поэтому необходимо для ускорения рисования перемещения области по экрану реализовать аппаратную поддержку этой операции. Аппаратная реализация блока прямого алгоритма копирования позволяет достичь приемлемого коэффициента ускорения. Однако дальнейшее повышение быстродействия позволяет увеличить скорость работы графической системы в целом и снизить простои центрального процессора в ожидании завершения ускорителем графической операции. Предлагаются следующие методы повышения быстродействия копирования прямоугольной области: повышение разрядности графической шины данных; конвейеризация процесса; увеличение скорости работы алгоритма с помощью буфера. Результат увеличения разрядности графической шины данных такой же, как у блока заливки прямоугольной области и не отличается в применении к блоку копирования прямоугольной области. 17 Реализация конвейерного выполнения команд не увеличивает быстродействие алгоритма копирования, но позволяет снизить задержки между запусками серии графических операций, что в конечном итоге повышает быстродействие графической системы в целом. При размере буфера M = 16 увеличение быстродействия блока копирования прямоугольной области будет пятикратным. Использование разработанных методов и средств построения графических ускорителей Создание графических систем для индустриальных ЭВМ требует решения следующих задач: 1. Реализация интерфейса локальной шины, контроллера видеопамяти, интерфейса видеомониторов (как на ЭЛТ, так и на ЖК). 2. Реализация алгоритмов аппаратного ускорения графических функций. 3. Построение графической подсистемы в целом, поддерживающей вывод на различные типы мониторов, аппаратное ускорение наиболее используемых операций X Window, эффективную работу с локальной шиной, работу с различными разрешениями и глубинами цветов. В диссертации предлагаются варианты решения перечисленных задач при построении графического ускорителя в составе графического контроллера для ускорения наиболее используемых графических функций. В качестве локальной шины используется шина PCI (Peripheral Connection Interface), для видеопамяти выбрано динамическое ОЗУ, работающее по двум фронтам – DDR SDRAM, интерфейс видеомонитора – либо RGB, либо параллельный для работы с ЖКИ. Для ускорения выполнения графических операций предложены модифицированные варианты стандартных алгоритмов (Брезенхема для отрезка и эллипса) или оригинальные алгоритмы. Предложенные алгоритмы, разработанные методики и структурносхемотехнические решения были использованы при разработке двух типов отечественных микросхем графических контроллеров индустриального назначения 1890ВГ10Т и 1890ВГ14Т, выпускаемых серийно. На базе этих микросхем реализованы образцы графических модулей, которые были протестированы и показали свою работоспособность как в составе персональной ЭВМ типа PC, так и в индустриальной ЭВМ типа «Багет». Количество транзисторов и занимаемая отдельными блоками площадь в графическом ускорителе показана в таблицах 2 и 3. Краткая характеристика микросхем приведена в таблице 4. Таблица 2. Количество транзисторов в разработанных микросхемах и их распределение между блоками памяти и блоками логики. Параметр 1890ВГ10Т, 1890ВГ14Т, 18 млн. тр-ров млн. тр-ров Общее 1,64 2,72 Блоки памяти 0,49 0,64 Вся микросхема Блоки логики 1,15 2,08 Из них графический 0,75 1,44 ускоритель Таблица 3. Площади кристаллов разработанных микросхем и их распределение между блоками памяти и блоками логики. 1890ВГ10Т, 1890ВГ14Т, Параметр мм2 мм2 Общая 68,89 90,25 Блоки памяти 5,96 8,47 Вся микросхема Блоки логики 62,93 81,78 Из них графический 41,04 56,43 ускоритель Таблица 4. Характеристики микросхем 1890ВГ10Т и 1890ВГ14Т Параметр 1890ВГ10Т 1890ВГ14Т Технология изготовления 0,35 мкм 0,35 мкм Тактовая частота шины PCI 33 МГц 66 МГц Тактовая частота памяти 166 МГц 120 МГц Тактовая частота графического ядра 83 МГц 120 МГц Напряжение питания 3,3 В 2,5 В для DDR SDRAM 3,3 В 2,5 В для DDR SDRAM Потребляемая суммарная мощность до 3 Вт до 3 Вт Диапазон рабочих температур от –65 ºC до +125 ºC от –85 ºC до +125 ºC Тип корпуса пластмассовый или металлокерамический на 240 планарных выводов по четырём сторонам металлокерамический или стеклокерамический на 240 планарных выводов по четырём сторонам На рисунке 1 показана топология кристалла графического контроллера 1890ВГ10Т. Цифрами на рисунке обозначены: 19 1. Блок памяти 16 х 32. Используется для очереди команд ускорителя. 2. Блок памяти 260 х 24. Используется как память палитры в контроллерах ЭЛТ-монитора и ЖК-панели. 3. Блок памяти 1024 х 4. Используется как память курсора в контроллерах ЭЛТ-монитора и ЖК-панели. 4. Блок памяти 64 х 128. Используется как FIFO в контроллерах ЭЛТмонитора. 5. Блок памяти 16 х 128. Используется как FIFO в контроллерах ЖК-панели. 6. ЦАП. 7. Синтезатор частот. 8. ФАПЧ. 9. Контроллер ЭЛТ-монитора. 10. Контроллер ЖК-панели. 11. Контроллер PCI. 20 12. Графический ускоритель. Рис. 1 Топология микросхемы 1890ВГ10Т Кристалл 1890ВГ14Т топологически подобен кристаллу 1890ВГ10Т. Возможности функционирования в расширенном диапазоне температур обеспечиваются особенностями технологического процесса и применением металлокерамического или стеклокерамического корпуса, обладающих способностью повышенного отвода тепла от кристалла. Микросхема графического контроллера разрабатывалась в рамках ОКР «Разработка образцов элементной базы основной номенклатуры для применения при создании ЭВМ серии «Багет», а также периферийных устройств и дополнительных модулей», шифр «Схематизатор». Целью ОКР является разработка микросхем для создаваемых в рамках программы «Интеграция СВТ» периферийных устройств и дополнительных модулей для ЭВМ серии «Багет». Целью программы является разработка средств вычислительной техники. Разработанный графический контроллер используется в ОКР «Разработка однокристального графического контролера (ОГК)», в рамках данной ОКР создана 240-выводная микросхема ОГК по технологии 0,35 мкм. Фрагмент печатной платы серийного модуля ЭВМ серии «Багет» с использованием микросхемы 1890ВГ10Т показан на рис. 2. Рис. 2 Микросхема 1890ВГ10Т в составе серийного модуля ЭВМ 21 Заключение Основным научным результатом диссертации является развитие методов проектирования высокопроизводительных графических контроллеров для систем индустриального назначения. Основные теоретические результаты данной диссертации заключаются в следующем: 1. Обоснованы принципы выбора наиболее часто употребляемых графических операций графических систем X Window для их аппаратной реализации. На основе этих принципов предложена общая методика проектирования графических ускорителей. 2. Предложены алгоритмы для аппаратной реализации выбранного набора графических операций X Window. Данные алгоритмы обеспечивают значительное ускорение аппаратного выполнения основных графических процедур (до 37,6 раз) при допустимых затратах ресурсов на их реализацию (увеличении площади кристалла за счёт ускорителя на 54 %, повышении потребления мощности на 41 % ). 3. На базе предложенных алгоритмов разработаны структурные решения и получены графы машин состояний для реализации основных блоков графических ускорителей. Полученные структурные решения и графы состояний позволяют выполнить дальнейшую схемотехническую и топологическую разработку графических ускорителей средствами САПР. 4. Предложены методы повышения производительности алгоритмов работы блоков аппаратного выполнения графических операций по сравнению с их прямой реализацией: а) ускорение рисования отрезка линии по алгоритму Брезенхема методом введения промежуточных буферов данных (достигается увеличение быстродействия в 2,1 раза по сравнению с прямой реализацией), б) ускорение заливки прямоугольной области с помощью увеличения разрядности шины данных (увеличение быстродействия работы блока до 16 раз), в) ускорение копирования прямоугольной области методом введения буферов данных на чтение и запись (увеличение быстродействия работы блока до 5 раз). Основные практические результаты диссертации следующие: 1. Предложены и реализованы в микросхеме алгоритмы очереди графических команд, позволившие снизить затраты времени на опрос окончания аппаратного выполнения графической операции. При этом минимальный выигрыш по времени за счёт отсутствия по локальной шине PCI циклов ожидания окончания 22 операции составит при глубине очереди графических команд M = 8 до 168 тактов частоты шины PCI. Выигрыш во времени зависит от суммарного времени выполнения графических операций, помещенных в очередь команд. 2. Предложена и реализована в микросхеме принципиальная схема арбитра доступа к видеопамяти с переключаемыми приоритетами для оптимизации времени работы с видеопамятью блока интерфейса локальной шины и графического ускорителя. Схема обеспечивает предоставление доступа к видеопамяти со стороны графического ускорителя и блока интерфейса локальной шины PCI таким образом, чтобы процесс ожидания данных при совместном обращении PCI и графического ускорителя к видеопамяти со стороны ускорителя как более быстродействующего устройства имел минимальную длительность. При этом выигрыш во времени работы составляет до 16 периодов тактовой частоты памяти за счёт минимизации ожидания подготовки процессором данных. 3. Предложена методика оптимизации схемотехнической реализации графических ускорителей по количеству транзисторов путем выделения функционально идентичных блоков и их использования для выполнения различных функций. Для разделения доступа к этим общим блокам разработан алгоритм арбитрирования запросов. Для созданного графического ускорителя 1890ВГ10Т данная методика обеспечила снижение количества требуемых логических элементов на 7,5 %, и, соответственно, уменьшение на такую же величину потребляемой графическим ускорителем мощности. Разработанные в диссертации методики проектирования графических ускорителей и алгоритмы реализации графических операций, предложенные структурные и схемотехнические решения для реализации основных блоков и субблоков были использованы при разработке двух типов отечественных микросхем графических контроллеров индустриального назначения 1890ВГ10Т и 1890ВГ14Т, выпускаемых серийно. Проведенные экспериментальные исследования и испытания микросхем 1890ВГ10Т и 1890ВГ14Т позволили оценить эффективность введения разработанного графического ускорителя для повышения производительности систем при выполнении графических процедур. Возможности функционирования в расширенном диапазоне температур обеспечиваются особенностями технологического процесса и применением металлокерамического или стеклокерамического корпуса, обладающих способностью повышенного отвода тепла от кристалла. Сравнение результатов тестирования графических модулей, реализованных на базе разработанных микросхем графических контроллеров 1890ВГ10Т, 1890ВГ14Т и зарубежных образцов, показывает, что предложенные в диссертационной работе методы проектирования и структурно-схемотехнические решения ускорителей плоской графики обеспечивают существенное повышение 23 производительности при выполнении основных графических операций до 32 раз по сравнению с программным выполнением. Данные микросхемы используются в ряде ОКР по созданию автоматизированных систем управления индустриального и специального применения. С использованием данных микросхем создано новое поколение компьютеров серии «Багет», что подтверждается приложенными актами о внедрении. Список работ, опубликованных по теме диссертации 1. Аряшев С. И., Евлампиев Б.Е., Корниленко А.В. Графический контроллер для ускорения операций X Window // Научная сессия МИФИ-2001. Т.1. Сб. научн. трудов. - М.: МИФИ, 2001. - С. 86-87 2. Аряшев С. И., Евлампиев Б.Е., Корниленко А.В. Микросхема ускорителя в составе графического контроллера // Научная сессия МИФИ-2001. Т1. Сб. научн. трудов. - М.: МИФИ, 2001. - С. 88-89 3. Аряшев С. И., Бобков С.Г., Грузинова Е.В., Евлампиев Б.Е., Корниленко А.В.. Сивакова Т.В. Разработка микросхемы графического ускорителяс использованием ПЛИС Altera // Электроника, микро- и наноэлектроника. Сб. научн. трудов. - М.: МИФИ, 2001. - С. 28-33 4. Аряшев С. И., Евлампиев Б.Е., Корниленко А.В. Оптимизация работы с памятью в микросхеме графического укорителя // Электроника, микро- и наноэлектроника. Сб. научн. трудов. - М.: МИФИ, 2002. - С. 111-117 5. Аряшев С. И., Евлампиев Б.Е., Корниленко А.В. Аппаратная реализация алгоритмов 3D графики на базе FPGA Altera // Электроника, микро- и наноэлектроника. Сб. научн. трудов. - М.: МИФИ, 2002. - С. 118-124 6. Аряшев С. И., Евлампиев Б.Е., Корниленко А.В. Разработка контроллеров на основе базовых блоков // Электроника, микро- и наноэлектроника. Сб. научн. трудов. - М.: МИФИ, 2003. - С. 170-173 7. Бычков К.С., Корниленко А.В. Реализация блока генерации основных графических примитивов в составе графического ускорителя // Электроника, микро- и наноэлектроника. Сб. научн. трудов. - М.: МИФИ, 2003. - С. 182-186 8. С.Г. Бобков, А.В. Корниленко. Высокопроизводительные графические контроллеры индустриального назначения // Информационные технологии и вычислительные системы. – 2005, №1. - С. 105 - 116 9. Корниленко А.В. Выбор архитектуры ядра графического ускорителя // Электроника, микро- и наноэлектроника. Сб. научн. трудов. - М.: МИФИ, 2008. - С. 125-128 24 10. Корниленко А.В. Метод повышения быстродействия аппратного рисования отрезка // Электроника, микро- и наноэлектроника. Сб. научн. трудов. - М.: МИФИ, 2008. - С. 129-133 25