![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Наконец-то наша контора выпустила пресс-релиз, и теперь я могу поделиться, чем был так сурово занят последний год. С июля вообще сплошной аврал. Это было первое ядро, для верификации которого использовалась придуманная мной технология верификации, и поработать пришлось изрядно. Основная команда разработчиков микроконтроллерного ядра сидит в Шанхае - очень работящие и приятные в общении ребята.
"Imagination launches world’s first MCU-class CPU IP cores with hardware virtualization. MIPS Warrior M-class cores bring a new level of security and reliability to a wide range of entry-level smart embedded applications including IoT, wearables, automotive and more."
Ядро MIPS Warrior M-class - в просторечии микроконтроллер. Есть два основных варианта: M5100 и M5150. Во втором варианте присутствуют кэш и управление виртуальной памятью. Предыдущие варианты этого ядра хорошо известны как микроконтроллеры Microchip PIC32, а также стоят в многочисленных бытовых устройствах типа точек доступа WiFi, плееров, фотоаппаратов, телевизоров и т.п.
Главная фишка этого конкретного ядра - виртуализация. К примеру, на одном чипе можно запустить несколько независимых операционных систем. Скажем, Линукс обслуживает графический интерфейс с пользователем, одна RTOS гоняет данные в реальном времени, другая RTOS декодирует видео патентованным кодеком, и отдельное банковское приложение ведет доверенную защищенную транзакцию. Потери эффективности нет: аппаратная поддержка виртуализации продумана на самом глубоком архитектурном уровне. Гарантируется полная изоляция виртуальных машин по данным: на спионерить видео из кодека, ни украсть пароль к банковской карточке.
Целевой рынок: Internet-of-Things, автомобильные системы, носимые компьютеры.
Вторая фишка - встроенный сопроцессор с плавающей точкой. Двойная (64 бита) и одинарная (32 бита) точность, совместимость со стандартом IEEE-754-2008. По сути этот процессор взят из старших ядер MIPS и переразработан под специфику микроконтроллера.
Потроха выглядят так:
Есть и другие полезные плюшки, типа DSP и 16-битного набора команд microMIPS. Все это жутко компактное, низкопотребляющее и самое эффективное по вычислительной мощности среди микроконтроллеров. И соответствует заявленной архитектуре до каждого битика - это уже была моя задача. В целом есть чем гордиться.
"Imagination launches world’s first MCU-class CPU IP cores with hardware virtualization. MIPS Warrior M-class cores bring a new level of security and reliability to a wide range of entry-level smart embedded applications including IoT, wearables, automotive and more."
Ядро MIPS Warrior M-class - в просторечии микроконтроллер. Есть два основных варианта: M5100 и M5150. Во втором варианте присутствуют кэш и управление виртуальной памятью. Предыдущие варианты этого ядра хорошо известны как микроконтроллеры Microchip PIC32, а также стоят в многочисленных бытовых устройствах типа точек доступа WiFi, плееров, фотоаппаратов, телевизоров и т.п.
Главная фишка этого конкретного ядра - виртуализация. К примеру, на одном чипе можно запустить несколько независимых операционных систем. Скажем, Линукс обслуживает графический интерфейс с пользователем, одна RTOS гоняет данные в реальном времени, другая RTOS декодирует видео патентованным кодеком, и отдельное банковское приложение ведет доверенную защищенную транзакцию. Потери эффективности нет: аппаратная поддержка виртуализации продумана на самом глубоком архитектурном уровне. Гарантируется полная изоляция виртуальных машин по данным: на спионерить видео из кодека, ни украсть пароль к банковской карточке.
Целевой рынок: Internet-of-Things, автомобильные системы, носимые компьютеры.

Вторая фишка - встроенный сопроцессор с плавающей точкой. Двойная (64 бита) и одинарная (32 бита) точность, совместимость со стандартом IEEE-754-2008. По сути этот процессор взят из старших ядер MIPS и переразработан под специфику микроконтроллера.
Потроха выглядят так:

Есть и другие полезные плюшки, типа DSP и 16-битного набора команд microMIPS. Все это жутко компактное, низкопотребляющее и самое эффективное по вычислительной мощности среди микроконтроллеров. И соответствует заявленной архитектуре до каждого битика - это уже была моя задача. В целом есть чем гордиться.
no subject
Date: 2014-02-24 21:50 (UTC)no subject
Date: 2014-02-24 22:32 (UTC)no subject
Date: 2014-02-24 22:36 (UTC)Микроконтроллерное ядро с виртуализацией и плавающей
Date: 2014-02-24 21:52 (UTC)no subject
Date: 2014-02-24 21:54 (UTC)Upd: А на какой базе строилась система верификации (если это, конечно, не тяжёлый NDA ;P)?
Upd2: Вдогонку: а как без MMU управлять изоляцией виртуализации (если я правильно понял пассаж про младшую модель)?
no subject
Date: 2014-02-24 22:41 (UTC)Я не могу рассказывать про верификацию в открытом доступе, к сожалению. Но покупатель ядра получает весь пакет с исходниками и поддержкой.
Да, в варианте M5100 с памятью интересно получается. Никакого MMU нету: обычная плоская память, без трансляции адресов. Но каждой виртуальной машине доступна только часть физической памяти, а обращения в чужую память дают exception и переключают в гипервизор. Прерывания от внешних устройств тоже виртуализируются хитрым образом.
no subject
Date: 2014-02-28 00:34 (UTC)как на 8086
виртуальные 808x каждый в своем 64К сегменте
no subject
Date: 2014-02-28 01:02 (UTC)При отсутствии MMU каждый получает свой кусок (несколько) из общего 32-битного адресного пространства. Можно представить себе это как тот же TLB, в том числе с поддержкой страниц разного размера, доступа по чтению/записи/выполнению, но где трансляция адреса всегда один к одному. Физический адрес равен виртуальному.
no subject
Date: 2014-02-28 02:17 (UTC)no subject
Date: 2014-02-24 22:35 (UTC)no subject
Date: 2014-02-24 22:42 (UTC)no subject
Date: 2014-02-25 06:30 (UTC)no subject
Date: 2014-02-25 11:20 (UTC)no subject
Date: 2014-02-28 01:03 (UTC)Но это не предел, у нас в работе еще кое-что интересное имеется. :)
Микроконтроллерное ядро с виртуализацией и плавающей
Date: 2014-02-25 15:11 (UTC)no subject
Date: 2014-02-25 22:55 (UTC)no subject
Date: 2014-02-28 01:04 (UTC)