vak: (Default)
Serge Vakulenko ([personal profile] vak) wrote2012-05-10 01:48 pm

Новые процессоры MIPS

Наконец, наступил день, когда можно рассказать публике немного о том, чем мы тут занимаемся.  Сегодня, 10 мая наша фирма официально обнародует информацию про новые процессорные ядра.  Больше года куча замечательных специалистов кипела, бурлила, брызгала идеями и воплощала их в железе.  И вот мы сделали нечто, пора выставить его на всеобщее обозрение.

Три ядра:
  • proAptiv - для самых высокопроизводительных приложений, в том числе мобильных гаджетов.
  • interAptiv - для применений с самым низким потреблением на единицу производительности.
  • microAptiv - для микроконтроллеров, включая цифровую обработку сигналов (DSP).
Ближайшие конкуренты - соответственно ARM Cortex A15 (еще не вышеший), Cortex A9 и Cortex M4.  Подробности с цифрами есть в статье на сайте Electronics Weekly.

    Core           Coremark/MHz
    ---------------------------
    MIPS proAptiv      4.42
    ARM Cortex A15     4.1   (моя оптимистическая оценка)
 
    MIPS interAptiv    3.2
    ARM Cortex A9      2.9
 
    MIPS microAptiv    3.1
    ARM Cortex M4      2.19

Оценку скорости Cortex A15 я интерполировал исходя из предсказаний ARM по скорости DMIPS/MHz для A9 и A15.  Остальные цифры для ARM получены гуглением из разных тематических статей.  Здесь показана только скорость: по площади кристалла и по милливаттам/МГц тоже имеется существенное преимущество.



Несколько графиков из статьи в EETimes:







[identity profile] triampurum.livejournal.com 2012-05-10 09:05 pm (UTC)(link)
Это круто. Есть с чем поздравить!

[identity profile] alogic.livejournal.com 2012-05-11 04:46 am (UTC)(link)
Ну наконец-то, весь мир уже ждёт. Где там этот "Филипс" со своим новым планшетом?:)

Новое поколение процессоров MIPS меняет игру против кон

[identity profile] livejournal.livejournal.com 2012-05-11 05:35 am (UTC)(link)
Пользователь [livejournal.com profile] panchul сослался на вашу запись «Новое поколение процессоров MIPS меняет игру против конкурентов (http://panchul.livejournal.com/202444.html)» в контексте: [...] маркетингу): Также я рекомендую посмотреть, что написал другой русский MIPS-овец, Сергей Вакуленко [...]

Новое поколение процессоров MIPS меняет игру против кон

[identity profile] livejournal.livejournal.com 2012-05-11 05:35 am (UTC)(link)
Пользователь [livejournal.com profile] panchul сослался на вашу запись «Новое поколение процессоров MIPS меняет игру против конкурентов (http://panchul.livejournal.com/202444.html)» в контексте: [...] Также Сергей растолковал про области применения: http://ramlamyammambam.livejournal.com/185325.html [...]

[identity profile] dom3d.livejournal.com 2012-05-11 05:55 am (UTC)(link)
Сергей, так может быть Apple перейдет на архитектуру MIPS?
Или кто из планшетников?

[identity profile] hogzie.livejournal.com 2012-05-11 06:24 pm (UTC)(link)
Сомневаюсь, что Apple возьмет MIPS возьмут просто так без боя. Там скорее Alpha или Power возродят. :) Дядя, который у них в ответе за процессоры, бывший дизайнер Alpha и StrongARM. Потом он командовал стартапом, который оптимизировал Power для использования в мобильных устройствах. В Apple они активно занялись ARM опять.

MIPS возьмут просто так без боя.

[identity profile] dom3d.livejournal.com 2012-05-11 06:28 pm (UTC)(link)
Спасибо за интересную информацию.
Понятно, что просто так на новый проц не перейдут.

[identity profile] beldmit.livejournal.com 2012-05-11 05:57 am (UTC)(link)
Поздравляю!

[identity profile] evgen2.livejournal.com 2012-05-11 06:40 am (UTC)(link)
Почитал. Почти ничего не понял. Половину ключевых слов не знаю :-(

Про возможности по дрыганью ногами в разных позициях не увидел.
Введение в IDE разработчика не впечатлило вообще и по сравнению с Кейлом в частности.
Перфоманс конечно важная характеристика, но для целей контроля и управления важдны и другие характеристики - программирование ног, прерывания от ног, туева хуча внешних интерфейсов. включая эзернеты, время на прерывание в Це, вложенность прерываний, удобство отладки, скорость цикла программирования (собрал-залил-обломился),
энергопотребление и возможности "жить год от батарейки"

[identity profile] evgen2.livejournal.com 2012-05-11 08:12 am (UTC)(link)
Поясню насчет прерываний - если прерывание на Си, то нам нужно сохранить регистры в стек и потом восстановить их. Если регистров дофига, то времени уходит много и вся прелесть от прерываний теряется и толку от нулевого времени входа в прерывание никакого. Означает ли "аппаратная поддержка многопоточности " аппаратное сохранение/восстановление регистров в прерываниях?

Да, с точки зрения микроконтрллерщика и ногодрыгателя - нитки нафиг не нужны, как минимум во многих случаях. Прерывания и раунд-роббин - это наше фсё.

[identity profile] evgen2.livejournal.com 2012-05-11 09:13 am (UTC)(link)
йик. Не может быть!
Всегда и везде нужно было сохраняться-восстанавливаться явно или неявно.
Я отстал от жизни или вы первые ?

[identity profile] hogzie.livejournal.com 2012-05-11 06:37 pm (UTC)(link)
Не знаю, как в MIPS. В ARM два вида прерываний. FIQ и IRQ. Первый более высокого уровня. Половина старших регистров просто ремапятся на новые. Сохранять остальные в стеке - это забота программиста. Ну и стеков тоже несколько. :) В IRQ только два регистра ремапятся. Остальное - опять же, как программист пожелает.

[identity profile] panchul.livejournal.com 2012-05-11 07:14 pm (UTC)(link)
То, что обсуждается - это не прерывание в обычном смысле. См. http://ramlamyammambam.livejournal.com/185325.html?thread=1558253#t1558253

[identity profile] hogzie.livejournal.com 2012-05-15 07:51 pm (UTC)(link)
А, понял. Спасибо. Про выделенный thread не знал.

[identity profile] evgen2.livejournal.com 2012-05-11 07:22 pm (UTC)(link)
>Сохранять остальные в стеке - это забота программиста.
уже нет ;-)

void QEI_IRQHandler (void)
{
LPC_QEI->QEICLR = 0x0010; /* clear interrupt flag */
errXpos++;
t0_err = LPC_TIM1->TC;
err_lamp = 1;
return;
}
------------
И как там внутре неонка устроена меня не волнует

[identity profile] panchul.livejournal.com 2012-05-11 07:13 pm (UTC)(link)
Это строго говоря не "прерывание". Имеется в виду hardware-supported multi-threading (многопоточное исполнение на одном ядре) и gated storage. Я об этом раньше писал:

Для аппаратной реализации MT внутри процессора имеется несколько копий пользовательских регистров общего назначения и программного счетчика (program counter) – по одной копии на каждый аппаратно реализуемый тред. Между стадиями конвейера, которые извлекают команды для разных тредов из памяти, и стадиями, которые исполняют команду, находится специальный диспетчер, который решает, команду из какого треда следует запустить на исполнение в следующем цикле. Если предыдущая команда из некоторого треда чего-нибудь ждет (наполнения кэша или ввода-вывода), то выбирается команда из какого-нибудь другого треда.

Также снаружи к ядру подключается модуль межтредовой коммуникации (Inter Thread Communication – ITC), который позволяет дизайнеру системы аппаратно реализовать такие примитивы как семафоры и очереди, похожие на семафоры и очереди, реализуемые в операционных системах реального времени программно. Тред общается с этими примитивами с помощью обычных операций чтения и записи определенных адресов памяти. Также через интерфейс ITC тред может ожидать внешнего события или информации от другого ядра в многоядерных системах. С этими механизмами дизайн систем приобретает новую размерность – вместо оптимизации скорости реации на прерывание становится выгодно создавать треды, работающие совсем без прерываний и обменивающиеся данными с другими тредами через ITC.

Кроме поддержки «легких» пользовательских тредов MT ASE позволяет конфигурировать ядро MIPS 34K с двумя «виртуальными процессорными элементами» (Virtual Processor Element, VPE), с каждым из которых связана копии не только пользовательских регистров, но и регистров привилигированного режима ядра. Это позволяет исполнение на одном ядре одновременно двух операционных систем. Одна из таких систем может быть быстрой системой реального времени для обработки критических событий, а другая – операционной системой общего назначения, например встроенной версией Linux.

[identity profile] mandrykin.livejournal.com 2012-05-11 12:45 pm (UTC)(link)
Интересно, есть ли для этого процессора реализация микроядра L4-X2?

[identity profile] mandrykin.livejournal.com 2012-05-13 08:21 pm (UTC)(link)
Спасибо. Посмотрел. Действительно не Х2. Жаль. Из современного Pistachio выкинули всё, кроме IA32, AMD64 и PowerPC32/64.

Помню, несколько лет назад Pistachio ещё поддерживал ARM. Не могу сейчас утверждать, но вроде бы и MIPS тоже поддерживался.

Ага, точно, ещё в 2007 году в Pistachio была поддержка MIPS64. Прошу прощения за глупый вопрос, это случайно не этот процессор? Если да, то у меня в архивах осталась версия с поддержкой MIPS64. Можно было бы поэксперементровать.

[identity profile] alec_v.livejournal.com 2012-05-12 09:38 am (UTC)(link)
Это все конечно здорово, но как ты понимаешь, сейчас для мобильных устройств самое важное - скорость Dalvik. Ваш turbo-dalvik конечно очень милый, но МТ ему не очень поможет, IMHO, аппаратная реализация bytecode-ASE был бы очень крута, если честно я ожидал что ее реализуют. Не секрет, что именно Jazelle мощно пропихнула ARM на рынок смартфонов в ~2005.

Купил тут планшет Ainol Novo 7 Paladin на JZ4770. С одной стороны, приятно что MIPS, с другой - 90% приложений только через MagicCode и буквально сразу налетел что не играется половина фильмов в H.264. Да, у Ingenic собственный аппаратный декодер (насколько понимаю X-Burst ASE по сути). Но! Текущий плеер играет далеко не всё, а ждать нового можно только от производителя поскольку даже на 1ГГц декодировать HD стандартными командами MIPS невозможно даже на DSP ASE.

[identity profile] alec_v.livejournal.com 2012-05-13 08:13 am (UTC)(link)
По крайней мере термин "производительность Dalvik" не вызывает отторжения, это уже хорошо ;) Что качается Jazelle, то тут соображения такие: IMHO ARM-ы почуяли куда ветер дует и теперь оно называется Jazelle RCT. Т.е. вместо реализации Android Bytecode они сделали фичу для некоей "hardware-assisted JIT" что дает возможность реализовать JavaBytecode, AndroidBytecode и даже (свят-свят) .NET . А 16-битный AndroidBytecode хорошо ложится на Thumb, но всё же это разные вещи -- JIT в native систему команд или JIT в *специальную* систему команд. Вот если бы MIPS купил Myriad, то может перепилил бы VM на MIPS16e. ;)

Опять же вокруг ходит Oracle и завывает, что Java ME JVM типа быстрее Dalvik VM чуть ли не в три-четыре раза, не уточняя правда, что они сравнивали, был ли там JIT, какой JIT и т.д.

Вобщем, будут продукты - потестируем. Если выйдут устройства на SOC с новым ядром -- пишите прессрелизы :)

Что насчет VPU на JZ4770 - так в доках пишут, что там некий MIPS with SIMD extensions. Как понимаю, вся фишка в этих extensions. С одной стороны это неплохо (такая архитектура была на SGI Elan и IMPACT в лохматом 1995, там тоже был спец-MIPS на графике). С другой стороны - вся надежда на производителя т.к. только он может может выкатить плеер с этими фичами, а стандартный - не пойдет. Например для карточки SGI Indy XZ так и не появилось opensource драйвера даже текстового режима...

[identity profile] zamotivator.livejournal.com 2012-05-16 12:01 am (UTC)(link)
Поздравляю!