Intel Learning Series para desarrolladores para Android, n.º 2: Los procesadores Intel para dispositivos móviles

1. Dentro de Medfield

El Procesador Intel® Atom™ Z2610, antes conocido como Medfield (Figura 1), es una plataforma creada específicamente para diseñar smartphones con sistema operativo Android. Medfield se divide en dos complejos, el Complejo Norte y el Complejo Sur. El Complejo Norte consiste de Saltwell, un procesador de núcleo único, un controlador de memoria LPDDR2 de 32 bits de doble canal, un núcleo de gráficos 3D, motores de decodificación y codificación de video, un controlador de pantalla 2D capaz de manejar hasta tres pantallas y un procesador de imágenes para datos ingresados por cámara. El Complejo Sur del Procesador Intel Atom Z2610 consiste en todas las interfaces de E/S necesarias para completar el diseño de un smartphone, tales como una imagen de seguridad, un controlador de almacenamiento que admite tarjetas SD/eMMC, un controlador USB OTG, un módem 3G, interfaces Complimentary Wireless Solution (CWS), SPI y UART.


Figure 1. Diagrama de bloques de Medfield

1.1 Descripción general de Saltwell

La arquitectura Saltwell es bastante simple. La idea del diseño es crear un procesador en el que se equilibren la optimización del rendimiento y el uso eficiente de la energía. El procesador usa arquitectura “en orden”, a diferencia de la mayoría de los otros procesadores del mercado. Tiene un caché L1 de 64 KB y un caché L2 de 512 KB. Es compatible con la tecnología Intel® Burst Performance, que posibilita al procesador aumentar de forma dinámica la velocidad de la CPU. Existen tres modos de frecuencia en Saltwell: el modo de baja frecuencia (Low Frequency Mode, LFM) funciona a 600 MHz, el modo de alta frecuencia (High Frequency Mode, HFM) funciona a 900 MHz y el modo de frecuencia por ráfagas (Burst Frequency Mode, BFM) funciona a 1,6 GHz. Entre las prestaciones de Saltwell para optimizar el uso de la energía, cuenta con un smart cache L2 de ultra baja energía que conserva los datos mientras la CPU se encuentra en estados C6, a fin de reducir la latencia durante la reanudación de estados C. Además, Saltwell tiene diferentes planos de energía y entradas de reloj para el núcleo y el resto del sistema en chip (SoC), lo cual permite configurar con facilidad la selección de energía y reloj mediante Intel® Smart Idle Technology (Intel SIT). Esta tecnología posibilita apagar la CPU por completo mientras el SoC todavía se encuentra en estado ENCENDIDO (estado S0).

2. Diferencias de arquitectura entre Saltwell y ARM (Cortex A15)

Como se indica en el libro Break Away with Intel® Atom™ Processors: A guide to Architecture Migration (Cómo tomar el liderazgo con los procesadores Intel® Atom™: Guía para la migración de arquitecturas), la arquitectura Intel Atom es muy diferente de la arquitectura ARM en todos los aspectos. En la Tabla 1 se muestra una lista de diferencias de alto nivel entre las arquitecturas Saltwell y ARM Cortex.

  Saltwell ARM Cortex
Tecnología 32 nm 28 nm
Arquitectura En orden Fuera de orden
Pipelines para enteros 16 15
Caché L1 64 KB Configurable hasta 64 KB
Caché L2 512 KB Máx. 4 MB
Conjunto de instrucciones IA32, Intel® Streaming SIMD Extensions, Intel® Supplemental Streaming SIMD Extensions 3 ARM, Thumb
Compatibilidad multinúcleo/multihilo Un núcleo con Intel® Hyper-Threading Technology Multinúcleo
Tecnología de seguridad Intel® Smart &s; Secure Technology (Intel® S&s;ST) TrustZone* Technology

Tabla 1: Diferencias de alto nivel entre Saltwell y ARM (Cortex A15)

2.1 Arquitectura:

Como ya se mencionó, Saltwell tiene una arquitectura similar a la de otros procesadores de la serie Intel Atom. Usa un diseño de ejecución “en orden”. Con un procesador en orden, todas las instrucciones se ejecutan según el orden con el que se buscan, mientras que los procesadores fuera de orden son capaces de ejecutar varias instrucciones en simultáneo y reordenarlas después en el pipeline. Los procesadores ARM usan arquitectura fuera de orden, la cual tiene la ventaja de ejecutar instrucciones con una latencia mínima. Sin embargo, esto aumenta la complejidad del diseño del núcleo. La eliminación de la lógica de reordenamiento es una de las iniciativas para la reducción del consumo de energía del procesador Intel Atom.

2.2 Pipelines para enteros

Hay seis fases en los pipelines de Intel Atom; los detalles se muestran en la Tabla 2.

Fase Etapas de pipeline
Búsqueda de instrucciones 3
Decodificación de instrucciones 3
Emisión de instrucciones 3
Acceso a datos 3
Ejecución 1
Reescritura 3

Tabla 2: Fases de instrucciones y etapas de pipeline de Intel® Atom™

Esto da un total de 16 pipelines para enteros en el procesador Intel Atom y se requieren tres etapas adicionales para ejecutar instrucciones de punto flotante. El procesador ARM más reciente tiene 15 pipelines para enteros. Con el extenso pipeline del procesador ARM, se cede eficacia energética para favorecer el rendimiento. Saltwell puede decodificar hasta dos instrucciones por ciclo de reloj, mientras que el último procesador ARM es de arquitectura superescalar de emisión triple.

2.3 Conjuntos de instrucciones

Los conjuntos de instrucciones de ARM son siempre de 32 bits y alineados en un límite de cuatro bytes, mientras que los conjuntos de instrucciones de IA32 varían en tamaño y no requieren ninguna alineación. Otra diferencia entre las instrucciones de ARM y IA32 es cómo se ejecutan. Para ARM, todas las instrucciones se ejecutan condicionalmente para reducir el overhead de la rama y los errores de predicción durante el proceso de bifurcación. Hay indicadores de condición que cada instrucción debe satisfacer para tener efecto, de lo contrario la instrucción actuará como instrucción no operativa (NOP) y se la descartará. También hay instrucciones condicionales en la arquitectura Intel; se las llama instrucciones MOV condicionales. Otras instrucciones no se ejecutan condicionalmente en IA32.

2.4 Compatibilidad multinúcleo/multihilo

Como ya se mencionó, Saltwell es compatible con la tecnología Intel® Hyper-Threading (Intel HT), con la cual las tareas se realizan con el uso de recursos compartidos. Los detalles de esta tecnología se analizarán en la próxima sección. La arquitectura multinúcleo de ARM tiene recursos únicos para realizar sus tareas en cada núcleo. La coherencia de los núcleos está a cargo de la AMBA 4 AXI*, una interfaz esclava compatible que está interconectada con el núcleo.

2.5 Tecnología de seguridad

Medfield tiene un subsistema de seguridad llamado Intel® Smart & Secure Technology (Intel S&ST), una arquitectura completa de seguridad de hardware y software. Este subsistema cumple con las normas de la industria y admite AES, DES, 3DES, RSA, ECC, SHA-1/2 y DRM. También admite 1000 bits de OTP y habilita el arranque seguro. La implementación de un sistema de seguridad en el procesador ARM es diferente. No hay un controlador aparte para el subsistema de seguridad, como implementó Intel. El procesador ARM usa la tecnología TrustZone, que divide los recursos del sistema, como el procesador y la memoria, en dos mundos: el Mundo Normal y el Mundo Seguro. Hay tres razones por las que se emplea esta arquitectura: (1) para proporcionar un marco de seguridad que permita a los diseñadores personalizar las funciones necesarias según el uso, (2) reducir el uso de energía y superficie de silicio donde no haya necesidad de tener un procesador dedicado para las tareas de seguridad y (3) para prevenir la intrusión durante la depuración de tareas con riesgo de seguridad en el Mundo Seguro y tareas sin riesgo de seguridad en el Mundo Normal, mediante un único componente de depuración.

3. Tecnología Intel® Hyper-Threading

La tecnología Intel® Hyper-Threading (Intel HT) permite que el software vea varios procesadores lógicos en un paquete físico de procesadores. Saltwell usa la tecnología Intel® Hyper-Threading para aumentar el rendimiento. Al tener un segundo hilo en un único procesador con arquitectura en orden, Saltwell puede ejecutar múltiples instrucciones dentro de un ciclo de reloj por medio del uso compartido de recursos de ejecución entre los dos hilos; así se obtiene una mejora de rendimiento del 50 % en comparación con el procesador de un solo hilo, como se muestra en la Figura 2.

>
Figure 2. Beneficios de la tecnología Intel® Hyper-Threading

Con la tecnología Intel HT, el procesador tiene duplicados del estado de la arquitectura, que consiste en registros de uso general, registros de control, los registros del controlador de interrupciones programable avanzado (APIC) y algunos registros de estado de máquina11. Gracias a la duplicación de estados de arquitectura, el software puede ver un procesador con un único núcleo como dos procesadores lógicos. Los cachés, las unidades de ejecución, los predictores de rama, la lógica de control y los buses se comparten entre los dos hilos. Esto generó la inquietud de que podría producirse contención de recursos y desequilibrio de carga de trabajo entre los hilos. Sin embargo, la mayoría de los kits de desarrollo actuales, como los de Dalvik y JavaScript, ya admiten entornos multihilo y así los desarrolladores tienen una opción sencilla para generar aplicaciones que aprovechan la ventaja de la tecnología Intel HT. Los desarrolladores de aplicaciones en Android también pueden utilizar la herramienta Intel® VTune Performance para analizar la carga de trabajo y ajustar los recursos en sus aplicaciones.


[1] Los desarrolladores pueden encontrar más información sobre la portación de aplicaciones a la plataforma Intel Atom en http://intel.com/software/android.

[2] La documentación del NDK incluye una descripción general de los indicadores de compilador en la página “ndk/docs/CPU-ARCH-ABIS.html”.

Per informazioni più dettagliate sulle ottimizzazioni basate su compilatore, vedere il nostro Avviso sull'ottimizzazione.