Матеріал опубліковано в рамках конкурсу Tech Today Awards
Украинские учёные разработали новый ассемблер высокого уровня, а также новую архитектуру ядра цифрового сигнального процессора, которая способна сократить время создания программ, одновременно повысив их эффективность. Василий Лаврентьев, руководитель группы учёных, работающих над проектом, пояснил нам, чем отличается украинская разработка, как удалось привлечь внимание иностранных инвесторов, а также о планах по выпуску конечного продукта.
О преимуществах разработки
В настоящее время в различных областях, от промышленных предприятий до мобильных телефонов, используются самые разнообразные устройства для обработки сигналов — цифровые сигнальные процессоры. Например, только одна компания Texas Instruments производит около 200 типов сигнальных процессоров.
Множество разнообразных применений предъявляют к современным сигнальным процессорам не только жёсткие, но и противоречивые требования. Главная особенность заключается в том, что обработка сигналов происходит в реальном времени, т.е. одновременно с процессом. Поэтому, с одной стороны, архитектура процессора должна быть спроектирована так, чтобы за короткие промежутки времени процессор выполнял множество операций. А с другой стороны, операций должно быть как можно меньше, что достигается эффективным программным обеспечением.
С точки зрения скорости выполнения обработки сигналов и минимума используемой памяти, наиболее эффективными являются программы, написанные на языке ассемблера. Это — язык низкого уровня, который максимально приближён к машинному языку. Однако создание качественных программ на ассемблере является очень трудоёмким и затратным процессом, требующим много времени. Программист должен очень хорошо знать архитектуру и особенности функционирования всего процессора и его отдельных функциональных блоков, сложность которых непрерывно растёт.
При этом в процессе развития технологий многократно вырос объём решаемых задач, а написание и отладка программ превратились в непосильную задачу. Выход был найден путём использования языков высокого уровня, например C, а переход в ассемблер осуществляли специальные программы-компиляторы. Это значительно облегчило и упростило процесс программирования, но не все проблемы были решены. Так как даже самая совершенная программа-компилятор (они, кстати, тоже постоянно совершенствуются) даёт далеко не самую качественную программу на ассемблере. И если простые задачи проблем не создавали, то с более сложными возникали трудности. Поэтому чтобы получить эффективную программу или просто удовлетворить предъявляемым требованиям, программистам приходится вручную оптимизировать критические участки программ, используя всё тот же ассемблер.
Попытки изменить ситуацию предпринимались, но поскольку они носили локальный характер, это не приводило и не могло привести к кардинальным изменениям. Исходя из анализа тенденций развития архитектуры сигнальных процессоров и собственного опыта, мы пришли к выводу, что камнем преткновения является язык ассемблера, а именно, его низкий уровень.
Предлагаемый нами язык ассемблера — C-подобный язык высокого уровня. Язык прост и интуитивно понятен, в его командах используется формульная запись математических операций, очень близкая к обычной математической записи, что значительно облегчает как процесс изучения языка, так и создание программ, их отладку. Язык максимально приспособлен к обработке потоков данных, массивов, таблиц и т.д., что собственно и является основным предназначением сигнальных процессоров.
Что же это даёт? Вот основные достоинства:
•временные затраты на программирование многократно уменьшаются и соизмеримы с программированием на C, а в некоторых случаях, даже меньше.
•значительно уменьшается объём программ, но в результате получаются эффективные ассемблерные программы;
•каждая ассемблерная команда реализуется за один машинный цикл с минимальными временными затратами и максимальным использованием функциональных блоков процессора. Так как это обеспечивается на этапе проектирования ядра процессора, то можно говорить о новой, оптимальной архитектуре сигнального процессора. При этом, мы сохранили предыдущие наработки — распараллеливание, конвейер и т.д.
О применении
Сегодня есть множество применений сигнальных процессоров: сети коммуникаций и мобильная связь, обработка аудио и видео, радары и сонары, управление и контроль производственных процессов, автомобильная электроника, управление электродвигателями в нефте- и газодобывающей отрасли и т. д.
Главные потребители наших разработок — это фирмы-производители сигнальных процессоров, у которых есть определённая ниша и хорошо отлаженные связи с покупателями. А поскольку конкуренция в этой области очень высокая, то даже небольшой шаг вперёд может дать существенное преимущество. Использование нашего процессора позволит значительно сократить время на разработку прикладных программ и уменьшить их стоимость.
Об иностранных аналогах и патентах
Прямых иностранных аналогов в мире пока нет. И судя по анализу тенденций, нескоро появятся. Дело в том, что наш процессор — это не результат некоего «озарения». Сама архитектура процессора разрабатывалась на основе принципов машинной алгебры и редукционного параллелизма, которые вытекают из самих алгоритмов обработки сигналов. Т.е. мы совершаем прыжок вперёд и считаем, что это — начало нового поколения сигнальных процессоров.
Что касается получения патентов на наши разработки в Украине или за границей, здесь действует простой принцип: патентовать нужно там, где лучше всего защищены права изобретателя. Тем более, в нашем случае, когда речь идёт о таких базовых изобретениях, как архитектура процессора и система команд, т.е. язык ассемблера. А украинское законодательство, к сожалению, не защищает права изобретателя, даже в Украине. Поэтому, относительно места получения патентов вывод очевиден.
Об акселерационной программе FasterCapital
К программе мы присоединились, благодаря сотрудничеству с NDI Foundation. После множества встреч с потенциальными инвесторами, в результате которых мы получали ответы от «это очень интересно, но это не наша область» до «это очень интересно, мы вам перезвоним», нам повезло встретиться с NDI Foundation в лице Ольги Крупской. С помощью этой организации мы прошли три этапа конкурса в FasterCapital. Надеемся, на этом наше сотрудничество с NDI Foundation не закончится.
Сегодня вряд ли можно говорить о том, что мы участвуем в акселераторе FasterCapital (программа, инициированная в ОАЭ – прим.ред.). Мы сейчас в самом начале пути и надеемся, что FasterCapital поможет нам довести проект до логического завершения и выйти на мировой рынок. Именно «довести» проект, потому что мы уже прошли большую часть этапов – у нас есть опытный образец ядра процессора, который реализован на микросхеме FPGA фирмы Xilinx, и который успешно прошёл комплекс испытаний. Кроме этого, для работы с процессором разработан полный пакет программного обеспечения. Осталось провести патентование, оформить документацию и провести некоторую доработку схемотехники процессора, что мы надеемся сделать уже вместе с FasterCapital.
О выходе на рынок
Выход на рынок и конечный продукт, который мы предложим, будет зависеть от того, каким получится сотрудничество с FasterCapital. Насколько далеко они смогут с нами пойти, поскольку такого рода проекты – дело весьма затратное. А конечными продуктами могут быть как разного объёма лицензии на использование схем ядра процессоров, так и сами готовые цифровые сигнальные процессоры. Могу отметить, что пока мы не видим точек соприкосновения с украинскими компаниями на украинском рынке.
О сложностях
Для нас в процессе создания научной инновации самым сложным был, и остаётся вопрос финансирования, то есть, поиск инвестора, как партнёра.
А всем нашим коллегам, которые работают над собственными проектами можем дать простой совет: если верите в свою идею (обосновано) — не опускайте руки.
Автор: Екатерина Прогнимак
Оригинал материала опубликован в блоге Imena.UA