В минувший четверг на проходившей в Санта-Кларе (штат Калифорния) конференции Linley о современных процессорных и сетевых технологиях компания Soft Machines представила новую технологию виртуализации, в которую уже вложились лидеры полупроводниковой индустрии. Среди инвесторов были замечены крупные индийские фонды, бывший старший вице-президент Intel Альберт Ю, венчурный фонд Samsung, GlobalFoundries и AMD. Фигурирует в этом списке также Russian Venture Capital и “Роснано”. Чем же вызван столь сильный интерес со стороны разных компаний?

Изначально домашние компьютеры и потребительские устройства базировались на однопроцессорной архитектуре. Многоядерные конфигурации прочно отождествлялись с серверными технологиями и суперкомпьютерами. Затем Intel в 2002 году выпустила Pentium 4 с технологией Hyper Threading, а спустя три года AMD представила первый двухъядерный процессор для настольных систем.

Постепенно технология параллельных вычислений стала массовой. Сегодня многоядерные процессоры особенно востребованы в мобильной технике, а разницу в производительности между парой логических и физических ядер уже трудно заметить. Проблема в том, что до сих пор остаётся множество программ, чей код не оптимизирован для выполнения на таких архитектурах. Часто можно наблюдать ситуацию, когда программа мониторинга показывает полную загрузку одного ядра «тяжёлым» приложением, в то время как остальные ядра фактически простаивают, тратя считанные проценты на обработку действий пользователя и фоновые процессы.

Многие приложения используют только одно ядро процессора.
Многие приложения используют только одно ядро процессора.

Разделение одного процессора на логические ядра оказалось половинчатым решением. В компании Soft Machines намерены решить обратную задачу: научиться динамически объединять несколько физических ядер в одно виртуальное. Причём делать это так, чтобы не пришлось переписывать существующие программы. Практика показывает, что к оптимизации кода разработчики приступают только тогда, когда у них нет иного выбора.

Компанию Soft Machines трудно назвать стартапом. С 2006 года её специалисты работают над промежуточным слоем, который выполнял бы задачу трансляции кода и мог принудительно распараллеливать его для любых программ. Сделать это призван набор виртуальных инструкций VISC (Virtual Instruction Set Computing). Сейчас в компании приступили к опытной стадии производства.

VISC - виртуализация ресурсов ЦП для оптимизации нагрузки в разных режимах (изображение: softmachines.com).
VISC – виртуализация ресурсов ЦП для оптимизации нагрузки в разных режимах (изображение: softmachines.com).

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

Архитектура VISC (изображение: softmachines.com).
Архитектура VISC (изображение: softmachines.com).

В компании Soft Machines говорят о высоком уровне готовности набора VISC и даже приводят скупые цифры предварительных тестов. На конференции было продемонстрировано существенное ускорение выполнения неоптимизированного кода за счёт использования виртуального ядра, объединяющего два физических. Для сравнения использовался популярный тестовый пакет SPEC CPU2006, позволяющий оценить пропускную способность многоядерного процессора при одновременном выполнении нескольких копий одной и той же вычислительной задачи. В разных заданиях было достигнуто ускорение на 70 – 120%, а загрузка конвейера была самой низкой.

Виртуализация ядер повышает число выполняемых объединённым процессором операций в секунду (IPC). Прототип ядра с 32-битной архитектурой и кэшем объёмом один мегабайт демонстрировал лучший результат (2,1 IPC), чем 64-битное ядро Intel Haswell с двухмегабайтным кэшем (1,39 IPC). Если хотя бы частично эта разница сохранится в реальных приложениях, мы станем свидетелями новой революции.

Тест производительности прототипа виртуального процессора с архитектурой VISC (изображение: staticworld.net).
Тест производительности прототипа виртуального процессора с архитектурой VISC (изображение: staticworld.net).

Однако даже в случае успешной реализации такой революционной идеи у Soft Machines мало шансов на конкуренцию с лидерами индустрии. Вероятнее всего, они выкупят технологию на каком-то этапе разработок, или поглотят саму фирму. Впрочем, даже такой, немного пессимистичный исход будет возможен только в том случае, если ни Intel, ни AMD не станут вести собственные разработки в этом направлении. Также этим могут заинтересоваться в ARM и Qualcomm.

В ближайшей перспективе коллектив Soft Machines проведёт расширенные испытания быстродействия прототипа в ОС Linux и Android. На аппаратном уровне планируется разработка системы на чипе, содержащей помимо арифметического процессора графическое ядро и контроллер памяти DRAM.