Новые процессоры MIPS
2012-05-10 13:48![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Наконец, наступил день, когда можно рассказать публике немного о том, чем мы тут занимаемся. Сегодня, 10 мая наша фирма официально обнародует информацию про новые процессорные ядра. Больше года куча замечательных специалистов кипела, бурлила, брызгала идеями и воплощала их в железе. И вот мы сделали нечто, пора выставить его на всеобщее обозрение.
Три ядра:
Оценку скорости Cortex A15 я интерполировал исходя из предсказаний ARM по скорости DMIPS/MHz для A9 и A15. Остальные цифры для ARM получены гуглением из разных тематических статей. Здесь показана только скорость: по площади кристалла и по милливаттам/МГц тоже имеется существенное преимущество.

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



Три ядра:
- proAptiv - для самых высокопроизводительных приложений, в том числе мобильных гаджетов.
- interAptiv - для применений с самым низким потреблением на единицу производительности.
- microAptiv - для микроконтроллеров, включая цифровую обработку сигналов (DSP).
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:



no subject
Date: 2012-05-11 09:13 (UTC)Всегда и везде нужно было сохраняться-восстанавливаться явно или неявно.
Я отстал от жизни или вы первые ?
no subject
Date: 2012-05-11 18:37 (UTC)no subject
Date: 2012-05-11 19:13 (UTC)no subject
Date: 2012-05-11 19:14 (UTC)no subject
Date: 2012-05-15 19:51 (UTC)no subject
Date: 2012-05-11 19:22 (UTC)уже нет ;-)
void QEI_IRQHandler (void)
{
LPC_QEI->QEICLR = 0x0010; /* clear interrupt flag */
errXpos++;
t0_err = LPC_TIM1->TC;
err_lamp = 1;
return;
}
------------
И как там внутре неонка устроена меня не волнует
no subject
Date: 2012-05-11 19:11 (UTC)MIPS впервые реализовал это расширение архитектуры в 2005 году: http://www.mips.com/products/architectures/mips-mt-ase/
В некотором приближении оно похоже на интеловский Hyper-Threading.
no subject
Date: 2012-05-11 19:13 (UTC)Для аппаратной реализации MT внутри процессора имеется несколько копий пользовательских регистров общего назначения и программного счетчика (program counter) – по одной копии на каждый аппаратно реализуемый тред. Между стадиями конвейера, которые извлекают команды для разных тредов из памяти, и стадиями, которые исполняют команду, находится специальный диспетчер, который решает, команду из какого треда следует запустить на исполнение в следующем цикле. Если предыдущая команда из некоторого треда чего-нибудь ждет (наполнения кэша или ввода-вывода), то выбирается команда из какого-нибудь другого треда.
Также снаружи к ядру подключается модуль межтредовой коммуникации (Inter Thread Communication – ITC), который позволяет дизайнеру системы аппаратно реализовать такие примитивы как семафоры и очереди, похожие на семафоры и очереди, реализуемые в операционных системах реального времени программно. Тред общается с этими примитивами с помощью обычных операций чтения и записи определенных адресов памяти. Также через интерфейс ITC тред может ожидать внешнего события или информации от другого ядра в многоядерных системах. С этими механизмами дизайн систем приобретает новую размерность – вместо оптимизации скорости реации на прерывание становится выгодно создавать треды, работающие совсем без прерываний и обменивающиеся данными с другими тредами через ITC.
Кроме поддержки «легких» пользовательских тредов MT ASE позволяет конфигурировать ядро MIPS 34K с двумя «виртуальными процессорными элементами» (Virtual Processor Element, VPE), с каждым из которых связана копии не только пользовательских регистров, но и регистров привилигированного режима ядра. Это позволяет исполнение на одном ядре одновременно двух операционных систем. Одна из таких систем может быть быстрой системой реального времени для обработки критических событий, а другая – операционной системой общего назначения, например встроенной версией Linux.