Cortex es el nombre genérico de varias familias de arquitecturas de procesadores de ARM. Esta es una historia larga y puede que sin interés o fin, pero voy a tratar de explicarme a mí mismo unas cuantas cosas y dejarlas por escrito.
¿Qué son los Cortex?
Es el nombre de los procesadores de la empresa ARM. Estos procesadores llevan una letra a continuación para definir su uso. En concreto los procesadores para uso como CPU de móviles, tablets o mini PC, como los que aquí seguimos, se denominan con la coletilla -A. En resumen tenemos:
- La Serie A por «Aplicación» para uso de ejecución de aplicaciones tipo mini PC, smartphone o smartTV.
- Luego la Serie R por «Real-time» para aplicaciones de control en tiempo real.
- Y por último la Serie M por «Microcontrolador» para usar en dispositivos tipo Arduino o la Raspberry Pi Pico con el RP2040 .
Además de esta denominación que empezó a usarse a partir de la arquitectura ARMv7, también están las anteriores denominadas ahora Classic Core y las SecurCore.
Dentro de esta serie de tenemos los de 32bits y juego de instrucciones ARMv7 como por ejemplo:
- Cortex-A5 que incluye la ODROID-C1
- Cortex-A7 que incluye la Raspberry Pi 2 y los Allwinner A20 de las Cubieboard y Banana Pi y Pro
- Cortex-A9 que incluye la ODROID-U3 y el UG802
Después de estos ya hay procesadores de 64bits y juego de instrucciones ARMv8 como los recién presentados Cortex-A72 o los Cortex-A53 de las Raspberry Pi 3 u Orange Pi PC2.
Diferencias entre los Cortex-A5, A7 y A9
Las diferencias no son muy grandes, ya que ARM no lanza los procesadores por el orden numérico y estos están más relacionados con el consumo que con la potencia. Probablemente la mejor opción para comparar todas sus características es esta tabla de la Wikipedia en inglés: Comparison of ARMv7-A cores – Wikipedia, the free encyclopedia. Se trata por tanto de diferencias en el tamaño de las memorias internas que son más rápidas que la RAM y que se denominan Caché. Además esta caché puede ser para instrucciones, para datos o para ambas.
A continuación unos gráficos de la web de ARM dónde podéis ver la comparación entre Cortex-A5 vs Cortex-A9 y Cortex-A7 vs Cortex-A9.
Tengo una ODROID-U3 y pendiente de conseguir una ODROID-C1 y por supuesto una Raspberry Pi 2. En cuanto las tenga las tres quiero hacer una comparativa usando sysbench. Trataré de abordar varias cuestiones:
- Tratando de comparar un solo core y también los cuatro cores disponibles a la vez. Ya que muchas veces el software no aprovecha esa capacidad de procesar varias cosas en paralelo.
- Igualmente trataré de ponerlas todas a la misma velocidad para comparar sobre una misma base, por ejemplo 900MHz.
En teoría la Raspberry Pi 2 es más potente que la ODROID-C1, Cortex-A7 vs Cortex-A5 pero el procesador es más lento 800MHz vs 1500MHz. Y por supuesto la ODROID-U3 es más potente que ambas por tener un Cortex-A9 y velocidad de 1600MHz.
Actualización 2017: disponibles test comparando rendimientos de las distintas arquitecturas:
La imagen de la cabecera pertenece a Fred y está compartida en flickr con licencia Creative Commons.