Arquitectura de memoria y sistema
Hay diferentes estilos de arquitectura de memoria y sistema que deben tenerse en cuenta al diseñar el programa o el sistema concurrente. Es muy necesario porque un estilo de sistema y memoria puede ser adecuado para una tarea, pero puede ser propenso a errores para otra tarea.
Arquitecturas de sistemas informáticos que admiten la concurrencia
Michael Flynn en 1972 dio una taxonomía para categorizar diferentes estilos de arquitectura de sistemas informáticos. Esta taxonomía define cuatro estilos diferentes de la siguiente manera:
- Secuencia de instrucciones única, secuencia de datos única (SISD)
- Secuencia de instrucciones única, secuencia de datos múltiples (SIMD)
- Secuencia de instrucciones múltiple, secuencia de datos única (MISD)
- Flujo de instrucciones múltiples, flujo de datos múltiples (MIMD).
Secuencia de instrucciones única, secuencia de datos única (SISD)
Como sugiere el nombre, este tipo de sistemas tendrían un flujo de datos entrante secuencial y una sola unidad de procesamiento para ejecutar el flujo de datos. Son como sistemas monoprocesador con arquitectura de computación paralela. A continuación se muestra la arquitectura de SISD:
Ventajas de SISD
Las ventajas de la arquitectura SISD son las siguientes:
- Requiere menos energía.
- No hay problema de protocolo de comunicación complejo entre múltiples núcleos.
Desventajas de SISD
Las desventajas de la arquitectura SISD son las siguientes:
- La velocidad de la arquitectura SISD es limitada al igual que los procesadores de un solo núcleo.
- No es adecuado para aplicaciones más grandes.
Secuencia de instrucciones única, secuencia de datos múltiples (SIMD)
Como sugiere el nombre, este tipo de sistemas tendrían múltiples flujos de datos entrantes y un número de unidades de procesamiento que pueden actuar sobre una sola instrucción en cualquier momento. Son como sistemas multiprocesador con arquitectura de computación paralela. A continuación se muestra la arquitectura de SIMD:
El mejor ejemplo de SIMD son las tarjetas gráficas. Estas tarjetas tienen cientos de unidades de procesamiento individuales. Si hablamos de diferencia computacional entre SISD y SIMD, entonces para agregar arreglos[5, 15, 20] y [15, 25, 10],La arquitectura del SISD tendría que realizar tres operaciones de adición diferentes. Por otro lado, con la arquitectura SIMD, podemos agregar luego en una sola operación de agregar.
Ventajas de SIMD
Las ventajas de la arquitectura SIMD son las siguientes:
La misma operación en varios elementos se puede realizar usando una sola instrucción.
El rendimiento del sistema se puede aumentar aumentando el número de núcleos del procesador.
La velocidad de procesamiento es más alta que la arquitectura SISD.
Desventajas de SIMD
Las desventajas de la arquitectura SIMD son las siguientes:
- Existe una comunicación compleja entre el número de núcleos del procesador.
- El costo es más alto que la arquitectura SISD.
Flujo de datos únicos de instrucciones múltiples (MISD)
Los sistemas con flujo MISD tienen varias unidades de procesamiento que realizan diferentes operaciones mediante la ejecución de diferentes instrucciones en el mismo conjunto de datos. A continuación se muestra la arquitectura de MISD:
Los representantes de la arquitectura de MISD aún no existen comercialmente.
Flujo de datos múltiples de instrucciones múltiples (MIMD)
En el sistema que usa la arquitectura MIMD, cada procesador en un sistema multiprocesador puede ejecutar diferentes conjuntos de instrucciones de forma independiente en los diferentes conjuntos de datos en paralelo. Es opuesto a la arquitectura SIMD en la que una sola operación se ejecuta en múltiples conjuntos de datos. A continuación se muestra la arquitectura de MIMD:
Un multiprocesador normal utiliza la arquitectura MIMD. Estas arquitecturas se utilizan básicamente en una serie de áreas de aplicación, como diseño asistido por computadora / fabricación asistida por computadora, simulación, modelado, interruptores de comunicación, etc.
Arquitecturas de memoria que admiten la concurrencia
Al trabajar con conceptos como concurrencia y paralelismo, siempre es necesario acelerar los programas. Una solución encontrada por los diseñadores de computadoras es crear múltiples computadoras con memoria compartida, es decir, computadoras que tienen un solo espacio de direcciones físicas, al que acceden todos los núcleos que tiene un procesador. En este escenario, puede haber varios estilos diferentes de arquitectura, pero a continuación se muestran los tres estilos de arquitectura importantes:
UMA (acceso uniforme a la memoria)
En este modelo, todos los procesadores comparten la memoria física de manera uniforme. Todos los procesadores tienen el mismo tiempo de acceso a todas las palabras de memoria. Cada procesador puede tener una memoria caché privada. Los dispositivos periféricos siguen un conjunto de reglas.
Cuando todos los procesadores tienen el mismo acceso a todos los dispositivos periféricos, el sistema se denomina symmetric multiprocessor. Cuando solo uno o unos pocos procesadores pueden acceder a los dispositivos periféricos, el sistema se denominaasymmetric multiprocessor.
Acceso a memoria no uniforme (NUMA)
En el modelo de multiprocesador NUMA, el tiempo de acceso varía con la ubicación de la palabra de memoria. Aquí, la memoria compartida se distribuye físicamente entre todos los procesadores, llamados memorias locales. La colección de todas las memorias locales forma un espacio de direcciones global al que pueden acceder todos los procesadores.
Arquitectura de memoria caché únicamente (COMA)
El modelo COMA es una versión especializada del modelo NUMA. Aquí, todas las memorias principales distribuidas se convierten en memorias caché.