Aprendiendo bases teóricas del computador: Taxonomía de Flynn
Introducción del post
Bienvenidos todos a una nueva sesión de bases teóricas del computador, como siempre impartiendo el conocimiento que a ustedes les gusta, esta vez vengo con un tema fundamental titulado "Clasificación de Flynn" vamos a aprender las bases teóricas que nos permita darle una mejor comprensión a las estructuras del computador, sin más que agregar vamos a ello.
Características determinantes
Para el año 1972 Michael J. Flynn realizó una propuesta de clasificación para la arquitectura del computador en función de las siguientes características:
- Número de procesadores
- Número de programas
- Estructura de memoria
La taxonomía propuesta trajo consigo cuatro clasificaciones donde su función determinante es el control de las instrucciones concurrentes y en los flujos de datos disponibles en la arquitectura:
- SISD: Una única instrucción para un solo dato, o dicho de otra forma interpreta una única secuencia de instrucciones para operar con los datos de una única memoria, es típico de Von Neumann, es además arquitectura de un único procesador.
Vamos a interpretar el diagrama expuesto, la unidad de control se representa como CU, para la unidad de procesamiento tenemos PU, en la unidad de memoria MU y ellos estarán conformados en la cadena de instrucciones para un determinado elemento de proceso.
- SIMD: Una única instrucciones va a controlar la ejecución simultánea de varias unidades de proceso, podría decirse que para esta arquitectura se explotarán varios flujos de datos dentro de un único flujo de instrucciones, para los sistemas típicos son los procesadores vectoriales y matriciales, será típico de arrays de procesadores y que además distribuyen el proceso sobre una cantidad considerable de hw, la unidad de control es por si misma un computador de Von Neumann, se podría decir que se le dice UC ya que esta diseñada para controlar los procesadores.
Para este diagrama podemos decir que tenemos tareas especificas que realizan computadores host con carga de programas , configuración del array de elementos de proceso, y además una supervisión de entrada/sálida.
- MISD: Para este caso se transmite una dicha secuencia de datos a un determinado conjunto de procesadores, para cada procesador se ejecuta una instrucción diferente sobre el mismo conjunto de datos.
Dato curioso: Podría decirse que se ha propuesto arquitecturas teóricas que si hacen uso de MISD sin embargo como se dijo anteriormente no llegó a producirse en masa, también es conocido como arrays sistólicos.
- MIMD: Se representa como un conjunto de procesadores que ejecutan distintas instrucciones sobre distintos conjuntos de datos diferentes, y que además son de carácter general.
Para esta arquitectura tenemos que se distribuye el procesamiento entre un número determinado de procesadores independientes, además cada procesador opera concurrentemente y en paralelo con el resto, y cada procesador puede ejecutar su propio programa.
Multiprocesadores -> Tienen memoria común
Multicomputadores -> Tienen memorias locales
Un ejemplo aplicado en sistemas de computo
Podemos decir que en los sistemas de computo trabajamos con procesos individuales compartidos, lo que quiere decir que la aplicación de código va dirigido tanto a los procesos ejecutados por el CPU, tanto a la memoria física o incluso a la GPU, en computadores modernos se puede apreciar la arquitectura paralela con una clasificación múltiple autónoma, de esta manera se logra un mejor rendimiento.
Fuente y despedida
Espero que les haya servido este pequeño post que nos introduce a una nueva sesión de bases teóricas, próximamente estaré publicando más contenido para ustedes, se despide @greylml y los dejo con la fuente de esta información, hasta la próxima.
- Apuntes de estructura de computadores del departamento de arquitectura de computadores y automática de la Universidad Complutense De Madrid (Autor: Juan Lanchares Dávila)
- Flynn, M., Some Computer Organizations and Their Effectiveness, IEEE Trans. Comput., Vol. C-21, pp. 948, 1972.
- Duncan, Ralph, "A Survey of Parallel Computer Architectures", IEEE Computer. February 1990, pp. 5-16.