Documental de Arquitecturas Avanzadas (Computación)

9

Click here to load reader

description

Arquitecturas avanzadas de la computación

Transcript of Documental de Arquitecturas Avanzadas (Computación)

Page 1: Documental de Arquitecturas Avanzadas (Computación)

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

Page 2: Documental de Arquitecturas Avanzadas (Computación)

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

Page 3: Documental de Arquitecturas Avanzadas (Computación)

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.

Page 4: Documental de Arquitecturas Avanzadas (Computación)

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.

Page 5: Documental de Arquitecturas Avanzadas (Computación)

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.

Page 6: Documental de Arquitecturas Avanzadas (Computación)

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.

Page 7: Documental de Arquitecturas Avanzadas (Computación)

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.

Page 8: Documental de Arquitecturas Avanzadas (Computación)

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

Page 9: Documental de Arquitecturas Avanzadas (Computación)

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.