Главная | Диссертация | Библиотека | Ссылки

Донецкий национальный технический университет


Гезь Михаил Валериевич

"Моделирование HDL-проектов на мультипроцессорной системе"


Автореферат

Актуальность

        На данный момент технология создания цифровых устройств является уже хорошо отработанной, и никто не подвергает сомнению её достижения, которые своими темпами опережают любые другие достижения науки. При этом в проектировании могут использоваться различные технологии, например, такие как ASIC (Application Specific Integrated Circuits - интегральные схемы для специфических применений) или FPGA (Field Programmable Gate Arrays - перепрограммируемые интегральные схемы).

        Наличие разных технологий, таких как ASIC и FPGA объясняется преимуществами каждой из них:
        - ASIC-технология позволяет достичь конечного результата, который будет иметь наилучшие характеристики по производительности, размеру и энергопотреблению (что особенно важно в связи с бурным развитием так называемых мобильных технологий - портативных устройств, питающихся от источников тока сравнительно низкой ёмкости);
        - FPGA-технология обладает высокой степенью универсальности и гибкости - это возможность многократно и быстро перестраивать схему внутри FPGA-микросхемы.


        Конкуренции между FPGA и ASIC почти не наблюдается, потому что проектировщику почти сразу становится очевидным, что лучше применить в конкретной ситуации. Достоинства FPGA определили и основное направление использования данной технологии - для моделирования устройств, которые ещё находятся в стадии разработки, причём не очень важно, будет ли конечный результат реализован по технологии ASIC или FPGA. Хоть существующие САПР и позволяют осуществлять моделирование на компьютере, но оно не сравнится по скорости с моделированием на FPGA.

    Но существующие технологии проектирования также имеют некоторые недостатки, которые с усложнением проектов становятся слишком заметными и даже неприемлемыми. Например, время процесса "place and rote" - размещения и разводки цифровых элементов на подложке микросхемы ASIC или распределение функций между элементами CLB (Control Logic Block) в FPGA увеличивается экспоненциально при линейном усложнении проекта. Это приводит к тому, что на некотором этапе усложнения проект становится нерентабельным. Для того чтобы решить данную проблему, приходится использовать большие вычислительные мощности, что тоже является лишь частичным решением - алгоритмы разводки и размещения слабо поддаются распараллеливанию, что делает их сильно зависимыми от текущего состояния в развитии компьютерных технологий, или, грубо говоря, от тактовой частоты самого мощного на сегодняшний день процессора. Да и сами алгоритмы не являются совершенными, так что зачастую приходится прибегать к ручной работе, требующей высокой квалификации и не гарантирующей нахождения простого решения.

        Конечно, в случае с ASIC, размещение и разводку можно осуществить уже в самом конце проектирования. А как же быть с моделированием на FPGA? От него тоже придётся отказаться - осуществлять моделирование на компьютере, а это тоже очень медленно - так же медленно, как и процесс разводки и размещения в FPGA. Вот и возникает ситуация, когда существующие подходы становятся уязвимыми перед нарастающей сложностью проекта.

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

        Но есть и другой подход, который пока что находится в стадии разработки, однако является весьма перспективным и привлекательным. Суть подхода заключается в том, что моделирование проектируемого устройства необходимо осуществлять на мультипроцессорной системе. Правда, структурно HDL-проекты далеко не всегда могут быть эффективно распределены между процессорами. Да и многое зависит от особенностей применяемой мультипроцессорной системы. Им обычно свойственна высокая стоимость, и сложность эффективной загрузки системы. Так как же добиться высоких показателей? Это можно сделать за счёт преобразования HDL-проектов в формат, который будет легче всего поддаваться распараллеливанию, а именно - в набор булевских выражений, ведь всем известно, что схема любой сложности может быть представлена в виде набора соединённых между собой логических элементов. Моделирование каждого отдельно взятого элемента можно осуществлять независимо от других, а главное - для вычисления значений булевских выражений не нужно прибегать к использованию "обычных" процессоров, то есть тех, что обычно используются для построения персональных компьютеров и мощных параллельных вычислителей. Булевские выражения можно обсчитывать на булевских же элементах, из чего следует, что АЛУ каждого из процессоров может быть исключительно простым, не требующего включения в свой состав параллельных 32-х разрядных сумматоров, делителей и умножителей.
Таким образом, в лучшем случае требующаяся мультипроцессорная система может быть построена буквально участке кремния размером 5 на 5 миллиметров, вместо огромного ящика, требующего киловатты электроэнергии - для питания и кубометры воздуха в минуту - для охлаждения.

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

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

Цели и задачи исследования.

    -выяснить, является ли предложенная методика моделирования эффективной;
    -разработать алгоритм перевода структурного кода VHDL в булевские уравнения;
    -разработать по возможности максимально простую и быстродействующую мультипроцессорную систему;
    -разработать алгоритм эффективного распределения булевских уравнений в мультипроцессорной системе;

Научная новизна.

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

Апробация.

    Основные положения работы были опубликованы в сборнике трудов магистров ДонНТУ в 2003 году.

Заключение.

    Полученную систему планируется внедрить в производственный процесс фирмы ALDEC.