La taxonomía de Flynn es una clasificación de arquitecturas de computadora , propuesta por Michael J. Flynn en 1966. [1] [2] El sistema de clasificación se ha estancado y se ha utilizado como herramienta en el diseño de procesadores modernos y sus funcionalidades. Desde el surgimiento de las unidades de procesamiento central de multiprocesamiento (CPU), un contexto de multiprogramación ha evolucionado como una extensión del sistema de clasificación.
Clasificaciones
Las cuatro clasificaciones definidas por Flynn se basan en el número de secuencias de instrucciones (o control) concurrentes y secuencias de datos disponibles en la arquitectura. [3]
Secuencia de instrucciones única, secuencia de datos única (SISD)
Una computadora secuencial que no explota paralelismo ni en la instrucción ni en los flujos de datos. La unidad de control única (CU) obtiene un flujo de instrucciones único (IS) de la memoria. A continuación, la CU genera señales de control apropiadas para dirigir un único elemento de procesamiento (PE) para que opere en un único flujo de datos (DS), es decir, una operación a la vez.
Ejemplos de arquitectura SISD son las tradicionales máquinas monoprocesador como las computadoras personales más antiguas (PC; para 2010, muchas PC tenían múltiples núcleos) y computadoras mainframe .
Secuencia de instrucciones única, secuencias de datos múltiples (SIMD)
Una sola instrucción opera en múltiples flujos de datos diferentes. Las instrucciones se pueden ejecutar secuencialmente, como por canalización, o en paralelo por múltiples unidades funcionales.
Instrucción única, múltiples subprocesos (SIMT) es un modelo de ejecución utilizado en computación paralela donde una sola instrucción, múltiples datos (SIMD) se combina con múltiples subprocesos . Esta no es una clasificación distinta en la taxonomía de Flynn, donde sería un subconjunto de SIMD. Nvidia suele utilizar el término en sus materiales de marketing y documentos técnicos donde defiende la novedad de la arquitectura de Nvidia. [4]
Múltiples flujos de instrucciones, flujo de datos único (MISD)
Varias instrucciones operan en un flujo de datos. Esta es una arquitectura poco común que generalmente se usa para tolerancia a fallas. Los sistemas heterogéneos operan en el mismo flujo de datos y deben estar de acuerdo con el resultado. Los ejemplos incluyen la computadora de control de vuelo del transbordador espacial . [5]
Múltiples flujos de instrucciones, múltiples flujos de datos (MIMD)
Múltiples procesadores autónomos que ejecutan simultáneamente diferentes instrucciones sobre diferentes datos. Las arquitecturas MIMD incluyen procesadores superescalares de varios núcleos y sistemas distribuidos , que utilizan un espacio de memoria compartida o un espacio de memoria distribuida.
Diagrama comparativo de clasificaciones
Estas cuatro arquitecturas se muestran a continuación visualmente. Cada unidad de procesamiento (PU) se muestra para una computadora uni-core o multi-core:
Más divisiones
A partir de 2006[actualizar], las 10 mejores y la mayoría de las supercomputadoras TOP500 se basan en una arquitectura MIMD.
Algunos dividen aún más la categoría MIMD en las dos categorías siguientes, [6] [7] [8] [9] [10] ya veces se consideran incluso más subdivisiones. [11]
Programa único, múltiples flujos de datos (SPMD)
Múltiples procesadores autónomos que ejecutan simultáneamente el mismo programa (pero en puntos independientes, en lugar de en el mismo paso que impone SIMD) sobre diferentes datos. También denominado proceso único, datos múltiples [10] : el uso de esta terminología para SPMD es técnicamente incorrecto, ya que SPMD es un modelo de ejecución paralela y asume que varios procesadores cooperan ejecutando un programa. SPMD es el estilo más común de programación paralela. [12] El modelo SPMD y el término fueron propuestos por Frederica Darema del equipo RP3. [13]
Múltiples programas, múltiples flujos de datos (MPMD)
Múltiples procesadores autónomos que operan simultáneamente al menos 2 programas independientes. Por lo general, estos sistemas eligen un nodo para que sea el "host" ("el modelo explícito de programación de host / nodo") o "administrador" (la estrategia "Administrador / Trabajador"), que ejecuta un programa que distribuye datos a todos los demás nodos. que todos ejecutan un segundo programa. A continuación, esos otros nodos devuelven sus resultados directamente al administrador. Un ejemplo de esto sería la consola de juegos Sony PlayStation 3, con su procesador SPU / PPU .
Ver también
- Taxonomía de Duncan
- Clasificación de Feng
- Händler 's Sistema de Clasificación de Erlangen (ECS)
- SWAR
Referencias
- ^ Flynn, Michael J. (septiembre de 1972). "Algunas organizaciones informáticas y su eficacia". Transacciones IEEE en computadoras . C-21 (9): 948–960. doi : 10.1109 / TC.1972.5009071 .
- ^ Duncan, Ralph (febrero de 1990). "Un estudio de arquitecturas informáticas paralelas" (PDF) . Computadora . 23 (2): 5–16. doi : 10.1109 / 2.44900 . Archivado (PDF) desde el original el 18 de julio de 2018 . Consultado el 18 de julio de 2018 .
- ^ http://www.cse.msu.edu/~cse820/lectures/CAQA5e_ch4.pdf
- ^ http://www.nvidia.com/content/PDF/fermi_white_papers/NVIDIA_Fermi_Compute_Architecture_Whitepaper.pdf
- ^ Spector, A .; Gifford, D. (septiembre de 1984). "El sistema informático primario del transbordador espacial". Comunicaciones de la ACM . 27 (9): 872–900. doi : 10.1145 / 358234.358246 .
- ^ "Flujo de datos múltiples de programa único (SPMD)" . Llnl.gov . Consultado el 9 de diciembre de 2013 .
- ^ [1] Archivado el 1 de septiembre de 2006 en la Wayback Machine.
- ^ "Taller Virtual CTC" . Web0.tc.cornell.edu . Consultado el 9 de diciembre de 2013 .
- ^ "Primer NIST SP2: programación de memoria distribuida" . Math.nist.gov. Archivado desde el original el 13 de diciembre de 2013 . Consultado el 9 de diciembre de 2013 .
- ^ a b [2] Archivado el 3 de febrero de 2007 en la Wayback Machine.
- ^ [3] Archivado el 10 de septiembre de 2006 en la Wayback Machine.
- ^ "Programa único de datos múltiples" . Nist.gov. 2004-12-17 . Consultado el 9 de diciembre de 2013 .
- ^ Darema, Frederica ; George, David A .; Norton, V. Alan; Pfister, Gregory F. (1988). "Un modelo computacional de un solo programa y múltiples datos para EPEX / FORTRAN". Computación paralela . 7 (1): 11–24. doi : 10.1016 / 0167-8191 (88) 90094-4 .
Este artículo se basa en material extraído del Diccionario gratuito de informática en línea antes del 1 de noviembre de 2008 e incorporado bajo los términos de "renovación de licencias" de la GFDL , versión 1.3 o posterior.