Clase 1: Introducción a los Sistemas Embebidos
¿Qué es un sistema embebido?
Un sistema embebido es un sistema de cómputo diseñado para realizar una tarea específica dentro de un dispositivo más grande. Se caracterizan por estar optimizados en términos de eficiencia, consumo energético y confiabilidad.
Características de los sistemas embebidos
- Especialización: Diseñados para tareas concretas.
- Tiempo real: Capacidad de respuesta inmediata a eventos.
- Eficiencia energética: Consumen poca energía.
- Integración compacta: Tamaño reducido y bajo costo.
- Alta confiabilidad: Funcionamiento estable y prolongado.
Ejemplos de sistemas embebidos
Presentes en múltiples ámbitos:
- Electrodomésticos: Microondas, lavadoras.
- Automóviles: Airbags, ABS.
- Industria: Robots, sensores.
- Salud: Marcapasos, monitores.
- IoT: Domótica, sensores ambientales.
Tipos de arquitecturas de sistemas embebidos
Arquitectura Harvard
La arquitectura Harvard se caracteriza por tener memorias separadas para los datos y el programa, lo que permite que ambas memorias sean accedidas simultáneamente. Esto mejora la velocidad de procesamiento al evitar cuellos de botella en la transferencia de información. Es ampliamente utilizada en microcontroladores como los AVR de Arduino y en sistemas donde el rendimiento en tiempo real es crítico.
Ventajas:
- Mayor velocidad de ejecución.
- Reducción de conflictos en el acceso a la memoria.
- Optimización para tareas específicas en sistemas embebidos.
Desventajas:
- Mayor complejidad en el diseño del hardware.
- Consumo de más recursos debido a la duplicación de memorias.
Arquitectura Von Neumann
En la arquitectura Von Neumann, tanto los datos como el programa se almacenan en una única memoria y comparten el mismo bus para acceder a ella. Este diseño es más flexible y económico, ya que reduce la cantidad de hardware necesario, pero puede presentar cuellos de botella cuando hay múltiples accesos a la memoria.
Ventajas:
- Diseño más simple y económico.
- Flexibilidad para ejecutar distintos tipos de aplicaciones.
- Uso eficiente del espacio de memoria.
Desventajas:
- Posible ralentización debido a la compartición del bus de memoria.
- Menor eficiencia en sistemas que requieren procesamiento en tiempo real.
Arquitectura RISC vs. CISC
RISC (Reduced Instruction Set Computing)
Los procesadores con arquitectura RISC emplean un conjunto reducido de instrucciones simples, lo que les permite ejecutar operaciones en menos ciclos de reloj y mejorar la eficiencia. Son ideales para aplicaciones de bajo consumo y alto rendimiento, como los microcontroladores ARM y ESP32.
Ventajas:
- Mayor velocidad de ejecución debido a instrucciones más simples.
- Bajo consumo de energía.
- Facilita el paralelismo y la optimización del rendimiento.
Desventajas:
- Puede requerir más líneas de código para realizar tareas complejas.
- Mayor dependencia del compilador para optimizar el rendimiento.
CISC (Complex Instruction Set Computing)
Los procesadores CISC tienen un conjunto de instrucciones más amplio y complejo, lo que les permite realizar tareas en menos líneas de código. Se encuentran en procesadores de propósito general como los x86 usados en computadoras personales.
Ventajas:
- Capacidad para ejecutar tareas complejas con menos instrucciones.
- Eficiente en entornos donde el ancho de banda de memoria es limitado.
Desventajas:
- Mayor consumo energético.
- Instrucciones más complejas pueden ralentizar el procesamiento.
Selección de la arquitectura adecuada
Al elegir una arquitectura, se deben considerar:
- Requerimientos de la aplicación: Velocidad, consumo, potencia de cómputo.
- Costo y disponibilidad del hardware.
- Facilidad de desarrollo y soporte de software.
- Necesidad de procesamiento en tiempo real.
Actividad para la próxima clase
- Investigar un dispositivo con un sistema embebido.
- Determinar su tipo de arquitectura.
- Explicar la razón de esa elección.