LISA, PPDL, REDA-Soft

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

Сначала о вашей разработке. Как давно развивается проект, его история, основные вехи?

Проектом PPDL мы начали заниматься в 2002-м году, когда мы проходили стажировку в качестве аспирантов в компании Infineon в Мюнхене. Мы – это Александр Кравцов, на сегодняшний день руководитель отдела систем на кристалле НИИМЭ и завода «Микрон» и Юрий Фонин. Мы тогда участвовали в проекте ADS (architecture development systems) — разработка методов и технологий для ускорения процесса проектирования SoC–систем. По этому поводу на Infineon приезжали представители различных университетов и фирм, специализирующихся на САПР, чтобы продемонстрировать собственные разработки, в том числе и высокоуровневые языки описания архитектур. Среди прочих нам запомнилась компания LISA tech (ныне она стала частью Synopsys) со своим языком LISA. Это была законченный и достаточно качественный продукт, но денег за лицензию они запросили столько, что наше руководство бросилось искать альтернативы. В том числе и среди стартапов и университетских проектов.

Мы с Александром решили попробовать создать аналогичную систему. Во-первых было интересно, что такого в написании подобного языка, что даже одна лицензия стоит фантастических денег. Infineon – это даже не Микрон если они себе что-то не могут позволить, то это «что-то» действительно стоит не мало. Во-вторых, было желание досрочно получить постоянную позицию с хорошей зарплатой, немецкий вариант green card с перспективой вида на жительство, ну и прочие «плюшки», доступные людям с серьёзным статусом в Германии. И мы решили, что PPDL – это наш шанс получить всё вышеперечисленное, сэкономив компании сотни тысяч евро.

Трудились мы по ночам в параллель с основной работой. И естественно, к моменту, когда у нас появилось что показать, наше руководство нашло средства на покупку «LISA» и ввязываться в проект по разработке ещё одного языка никто не захотел.
В 2005-м году я (а чуть позже и Александр) вернулся в Россию. Незадолго до этого я приезжал в Россию в отпуск, где хорошие знакомые говорили мне про «друзей друзей», которые благодаря дорожающей нефти заработали миллионы и ищут куда их вложить. А поскольку с инвестированием в России было не так просто, то от безысходности они покупают дцатую квартиру с видом на Садовое кольцо. Это был «второй шанс!!!» подняться на ступеньку вверх благодаря «собственной целеустремлённости и выдающимся деловым качествам». Всё-таки хорошо быть молодым, наивным и мобильным. Инвестировать в нас почему-то никто тогда не взялся, а «друзья друзей» оказались слегка недоступными. Да и вообще, казалось, что слова «стартап», «бизнес-ангел» и «венчурное инвестирование» вводили многих в недоумение.

Но всё-таки движение вперёд было. Нам удалось договориться с НТЦ «Модуль», что я с помощью PPDL разработаю для них симулятор и ассемблер. И вскоре появилась первая «боевая» модель процессора, реализованная на PPDL. Надо сказать, что мы до сих пор сотрудничаем с НТЦ «Модуль». Там работает замечательная команда разработчиков, у которых есть чему научиться и с которыми просто приятно общаться.

В 2007-м году наша заявка выиграла в конкурсе «СТАРТ» и по этому поводу мы организовали ООО «РЕДА-Софт» (Russian EDA).
На сегодняшний день у нас с Александром более чем десятилетний стаж работы в области проектирования систем на кристалле. Причём Александр специализируется на «железе», а я — на системном программном обеспечении (операционные системы, драйвера, оптимизация приложений). Александру удалось в качестве руководителя проекта пройти всю цепочку от идеи и требований до запуска в производство. Это уникальный опыт, не уверен, что в крупных компаниях есть такие специалисты. И дело тут не в талантах Александра, а в том, что в крупных стабильных компаниях есть чёткое разделение труда: одни моделируют, другие проектируют, третьи производят. У нас же все варятся в одном котле, поэтому есть возможность получить уникальный опыт и увидеть картину в целом – как проектируется микросхема, как тестируется, как производится.

Есть ли патенты, патентные заявки?

Нет. Мы может быть и нашли, что запатентовать, но нас откровенно пугает тот объём телодвижений, которые необходимо совершить для получения патента. А средств на оплату услуг соответствующих специалистов у нас пока нет.

В чем основные преимущества пакета?

PPDL (processor and peripheral description language) – это язык описания архитектур ядер процессоров и специальных вычислительных модулей. Принцип PPDL можно сформулировать как «одно описание – несколько реализаций». Из одного целостного описания архитектуры компилятор PPDL может сгенерировать как Verilog описание процессора, из которого можно осуществить физических синтез микросхемы, так и сопутствующее программное обеспечение, как то:
1. Ассемблер
2. Симулятор
3. Интерфейс работы с отладчиком

Кроме того, в ближайшее время мы планируем добавить в PPDL генератор тестов и back-end компилятора.

Что это даёт в конечном итоге? В конечном итоге это даёт возможность сократить затраты на проектирования ядра микропроцессора в 3-5 раз. По сути то, что раньше создавала команда из десятка специалистов, теперь под силу двум-трём разработчикам, причём за меньшее время. Если учесть сокращение затрат на коммуникации (всё-таки вдвоём гораздо проще о чём-либо договориться, чем командой из 10 человек), то в итоге мы имеем ускорение и сокращение ресурсов в разы.

Отдельная тема – адаптация уже готового ядра под требования приложений. То есть добавление нескольких инструкций для того, чтобы те или иные алгоритмы работали с нужной скоростью. Такая работа с использованием PPDL вообще может делаться одним специалистом за считанные дни, а иногда и часы. Таким образом, «вложившись» единожды в создание одного ядра, можно дальше адаптировать его под те или иные задачи с буквально «копеечными» трудозатратами.

Кто на сегодняшний день клиенты? Настоящие и потенциальные.

Пока у нас только один постоянный партнёр НТЦ «Модуль», для которого мы разработали модели ядер NeroMatrix. Мы ведём переговоры с другими центрами проектирования, но пока не готов говорить об этом подробнее.

Какие клиенты были бы интересны? Какие задачи вы готовы решать?

Нам интересны все, кто разрабатывает или планирует разрабатывать ядра микроконтроллеров. Особенно было бы интересно поработать со стартапами, создающими нечто оригинальное в области микроэлектроники. Думаю, такая кооперация могла бы здорово помочь развитию языка PPDL, ввести в язык конструкции, которые позволят быстро проектировать на PPDL решения следующего поколения.

Какую модель распространения вы предполагаете? Открытые коды, лицензирование библиотеки, продажа коробочного или внедряемого программного продукта? Есть ли идеи о стратегии выхода: продажа компании/IP крупному игроку, развитие в мультинационального монстра, развитие своей ниши?

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

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

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

Кто ваши конкуренты?

На сегодняшний день наш главный конкурент – компания Synopsys. Некоторое время назад они приобрели компанию CoWare, которая, в свою очередь, была владельцем LISA. Насколько знаю, несколько лет назад Coware была партнёром Cadence, а Synopsys разрабатывал свои высокоуровневые решения.

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

Кто может быть вашим партнером? В какие технологические цепочки вы можете встроиться, дополнить их?

Как уже говорил, результат работы PPDL-компилятора – Verilog-описание ядра + необходимое системное ПО. То есть, разработка на языке PPDL является первым шагом в технологической цепочке от идеи до кристалла. Таким образом, наш продукт – надстройка над уже существующими технологическими цепочками.

Часто задают вопрос, как можно доверять PPDL, ведь в компиляторе наверняка есть ошибки. И в случае разработки «руками» и в случае генерации из PPDL мы имеем результат в виде Verilog-кода, который нужно тестировать. Мы не подменяем собой синтез – мы просто делаем процесс разработки быстрее и дешевле.

Как планируете расширяться, где находить финансирование?

В настоящее время мы занимаемся поиском инвестора, параллельно прорабатываем вариант участия в Сколково. Кроме того, пытаемся совместно с другими организациями участвовать в различных гос. программах в области микроэлектроники. Но участвуем не на главных ролях, а в качестве соисполнителей. Пока мне кажется, что «солировать» в более-менее серьёзном государственном тендере для малой фирмы-стартапа нереально. А в партнёрстве с крупной фирмой с солидной репутацией – вполне посильная задача.

Биографическая справка 

Фонин Юрий (phonin@reda-soft.ru)
Закончил факультет автоматики и вычислительной техники Московского Энергетического Института в 2001 г.
С декабря 1999 г. по май 2001 г. работал программистом в компании «СПИРИТ».
С мая 2001 г. по сентябрь 2005 г. проходил стажировку в качестве аспиранта в исследовательском отделе компании «Infineon Technologies AG» (Мюнхен, Германия), где занимался проблемами проектирования сложных систем на кристалле и методами автоматической генерации системного ПО. С января 2006-го года сотрудничал с НТЦ «Модуль», занимался разработкой программных симуляторов ядер Nero Matrix.
С апреля 2006 г. года по апрель 2008 г. работал ведущим программистом ОАО «НИИМЭ и з-д Микрон».
В марте 2007 г., совместно с Александром Кравцовым, учредил фирму «РЕДА-Софт».
С декабря 2010 г. по январь 2012 г. работал в компании NVIDIA в должности «инженер по архитектуре».
С начала 2012-го года сотрудничает с МФТИ, участвует в исследовательских проектах в области суперкомпьютерных вычислений.
Кравцов Александр (kravtsov_a_s@mail.ru)
Закончил факультет автоматики и вычислительной техники Московского Энергетического Института в 2002 г.
С февраля 1999 г. по декабрь 2000 г. работал программистом в компьютерном центре МЭИ.
С августа 2001 г. по январь 2002 г. проходил стажировку в качестве инженера-практиканта в исследовательском отделе компании «Infineon Technologies AG» (Мюнхен, Германия), где занимался разработкой сквозного метода моделирования цифровых систем.
С июня 2002 г. по декабрь 2005 г. проходил работал в исследовательском отделе компании «Infineon Technologies AG» (Мюнхен, Германия), где занимался разработкой процессора для нового поколения сотовых телефонов.
С февраля 2006 г. по настоящее время работает начальником отдела разработок систем на кристалле ОАО «НИИМЭ и завод Микрон», где приобрёл уникальный опыт ведения проектов в области проектирования систем на кристалле, начиная с формулирования требований и до запуска в серийное производство.
С 2007 г. сотрудничает с НТЦ «Модуль», участвовал в работах по тестированию многоядерных архитектур.
В марте 2007 г., совместно с Юрием Фониным, учредил фирму «РЕДА-Софт».

LISA, PPDL, REDA-Soft: 2 комментария

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>