Un sistema multiprocesador consiste en una interconexión a la que están conectadas todas las unidades de procesamiento, incluidas las CPU, las GPU y el subsistema de memoria.
Como menciona un sistema integrado con múltiples núcleos, supongo que es un procesador de aplicaciones para un alto rendimiento.
UART, I2C son protocolos para conectarse con periféricos a velocidades más bajas. Por lo tanto, usarlos para la comunicación entre procesadores en un procesador de aplicaciones no es práctico. ¡Las interconexiones de hoy en día proporcionan un ancho de banda de más de 100 Gbps!
Los procesadores deben interactuar entre sí para mantener la coherencia de la memoria o lo que se llama coherencia de caché. Los valores presentes en los cachés de todos los núcleos deben ser consistentes. Además, la comunicación entre procesadores es necesaria para mantener la sincronización entre núcleos. Por ejemplo: espere el evento y envíe las instrucciones del evento (WFE SEV) de ARM.
- ¿Cuáles son las ventajas y desventajas de usar un lenguaje ensamblador en comparación con C en un sistema integrado?
- ¿Cuáles son las calificaciones necesarias para un aspirante a ingeniero de diseño de sistemas integrados de nivel básico para descifrar las entrevistas?
- ¿Qué sugiere PORTB ^ = 1 << PINB0 en el microcontrolador AVR?
- ¿Cuáles son algunos ejemplos de seguridad de sistemas integrados?
- ¿Está bien aprender C incrustado sin tener ningún conocimiento de microcontroladores?
Mientras que los sistemas embebidos simples no usan arquitecturas multinúcleo, los procesadores de aplicaciones embebidos avanzados (aquellos en teléfonos inteligentes, tabletas, etc.) dependen de arquitecturas de interconexión complicadas. El siguiente diagrama de CCI-400 representa un Soc basado en ARM, observe la red coherente de caché que conecta todas las unidades de cómputo. Cada grupo de CPU se conectará nuevamente mediante una interconexión más simple, mientras se sigue el protocolo.
Las interconexiones modernas siguen protocolos algo similares a los protocolos de Internet, como la forma en que pensaba sobre TCP / UDP, probablemente un poco más simple que eso. Por lo tanto, también se denominan Network on Chip, donde los procesadores pueden descartar paquetes de solicitudes que serán atendidos por nodos esclavos. ¡Los procesadores pueden gritar sobre la modificación de un valor en su caché que será escuchado por otros núcleos y pueden actualizar su caché en consecuencia! Los desarrolladores diseñan un protocolo adecuado y lo implementan en función de la cantidad de núcleos que debe admitir, los protocolos snoop (para coherencia de caché) y el tráfico de memoria o el soporte de ancho de banda necesarios.
Algunos ejemplos de protocolos de interconexión son AMBA by ARM, IEEE estándar “Interfaz coherente escalable”, etc.