У каждой российской микроэлектронной компании есть рассказ, почему она самая хорошая и передовая. По английски это называется «claim to fame» — «заявка на славу». Одни российские компании славятся оригинальной архитектурой CPU, другие — спроектированной в России системой на кристалле, третьи — спроектированными в России блоками, которые были лицензированы западными компаниями.
У российской компании ЭЛВИС (ELVEES), которая исторически специализировалась на космической электронике, DSP и хардверно-поддерживаемом распознавании образов, текущая «заявка на славу» выражена в совместном российско-британско-американско-тайваньском чипе для «умных камер» под названием ELISE. Инженеры в подмосковном Зеленограде спроектировали внутри этого чипа важные блоки для видео-обработки и GNSS, которые потом кросс-лицензировала британско-американская Imagination Technologies.
Блоки от элвисовцев интегрированы с тремя разнородными процессорными ядрами: двухядерным кластером суперскалярных ядер MIPS P5607 (Apache) с частотой 1.2 GHz, на котором работает Linux, процессором с аппаратно-поддерживаемой многопоточностью MIPS interAptiv (1 GHz) и небольшим вспомогательным процессором с аппаратно-поддерживаемой виртуализацией MIPS M5150 (Virtuoso).
На днях мне попали в руки два изделия с чипом ELISE — плата для разработчиков и трехмерная бинокулярная камера. Элвисовцы также дали мне список на 10 страниц, что есть на плате, что есть внутри чипа, и какой для этого поддерживается софтвер. К сожалению, они не разрешили мне выложить эти страницы в интернет, поэтому я кое-что перескажу своими словами, а также добавлю инфо про используемые ядра, после чего вы все остальное можете запросить у элвисовцев сами.
На фотографиях ниже некоторые из инженеров-участников проекта. Девушка слева спроектировала часть load-store unit в MIPS P5607, юноша в зеленой майке написал модели интерфейсов шин, а товарищ в клетчатой рубашке — архитектор софтверной экосистемы:
ЭЛВИС выпустил пресс-релиз о чипе ELISE год назад, в мае 2016:
На чипе стоит много разных блоков, включая графический процессор PowerVR Clyde (GX6250) и тяжелый DSP — 8-ядерный VLIW SIMD ELVEES Velcore2, но я расскажу только про ядра обычных процессоров, которых на чипе стоит три разных класса. Зачем вообще нужны разные классы процессоров, вы можете увидеть в слайдах Чарльза, про которого есть пост на Хабре (Разработка → Можно скачать материалы семинара Nanometer ASIC (РОСНАНО / МИСиС / Imagination Technologies) — ликбез по всему про чипы). Я приведу оттуда один слайд:
Самый производительный процессор общего назначения (application processor) на чипе ELISE — это ядро MIPS P5607 с кодовым названием «Apache». Оно работает на частоте 1.2 GHz и имеет высокий показатель CoreMark. MIPS P5607 — это суперскалярное ядро с внеочередным выполнением инструкций и векторными операциями:
Два ядра MIPS P5600 «Apache» соединяются на элвисовской СнК в двухядерный кластер с общим кэшем второго уровня и менеджером когерентности, который использует MESI протокол для непротиворечивости состояний кэшей первого уровня в ядрах:
Следущим процессором на чипе ELISE является ядро MIPS interAptiv, которое синтезировано на частоте 1 GHz. Это ядро оптимизировано под эффективность (производительность/милливатт). Элвисовцы используют данное ядро для обработки звука. Помимо элвисовцев, похожие ядра любит компания MediaTek, которая использует предыдущую версию той же микроархитектуры в чипе MT7688 для интернета вещей.
У MIPS interAptiv есть интересная черта — аппаратная поддержка многопоточности, которая возникла в предшественника MIPS interAptiv — ядре MIPS 34K. У меня есть пара слайдов про MIPS 34K и вырезка из журнала The Microprocessor Report, которые иллюстрируют идею:
На элвисовском чипе еще есть ядро MIPS M5150 под кодовым названием «Virtuoso». Оно засинтезировано на частоту 600 MHz. Это простое компактное низкопотребляющее ядро с последовательным пятистадийным конвейером. MIPS M5150 в данном СнК используется как контроллер чего-то нетребовательного (housekeeping, «служанка» то бишь):
В ядре MIPS M5150 есть опция для DSP-расширения, правда я не знаю точно, воспользовались ли этой опцией элвисовцы. DSP расширение позволяет ограниченные векторные инструкции, целочисленные операции с фиксированной точкой с арифметикой насыщения итд. Это конечно не тяжелый DSP (который на элвисовском чипе и так есть), но для некоторых задач оказывается удобным:
«Заявка на славу» ядра MIPS M5150 — это единственное в мире малое ядро микроконтроллерного класса, которое реализует аппаратную поддержку виртуализации. Зачем? Как я уже писал, виртуализация на таких ядрах удобна для секьюрити. Даже на небольшом чипе для IoT могут одновременно работать скажем встроенный Линукс и скажем очень защищенный код для работы с финансовыми транзакциями. Теперь если пользователь установит взломанную операционную систему, она не сможет получить доступ к другой ОС, выполняющей критические операции, потому что между двумя ОС стоит гипервайзер. Это становится особенно важно в случае интернета вещей, когда подброшенный в домашнюю сеть утюг или тостер может теоретически обмениваться информацией с главным компьютером хозяина.
Подробнее про виртуализацию см. в посте Разработка → Придумываем название для нового гипервайзера для архитектуры MIPS с аппаратно-поддерживаемой виртуализацией">
Офис ЭЛВИСа находится в подмосковном Зеленограде, в здании в центре снимка ниже, через дорогу от института МИЭТ, из которого ЭЛВИС черпает кадры (а также из МИФИ, МФТИ и других мест). Вы можете запросить от элвисовцев информацию, когда-нибудь получить у них плату и что-нибудь на ней сделать (чтобы сфотографировать плату с девушкой, мне пришлось на время отобрать плату у другого коллеги, который сейчас портирует на плату Андроид. Вы тоже можете на эту плату что-нибудь спортировать или запрограммировать на ней что-нибудь встроенное, графическое и распознавательное, правда я не знаю, когда элвисовцы будут раздавать эти платы широко).
Автор: YuriPanchul