1
UNIVERSIDAD DE CARABOBO
FACULTAD EXPERIMENTAL DE CIENCIAS Y TECNOLOGÍA
ARQUITECTURA DE COMPUTADORES
CARABOBO-VALENCIA
JU...
2
ARQUITECTURAS AVANZADAS
Debido a que cada día el hombre necesita realizar cálculos más rápidos. El poder de
procesamient...
3
TAXONOMÍA DE FLYNN [1]
Esta clasificación se basa en el flujo (secuencia de elementos) de instrucciones y flujo de datos...
4
ORGANIZACIÓN PARALELA [2]
La arquitectura paralela es la suma de la arquitectura del computador más la de la comunicació...
5
SISTEMAS MULTIPROCESADOR [3]
Los Sistemas Multiprocesadores son aquellos que constan de 2 o más CPU interconectadas para...
6
MULTIPROCESAMIENTO SIMÉTRICO (SMP - SYMMETRIC MULTIPROCESSING ) [4]
El multiprocesamiento es el uso de dos o más unidade...
7
COHERENCIA DE CACHÉ [5]
La coherencia de las cachés hace referencia a la integridad de los datos almacenados en las cach...
8
CLÚSTER [6]
Es un conjunto de ordenadores que funcionan como uno, coordinando las actividades y que el trabajo
sea repar...
9
REFERENCIAS
[1]http://gemini.udistrital.edu.co/comunidad/grupos/compuparalela/Informacion%20Compuparalela/Memori
as%20II...
Upcoming SlideShare
Loading in …5
×

Documental de Arquitecturas Avanzadas (Computación)

1,115 views

Published on

Arquitecturas avanzadas de la computación

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,115
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Documental de Arquitecturas Avanzadas (Computación)

  1. 1. 1 UNIVERSIDAD DE CARABOBO FACULTAD EXPERIMENTAL DE CIENCIAS Y TECNOLOGÍA ARQUITECTURA DE COMPUTADORES CARABOBO-VALENCIA JULIO 2010 ARQUITECTURAS - AVANZADAS REALIZADO POR: GAMEZ B. KELWIN R. C.I: 20542093
  2. 2. 2 ARQUITECTURAS AVANZADAS Debido a que cada día el hombre necesita realizar cálculos más rápidos. El poder de procesamiento de los computadores se ha ido incrementado, introduciendo de esta manera el concepto de paralelismo a nivel de instrucciones, estando estas solapadas. Por otra parte, existe una simulación respecto a la realización de instrucciones simultáneas, de acuerdo a una prioridad cada fragmento del tiempo es destinado para la ejecución de estas, a este proceso se le denomina monoprocesadores. El primer paso hacia la paralelización de las arquitecturas de los computadores, se da con la aparición de los procesadores o sistemas vectoriales. Los procesadores vectoriales extienden el concepto de paralelismo por segmentación al tratamiento de grandes cadenas de datos. El hecho de que los procesadores segmentados hayan venido asociados a los supercomputadores paralelos, los pone en la entrada a lo que son los sistemas paralelos, si bien siguen siendo una extensión del concepto de segmentación. De la misma manera al hablar de arquitecturas avanzadas, se relaciona con los multicomputadores o computadores con multiprocesadores. Todos ellos basados en la arquitectura de Von Neumann
  3. 3. 3 TAXONOMÍA DE FLYNN [1] Esta clasificación se basa en el flujo (secuencia de elementos) de instrucciones y flujo de datos que se desarrollan en los computadores, esta es la más usada desde 1966. SISD: Single Instruction Single Data. SIMD: Single Instruction Multiple Data. MISD: Multiple Instruction Single Data. MIMD: Multiple Instruction Multiple Data.  Single Instruction, Single Data (SISD): • Un computador serial (no-paralelo) • Single instruction: Sólo un flujo de instrucción está actuando en el CPU durante cualquier ciclo de reloj • Single data: Sólo un flujo de dato está siendo usado como entrada durante cualquier ciclo de reloj • Ejecución Determínistica.  Single Instruction, Multiple Data (SIMD): • Un tipo de computador paralelo • Single instruction: Todas las unidades de procesamiento ejecutan la misma instrucción en cualquier ciclo de reloj • Multiple data: Cada unidad de procesamiento puede operar en datos diferentes • Conveniente para problemas caracterizados por un alto grado de regularidad, tal como procesamiento de imágenes • Dos variedades: Arreglo de Procesadores y Vectorial  Multiple Instruction, Single Data (MISD): • Pocas clases de este tipo de computadores • Algunos ejemplos:  Filtros de múltiple frecuencia operando en una única señal  Múltiples algoritmos de criptografía actuando en un mensaje codificado. Multiple Instruction, Multiple Data (MIMD): • Actualmente, el tipo más común de computador paralelo • Multiple Instruction: cada procesador puede ejecutar un flujo de instrucción diferente • Multiple Data: cada procesador puede estar trabajando con un flujo de datos diferentes • Ejemplos: supercomputadores actuales, redes de computadoras "grids", multi-procesadores SMP - incluyendo algunos tipos de PCs.
  4. 4. 4 ORGANIZACIÓN PARALELA [2] La arquitectura paralela es la suma de la arquitectura del computador más la de la comunicación. Dentro de la comunicación intervienen: la interfaz del usuario/sistema y la implementación. Arquitecturas paralelas básicas:  Memoria compartida: espacio de memoria global, la comunicación está integrada en el sistema de memoria. Y se emplea el modelo multiprogramación con memoria compartida.  Memoria privada (pase de mensajes ):espacio de memoria física privado, el mecanismo de comunicación esta integrado en el sistema de E/S, dando cabida a operaciones explícitas(mensajes send/receive), en este caso el modelo de programación es a través del pase de mensajes; implicando con ello una copia de memoria a memoria y un evento de sincronización mutua. A continuación de realiza una descripción del proceso paso a paso de la organización de sistemas en paralelo: Nivel de trabajo (job): se trata de ejecutar simultáneamente diferentes procesos independientes en diversos elementos de proceso. Este nivel de paralelismo lo puede manejar completamente el gestor de procesos del sistema operativo (scheduler), asignando cada trabajo a un procesador diferente. En este nivel una de las explotaciones más sencillas del paralelismo es el multiproceso simétrico (SMP) que consiste en tener varias colas de procesos, asignando a cada una un procesador diferente. Nivel de procedimiento: este nivel trataría de ejecutar diferentes procedimientos de un mismo proceso de forma simultánea sobre elementos de procesos diferentes. Nivel de instrucción: se trataría de ejecutar diferentes instrucciones, de una misma tarea simultáneamente. Una de las formas más fáciles de explotar el paralelismo a este nivel, es provocar que iteraciones diferentes de un bucle sean ejecutadas en procesadores distintos. Nivel de intrainstrucción: explota el paralelismo dentro de cada instrucción, ejecutando de forma simultánea varias acciones de cara a la ejecución de las instrucciones. Un ejemplo de este nivel de paralelismo lo constituyen los procesadores segmentados. En ellos se divide la ejecución de cada instrucción en pasos, y cada paso es ejecutado por una etapa diferente del procesador (segmento), de forma que pueden ejecutarse simultáneamente acciones diferentes de distintas instrucciones. Es posible implementar el paralelismo a uno o más de estos niveles (incluso a todos) en un sistema del computador. En el nivel más alto, el paralelismo puede llevarse a cabo por software y por tanto, más fácilmente; por el contrario, en el más bajo, el paralelismo solo puede efectuarse dentro de la propia CPU. En los niveles intermedios puede haber participación tanto del hardware como del software, predominando éste en los niveles más altos.
  5. 5. 5 SISTEMAS MULTIPROCESADOR [3] Los Sistemas Multiprocesadores son aquellos que constan de 2 o más CPU interconectadas para permitir la ejecución de múltiples tareas en paralelo. ( n instrucciones en n procesadores ejecutándose a la vez). Que pueden compartir así un mismo sistema de memoria, dividido en módulos es por ello que también son llamados sistemas de memoria compartida. Y dependiendo de la forma en que los procesadores comparten la memoria, se realiza una subdivisión de estos descrita a continuación:  UMA (Uniform Memory Access) o SMP(Symmetric Multiprocesor ) La memoria física está uniformemente compartida entre todos los procesadores, teniendo cada uno el mismo tiempo de acceso a todas las palabras de memoria. Además cada uno puede tener su caché privada, y los periféricos son también compartidos de alguna manera. Estas PC’s también son conocidas como sistemas fuertemente acoplados. Cuando todos los procesadores tienen el mismo acceso a todos los periféricos, el sistema se llama multiprocesador simétrico. En este caso, todos ellos tienen la misma capacidad para ejecutar programas, tal como el Kernel o las rutinas de servicio de I/O (input/output). En un multiprocesador asimétrico, sólo un subconjunto de los procesadores puede ejecutar programas. A los que pueden, o al que puede ya que muchas veces es sólo uno, se le llama maestro. Al resto de procesadores se les llama procesadores adheridos (attached processors).Existen arquitecturas de acceso uniforme y además tienen coherencia de caché, a estos sistemas se les suele llamar CC-UMA (Cache-CoherentUniform Memory Access).  NUMA (Non Uniform Memory Access) Es un sistema de memoria compartida donde el tiempo de acceso varía según el lugar donde se encuentre localizado el acceso, estando con ello con ello toda la memoria compartida pero local a cada módulo procesador. Otras posibles configuraciones incluyen los sistemas basados en agrupaciones (clusters) de sistemas como el de la figura que se comunican a través de otra red de comunicación que puede incluir una memoria compartida global. Siendo el acceso a la memoria local más rápido que en los UMA aunque un acceso a memoria no local es más lento. Lo que se intenta es que la memoria utilizada por los procesos que ejecuta cada procesador, se encuentre en la memoria de dicho procesador para que los accesos sean lo más locales posible. Aparte de esto, se puede añadir al sistema una memoria de acceso global. En este caso se dan tres posibles patrones de acceso. El más rápido es el acceso a memoria local. Le sigue el acceso a memoria global. El más lento es el acceso a la memoria del resto de módulos. Al igual que hay sistemas de tipo CC-UMA, también existe el modelo de acceso a memoria no uniforme con coherencia de caché CC-NUMA (Cache-Coherent Non-Uniform Memory Access) que consiste en memoria compartida, distribuida y directorios de cache.  COMA (Cache Only Memory Access) Un multiprocesador que sólo use caché como memoria es considerado de tipo COMA. En realidad, el modelo COMA es un caso especial del NUMA donde las memorias distribuidas se convierten en cachés. No hay jerarquías de memoria en cada módulo procesador. Todas las cachés forman un mismo espacio global de direcciones. El acceso a las cachés remotas se realiza a través de los directorios distribuidos de las cachés. Dependiendo de la red de interconexión empleada, se pueden utilizar jerarquías en los directorios para ayudar en la localización de copias de bloques de caché. El emplazamiento inicial de datos no es crítico puesto que el dato acabará estando en el lugar en que se use más.
  6. 6. 6 MULTIPROCESAMIENTO SIMÉTRICO (SMP - SYMMETRIC MULTIPROCESSING ) [4] El multiprocesamiento es el uso de dos o más unidades centrales de proceso (CPU) dentro de un sólo sistema informático. Señalando con ello la capacidad de un sistema de apoyar más de un procesador y/o a la capacidad de asignar tareas entre ellas, que es donde salea relucir la multiprogramación; en donde esta se subdivide en pequeños procedimientos que irán a cada procesador interconectado en la red. Estos sistemas poseen la ventaja de ser un diseño simple pero aún así efectivo. En SMP, múltiples procesadores comparten la memoria RAM y el bus del sistema. Este diseño es también conocido como estrechamente acoplado (tightly coupled), o compartiendo todo (shared everything).Debido a que SMP comparte globalmente la memoria RAM, tiene solamente un espacio de memoria, lo que simplifica tanto el sistema físico como la programación de aplicaciones. Este espacio de memoria único permite que un Sistema Operativo con Multiconexión (multithreaded operating system) distribuya las tareas entre varios procesadores, o permite que una aplicación obtenga la memoria que necesita para una simulación compleja. La memoria globalmente compartida también vuelve fácil la sincronización de los datos.SMP es uno de los diseños de procesamiento paralelo más maduro. Apareció en los supercomputadores Cray X-MP y en sistemas similares hace década y media (en 1983). Esta memoria global contribuye el problema más grande de SMP: conforme se añaden procesadores, el tráfico en el bus de memoria se satura. Al añadir memoria caché a cada procesador se puede reducir algo del tráfico en el bus, pero el bus generalmente se convierte en un cuello de botella al manejarse alrededor de ocho o más procesadores. SMP es considerada una tecnología no escalable. Cabe mencionar que la principal diferencia dentro de la clasificación MIMD se centra en como se interconectan. Para que puedan compartir la memoria, se requiere una estructura de interconexión fuertemente acoplada, como por ejemplo un bus común. Otra principal diferencia es como intercambian información y como están controlados o sincronizados. En contraste a lo mencionado anteriormente, en los sistemas débilmente acoplados cada uno de los elementos de proceso dispone de una memoria local en que almacena sus datos. Estos sistemas reciben el nombre de sistemas distribuidos o sistemas con memoria distribuida. En el fondo, los sistemas débilmente acoplados no son otra cosa que redes de computadora por lo que también se les suele llamar multicomputadores. Las ventajas de los sistemas débilmente acoplados son las siguientes:  Cada elemento de proceso es completamente autónomo.  No hay conflictos en la memoria por ser esta distribuida.  No pueden existir iteraciones no deseadas entre los procesadores. Esto es debido a que la comunicación entre los elementos de proceso se efectúa exclusivamente por la técnica. denominada paso de mensaje que consiste en comunicaciones puntuales entre los procesadores.  Estos sistemas son muy fáciles de implementar porque las redes de computadores hoy día están al alcance de todos.
  7. 7. 7 COHERENCIA DE CACHÉ [5] La coherencia de las cachés hace referencia a la integridad de los datos almacenados en las cachés locales. A medida que aumentan las cantidades de procesadores en paralelos, el sistema de administración para este conjunto de caches es más complejo. Al momento de la escritura en estas se utilizan diferentes algoritmos REM Coherencia cache-memoria: a) write-through: la memoria se actualiza inmediatamente. b) write-back: se actualiza cuando se reemplaza el bloque. Coherencia cache-cache: a) write-update: actualización inmediata. b) write-invalidate: al modificar setea el dirty-bit y se queda con la única copia válida. Los demás deben esperar la actualización. (PowerPC y PII, ver protocolo MESI) Existen cuatro combinaciones. La a-a satura rápidamente. Protocolos de coherencia de cache a) Protocolos de sondeo (snooping protocols): observan la actividad del bus y ejecutan, mediante broadcasts, los pasos necesarios para mantener la coherencia. Costoso en términos de bw, sobre todo en redes multistage. Quien escribe avisa con un broadcast (a todos). Todos los procesadores sondean el bus para detectar modificaciones que le incumban. b) Protocolos de directorio (directory based protocols): Los comandos de actualización se envían sólo a los caches afectados por una actualización. Almacena información en un directorio acerca de dónde se encuentran las copias de los bloques. Cuando un procesador quiere escribir una posición, debe solicitar autorización al controlador, quien luego invalida las demás copias. El directorio puede estar centralizado (cuello de botella) o distribuido (cada cache sabe lo que tiene). El protocolo MESI Tambien conocido como protocolo Illinois .Es un protocolo tipo write-invalidate, implementado por Intel en la linea Pentium y por IBM en la Power. Utiliza dos bits por linea de cache para indicar el estado de la misma: Modified, Exclusive, Shared, Invalid. Stallings.
  8. 8. 8 CLÚSTER [6] Es un conjunto de ordenadores que funcionan como uno, coordinando las actividades y que el trabajo sea repartido entre los distintos procesadores, o bien, que todas las CPU compartan el trabajo en paralelo. Las características principales de un clúster son: Un clúster consta de 2 o más nodos. Los nodos del clúster están conectados entre sí por al menos un canal de comunicación. Los clústers necesitan software de control especializado. El conjunto de varios equipos conectados como un Clúster único y unificado permite compartir la carga al resto de los equipos sin que los usuarios o los administradores sepan que se está utilizando más de un servidor. Si se produce un error en un componente del Clúster de servidores, el Clúster como un todo puede continuar dando servicio a los usuarios mediante un componente de otro de los servidores del Clúster. Esto sucede sin importar que el componente que deja de funcionar sea de hardware o de software (Failover). Reducir o eliminar el “downtime” del sistema a causa de fallas de software o hardware. Incrementar el “throughput” de la aplicación permitiendo a los servicios escalar a procesadores adicionales al agregar nodos al Clúster. La escalabilidad es la capacidad de un equipo para hacer frente a volúmenes de trabajo cada vez mayores sin, por ello, dejar de prestar un nivel de rendimiento aceptable. Existen dos tipos de escalabilidad: Escalabilidad del hardware (también denominada «escalamiento vertical»). Se basa en la utilización de un gran equipo cuya capacidad se aumenta a medida que lo exige la carga de trabajo existente. Escalabilidad del software (también denominada «escalamiento horizontal»). Se basa, en cambio, en la utilización de un Clúster compuesto de varios equipos de mediana potencia que funcionan de forma muy parecida a como lo hacen las unidades de un RAID (Redundant Array of Inexpensive Disks o Array redundante de discos de bajo coste). Se utilizan el término RAC (Redundant Array of Computers o Array redundante de equipos) para referirse a los Clusters de escalamiento horizontal. Del mismo modo que se añaden discos a un array RAID para aumentar su rendimiento, se pueden añadir nodos a un Clúster para aumentar también su rendimiento. Tipos de Clústers  Tolerante a fallas (Fail-Over)  Balanceo de carga(Load-Balancing )  Alto desempeño (High Perfomance Computing ) Modelos de Clúster  NUMA (Non-Uniform Memory Access):  MPI (Message Passing Interface) y LAM (Local Area Multicomputer) son dos plementaciones de MPI de código abierto.  PVM (Parallel Virtual Machine)  Beowulf
  9. 9. 9 REFERENCIAS [1]http://gemini.udistrital.edu.co/comunidad/grupos/compuparalela/Informacion%20Compuparalela/Memori as%20II%20Jornada%20Computacion%20Paralela/Articulo%20de%20Programacion%20Paralela/multicom putadores.pdf [1] Introducción a la Computación Paralela, Dr. Pablo guillén [2] Conceptos Generales, Departamento de Informática, Universidad de Valladolid España [2] Arquitecturas Paralelas, Oscar Plata Arquitectura de Computadores, Universidad de Málaga [3] Arquitecturas Avanzadas, Profesor: Fernando Pardo Carpio, Universidad de Valencia, 30 de enero de 2002. [3] Paralelismo y Arquitecturas Avanzadas, Profesor José Díaz Chow, Universidad Nacional de Ingeniería, UNI. Managua, Nicaragua, junio 2000, revisado por última vez en abril 2010 [4] http://www.mitecnologico.com/Main/UnidadCentralDeProceso [5] http://es.wikipedia.org/wiki/Coherencia_de_cach%C3%A9 [5] Arquitecturas Paralelas Multiprocesadores. William Stallings, Organización y Arquitectura de Computadores, 5ta. ed., Capítulo 16: Procesamiento Paralelo. Andrew S. Tanenbaum, Organización de Computadoras 4ta. ed., Capítulo 8: Arquitecturas de computadoras paralelas. Hesham El-Rewini & Mostafa Abd-El-Barr, Advanced Computer Architecture and Parallel Processing. Willey. [6] Clustering Para Procesamiento Matemático, Ricardo Dario Cuevas Landeros Trabajo de Titulo Presentado a la Facultad de Ciencias De la Universidad Católica de Temuco Para Optar al Titulo de Ingeniero de Ejecución en Informática, Chile 2006.

×