Системное ПО
Программное обеспечение для эффективности аппаратных решений
Область компетенций
Наша специализация — системное ПО, средства разработки для разных аппаратных платформ и портирование существующих библиотек и приложений на новые платформы.
Для упрощения и ускорения процессов разработки ПО мы создаем и используем оптимизирующие компиляторы и средства САПР дизайна уровня системы.
UTL
Universal Translation Library (англ. Универсальная Библиотека Трансляции) — легко портируемые на любые средства разработки алгоритмы анализа и оптимизации, которые абстрагируются от конкретного промежуточного представления компилятора.
Апробация:
• на GNU
• с LLVM для разных архитектур: x86, MIPS, ARM, Italium, Power Cell B.E.
• на бинарном конвертере x86 → ARM с QEMU
• как часть SMI JIT компилятора
Лицензирован компаниями Parallels и SMI
UTL
SMCC-компилятор на основе LLVM и UTL показывает результаты на 50% лучше, чем существующий аналог Linaro*
*при сравнении на 8-ядерном CPU ARM
C2FPGA транслятор
Это — компилятор для максимально быстрого сбора сложных алгоритмов для ПЛИС или СБИС. Такой компилятор разрабатывает СФ-блоки быстрее и дешевле.
Удобная среда разработки без ограничений исходного кода позволяет легко портировать приложения большого размера и подходит для проектирования суперкомпьютеров, СнК и ИС.
C2FPGA транслятор
Ключевые особенности
Высокая
производительность
Использует виртуальную СнК (ВСнК) с множеством ядер и внешних устройств для работы с файлами, вводом-выводом, сетевыми структурами и т.д.
Эффективность
транслирует приложения для ВСнК и объединяет бинарные коды с описанием ВСнК для достижения минимальной площади с максимальной частотой.
Удобство
позволяет разработчику проводить отладку приложений для ВСнК на ПЛИС стандартными утилитами (GDB, Eclipse), как на обычном встроенном процессоре.
PPDL
Язык описания архитектуры для кастомизации ядер с принципом «одно описание — много реализаций».
Ключевой инструмент кастомизации ядра RISC-V. В случае проектирования ядер специального назначения, PPDL позволяет подобрать подходящую архитектуру и добиться лучших показателей по стоимости и энергопотреблению.
Автоматически генерируемые компоненты:
• RTL (SystemVerilog)
• Программные эмуляторы:
— на основе QEMU
— потактовая модель (C++ класс)
• Компоненты для бинарных утилит:
— кодировщики инструкций для ассемблера
— декодировщики инструкций для дизассемблера/objdump
• Стаб для подключения GDB
Реализованные архитектуры:
• RRISC-V (32/64)
• NeuroMatrix
— NM6403
— NM6405
— NM6407
• Ethereum VM
— эмулятор на основе QEMU
Уменьшение стоимости разработки до 7 раз
Заметное уменьшение стоимости кастомизации ядра
Значительное сокращение стоимости модификации архитектуры
Трансфер платформ
Портирование ОС (Linux, RTOS) и разработка драйверов
Инструменты разработки
Разработка средств разработки и SDK. Перенос стандартных и специальных библиотек на необходимые платформы
Оптимизация ПО
Оптимизация приложений и библиотек
Дизайн сложных систем
Разработка комплексных встроенных систем и систем «Интернета вещей», включая оборудование и программное обеспечение
Решения для графических систем
Алгоритмы обработки изображений
Системное ПО