Loading presentation...

Present Remotely

Send the link below via email or IM

Copy

Present to your audience

Start remote presentation

  • Invited audience members will follow you as you navigate and present
  • People invited to a presentation do not need a Prezi account
  • This link expires 10 minutes after you close the presentation
  • A maximum of 30 users can follow your presentation
  • Learn more about this feature in our knowledge base article

Do you really want to delete this prezi?

Neither you, nor the coeditors you shared it with will be able to recover it again.

DeleteCancel

Make your likes visible on Facebook?

Connect your Facebook account to Prezi and let your likes appear on your timeline.
You can change this under Settings & Account at any time.

No, thanks

Taxonomía de Flynn

Práctica nº 1 TIS 400
by

Yery Arauz Arroyo

on 3 October 2012

Comments (0)

Please log in to add your comment.

Report abuse

Transcript of Taxonomía de Flynn

TIS 400 2012-2 Taxonomía de Flynn TAXONOMIA
DE
FLYNN Integrantes:

Mariana Elba Condori Flores
Yery Arauz Arroyo
Agustin Mejia Muiba
Sergio Ricardo Pereira La taxonomía de Flynn es una clasificación de arquitecturas de computadoras propuesta por Michael J. Flynn en 1972. Taxonomía de Flynn MIMD Multiple instruction stream, multiple data stream (Múltiples instrucciones, múltiples datos) Varios procesadores autónomos que ejecutan simultáneamente instrucciones diferentes sobre datos diferentes. Los sistemas distribuidos suelen clasificarse como arquitecturas MIMD; bien sea explotando un único espacio compartido de memoria, o uno distribuido.
La arquitectura MIMD pueden utilizarse en una amplia gama de aplicaciones como el diseño asistido, simulación, modelado y en interruptores.
Se tienen N procesadores, N secuencias de instrucciones y N secuencias de datos. Cada procesador opera bajo el control de una secuencia de instrucciones, ejecutada por su propia unidad de control, es decir cada procesador es capaz de ejecutar su propio programa con diferentes datos. Esto significa que los procesadores operan asíncronamente, o en términos simples, pueden estar haciendo diferentes cosas en diferentes datos al mismo tiempo MIMD CLasificación Sistemas de Memoria
Compartida Sistemas de Memoria
Distribuida Sistemas de Memoria
Compartida Distribuida Es un cluster o una partición de procesadores que tienen acceso a una memoria compartida común pero sin un canal compartido. Esto es, físicamente cada procesador posee su memoria local y se interconecta con otros procesadores por medio de un dispositivo de alta velocidad, y todos ven las memorias de cada uno como un espacio de direcciones globales.
El acceso a la memoria de diferentes clusters se realiza bajo el esquema de Acceso a Memoria No Uniforme (NUMA), la cual toma menos tiempo en accesar a la memoria local de un procesador que accesar a memoria remota de otro procesador. Ventajas:
•Presenta escalabilidad como en los sistemas de memoria distribuida.
•Es fácil de programar como en los sistemas de memoria compartida.
•No existe el cuello de botella que se puede dar en máquinas de sólo memoria compartida. Algunos ejemplos de este tipo de sistemas son HP/Convex SPP-2000 y SGI/Cray Origin2000. En este tipo de sistemas cada procesador tiene acceso a toda la memoria, es decir hay un espacio de direccionamiento compartido. Se tienen tiempos de acceso a memoria uniformes ya que todos los procesadores se encuentran igualmente comunicados con la memoria principal y las lecturas y escrituras de todos los procesadores tienen exactamente las mismas latencias; y además el acceso a memoria es por medio de un ducto común. En esta configuración, debe asegurarse que los procesadores no tengan acceso simultáneamente a regiones de memoria de una manera en la que pueda occurrir algún error. Ventaja:
La facilidad de la programación. Es mucho más fácil programar en estos sistemas que en sistemas de memoria distribuida.
Las computadoras MIMD con memoria compartida son sistemas conocidos como de multiprocesamiento simétrico (SMP) donde múltiples procesadores comparten un mismo sistema operativo y memoria. Otro término con que se le conoce es máquinas firmemente juntas o de multiprocesadores. Ejemplos son: SGI/Cray Power Challenge, SGI/Cray C90, SGI/Onyx, ENCORE, MULTIMAX, SEQUENT y BALANCE, entre otras. Desventajas:
•El acceso simultáneo a memoria es un problema.
•Poca escabilidad de procesadores, debido a que se puede generar un cuello de botella al incrementar el numero de CPU's.
• En computadoras vectoriales como Crays, etc.
Todos los CPUs tienen un camino libre a la memoria.
No hay interferencia entre CPUs.
• La razón principal por el alto precio de Cray es la memoria. Estos sistemas tienen su propia memoria local. Los procesadores pueden compartir información solamente enviando mensajes, es decir, si un procesador requiere los datos contenidos en la memoria de otro procesador, deberá enviar un mensaje solicitándolos. Esta comunicación se le conoce como Paso de Mensajes. Ventajas:
•La escalabilidad. Las computadoras con sistemas de memoria distribuida son fáciles de escalar, mientras que la demanda de los recursos crece, se puede agregar más memoria y procesadores. Desventajas:
•El acceso remoto a memoria es lento.
•La programación puede ser complicada. Las computadoras MIMD de memoria distribuida son conocidas como sistemas de procesamiento en paralelo masivo (MPP) donde múltiples procesadores trabajan en diferentes partes de un programa, usando su propio sistema operativo y memoria. Además se les llama multicomputadoras, máquinas libremente juntas o cluster. Algunos ejemplos de este tipo de máquinas son IBM SP2 y SGI/Cray T3D/T3E. Características del modelo MIMD:
-Cada unidad ejecuta una instrucción distinta
-Cada unidad procesa un dato distinto
-Todas las unidades operan simultáneamente
-es una técnica empleada para lograr paralelismo Una instrucción, múltiples datos (SIMD) Simple instruction stream, multiple data stream Un computador que explota varios flujos de datos dentro de un único flujo de instrucciones para realizar operaciones que pueden ser paralelizadas de manera natural. Por ejemplo, un procesador vectorial con hardware escalar y vectorial.
El procesamiento es síncrono, la ejecución de las instrucciones sigue siendo secuencial como en el caso anterior, todos los elementos realizan una misma instrucción pero sobre una gran cantidad de datos. Por este motivo existirá concurrencia de operación, es decir, esta clasificación es el origen de la máquina paralela. El funcionamiento de este tipo de sistemas es el siguiente. La Unidad de Control manda una misma instrucción a todas las unidades de proceso (ALUs). Las unidades de proceso operan sobre datos diferentes pero con la misma instrucción recibida.
Ejemplo: Sumando dos matrices A + B = C. Siendo A y B de orden 2 y teniendo 4 procesadores:
A11 + B11 = C11 A12 + B12 = C12
A21 + B21 = C21 A22 + B22 = C22
La misma instrucción es ejecutada en los 4 procesadores (sumando dos números) y los 4 ejecutan las instrucciones simultáneamente. Esto toma un paso en comparación con cuatro pasos en una máquina secuencial. Caracteristeristicas del modelo SISD -La CPU procesa únicamente una instrucción por cada ciclo de reloj
-Únicamente un dato es procesado en cada ciclo de reloj
-Es el modelo más antiguo de computadora y el más extendido
Ejemplo: la mayoría de las computadoras, servidores y estaciones de trabajo Computador secuencial que no explota el paralelismo en las instrucciones ni en flujos de datos. Ejemplos de arquitecturas SISD son las máquinas con uni-procesador o monoprocesador tradicionales como el PC o los antiguos mainframe.
Ejemplo: Para procesar la suma de N números a1, a2, ... aN, el procesador necesita acceder a memoria N veces consecutivas (para recibir un número). También son ejecutadas en secuencia N-1 adiciones. Es decir los algoritmos para las computadoras SISD no contienen ningún paralelismo, éstas están constituidas de un procesador. Existen dos alternativas distintas que aparecen después de realizarse esta clasificación: La arquitectura de von Neumann es una familia de arquitecturas de computadoras que utilizan el mismo dispositivo de almacenamiento tanto para las instrucciones como para los datos (a diferencia de la arquitectura Harvard).

La mayoría de computadoras modernas están basadas en esta arquitectura, aunque pueden incluir otros dispositivos adicionales, (por ejemplo, para gestionar las interrupciones de dispositivos externos como ratón, teclado, etc). Arquitectura de Vom Neumman Los ordenadores con esta arquitectura constan de cinco partes: La unidad aritmético-lógica o ALU, la unidad de control, la memoria, un dispositivo de entrada/salida y el bus de datos que proporciona un medio de transporte de los datos entre las distintas partes.

Un ordenador con esta arquitectura realiza o emula los siguientes pasos secuencialmente:

Enciende el ordenador y obtiene la siguiente instrucción desde la memoria en la dirección indicada por el contador de programa y la guarda en el registro de instrucción.
Aumenta el contador de programa en la longitud de la instrucción para apuntar a la siguiente.
Decodifica la instrucción mediante la unidad de control. Ésta se encarga de coordinar el resto de componentes del ordenador para realizar una función determinada.
Se ejecuta la instrucción. Ésta puede cambiar el valor del contador del programa, permitiendo así operaciones repetitivas. El contador puede cambiar también cuando se cumpla una cierta condición aritmética, haciendo que el ordenador pueda 'tomar decisiones', que pueden alcanzar cualquier grado de complejidad, mediante la aritmética y lógica anteriores. Una CPU única particionada en unidades funcionales independientes trabajando sobre flujos de datos concretos
Arquitectura de los procesadores vectoriales
Este tipo de máquina sería un procesador vectorial memoria-memoria que es capaz de extraer dos vectores de memoria y operar sobre ellos. El inconveniente de este tipo de máquina sería el cuello de botella que supondrían los accesos a memoria. Arquitectura Vectorial con segmentación: Ejemplo: El Cray-1, operativo desde 1976, puede considerarse como el primer computador vectorial.
Como muchos supercomputadores (el Cray-1 en su tiempo lo fue), necesita un procesador auxiliar (front end host) que efectúe labores de administración, E/S, etc. De esta forma, el Cray-1 se dedica sólo a computación pura. El Cray-1 posee tres secciones (Russell, 1978): la sección de computación, la sección de memoria y la sección de E/S.
La sección de memoria está organizada en 8 o 16 bancos con 72 módulos por banco (1 módulo por bit) de los que 8 son para detección y corrección de errores: el sistema puede detectar hasta 2 errores y corregir 1, siendo la palabra eficaz de memoria de 64 bits. La memoria es entrelazada con 16 vías.
En la siguiente figura puede verse la estructura de la sección de computación del Cray-1. Como se apreciara en la figura, esta máquina dispone de tres tipos de registros: registros de dirección (A), registros escalares (S) y registros vectoriales (V), habiendo 8 registros de cada clase.
También existen unos registros temporales, tanto escalares (T) como de direcciones (B), que actúan a modo de memorias caché para datos y direcciones. Existen 64 registros temporales de cada una de estas clases. Tiene también 4 bancos de registros temporales de instrucciones (caché de código). Los registros de direcciones (tanto temporales como primarios) tienen 24 bits, los escalares 64 y los vectoriales tienen 64 registros componentes de 64 bits cada uno.
La máquina dispone de un registro de longitud (VL) que indica la longitud de los operandos vectoriales. Si la longitud de los vectores del problema es mayor, debe recurrirse a la técnica de seccionamiento. Los contenidos de los registros vectoriales se transfieren desde (o a) memoria indicando la dirección inicial, el incremento y la longitud del vector.
El sistema dispone de 12 unidades funcionales segmentadas divididas en cuatro grupos: vectoriales (enteras y de punto flotante), escalares y de direcciones. Cada unidad funcional puede trabajar con total independencia de las demás, por lo que todas ellas pueden funcionar concurrentemente siempre que no haya conflictos en cuanto a los registros que utilicen. Las unidades funcionales pueden acceder directamente a los registros primarios, pero no a los temporales. El Cray-1 de Cray Reseach Otros: El Cyber-205 de Control Data El IBM-3090 Arquitectura Matricial (matriz de procesadores) Varias ALUs idénticas a las que el procesador de instrucciones asigna una única instrucción pero trabajando sobre diferentes partes del programa.
Máquinas con arreglos de procesadores tales como ICL DAP (Distributed Array Processor) y computadoras vectoriales canalizadas como CRAY 1 & 2 y CIBER 205 son de arquitectura SIMD.
Arquitectura del procesador matricial.
La arquitectura hardware se compone por una matriz de elementos procesadores (EPs), en la que cada uno se encarga de calcular el elemento Cij de la matriz resultante, (ver Fig. 1). Cada EP realiza la multiplicación de un solo renglón de la matriz A con una sola columna de la matriz B. Para multiplicar matrices de dimensiones mxk y kxn se requieren de mxn elementos de procesamiento interconectados en forma de malla y ordenados en filas de n en n EP. -Todas las unidades ejecutan la misma instrucción
-Cada unidad procesa un dato distinto
-Todas las unidades operan simultáneamente Características del modelo SIMD: Sistemas con múltiples instrucciones que operan sobre un único flujo de datos. Este tipo de sistemas no ha tenido implementación hasta hace poco tiempo.
Los sistemas MISD se contemplan de dos maneras distintas:
• Varias instrucciones operando simultáneamente sobre un único dato.
• Varias instrucciones operando sobre un dato que se va convirtiendo en un resultado que será la entrada para la siguiente etapa. Se trabaja de forma segmentada, todas las unidades de proceso pueden trabajar de forma concurrente.
Ejemplos de estos tipos de sistemas son los arrays sistólicos o arrays de procesadores. También podemos encontrar aplicaciones de redes neuronales en máquinas masivamente paralelas. MISD (Multiple Instruction stream,
Single Data stream)
-Cada unidad ejecuta una instrucción distinta
-Cada unidad procesa el mismo dato
-Aplicación muy limitada en la vida real Características del modelo MISD: WEBOGRAFIA http://es.wikipedia.org/wiki/Taxonom%C3%ADa_de_Flynn
http://es.wikipedia.org/wiki/SISD
http://es.wikipedia.org/wiki/MISD
http://es.wikipedia.org/wiki/SIMD
http://es.wikipedia.org/wiki/MIMD
http://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Vectoriales.pdf
http://ccc.inaoep.mx/~cferegrino/Publicaciones/articulos/Arquitectura%20FPGA%20para%20un%20Procesador%20Matricial_TCR03.pdf
http://rubmarin.galeon.com/sisd.htm
http://informatica.uv.es/iiguia/AAC/AA/apuntes/aa.pdf
Full transcript