Trabajo de Investigación 1 - FPGA y DSP, CPU Cortex ARM
Trabajo de Investigación 1 - FPGA y DSP, CPU Cortex ARM
Trabajo de Investigación 1 - FPGA y DSP, CPU Cortex ARM
Asignatura: Microcontroladores
FPGA y DSP
CPU Cortex ARM
Entender la funcionalidad de cada uno y sus diferentes tipos, conjuntamente con la razón
por la cual fueron creados es importante. Cada modelo tiene una función en un sistema, y
contará con cierta eficiencia, dependiendo de distintos factores a considerar.
No es para menos que cada vez la vanguardia tecnológica avance, a grandes pasos, y de
esta manera proporcione un futuro más cómodo para todos. Es gracias a distintas empresas
que ofrecen cada vez más renovadas tecnologías a quienes lo requieran que tenemos el
avance que conocemos ahora, y que millones de personas facilitan sus labores mediante
diferentes disciplinas de trabajo, todo facilitado por lo que la tecnología puede ofrecer.
Desarrollo del Trabajo de Investigación
1. Arquitectura ARM
La arquitectura ARM (de sus siglas en inglés Advanced RISC Machine = Máquina
RISC Avanzada) es una arquitectura de procesadores basada en la arquitectura RISC
(Reduced Instruction Set Computer = Ordenador con Conjunto Reducido de
Instrucciones) con operación de 32 y 64 bits, desarrollada por la empresa británica ARM
Holdings. Se trata del conjunto de instrucciones de 32 y 64 bits más ampliamente usado en
unidades de computación (para el 2005, el 98% de los dispositivos lanzados a nivel
mundial usaban al menos un procesador ARM). Sus primeros productos de esta
arquitectura fueron Acorn Archimedes, lanzados en 1987.
Este tipo de arquitectura es empleado para reducir el uso de energía, calor y costes, y
especialmente empleado en dispositivos que funcionan con baterías (como los teléfonos
móviles, tabletas, entre otros), ya que requieren de una cantidad menor de transistores que
las arquitecturas usadas en las computadoras de escritorio.
Las familias de procesadores de la empresa ARM Holdings son las siguientes, por
orden cronológico: ARM1, ARM2, ARM3, ARM6, ARM7, ARM7TDMI, StrongARM,
ARM8, ARM9TDMI, ARM9E, ARM10E, XScale, ARM11, y Cortex.
Las CPU Cortex ARM son procesadores clasificados, que según la notación dada por
su nombre, son usados para diferentes propósitos. Posee 3 categorías principales: la serie A
(por Aplicación) cuyo uso se denota en la ejecución de aplicaciones de PC, Smartphone o
Smart TV; la serie R (por Real-time) para aplicaciones de control en tiempo real; y la serie
M (por Microcontrolador) para el uso en dispositivos como Arduino.
Esta denominación empezó a ser usada a partir de la arquitectura ARMv7 (aunque
recientemente para ARMv8.2 empezó a usarse una categoría nueva, la serie X).
Cortex-X:
o Cortex-X1: hasta ahora la mejor micro-arquitectura desarrollada por la
empresa, basada en un set de instrucciones de 64 bit y de ARMv8.2-A. Con
una frecuencia de CPU de hasta 3.3 GHz en su núcleo.
Cortex-A:
o Cortex-A78: La CPU de 4ª generación, de alto rendimiento, basada en la
tecnología DynamIQ. La más eficiente de la familia.
o Cortex-A78C: Un procesador de variadas configuraciones adaptado a las
soluciones del mercado.
o Cortex-A78AE: El procesador más avanzado para los diseños de seguridad
requeridos.
o Cortex-A77: Una CPU de 3ª generación, de alto rendimiento, basada en la
tecnología DynamIQ.
o Cortex-A76: Una CPU de 2ª generación, de alto rendimiento, basada en la
tecnología DynamIQ.
o Cortex-A76AE: El primero de su tipo, de los procesadores autónomos con
recursos de seguridad integrados.
o Cortex-A75: Una CPU de 1ª generación, de alto rendimiento, basada en la
tecnología DynamIQ.
o Cortex-A73: Una CPU de medio-alto rendimiento y eficiencia.
o Cortex-A72: Una CPU de medio-alto rendimiento, usado en la industria de
los dispositivos móviles.
o Cortex-A65AE: Una CPU con funciones de multi-capa y funciones de
seguridad integradas.
o Cortex-A65: Una CPU con funciones de multi-capa.
o Cortex-A55: El procesador de gama media compatible con una CPU de alta
gama, bajo la configuración de DynamIQ.
o Cortex-A53: Un procesador de mediana gama, el más usado que equilibra el
rendimiento con la eficiencia.
o Cortex-A35: Un procesador de Armv8-A que soporta aplicaciones de 32 y
64 bits.
o Cortex-A34: Un procesador de Armv8-A, el más pequeño y eficiente del
tipo. Soporta aplicaciones de 64 bits.
o Cortex-A32: Un procesador de Armv8-A, pequeño y de bajo consumo.
Soporta aplicaciones de 64 bits.
o Cortex-A7: Un procesador de Armv7-A, el más pequeño y eficiente de los
que soporta aplicaciones de 32 bits.
o Cortex-A5: Un procesador de Armv7-A, que soporta aplicaciones de 32
bits.
Cortex-M:
o Cortex-M35P: El primer procesador de Armv8-M, con resistencia
integrada.
o Cortex-M33: Un procesador que mezcla las características de tiempo real,
eficiencia y seguridad.
o Cortex-M55: Un procesador capacitado para labores de inteligencia
artificial.
o Cortex-M23: Un microcontrolador de bajo consumo con seguridad dada por
TrustZone.
o Cortex-M7: Un procesador de alto desempeño.
o Cortex-M4: Control y desarrollo de dispositivos por señales mixtas.
o Cortex-M3: Rendimiento excepcional de 32-bits para bajo consumo.
o Cortex-M1: Procesador Cortex-M de bajo consumo para dispositivos
FPGA.
o Cortex-M0+: Un procesador más eficiente que la primera edición.
o Cortex-M0: El procesador de ARM más pequeño disponible.
Cortex-R:
o Cortex-R82: Un procesador de alto rendimiento de tiempo real.
o Cortex-R52: Un procesador avanzado de seguridad mejorada.
o Cortex-R52+: Un procesador avanzado con virtualización en tiempo real,
de seguridad mejorada.
o Cortex-R8: Procesador de alto rendimiento para almacenar controladores.
o Cortex-R5: Un procesador que ofrece virtualización en tiempo real, de
seguridad mejorada.
o Cortex-R4: El procesador más pequeño de la gama, con ejecución en
tiempo real.
Algunas versiones de arquitectura más antiguas de esta familia son (entre paréntesis se
ubican sus núcleos):
3. FPGA
Un FPGA (Field-Programmable Gate Array, o Matriz de Puertas Lógicas
Programable de Campo) es un dispositivo programable que contiene bloques de
lógica, la cual es configurable en el momento tanto la interconexión como la
funcionalidad, bajo un lenguaje de descripción especial. Es capaz de replicar tanto
puertas lógicas simples o combinaciones, como complejos sistemas lógicos de chip
(hasta miles de millones de arreglos equivalentes a la compuerta NAND).
Estos FPGA poseen diferentes usos en algunas industrias para generar funciones
de acuerdo a datos suministrados, pero algunos modelos son algo lentas en
comparación con otros sistemas, y no pueden alojar arreglos demasiado complejos. A
pesar de ello, son reprogramables (esto añade una enorme flexibilidad al flujo de
diseño), sus costes de adquisición y desarrollo son mucho menores, y el tiempo de
desarrollo es menor. También existe la posibilidad de generar biestables síncronos
con los cuales generar una salida en base a un conteo. Además, en la mayoría de
FPGA se pueden encontrar funciones de alto nivel (como funciones de suma y
multiplicación).
Aunque este puede trabajar con señales analógicas, el DSP es un sistema digital,
por lo cual para el correcto proceder de los datos, estos deben pasar antes por un
conversor A/D, y luego revertir la conversión con un conversor D/A. Como todo
sistema programable, necesita una memoria en donde almacenar los datos con los que
trabajará, y el programa que ejecuta. Una importante característica, es que los DSP
pueden trabajar con varios datos en paralelo y un diseño e instrucciones específicas
para el procesado digital, por lo cual es muy importante para sus diferentes
aplicaciones. Un posible sistema basado en DSP puede ser el siguiente:
La señal entrante pasa primero por un filtro anti-aliasing para prevenir la lectura
de frecuencias superiores a la mostrada para el conversor A/D. Después, se lleva a
cabo el procesamiento digital en el módulo DSP, para luego volverse a convertir en
analógico y terminar en la salida.
Un DSP está diseñado, teniendo en cuenta las tareas más habituales del
procesamiento digital: sumas, multiplicaciones y retrasos (conjuntamente con esa
información almacenada en la memoria). En ese sentido, los DSP abandonan la
arquitectura clásica de Von Neumann, y apuestan por la Arquitectura Harvard, en la
cual existen bloques de memoria físicamente separados para datos y programas.
Las aplicaciones atribuidas a este tipo de sistemas son las relacionadas con el
procesamiento de audio y video, y cualquier otra aplicación que requiera el
procesamiento en tiempo real. De esta forma, se elimina el eco en sistemas de
comunicación, visualizar mejor los ecosonogramas, cifrar conversaciones en
teléfonos celulares, analizar datos sísmicos, entre muchos otros, los cuales vienen
relacionados con el procesamiento de señales.
Conclusión
Un tema bastante interesante que explica algunas de las más usadas tecnologías, que son
parte de los dispositivos que se usan día a día. Considero que como alumnos de ingeniería
Mecatrónica, es primordial conocerlo, porque será implícito la necesidad de conocer las
tecnologías actuales y su campo de aplicación en las presentes y futuras aplicaciones.