Пути повышения производительности специализи­рован­ных функциональных преобразователей для навигационных систем реального времени

 

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

 

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

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

- используются логические элементы, у которых скорость срабатывания выше;

- используют параллельные вычислительные системы;

- используют специализированные устройства для обработки данных.

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

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

В работе [1] описывается методы повышения быстродействия, которые заключаются в следующем:

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

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

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

- Быстродействующие элементы рассеивают больше тепла. Поэтому требуются специальные меры по теплоотводу, что еще больше снижает плотность монтажа и, следовательно, быстродействие. Для того чтобы избежать дополнительных расходов, задержек за счет соединений и увеличения рассеяния тепла, целесообразно [1], по-видимому, применять быстродействующие элементы не везде, а только в тех частях, которые соответствуют «узким местам». Например, чтобы увеличить скорость сложения, можно применить высокоскоростные схемы только в цепи переноса. Однако путь увеличения быстродействия элементов имеет свои ограничения.

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

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

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

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

6) Подход к повышению быстродействия состоит в том, чтобы выполнять одновременно несколько команд. Параллельный подход приводит к различным вариантам архитектуры в зависимости от способа, по которому осуществляется задание очередности следования команд и управление их исполнением. Распараллеливание позволяет значительно увеличить производительность систем при решении широкого класса прикладных задач.

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

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

В [2] рассматривают метод повышения быстродействия за счет специализированных блоков, который заключается в использовании ускорителей, которые разгружают центральный процессор (ЦП) от рутинных задач работы с графическими примитивами. Автор определил наиболее используемые операции, сложность аппаратной реализации данной функции и на основе этих принципов проектировал графические ускорители. Этот вариант подходит для создания микросхем, которые могут применяться в системах индустриального и специального назначения. Эти устройства настроены под конкретный ряд задач.

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

Специализированные функциональные блоки (СФ-блоки) в настоящее время входят в состав систем на кристалле (СнК). В большинстве случаев СнК представляет собой цифровую СБИС, которая может также содержать ряд аналоговых блоков [3]. Поэтому для проектирования СнК используются те же методы и средства, что и для СБИС. Эти средства реализованы в виде систем автоматизированного проектирования (САПР), поставляемых компаниями Cadance, Synopsis, Mentor Graphics и др. В качестве элементной базы эти САПР используют библиотеки функциональных элементов, в состав которых входят как простые логические вентили и триггеры, так и макроэлементы, выполняющие более сложные функции: регистры, счетчики, сумматоры, умножители, арифметико-логические устройства и т. д.

В последние годы широкое распространение получила практика разработки отдельных СФ-блоков для их последующего представления на рынок средств проектирования СнК. СФ-блоки, предназначенные для использования в разнообразных проектах, стали называть IP (Intellectual Property) модулями.

СФ-блоки, используемые при проектировании СнК, имеют две основные формы представления:

- в виде топологических фрагментов, которые могут быть непосредственно реализованы в физической структуре кристалла — аппаратно реализованные (hard) СФ-блоки;

- в виде моделей на языке описания аппаратуры (Verilog, VHDL), которые средствами САПР могут быть преобразованы в топологические фрагменты для реализации на кристалле — синтезируемые (soft) СФ-блоки.

Современная микроэлектронная технология обеспечивает следующие варианты реализации СнК: в виде заказной СБИС (ASIC) и на базе ПЛИС высокой интеграции (FPGA).

Оба варианта реализации имеют свои достоинства и недостатки, которые целесообразно оценить в сравнении с традиционным способом монтажа систем на печатной плате из отдельных микросхем — системами на плате. При реализации СнК в виде ASIC используется традиционный маршрут проектирования ASIC с использованием аппаратно реализованных СФ-блоков, интегрированных в структуру СБИС, и синтезируемых СФ-блоков, которые изготовитель транслирует в физическую структуру с помощью собственных библиотек функциональных элементов. Используя средства САПР, набор необходимых СФ-блоков и современные технологии, можно реализовать в виде ASIC большинство электронных устройств, монтируемых в настоящее время на печатных платах. Таким образом, имеется возможность замены систем на плате системами на кристалле. Возникает альтернатива — разработка системы на плате или реализация функционально аналогичной СнК в виде ASIC.

Преимущества систем на плате:

- использование хорошо проверенных серийных компонентов;

- более простой процесс тестирования и отладки;

- возможность замены неисправных компонентов;

- низкая стоимость создания опытных образцов и малых серий.

- Преимущества систем на кристалле:

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

- более низкая стоимость при крупносерийном выпуске.

Следует отметить, что реализация СнК в виде специализированной ASIC требует значительных финансовых затрат. Изготовление опытной партии специализированных СБИС (несколько тысяч образцов) по технологии 0,13 — 0,18 мкм стоит несколько сотен тысяч долларов, а по технологии 0,09 мкм — свыше миллиона долларов. При этом имеющийся опыт разработки СнК показывает, что только в 25% проектов первоначально полученные опытные образцы соответствуют заданным требованиям. В большинстве случаев для получения необходимого результата требуется несколько итераций, что значительно увеличивает стоимость проекта. В настоящее время реализация СнК в виде ASIC используется только для ограниченного числа высокобюджетных проектов. Во всех случаях, когда можно достичь заданных характеристик, реализуя системы на плате, этот вариант является более предпочтительным ввиду названных преимуществ. Альтернативой может быть реализация СнК на базе высокоинтегрированных FPGA, содержащих миллионы эквивалентных логических вентилей [4]. Преимущества реализации СнК на базе FPGA следующие:

- малые затраты на разработку и создание опытных образцов;

- возможность многократной коррекции проекта;

- использование хорошо проверенных серийных изделий;

- простой процесс тестирования и отладки (возможность реализации и отладки «по частям»).

Таким образом, СнК на базе FPGA имеют практически те же достоинства, что и системы на плате, но отличаются лучшими техническими характеристиками — более низким энергопотреблением, меньшими габаритами и массой.

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

Еще одно преимущество FPGA-микросхем перед ASIC - возможность применения FPGA для испытаний и проверок используемых IP-блоков. Это облегчает решение одной из существенных проблем применения специализированных микросхем - обеспечения взаимодействия IP-блоков различных компаний в одной микросхеме. На преодоление этой проблемы приходится ~70% времени, затрачиваемого разработчиками на проверку проекта. Проверка и применение таких блоков на FPGA значительно проще, чем на ASIC, благодаря чему сокращаются сроки разработки и стоимость устройства. Они могут быть модифицированы практически в любой момент в процессе их использования. Меньшее время проектирования и более низкая стоимость тоже являются преимуществом FPGA.

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

Одним из эффективных путей, позволяющих сократить сроки и снизить стоимость разработки системы на кристалле (СнК), является применение в процессе проектирования встраиваемых IP-блоков [4]. Процесс проектирования СнК на базе FPGA состоит из следующих этапов.

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

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

Для разработки необходимых аппаратных средств выполняется функциональное проектирование системы, в процессе которого создается функциональная модель, описывающая поведение системы. При этом используются HDL-языки (VHDL, Verilog).

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

Следующий этап — логический синтез. Входными данными на этапе автоматизированного логического синтеза являются: разработанное RTL-описание, выбранная технологическая библиотека и заданные проектные ограничения. Результатом выполнения этого этапа является структурное описание проекта в заданном базисе (netlist). Описание системы (проекта) передается для выполнения физического синтеза (трассировки и размещения элементов на кристалле).

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

Выводы. Анализируя перечисленные выше положения можно выделить следующие ключевые моменты.

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

В процессе проектирования новых систем на основе СнК часто используют готовые СФП в виде IP-модулей, которые заранее спроектированы и отлажены и являющиеся, по-сути, «библиотечными» элементами. Так как микросхемы с FPGA предоставляют разработчикам требуемые устройства с высокой плотностью размещения элементов и быстродействием, низким энергопотреблением и удельной стоимостью в пересчете на вентиль, выгодно использовать вариант реализации СнК на базе ПЛИС высокой интеграции (FPGA).

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

- универсального характера — задачи ввода/вывода, хранения, визуализации, оповещения и т.д.;

- специализированные — взаимные преобразования систем координат, обрабока положения в пространстве и характеристик движения объектов и т.п.

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

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

 

Список литературы:

1. Немудров В. Системы на кристалле. Проектирование и развитие/ Немудров В., Мартин Г. — М.: Техносфера, 2004.- с. 216.

2. AMBA Specification Rev. 2.0 - ARM Limited, 1999.- p. 230

3. Несс Р. Ежегодное исследование рынка встраиваемых систем//Электронные компоненты, 2007.- №11, с.69—77.

4. Шагурин И. «Большие» FPGA как элементная база для реализации систем на кристалле/ Шагурин И., Шалтырев В., Волов А., Электронные компоненты, 2006.- №5, c.83—88.

УДК 681.5

 

Ульшин В.А., Смолий В.Н.