Inicio Componentes Introducción técnica a la familia RZ/A.

Introducción técnica a la familia RZ/A.

 

La familia RZ/A de Renesas, es una nueva serie de MPUs embebidas concebida para el mercado de interfaces hombre máquina (Human Machine Interface).  La serie RZ de Renesas, es una nueva apuesta tomada para afrontar la demanda del mercado de procesado embebido, basado en core Cortex A9 de ARM funcionando a 400MHz e incluyendo todos los derechos de la IP para la creación de aplicaciones HMI de alto nivel sin que sea necesario incrementar costes, esfuerzo y compromiso alrededor de los desarrollos actuales de aplicaciones HMI.
 
¿MPU embebida (eMPU)?

Como bien puede preguntarse, ¿qué debemos entender por el término ”MPU embebida”?, y con el objetivo de responder a esta pregunta  vamos a hacer un breve repaso al espectro de la oferta actual existente de MPU / MCU en el mercado. Hoy, una MCU típica lleva embebida flash y RAM, ejecutando código desde flash pero limitada de alguna manera en términos de rendimiento, particularmente en el nivel de ejecución requerido para una aplicación de interfaz hombre máquina. 
La alternativa hoy es un MPU clásico o sistema microprocesador que consiga el nivel de ejecución requerido y que pueda excederlo significativamente aunque típicamente no tenga ninguna flash interna, y sólo una interna y pequeña RAM. Las típicas MPUs tienen su espacio en el mercado al igual que lo tienes los MCUs, no hay debate existente sobre esto, aunque sí que existe un espacio significativo entre ambas soluciones. 
Para cubrir este espacio, es donde las eMPU pueden ser útiles. Un eMPU, al igual que un MPU, no contiene ningún tipo de flash embebida y tiene un core CPU funcionando a nivel de ejecución, que no sería posible con una MCU típica. Este nivel de ejecución puede (como en el mundo MPU) ser alcanzado únicamente funcionando desde RAM y en contraste con un sistema microprocesador que usaría RAM externa, la eMPU contiene toda la RAM necesaria para la aplicación.  
Como puede observar en los diagramas de las figuras de abajo, el MCU es obviamente la más simple, pero el eMPU proporciona un compromiso ofreciendo el rendimiento de un MPU sin la complejidad asociada a él.
Un eMPU arrancará normalmente desde una flash serie externa, comparado con un MCU el cual normalmente usará una NOR flash externa. Esto puede proporcionar varias ventajas:
o Es posible usar el bloque de flash serie QSPI, el cual puede incluso ofrecer un rendimiento superior que una NOR flash estándar.
Se necesita menos espacio en la PCB y menos pines con un eMPU que con una NOR flash paralelo de 32bits.Un eMPU tiene suficiente RAM interna como para evitar el uso o la necesidad de una RAM externa, al contrario que una MPU que normalmente usa DDR externa o SDRAM también externa. Esto también puede proporcionar una serie de ventajas:
o  La aplicación se desvincula del mercado de RAM. Aunque esto sea improbable que un diseñador de hardware lo vea como una ventaja, su equipo de compras respirará tranquilo y verá como un alivio el desligarse de esa dependencia.
o  Se necesita menos espacio de PCB y menos pines con el eMPU y el uso de una flash serie permitiendo a los diseñadores usar encapsulados de tamaño más reducido (a menudo QFP), y realizar PCB a 2 capas en lugar de multi capas.
o  Se evita la necesidad de una fuente de alimentación adicional de 1,8V para la alimentación de las DDR.
Ahora claramente hay una vía por medio de la cual el rendimiento de un eMPU no va a llegar al de un sistema quad core multi-giga-Hertz como el del PC de su casa, pero no todos los sistemas HMI necesitan funcionar a ese nivel. ¡Hay otra forma!
Características de los dispositivos de la familia RZ/A.

Los RZ/A funcionan sobre un core Cortex A9 de 400MHz incluyendo una unidad en coma flotante de precisión doble (VFP) que cumple con la normativa IEEE754 y la opción de incoporar un general purpose 128bit single instruction multiple data (SIMD) NEON extension.  Estas extensiones aceleran las operaciones típicas en DSP, multimedia y aplicaciones de visualización. El core es un Cortex A9, 32kb de cache de instrucciones, 32kb de cache de datos y adicionalmente incluye 128kb de cache L2 para asegurar que incluso si el código se está ejecutando desde memoria externa no volátil, podrá ser ejecutado a máximo rendimiento.
El core en si no es nada inusual. La característica única de este dispositivo es  la inclusión de 10MB de RAM interna. Esta RAM está dividida en 4 bloques separados. Cada bloque tiene un tamaño de 2MB y tiene un bus dedicado de 128 bits funcionando a 133MHz. Esto significa que cada bloque puede ser direccionado por diferentes periféricos en el chip concurrentemente. A su vez, como la CPU puede estar ejecutando código desde un bloque, puede estar escribiendo datos en un segundo bloque mientras que un tercer bloque puede contener  los datos de la imagen que debe ser escrita en el TFT y el bloque final puede ser usado por algún acceso DMA o como buffer de comunicaciones para un stack TCP/IP;  todo esto sin colisiones de  bus. Esta es obviamente una de las mayores ventajas de la arquitectura eMPU.  A pesar de que un MPU tiene normalmente un bus rápido a la RAM externa, hay sólo uno de ellos. Por lo tanto la probabilidad de una colisión de bus es alta.
Una característica de la SRAM de 10MB de la familia RZ/A es el bajo consumo de RAM. En el bloque cero de la RAM hay 128kB de “data-retention” RAM, la cual está también dividida en otros bloques de menor tamaño.  Estos bloques pueden permanecer activos en modo de bajo consumo  y permitir que el dispositivo despierte de una manera significativamente rápida de estos modos,  por lo que el código de inicio, e incluso la primera pantalla para ser dirigida al TFT se puede guardar, por lo tanto, tan pronto como el usuario presiona un botón o inicia el sistema, está realmente cerca de un estado vivo inmediato.  Esta es claramente otra importante ventaja sobre los sistemas MPU actuales, los cuales a fin de lograr el consumo de energía más bajo posible, cortarán la energía a la memoria RAM y por tanto necesitan arrancar completamente de nuevo desde cero.   Otra característica única de la familia RZ/A es el llamado SPI Multi-I/O. Este periférico puede entenderse como un simple bloque SPI serie con algunas mejoras adicionales. La primera de esas mejoras para el bloque es que no sólo es compatible con el modo serie estándar, sino también el nuevo modo de QSPI. Este modo utiliza cuatro líneas de datos en paralelo en comparación con el estándar de bus serie 3 hilos. Con la nueva velocidad mejorada de esta conexión, los benchmarks iniciales están mostrando un rendimiento en exceso de 9 veces en comparación con los módulos de SPI anteriores, y también muestra que es posible incluso lograr un mejor rendimiento (aproximadamente 3 %) que cuando se accede en paralelo con una flash NOR externa, por ejemplo. Esto tiene como resultado final el poder realizar arranques rápidos sin necesidad de conectar un bus de 32 bits a su dispositivo. La otra característica del bloque SPI Multi-I/O es la funcionalidad “ejecutar en el lugar”. El bloque permite a la CPU acceder a la flash serie QSPI como si se tratara de un espacio exterior en dirección lineal. Esta función también es compatible con la memoria caché L2 de forma que el código se puede ejecutar directamente desde la flash externa. El resultado de esta función es que cualquier código crítico que deba ejecutarse rápida y regularmente, puede ejecutarse desde la RAM interna, y luego el código que no necesita ser ejecutado con regularidad, puede ejecutarse desde la flash externa, por lo que aunque los diseñadores se limiten a sólo 10 MB de RAM, la cantidad de código que se puede escribir está sólo limitada al tamaño de la SPI flash externa disponible. Por último, desde el punto de vista de las comunicaciones del dispositivo, viene con todo lo que se puede esperar. Tiene una MAC Ethernet, dos puertos USB 2.0 con funcionalidad tanto host como device, y hasta 5 canales CAN.
 
Visión general de Gráficos IP (Video Display Controller and OpenVG)

Hasta ahora hemos aprendido que la familia RZ/A es una familia con un procesador rápido, que alcanza rendimientos altos gracias a los 10 MB de memoria interna y un amplio bus para evitar colisiones. También es compatible con una serie de periféricos que soportan todas las interfaces estándar que usted podría esperar, y que también permite a los diseñadores de sistemas realizar diseños con un bajo coste en cuanto a lista de materiales,  sin que ello comprometa el rendimiento. 
Todo esto está muy bien, pero todavía se no responde al quid de la cuestión. ¿Cómo se maneja la pantalla?
El RZ/A tiene dos características que hacen que el manejo de un pantalla sea muy simple y permite realizar interfaces gráficas de usuario impresionantes. 
La primera de estas características es el VDC5. El VDC5 es la quinta generación del controlador de pantalla de vídeo de Renesas y es capaz de manejar pantallas de hasta un tamaño máximo de 1999 píxeles x 2035 líneas, por lo que es el más impresionante de este tipo. 
El VDC5 admite en realidad hasta 2 canales, lo que significa que se pueden controlar dos pantallas al mismo tiempo. El VDC5 también apoya interfaces digitales estándar, como LVDS tal por lo que la tendencia en pantallas más grandes para usar la interfaz LVDS también puede ser soportada.
La primera porción del VDC es el controlador de entrada que puede recibir hasta dos señales de entrada de vídeo de un tamaño máximo de 1440 x 1024. El controlador de entrada soporta compensación de fase, corrección de ruido horizontal y corrección del contraste. Las señales de entrada se pasan entonces al bloque escalador.
El bloque escalador (de los cuales hay dos por canal VDC5) puede ser usado para escalar ambas entradas de vídeo tanto hacia arriba como hacia abajo a fin de crear una imagen del tamaño correcto para la pantalla. Las imágenes también pueden rotarse e incluso las dos entradas de vídeo se pueden superponer con mezcla alfa y una tabla de consulta de colores (CLUT). Las imágenes finales (si ambas entradas son tratadas por separado) o la imagen (si se utiliza sólo una entrada o las dos entradas se superponen) se almacenan entonces en un frame buffer de la memoria RAM y se pasan al sintetizador de imagen. El sintetizador de imagen combina hasta 4 capas individuales para crear una sola imagen. Cuando una o ninguna entrada de vídeo está siendo utilizada, estas capas quedan libres para ser usadas para otras partes de la interfaz gráfica de usuario como la capa de revestimiento separada o iconos. A través de un proceso de mezcla alfa y la CLUT se crea la imagen final única de la pantalla, y es dirigida al controlador de salida.
Finalmente, el controlador de salida toma la imagen generada y la conduce a la pantalla de TFT, ya sea a través de la LVDS o la salida digital, en uno de los muchos formatos soportados, RGB888 (24-bit de salida en paralelo), RGB666 (18-bit de salida en paralelo), RGB565 (salida en paralelo de 16 bits) o RGB888 (8 bits de salida en serie).
La operación de la mezcla alfa y la combinación de las múltiples capas significa que la CPU se puede descargar de esta funcionalidad.
El segundo periférico de los dispositivos RZ/A que es útil para el desarrollo de HMI es el motor de gráficos OpenVG, que es un acelerador de gráficos vectoriales 2D. El IP acelera las etapas 2 a 8 de la pipeline de OpenVG mediante el uso de hardware dedicado y una biblioteca testeada.
El motor OpenVG se puede utilizar para llenar los buffer frames y luego el VDC5 se puede utilizar para dirigir los datos de la imagen a la pantalla. La ventaja de utilizar OpenVG es que permite el uso de gráficos vectoriales que pueden mejorar en gran medida la eficiencia, así como el “look and feel” de una GUI. Se pueden utilizar dos sencillos ejemplos; en el ejemplo en el que una imagen tiene que ser rotada, la forma más fácil de hacer esto con una imagen de mapa de bits es guardar la imagen 360 veces, cada una de ellas girada 1 grado, y luego simplemente mostrar cada imagen una tras la otra. Esto es claramente una sobrecarga significativa en términos de uso de memoria y también en términos de ancho de banda del dispositivo, una implementación vectorial de la misma imagen puede ser simplemente girada y el soporte para esta rotación está incluido en el hardware del RZ. El segundo ejemplo es el de la ampliación, y en este caso, una imagen vale más que mil palabras, así que dejaré la imagen de abajo sin comentar.
Poniendo todo junto.

El RZ/A; El nuevo eMPU de Renesas está diseñado para cubrir la brecha entre los MPUs tradicionales y los MCUs tradicionales del mercado. Cuenta con hasta 10 MB de SRAM integrada y lleva integrados modos rápidos para despertarse de modos de menor consumo. 
El dispositivo sólo necesita una simple memoria flash serie y de bajo coste desde la que se puede arrancar directamente. Los 10 MB de memoria son suficientes para almacenar tanto el buffer delantero como el buffer trasero de su aplicación HMI de doble buffer. Los 10 MB de memoria RAM interna del RZ se conectan a un bus multi-capa y se separa en bloques de 2MB de tal manera que la memoria RAM puede ser tanto leída como escrita por diversas fuentes simultáneamente, permitiendo una aplicación de interfaz hombre-máquina (HMI) de alto rendimiento para ejecutarse en un sistema que no necesita memoria RAM externa y con pocos pines, disponible en encapsulados QFP tales que los permiten a los diseñadores crear circuito impresos de 2 capas.
El RZ/A nunca alcanzará la sencillez de un MCU de 8 bit con 16k de ROM, ni nunca conseguirá el rendimiento de un procesador de 2 GHz de cuatro núcleos, pero Renesas está apostando por que su próxima aplicación de interfaz hombre-máquina (HMI) necesite un poco más de rendimiento del que un MCU estándar puede ofrecer, pero sin hacer ese gran salto a una arquitectura de microprocesador.
Resumen.

Este artículo es una introducción técnica a la familia RZ/A, el nuevo procesador embebido de Renesas. El dispositivo está disponible en un número de opciones y de configuraciones diseñadas para proporcionar a los diseñadores un amplio abanico de opciones para diseñar aplicaciones de control de TFT o aplicaciones de diseño de interfaces gráficas (GUI).
En el artículo se expondrán  detalles de las características de la familia RZ/A, incluyendo un repaso técnico de la arquitectura de la memoria, la cual incluye el mayor tamaño de RAM incorporada del mundo (hasta 10MB), y una arquitectura de buses especialmente diseñada para asegurar el máximo rendimiento entre buses y memoria. El dispositivo también incorpora la 5ª generación del controlador de video de Renesas, el cual es capaz no solo de controlar pantallas de tamaños hasta WXGA, sino también de soportar diversas funciones adicionales por hardware  que a menudo se solucionan por software, como permitir operar a pleno rendimiento a baja velocidad de reloj.  El dispositivo también incorpora un bloque OpenVG 1.1 y el artículo abordará este tema para mostrar cómo puede ser usado para mejorar el rendimiento y reducir la sobrecarga de memoria.