Trabajo de Investigación 1 - FPGA y DSP, CPU Cortex ARM

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 11

República Bolivariana de Venezuela

Universidad Nacional Experimental Politécnica “Antonio José de Sucre”

Vicerrectorado “Luis Caballero Mejías”. Núcleo Guarenas.

Asignatura: Microcontroladores

FPGA y DSP
CPU Cortex ARM

Profesor: Elaborado por:

Miguel Ovalles (2015200158) Miguel Jiménez

[[email protected]]

Guarenas, 6 de Abril de 2021


Introducción

En el mundo de los controladores, esos maravillosos equipos que poseen


configuraciones específicas para un mundo de posibilidades, es muy importante conocer los
diferentes componentes que lo integran. En la actualidad, se están desarrollando equipos
cada vez más capaces de lograr una tarea requerida para ciertas industrias de interés, por lo
cual está la necesidad implícita de integrar componentes tecnológicos o de automatización
que mejoren la calidad de los productos que se quieran ofertar.

En el mundo, actualmente existen gran cantidad de sistemas capaces de interpretar las


variables que existen en el mundo real. Estos equipos están capacitados para obtener
medidas y establecer equivalencias de forma tal, que son la base o el componente
fundamental para el funcionamiento de diferentes equipos.

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.

2. Familia de procesadores 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).

A la fecha de escrito el presente documento, las versiones de núcleos disponibles al


público por la empresa de esta gama son las siguientes:

 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):

 ARMv7-A (Cortex-A5, Cortex-A8, Qualcomm Scorpion, Cortex-A9 y Cortex-A9


MPCore)
 ARMv7-R (Cortex-R4)
 ARMv7-ME (Cortex-M4)
 ARMv7-M (Cortex-M3)
 ARMv7-R (Cortex-R4)
 ARMv6-M (Cortex-M0 y Cortex-M1)

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).

Los FPGA también podrían diferenciarse por usar diferentes tecnologías de


memoria:

-Las memorias Volátiles: basadas en memorias RAM. Su programación se pierde al


quitar la alimentación. Requieren una memoria externa no volátil para configurarlas
al arrancar (antes o durante el reinicio).

-Las memorias No Volátiles: basadas en memorias ROM. Hay de 2 tipos: las


Reprogramables (basadas en EPROM, borrables y reprogramables) y las No
Reprogramables (basadas en fusibles o anti-fusibles, programables solo una vez,
poco recomendables para trabajos en laboratorios)

Desde principios de 2007, el mercado de FPGA ha situado a dos grandes


productores (Xilinx y Altera) y a diferentes competidores que ofrecen dispositivos de
características específicas (Lattice Semiconductor, Microsemi, QuickLogic,
Atmel,…)
3. DSP

Un DSP (Digital Sign Processor, o Procesador de Señales Digitales) es un


sistema basado en un procesador o microprocesador que posee un conjunto de
instrucciones, un hardware y un software optimizado para aplicaciones que requieran
operaciones numéricas a muy alta velocidad. Siendo especialmente útil para el
procesamiento y representación de señales analógicas en tiempo real. Para ello estos
deben recibir muestras, normalmente provenientes de un conversor analógico a
digital.

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.

Un DSP se compone, en lo básico, de conversores en las entradas y salidas,


memorias de datos-programa-DMA, MAC (multiplicadores y acumuladores), ALU
(unidad aritmético-lógica), registros, PLL (bucles enganchados de fase) y PWM
(módulos de control de ancho de pulso).

Un DSP se puede programar tanto en lenguaje ensamblador como en lenguaje C.


Cada familia de DSP tiene su propio lenguaje ensamblador, y sus propias
herramientas suministradas por el fabricante.

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.

Además, como preparador de la materia de “Diseño de Sistemas Lógicos”, tengo el


deber de conocer las diferentes formas de componentes capaces de producir las mismas
funciones que los componentes por separado, para brindar mejores soluciones ante
diferentes posibilidades de aplicaciones.
Referencias

Manuti, “Una historia de Cortex” [Online]. Recuperado de:


https://www.google.com/amp/s/raspberryparatorpes.net/hardware/una-historia-de-
cortex/amp/

Wikipedia, “Arquitectura ARM” [Online]. Recuperado de:


https://es.wikipedia.org/wiki/Arquitectura_ARM

Wikipedia, “Procesador de Señales Digitales” [Online]. Recuperado de:


https://es.wikipedia.org/wiki/Procesador_de_se%C3%B1ales_digitales

Wikipedia, “Field-programmable gate array” [Online]. Recuperado de:


https://es.wikipedia.org/wiki/Field-programmable_gate_array

También podría gustarte