Una historia de Cortex

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 se 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. Este tipo de procesadores se denominan Cortex-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

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.

Cortex-A5-chip-diagram

Dentro de esta serie de tenemos los de 32bits y juego de instrucciones ARMv7 como por ejemplo:

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.

Cortex-A7-chip-diagram

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.

Cortex-A9-chip-diagram

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.

Cortex-A5-vs-Cortex-A9

Cortex-A7-vs-Cortex-A9

Tengo una ODROID-U3 y pendientes 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:

  1. 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.
  2. 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.