Está en la página 1de 51

Arquitectura de Computadoras

UNIDAD IV

Procesamiento Paralelo
INSTITUTO TECNOLGICO DE TAPACHULA
ING. EN SISTEMAS COMPUTACIONALES

CATEDRTICO

ING. ROSEL MUOZ LOPEZ


INTEGRANTES

Arias Mrida Aldo


Miguel Alejandro Arreola Apan
Diego de Jess Arvalo Ibarra

Tapachula Chiapas a 07 de diciembre del 2015

Unidad IV
Procesamiento Paralelo
ndice
Introduccin ........................................................................................................................... 3
4.- Procesamiento Paralelo .................................................................................................... 4
4.1.- Aspectos bsicos de la computacin paralela ................................................................ 6
4.2.- Tipos de computacin paralela ...................................................................................... 8
4.2.1.-Taxonoma de las arquitecturas paralelas .............................................................. 11
4.2.2.- Arquitectura de los computadores secuenciales .................................................. 13
4.2.2.1.- Taxonoma de Flynn ........................................................................................ 19
4.2.2.2 Organizacin del espacio de direcciones de memoria ................................... 19
4.3.- Sistemas de memoria compartida: Multiprocesadores ............................................... 26
4.3.1.- Redes de interconexin dinmicas o indirectas .................................................... 28
4.3.1.1.- Redes de medio compartido ........................................................................... 31
4.3.1.2.- Redes conmutadas .......................................................................................... 32
4.3.2.- Coherencia de cache.............................................................................................. 33
4.4.- Sistemas de memoria distribuida. Multicomputadores: Clusters ............................... 36
4.4.1.- Redes de interconexin estticas .......................................................................... 37
4.4.2.- Cluster .................................................................................................................... 40
4.4.3.- Programacin de clusters ...................................................................................... 41
4.4.4.- Consideraciones sobre el rendimiento de los clusters .......................................... 43
4.5.- Casos de usos............................................................................................................... 44
Conclusin ............................................................................................................................ 45
Bibliografa ............................................................................................................................ 51

Introduccin
En esta unidad se podr observar sobre los distintos tipos de procesamientos es de mucha
importancia conocer que en el procesamiento paralelo, es muy til pero no siempre se
puede, usar el procesamiento paralelo para todas las actividades, de hecho es sugerirle
aplicar procesos paralelos a muchas cosas hoy en da, pero normalmente tambin van a ver
cosas que no necesiten de un procesamiento paralelo, si nos vamos al lado del estudio de
las computadoras pasa lo mismo es muy recomendable usar procesamientos paralelos,
pero en algunas ocasiones puede ser de sobra y gastar ms recursos, pero en los CPU el
paralelismo es importante, con el fin de poder procesar ms informacin y en menos
tiempo, con lo cual se logra un mayor rendimiento en toda la computadora, para ello en
esta unidad se dar a conocer ciertos puntos importantes del procesamiento paralelo y de
esta manera saber cmo funciona esta tcnica de procesamiento, tan til en las
computadoras que la mayora de las computadoras actuales ya contienen el procesamiento
paralelo en ella

4.- Procesamiento Paralelo

El procesamiento paralelo es un trmino que se usa para denotar un grupo de tcnicas


significativas que se usan para proporcionar tareas simultneas de procesamiento de datos
con el fin de aumentar la velocidad computacional de un sistema de computadoras. En lugar
de procesar cada instruccin en forma secuencial como es una computadora convencional,
un sistema de procesamiento paralelo puede ejecutar procesamiento concurrente de datos
para conseguir un menor tiempo de ejecucin. Por ejemplo, cuando se ejecuta una
instruccin en la ALU, puede leerse la siguiente instruccin de la memoria. El sistema puede
tener 2 o ms ALUS y ser capaz de ejecutar dos o ms instrucciones al mismo tiempo.
Adems, el sistema puede tener dos o ms procesadores operando en forma concurrente.
EL propsito del procesamiento paralelo es acelerar las posibilidades de procesamiento de
la computadora y aumentar su eficiencia, esto es, la capacidad de procesamiento que puede
lograrse durante un cierto intervalo de tiempo. La cantidad de circuitera aumenta con el
procesamiento paralelo y, con l, tambin el costo del sistema. Sin embargo, los
descubrimientos tecnolgicos han reducido el costo de la circuitera a un punto en donde
las tcnicas de procesamiento paralelo son econmicamente factibles.
El procesamiento paralelo puede considerarse de diversos niveles de complejidad. En el
nivel ms bajo, distinguimos entre operaciones seriales y paralelas mediante el tipo de
registros que utilizan. Los registros de corrimiento operan en forma serial un bit a la vez,
mientras que los registros con carga paralela operan con todos los bits de la palabra en
forma simultnea.
Puede obtenerse procesamientos paralelos a un nivel ms alto de complejidad al tener
mltiples unidades funcionales que ejecuten operaciones idnticas o diferentes, de manera
simultnea. El procesamiento paralelo se establece al distribuir los datos entre las unidades
funcionales mltiples. Por ejemplo, las operaciones aritmticas, lgicas y de corrimiento
pueden separarse en tres unidades y dividirse los operandos a cada una, bajo la supervisin
de una unidad de control.

4.1.- Aspectos bsicos de la computacin paralela

La computacin paralela es una forma de cmputo en la que muchas instrucciones se


ejecutan simultneamente, operando sobre el principio de que problemas grandes, a
menudo se pueden dividir en unos ms pequeos, que luego son resueltos
simultneamente (en paralelo). Hay varias formas diferentes de computacin paralela:
paralelismo a nivel de bit, paralelismo a nivel de instruccin, paralelismo de datos y
paralelismo de tareas. El paralelismo se ha empleado durante muchos aos, sobre todo
en la computacin de altas prestaciones, pero el inters en ella ha crecido ltimamente
debido a las limitaciones fsicas que impiden el aumento de la frecuencia
Como el consumo de energa y por consiguiente la generacin de calor de las computadoras
constituye una preocupacin en los ltimos aos, la computacin en paralelo se ha
convertido en el paradigma dominante en la arquitectura de computadores, principalmente
en forma de procesadores multincleo.
Las computadoras paralelas pueden clasificarse segn el nivel de paralelismo que
admite su hardware: equipos con procesadores multincleo y multiprocesador que tienen
mltiples elementos de procesamiento dentro de una sola mquina y los clsteres, MPPS y
grids que utilizan varios equipos para trabajar en la misma tarea. Muchas veces, para
acelerar la tareas especficas, se utilizan arquitecturas especializadas de computacin en
paralelo junto a procesadores tradicionales.
Los programas informticos paralelos son ms difciles de escribir que los secuenciales,
porque la concurrencia introduce nuevos tipos de errores de software, siendo las
condiciones de carrera los ms comunes. La comunicacin y sincronizacin entre diferentes
subtareas son algunos de los mayores obstculos para obtener un buen rendimiento del
programa paralelo.
La mxima aceleracin posible de un programa como resultado de la paralelizacin se
conoce como la ley de Amdahl.
La computacin paralela es una tcnica de programacin en la que muchas instrucciones se
ejecutan simultneamente. Se basa en el principio de que los problemas grandes se pueden
dividir en partes ms pequeas que pueden resolverse de forma concurrente ("en
paralelo").
La computacin paralela se ha convertido en el paradigma dominante en la arquitectura de
computadores, principalmente en los procesadores multincleo.

4.2.- Tipos de computacin paralela

Paralelismo a nivel de bit


Desde el advenimiento de la integracin a gran escala (VLSI) como tecnologa de fabricacin
de chips de computadora en la dcada de 1970 hasta alrededor de
1986, la aceleracin en la arquitectura de computadores se lograba en gran medida
duplicando el tamao de la palabra en la computadora, la cantidad de informacin que el
procesador puede manejar por ciclo.18 El aumento del tamao de la palabra reduce el
nmero de instrucciones que el procesador debe ejecutar para realizar una operacin en
variables cuyos tamaos son mayores que la longitud de la palabra. Por ejemplo, cuando
un procesador de 8 bits debe sumar dos enteros de 16 bits, el procesador primero debe
adicionar los 8 bits de orden inferior de cada nmero entero con la instruccin de adicin,
a continuacin, aadir los 8 bits de orden superior utilizando la instruccin de adicin con
acarreo que tiene en cuenta el bit de acarreo de la adicin de orden inferior, en este caso
un procesador de 8 bits requiere dos instrucciones para completar una sola operacin, en
donde un procesador de 16 bits necesita una sola instruccin para poder completarla.
Histricamente, los microprocesadores de 4 bits fueron sustituidos por unos de 8 bits, luego
de 16 bits y 32 bits, esta tendencia general lleg a su fin con la introduccin de procesadores
de 64 bits, lo que ha sido un estndar en la computacin de propsito general durante la
ltima dcada.
Paralelismo a nivel de instruccin
Un pipeline cannico de cinco etapas en una mquina RISC (IF = Pedido de Instruccin, ID =
Decodificacin de instruccin, EX = Ejecutar, MEM = Acceso a la memoria, WB = Escritura)
Un programa de ordenador es, en esencia, una secuencia de instrucciones ejecutadas por
un procesador. Estas instrucciones pueden reordenarse y combinarse en grupos que luego
son ejecutadas en paralelo sin cambiar el resultado del programa. Esto se conoce como
paralelismo a nivel de instruccin. Los avances en el paralelismo a nivel de instruccin
dominaron la arquitectura de computadores desde mediados de 1980 hasta mediados de
la dcada de 1990.19
Los procesadores modernos tienen ''pipeline'' de instrucciones de varias etapas. Cada etapa
en el pipeline corresponde a una accin diferente que el procesador realiza en la
instruccin correspondiente a la etapa; un procesador con un pipeline de N etapas
puede tener hasta n instrucciones diferentes en diferentes etapas de finalizacin. El
ejemplo cannico de un procesador segmentado es un procesador RISC, con cinco etapas:
pedir instruccin, decodificar, ejecutar, acceso a la memoria y escritura. El procesador
Pentium 4 tena un pipeline de 35 etapas.20

Un procesador superes calar con pipeline de cinco etapas, capaz de ejecutar dos
instrucciones por ciclo. Puede tener dos instrucciones en cada etapa del pipeline, para un
total de hasta 10 instrucciones (se muestra en verde) ejecutadas simultneamente.
Adems del paralelismo a nivel de instruccin del pipelining, algunos procesadores pueden
ejecutar ms de una instruccin a la vez. Estos son conocidos como procesadores superes
calares. Las instrucciones pueden agruparse juntas slo si no hay dependencia de datos
entre ellas. El scoreboarding y el algoritmo de Tomasulo que es similar a scoreboarding
pero hace uso del renombre de registros son dos de las tcnicas ms comunes para
implementar la ejecucin fuera de orden y la paralelizacin a nivel de instruccin.
PARALELISMO DE DATOS
El paralelismo de datos es el paralelismo inherente en programas con ciclos, que se centra
en la distribucin de los datos entre los diferentes nodos computacionales que deben
tratarse en paralelo. La paralelizacin de ciclos conduce a menudo a secuencias similares
de operaciones (no necesariamente idnticas) o funciones que se realizan en los elementos
de una gran estructura de datos. Muchas de las aplicaciones cientficas y de ingeniera
muestran paralelismo de datos.
Una dependencia de terminacin de ciclo es la dependencia de una iteracin de un ciclo en
la salida de una o ms iteraciones anteriores. Las dependencias de terminacin de ciclo
evitan la paralelizacin de ciclos.
Este bucle no se puede paralelizar porque CUR depende de s mismo (PREV2) y de PREV1,
que se calculan en cada iteracin del bucle. Dado que cada iteracin depende del resultado
de la anterior, no se pueden realizar en paralelo. A medida que el tamao de un problema
se hace ms grande, la paralelizacin de datos disponible generalmente tambin lo hace.
PARALELISMO DE TAREAS
El paralelismo de tareas es la caracterstica de un programa paralelo en la que clculos
completamente diferentes se pueden realizar en cualquier conjunto igual o diferente de
datos. Esto contrasta con el paralelismo de datos, donde se realiza el mismo clculo en
distintos o mismos grupos de datos. El paralelismo de tareas por lo general no escala con el
tamao de un problema.
Durante muchos aos, la computacin paralela se ha aplicado en la computacin de altas
prestaciones, pero el inters en ella ha aumentado en los ltimos aos debido a las
restricciones fsicas que impiden el escalado en frecuencia.
La computacin paralela se ha convertido en el paradigma dominante en la arquitectura de
computadores, principalmente en los procesadores multincleo.
Sin embargo, recientemente, el consumo de energa de los ordenadores paralelos se ha
convertido en una preocupacin.

10

Los ordenadores paralelos se pueden clasificar segn el nivel de paralelismo que admite su
hardware: los ordenadores multincleo y multiproceso tienen varios elementos de
procesamiento en una sola mquina, mientras que los Clusters, los MPP y los grids emplean
varios ordenadores para trabajar en la misma tarea.
Los programas de ordenador paralelos son ms difciles de escribir que los secuenciales
porque la concurrencia introduce nuevos tipos de errores de software, siendo las
condiciones de carrera los ms comunes.
La comunicacin y la sincronizacin entre las diferentes subtareas son tpicamente las
grandes barreras para conseguir un buen rendimiento de los programas paralelos.
El incremento de velocidad que consigue un programa como resultado de la paralelizacin
viene dado por la ley de Amdahl.

4.2.1.-Taxonoma de las arquitecturas paralelas


El primer paso hacia la paralelizacin de las arquitecturas de los computadores, se da con
la aparicin de los procesadores o sistemas vectoriales. Los procesadores vectoriales
extienden el concepto de paralelismo por segmentacin al tratamiento de grandes cadenas
de datos.
Problemas. Se han propuesto diversas definiciones para arquitecturas paralelas. La
dificultad en definir con precisin el trmino est entrelazada con el problema de
especificar una taxonoma de arquitecturas paralelas. El problema central para poder
especificar una definicin y consiguientemente la taxonoma para las modernas
arquitecturas paralelas es lograr satisfacer el siguiente conjunto de imperativos:
Excluir las arquitecturas que incorporan solamente mecanismos de paralelismo de bajo
nivel y que se han popularizado tanto como caracterstica tpica de las modernas
computadoras.
Mantener los elementos tiles de la clasificacin de Flynn tales como los flujos de datos e
instrucciones. Incluir los procesadores vectoriales pipelinizados y otras arquitecturas que
intuitivamente ameritan incluirse como arquitecturas paralelas, pero que no se ajustan
fcilmente al esquema de Flynn.

11

12

VENTAJAS
Datos, sincronizacin y coordinacin usando variables globales. Modelo simple de
programacin. Espacio nico de memoria. Una sola copia del sistema operativo (con
planificador adecuado). Threads. Los sistemas operativos modernos coordinan la
distribucin de los recursos. Es fcil mover procesos entre procesadores. Menos espacio.
Menos potencia. Ms estable.
DESVENTAJAS
Performance de la memoria. Se soluciona con caches, pero aparece el problema de la
coherencia de caches. La red de interconexin es complicada (acceso a memoria). Dinmica:
bus, crossbar o multistage. Se satura rpidamente. Soporta pocos procesadores (2-16).
Poco escalables.

4.2.2.- Arquitectura de los computadores secuenciales


A diferencia de los sistemas combinacionales, en los sistemas secuenciales, los valores de
las salidas, en un momento dado, no dependen exclusivamente de los valores de las
entradas en dicho momento, sino tambin de los valores anteriores. El sistema secuencial
ms simple es el biestables.
La mayora de los sistemas secuenciales estn gobernados por seales de reloj. A stos se
los denomina "sncronos" o "sincrnicos", a diferencia de los "asncronos" o "asincrnicos"
que son aquellos que no son controlados por seales de reloj.

13

A continuacin se indican los principales sistemas secuenciales que pueden encontrarse en


forma de circuito integrado o como estructuras en sistemas programados:
Contador
Un contador es un circuito secuencial cuyo diagrama de estados se encuentra en un ciclo.
De esta manera, una vez que llega al estado final, vuelve a comenzar la misma secuencia
de estados.
La cantidad de estados por los que pasa el contador se denomina mdulo del contador. Por
ejemplo, para un contador del 0 al 5 (mdulo 6), su diagrama de estados es el que se
muestra en la siguiente figura:
Un contador mdulo 10 (0-9) es tambin llamado un contador de dcadas. Un contador
cuyo mdulo es un valor de 2n es llamado contador binario (2, 4, 8, 16, 32, etc.).
En su caso ms general, un contador no tiene ninguna entrada que afecte la secuencia de
estados, mientras que su salida corresponde al valor numrico del estado actual. A esto
ltimo se le conoce como salida codificada en el estado. Cuando se utiliza esta tcnica, no
es necesario generar ecuaciones para el bloque de salida.
EL CONTADOR 74163
Este es un circuito de mediana escala de integracin (MSI) cuyo comportamiento es el de
un contador binario de 4 bits. Por medio de sus entradas, se puede controlar su
funcionamiento de alguna de las siguientes formas:
Contador: El valor de sus salidas se incrementa en 1. El rango de conteo es del 0 al 15.
Carga paralela: Las salidas toman el valor de las entradas de carga.
Reset: El valor de las salidas se vuelve cero.
Mantener: No se modifica el valor de la salida.
Todas las funciones del 74163 son sncronas, es decir, se requiere que se presente la seal
de reloj para que se ejecuten.
Las siguientes figuras muestran la distribucin de terminales en la pastilla, as como la tabla
de verdad del contador.
Temporizador
El circuito electrnico que ms se utiliza, tanto en la industria como en circuitera comercial,
es el circuito de retardo de tiempos o temporizador, dentro de la categora de
temporizadores, cabe destacar el ms econmico y tambin menos preciso consistente en
una resistencia y un condensador, como ya veremos, a partir de aqu se puede contar con
un sinfn de opciones y posibilidades. En este manual se tratarn unos tipos sencillos para

14

adquirir conocimiento de cmo conseguir un retardo en un sistema que no requiera gran


precisin y terminaremos por analizar un temporizador de mayores prestaciones y sobre
todo precisin.
Cuando necesitamos un temporizador, lo primero que debemos considerar es la precisin
en el tiempo de retardo, es una base muy importante para determinar los elementos que
vamos a utilizar en su concepcin y diseo.
Como se ha mencionado anteriormente un temporizador bsicamente consiste en un
elemento que activa o desactiva una carga despus de un tiempo preestablecido ms o
menos largo. De esta manera podemos determinar el parmetro relacionado con el tiempo
que ha de transcurrir para que el circuito susceptible de programarse, se active o desactive
o lo que es lo mismo, simplemente cierre o abra un contacto.
Registros
Tipos de registros de desplazamiento
Dependiendo del tipo de entradas y salidas, los registros de desplazamiento se clasifican
como:
Serie-Serie: slo la entrada del primer flip-flop y la salida del ltimo son accesibles
externamente. Se emplean como lneas de retardo digitales y en tareas de sincronizacin.
Paralelo-Serie: son accesibles las entradas de todos los flip-flops, pero slo la salida del
ltimo. Normalmente tambin existe una entrada serie, que slo altera el contenido del
primer flip-flop, pudiendo funcionar como los del grupo anterior.
Serie-Paralelo: son accesibles las salidas de todos los flip-flops, pero slo la entrada del
primero. Este tipo y el anterior se emplean para convertir datos serie en paralelo y
viceversa, por ejemplo para conexiones serie como el RS232.

Paralelo-Paralelo: tanto las entradas como las salidas son accesibles. Se usan para clculos
aritmticos.
Un registro de desplazamiento muy utilizado, que es universal (se llama as porque puede
utilizarse en cualquiera de las cuatro configuraciones anteriormente descritas) y

15

bidireccional (porque puede desplazar los bits en un sentido u otro) es el 74HC194, de


cuatro bits de datos.
Otros registros de desplazamiento conocidos, fabricados tambin con la tecnologa CMOS,
son el 74HC165 (entrada paralelo, salida serie) y 74HC164 (entrada serie, salida paralelo).
Aplicaciones
Adems de la conversin serie-paralelo y paralelo-serie, los registros de desplazamiento
tienen otras aplicaciones tpicas:
Generador pseudoaleatorios. Se construye con un registro de desplazamiento,
realimentando a la entrada una combinacin de varias salidas, normalmente un or exclusivo
entre ellas.
Multiplicador serie. Se realiza la multiplicacin mediante sumas y desplazamientos. Un
ejemplo es el 74LS384.
Registro de aproximaciones sucesivas. Se usa en conversores A/D. Se van calculando los
bits sucesivamente, empezando por el ms significativo. Mediante un conversor DAC se
compara la entrada analgica con los resultados parciales, generando el siguiente bit.
Retardo. Se pueden utilizar para retardar un bit un nmero entero de ciclos de reloj
(consiste simplemente en un conjunto de biestables en cascada, tantos como ciclos de reloj
deseemos retardar los bits).
Formas de construir registros de desplazamiento
Se pueden combinacionales y secuenciales). Por ejemplo:
Registro de entrada paralelo y salida serie. Puede construirse con un multiplexor digital
combinacional y un contador. Las entradas de datos del multiplexor se conectan a los datos
a transmitir, y las entradas de control, a las salidas del contador (el bMs del MUX conectado
al bMs del contador), dicho contador deber estar en modo de carrera libre.
Registro de entrada serie y salida paralelo. Similar al caso anterior, se sustituye el
multiplexor por un demultiplexor, ahora las salidas de ste sern las salidas paralelos.
Biestables en cascada. Con esto y la lgica combinacional adecuada, se pueden construir
incluso registros de desplazamiento bidireccionales y universales, aunque en este caso es
ms aconsejable disponer del 74HC194, dado que ocupa mucho menos espacio (y el precio
del integrado es muy asequible) y en un solo integrado incluye las cuatro posibles
configuraciones y la funcionalidad de desplazar los bits en ambos sentidos.
SISTEMAS SECUENCIALES SNCRONOS
Segn la forma de realizar el elemento de memoria nos podemos encontrar distintos tipos
de sistemas secuenciales, principalmente dos:

16

Sistemas Secuenciales Sncronos, en los que su comportamiento puede definirse en


instantes de discretos de tiempo, se necesita una sincronizacin de los elementos del
sistema mediante una seal de reloj, que no es ms que un tren de pulsos peridico. Las
variables internas no cambian hasta que no llega un pulso del reloj.
Sistemas Secuenciales Asncronos, actan de forma continua en el tiempo, un cambio de
las entradas provoca cambios en las variables internas sin esperar a la intervencin de un
reloj. Son sistemas ms difciles de disear.
El cambio de las variables internas se puede producir de dos maneras en un sistema
secuencial sncrono:
Por niveles, cuando permiten que las variables de entrada acten sobre el sistema en el
instante en el que la seal de reloj toma un determinado nivel lgico (0 o 1).
Por flancos, o cambios de nivel, cuando la accin de las variables de entrada sobre el
sistema se produce cuando ocurre un flanco activo del reloj. Este flanco activo puede ser de
subida (cambio de 0 a 1) o de bajada (cambio de 1 a 0).
El elemento de memoria bsico de los circuitos secuenciales sncronos es el biestables.
Almacena el estado 0 o el estado 1, y de ah su nombre, tienen dos estados estables de
funcionamiento.
Tambin se les suele conocer como FLIP-FLOPS

TIPOS DE BIESTABLES
Biestables RS El biestables bsico es el RS. Su smbolo lgico se muestra a continuacin.
Tiene dos entradas S (set) y R (Reset), y tiene dos salidas complementarias Q (qn) y Q, tiene
adems una entrada CLK (reloj) activa por flanco de subida.
Biestables D (Latch o Cerrojo) Se trata de otro tipo de Biestables, esta vez con una entrada
D (datos) y dos salidas de estados complementarias, Q. Cuenta adems con una entrada de
CLK (reloj), activada por flanco de subida. Tambin puede contar con dos entradas ms,

17

conocidas por PR (de preset: reiniciar) y CLR (de clear: despejar). Estas ltimas son de tipo
asncrono.
El Biestables D que aparece en la figura, puede funcionar de dos formas:
Sncrona: usa una seal de reloj.
Asncrona: usa las seales PR Y CLR.
De forma sncrona lo hace de la siguiente manera: Si la transicin de la seal de reloj es de
bajo a alto (o sea, de 0 a 1) se traslada el dato D a la salida, se dice que el biestables ha sido
disparado por la seal de reloj. Si por el contrario la transicin en el pulso de reloj es de
estado alto a bajo (o sea, pasa de 1 a 0) el biestables no responde. En este caso, el ltimo
valor permanece almacenado sin cambios.
Las entradas PR y CLR son lo que se llaman entradas asncronas, pues independientemente
de cmo est la seal de reloj, reiniciarn (pondrn un 1 en la salida) o despejarn (pondrn
un 0 en la salida) el biestables. ste es el modo de funcionamiento asncrono.
Biestables JK
El biestables JK puede considerarse como el biestables universal. Dispone de tres entradas
sncronas J y K, para especificar la operacin y CLK, para disparar el biestables. Tambin
consta de dos entradas asncronas PR y CLR, y por supuesto dos salidas complementarias.
Su ecuacin caracterstica es: Qn+1 = JQn + KQn
SECUENCIALES ASNCRONOS
Los circuitos secuenciales asncronos o autmatas finitos asncronos, tambin suelen
denominarse como circuitos en modo fundamental. Estos circuitos no usan elementos
especiales de memoria, pues se sirven de los retardos propios (tiempos de propagacin) de
las compuertas lgicas usados en ellos. Esta manera de operar puede ocasionar algunos
problemas de funcionamiento, ya que estos retardos naturales no estn bajo el control del
diseador, por lo que una de sus principales caractersticas consiste en no permitir cambios
simultneos en las variables de entrada, a fin de evitar el fenmeno de carreras crticas
entre variables de entrada

18

4.2.2.1.- Taxonoma de Flynn


Es una Clasificacin clsica de arquitectura de computadores que hace alusin a sistemas
con uno o varios procesadores. Flynn la public por primera vez en 1966 y por segunda vez
en 1970.
Probablemente la clasificacin ms popular de computadores sea la clasificacin de Flynn.
Esta taxonoma de las arquitecturas est basada en la clasificacin atendiendo al flujo de
datos e instrucciones en un sistema. Un flujo de instrucciones es el conjunto de
instrucciones secuenciales que son ejecutadas por un nico procesador, y un flujo de datos
es el flujo secuencial de datos requeridos por el flujo de instrucciones.

19

SISD (Single Instruction stream, Single Data stream) Flujo nico de instrucciones y flujo
nico de datos. Este el concepto de arquitectura serie de Von Neumann donde, en cualquier
momento, solo se est ejecutando una nica instruccin. A menudo a los SISD se les conoce
como computadores serie escalares. Todas las maquinas SISD poseen un registro simple
que se llama contador de programa que asegura la ejecucin en serie del programa.
Conforme se van leyendo las instrucciones de la memoria, el contador de programa se
actualiza para que apunte a la siguiente instruccin a procesar en serie. Prcticamente
ningn computador puramente SISD se fabrica hoy en da ya que la mayora de
procesadores modernos incorporan algn grado de paralelizacin como es la segmentacin
de instrucciones o la posibilidad de lanzar dos instrucciones a un tiempo (superes calares).

MISD (Multiple Instruction stream, Single Data stream) Flujo Multiple de instrucciones y
nico flujo de datos. Esto significa que varias instrucciones actan sobre el mismo y nico
trozo de datos. Este tipo de mquinas se pueden interpretar de dos maneras. Una es
considerar la clase de mquinas que requeriran que unidades de procesamiento diferentes
recibieran instrucciones distintas operando sobre los mismos datos. Esta clase de
arquitectura ha sido clasificada por numerosos arquitectos de computadores como
impracticable o imposible, y en estos momentos no existen ejemplos que funcionen
siguiendo este modelo. Otra forma de interpretar los MISD es como una clase de mquinas
donde un mismo flujo de datos fluye a travs de numerosas unidades procesadoras.
Arquitecturas altamente segmentadas, como los arrays sistlicos o los procesadores
vectoriales, son clasificados a menudo bajo este tipo de mquinas. Las arquitecturas
segmentadas, o encauzadas, realizan el procesamiento vectorial a travs de una serie de
etapas, cada una ejecutando una funcin particular produciendo un resultado intermedio.
La razn por la cual dichas arquitecturas son clasificadas como MISD es que los elementos
de un vector pueden ser considerados como pertenecientes al mismo dato, y todas las
etapas del cauce representan mltiples instrucciones que son aplicadas sobre ese vector.

20

SIMD Single Instruction stream, Multiple Data stream Flujo de instruccin simple y flujo
de datos mltiple. Esto significa que una nica instruccin es aplicada sobre diferentes
datos al mismo tiempo. En las mquinas de este tipo, varias unidades de procesado
diferentes son invocadas por una nica unidad de control. Al igual que las MISD, las SIMD
soportan procesamiento vectorial (matricial) asignando cada Ingeniera Informtica
Universidad de Valencia

4.1 Clasificacin de los sistemas paralelos 3 elemento del vector a una unidad funcional
diferente para procesamiento concurrente. Por ejemplo, el clculo de la paga para cada
trabajador en una empresa, es repetir la misma operacin sencilla para cada trabajador; si
se dispone de una arquitectura SIMD esto se puede calcular en paralelo para cada
trabajador. Por esta facilidad en la paralelizacin de vectores de datos (los trabajadores
formaran un vector) se les llama tambin procesadores matriciales.
MIMD (Multiple Instruction stream, Multiple Data stream) Flujo de instrucciones Multiple
y flujo de datos Multiple. Son mquinas que poseen varias unidades procesadoras en las
cuales se pueden realizar mltiples instrucciones sobre datos diferentes de forma
simultnea. Las MIMD son las ms complejas, pero son tambin las que potencialmente
ofrecen una mayor eficiencia en la ejecucin concurrente o paralela. Aqu la concurrencia
implica que no solo hay varios procesadores operando simultneamente, sino que adems
hay varios programas (procesos) ejecutndose tambin al mismo tiempo.

21

4.2.2.2 Organizacin del espacio de direcciones de


memoria
Los programas a menudo estn organizados en mdulos, algunos de los cuales pueden ser
compartidos por diferentes programas, algunos son de slo-lectura y otros contienen datos
que se pueden modificar. La gestin de memoria es responsable de manejar esta
organizacin lgica, que se contrapone al espacio de direcciones fsicas lineales. Una forma
de lograrlo es mediante la segmentacin de memoria.
ESPACIO DEL ARCHIVO DE REGISTRO
El archivo de registro de la RAM est organizado en 16 pginas, donde cada pgina tiene
256 localidades de memoria direccionables. La primera pgina (Pgina 0) contiene los
registros de control y registros de propsito general. Todas las dems pginas (de la 1 a la
15) contienen solo registros de propsito general.

22

La figura nos muestra el archivo de registros de la RAM completo.


DIRECCION
HEXADECIMAL

NOMBRE DEL
REGISTRO

DESCRIPCION DEL
REGISTRO

COMENTARIOS

0FFH
0FEH

STKPTR (SPL)
SPH

Stack Pointer Low


Stack Pointer High

LSB of Stack Pointer


MSB of Stack
Pointer

0FDH
0FCH
0FBH
0FAH
0F9H
0F8H
0F7H
0F6H
0F5H
0F4H
0F3H
0F2H
0F1H
0F0H

REGPTR (RP)
FLAGS
IMASK
IREQ
IMASK2
IREQ2

Register Pointer
Flags
Interrupt Mask 1
Interrup Request 1
Interrupt Mask 2
Interrup Request 2

Registros de Control

23

Ints 0 - 6
Ints 0 - 6
Ints 7 - 14
Ints 7 - 14
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved
Reserved

DIRECCION
HEXADECIMAL

DESCRIPCION DEL REGISTRO

F0-FF
E0-EF
D0-DF
C0-CF
B0-BF
A0-AF
90-9F
80-8F
70-7F
60-6F
50-5F
40-4F
30-3F
20-2F
10F-1F
00-0F

Core Control Regiters


Virtual Copy of the Current Working Register Set
Port Logic Control Regiters
Timer Peripherals Control Regiters
Reserved for Future Extensisons
Reserved for Future Extensisons
Reserved for Future Extensisons
Reserved for Future Extensisons
General Purpose Regiters
General Purpose Regiters
General Purpose Regiters
General Purpose Regiters
General Purpose Regiters
General Purpose Regiters
General Purpose Regiters
General Purpose Regiters

Organizacin de los archivos de registro en la pgina 0


Organizacin fsica
La memoria suele dividirse en un almacenamiento primario de alta velocidad y uno
secundario de menor velocidad. La gestin de memoria del sistema operativo se ocupa de
trasladar la informacin entre estos dos niveles de memoria
Los registros pueden ser accesados tanto como registros de 8 o 16 bits usando
direccionamiento directo, indirecto o indexado. Todos los registros de propsito general
pueden ser referenciados o modificados por alguna instruccin que accese a un registro
de 8 bits, sin la necesidad de instrucciones especiales.
Los registros que se accesan como de 16 bits son tratados como pares de registros par /
non. En este caso los bits ms significativos (MSB) son guardados en un registro par,
mientras que los bits menos significativos (LSB) van en el siguiente registro non.
MSB LSB
Rn Rn+1
n= direccin par
Usando una instruccin lgica y una mscara, podemos accesar individualmente cada bit de
un registro. Por ejemplo la instruccin AND R15, MASK nos permite poner en estado bajo
el bit 5 del registro 15.

24

0 1 1 1 0 0 0 0 R15
1 1 0 1 1 1 1 1 MASK
AND R15, DFH
0 1 0 1 0 0 0 0 R15
Cuando estas instrucciones son ejecutadas, los registros son de solo lectura, no de escritura.
REGISTROS DE PROPSITO GENERAL
Los registros de propsito general no estn definidos hasta que el mecanismo este
encendido. Los registros mantienen su ltimo valor despus de cualquier Reset, a menos
que el Reset ocurra en un voltaje especificado Vcc del rango de operacin. Este no
mantendr su ltimo estado si Vcc cae debajo de 1.8V.
GRUPOS DE REGISTROS
Las instrucciones del Z8PLUS pueden accesar registros de 8 bits, registros pares (16 bits,
words) o archivos de direccin de 12 bits. Los archivos de direccin de 8 bits se refieren a la
direccin actual del registro dentro de la pgina actual. Por ejemplo, el registro 58H puede
ser accesado llamando a su equivalente en binario, 01011000 (58H). Los 4 bits menos
significativos del Register Pointer especifican la pgina actual de la RAM.
Con un direccionamiento de 4 bits, el archivo del registro es dividido lgicamente en 16
grupos de registros llamados Working Register Groups de 16 registros cada uno, como se
muestra en la tabla 1-3. Estos 16 registros son conocidos como Working Regiters. El Register
Pointer (registro de control FDH), contiene la direccin base del Working Register Group
activo. Los 4 bits ms significativos del Register Pointer determinan el actual Working
Register Group.
Cuando accesamos uno de los Working Regiters, los cuatro bits de direccin son
combinados con los cuatro bits ms altos del Register Pointer, formando as la direccin de
8 bits. Despus de las tablas que se muestran a continuacin, se ejemplifica el
direccionamiento del Working Register.

25

4.3.- Sistemas de memoria compartida:


Multiprocesadores

26

Cada procesador posee su propia unidad de control ejecuta su propio cdigo sobre sus
propios datos, puede ejecutar cualquier aplicacin (no solo programas vectoriales).
Memoria Compartida Centralizada:
La memoria compartida por todos los procesadores y accesible desde cualquiera.
Descompuesta en varios mdulos para permitir el acceso concurrente de varios
procesadores

Cada procesador debe tener un espacio de direccionamiento suficientemente amplio como


para poder direccionarla completamente.
Multiprocesador con un sistema de memoria compartida en el cual el tiempo de acceso
vara dependiendo de la ubicacin de la palabra de memoria.
La memoria compartida se distribuye fsicamente por todos los procesadores (memorias
locales). El conjunto de memorias locales forma el espacio de direccionamiento global
accesible por todos los procesadores. En los multiprocesadores cada procesador suele tener
asociada una cache local y ello introduce el problema de la coherencia en chache: cualquier
modificacin local de una determinada posicin de la memoria compartida se realizara
primeramente sobre un chache local y ello puede dar lugar a una visin global incoherente
de la memoria. Los elementos que integran un multiprocesador pueden estar conectados
entre s a travs de una estructura
Jerrquica de buses. Los buses digitales son los sistemas de interconexin fundamentales
adoptados en sistemas comerciales desde estaciones de trabajo a minicomputadores,
mainframes y multiprocesadores.

27

4.3.1.- Redes de interconexin dinmicas o indirectas


Caractersticas:
Antes de definir las caractersticas de las redes de interconexin diremos que se llama nodo
a cualquiera de los dispositivos que se quiera conectar a la red, tales como elementos de
proceso, mdulos de memoria, procesadores de entrada/salida, etc.
RED DINAMICA
Una red dinmica es una red cuya topologa puede variar durante el curso de la ejecucin
de un programa paralelo o entre dos ejecuciones de programas. La red est constituida por
elementos materiales especficos, llamados conmutadores o switches.
RED INDIRECTA
Las redes indirectas tambin pueden modelarse con un grafo donde n es un conjunto de
switches y c es el conjunto de enlaces unidireccionales o bidireccionales entre switches.
Para el anlisis de la mayora de propiedades, no es necesario incluir explcitamente los
nodos de procesamiento en el grafo. Aunque las redes indirectas pueden modelarse de
forma similar alas directas, existen algunas diferencias entre ellas.
Grado de los nodos: se llama grado de un nodo (d) al nmero de enlaces que tiene con
otros nodos. En el caso de enlaces unidireccionales se puede hablar de grad de entrada y
de grado de salida; en este caso se considera el grado del nodo a la salida de ambos. Es
conveniente que en una red el grado sea igual para todos los nodos; en este caso se dice
que la red es regular. La regularidad de las redes es conveniente de cara a la modularidad y
escalabilidad. Por otra parte, el grado de un nodo incide de forma clara en su coste, ya que
indica el nmero de puertos de entrada/salida que necesita.
Dimetro de una red (D): se denomina as al mximo camino ms corto entre dos nodos
me-recorridos. Un dimetro menor indica mayor habilidad, debe procurarse que el
dimetro de las redes de pequeo posible.
Ancho de biseccin: cuando una determinada red se divide en dos partes iguales, el mnimo
nmero de enlaces cortados por la divisin se llama ancho de biseccin (b). Si cada enlace
tiene w bits entonces el ancho de biseccin medido en bits (B) ser B = bw. En general, B
ser una cota superior de los anchos en otros cortes dentro de la red. Una medida de la
capacidad de comunicacin de la red es el producto del ancho de biseccin por el ancho de
banda de cada enlace, a este producto se le denomina ancho de banda de biseccin.
Latencia de una red: este parmetro se refiere al retraso mximo producido por la
comunicacin de un mensaje elemental a travs de la red. Esto est relacionado con los

28

tiempos de espera producidos por vas de comunicacin ocupadas. En algunas ocasiones,


a este parmetro tambin se le denomina genricamente contencin.
Productividad: se llama productividad de una red al nmero total de paquetes de
informacin (mensajes) que la red puede transportar por unidad de tiempo. A este
respecto, se llama punto caliente (hot spot) de una red a un enlace que concentra una parte
desproporcionadamente grande del trfico de total de la red.
Escalabilidad: esta propiedad se refiere a la facilidad con que la red puede expandirse
manteniendo sus prestaciones sin aumentar desproporcionadamente el coste.
Simetra: diremos que una red de interconexin es simtrica si su topologa tiene el mismo
aspecto vista desde cualquier nodo; con palabras ms coloquiales podramos decir que una
red es simtrica si todos sus nodos son intercambiables; esto implica que una red simtrica
tiene que ser regular.
Conectividad: se dice que una red tiene acceso total (o que est totalmente conectada) si
permite la conexin directa entre dos nodos cualesquiera de la red. Esto implica que existan
enlaces que unan todas las parejas posibles de nodos sin pasar por otros nodos. En una red
es bloqueante si no es posible conectar, en algn caso, todas las posibles parejas de nodos
que se puedan formar; en caso contrario se dice que la red es no bloqueante. Una red se
dice que es re ordenable, o reacondicionable, si puede efectuar la conexin entre cualquier
pareja de nodos, aunque para ello sea necesario cambiar algunas de las conexiones para
conservar los enlaces existentes entre los nodos.
Clasificacin de Redes de interconexin:
El criterio ms importante para la clasificacin de las redes de interconexin se basa en la
rigidez de los enlaces entre los nodos: a este respecto a las redes pueden clasificarse en
estticas o dinmicas. Una red esttica se caracteriza porque su topologa queda
establecida de forma definitiva y estable cuando se instala un sistema; su nica posibilidad
de modificacin es crecer. Por el contrario, una red dinmica puede variar de topologa bien
durante el curso de la ejecucin o de los procesos o bien entre la ejecucin de los mismos.
Por otra parte, las redes pueden ser jerrquicas o no, los son si estn formadas por una
serie de niveles, con diferente nmero de nodos, dentro de cada uno de
Los cuales existe simetra. La mayora de las redes jerrquicas suelen ser estticas, sin
embargo, hay algn tipo de topologa dinmica que tambin puede serlo.
Redes de interconexin dinmicas
Las redes de interconexin dinmicas son convenientes en los casos en que se desee una
red de propsito general ya que son fcilmente reconfigurables. Tambin por eso, este tipo
de Redes facilitan mucho la escalabilidad. En general, las redes dinmicas necesitan de

29

elementos de conexin especficos como pueden ser rbitros de bus, conmutadores, etc.
Las principales topologas de redes dinmicas son las siguientes:
Buses
Redes de lneas cruzadas o matriz de conmutacin (crossbar)
Redes omega: esta red de N entradas est formada por log2 N etapas de N/2 montadores.
Por supuesto, cada conmutador se gobierna de forma independiente a los dems. El patrn
de interconexin entre las etapas es un perfect shuffle (recordar el apartado 4.5). Un
esquema de este tipo de redes se muestra en la figura 4.16.
Redes de lnea base: (Wu & Feng, 1980): las redes de lnea base estn formadas por
mdulos conmutadores de lneas cruzadas, de 2 2, y se pueden generan recursiva- mente
de la siguiente forma: se unen las entradas de cada pareja de conmutadores del ltimo
nivel, mediante un perfect shuffle, a las salidas de los conmutadores de la etapa anterior.
Se agrupan las entradas de doble nmero de conmutadores en esa etapa, formando otro
perfect shuffle hacia el nivel anterior. Se repite este proceso hasta llegar a un nico perfect
shuffle que una las salidas de todos l conmutadores del que ser el primer nivel. En la figura
4.17(a) se muestra una r de lnea base de 16 16 y en (b) puede verse la construccin
recursiva de una red de lnea base genrica de N N a partir de otras dos de N/2 N/2.
Evidentemente, si se mira esta red desde las entradas, se vern permutaciones de perfect
shuffle inverso.
Redes mariposa (butterfly networks): Una red mariposa de knkn est formada por n
columnas de kn1 conmutadores k k unidas por n 1 permutaciones mariposa de base k
y orden 1 hasta n 1. En la figura 4.18 puede verse una red mariposa de 23 23.
Es curioso observar que una red mariposa de kn kn se puede construir a partir de dos
redes mariposa kn1
kn1, aadiendo una columna de kn1 conmutadores y base k y
orden n 1.
Redes Delta: una red delta se define como una red de interconexin de an bn con n etapas
formada por mdulos conmutadores de lneas cruzadas de a b y cuya red de interconexin
de etapas es un a-shuffle. En la figura 4.19 se muestra una red delta genrica de an bn. En
la figura 4.20 puede verse el ejemplo de una red delta de 23 23. Una caracterstica de
esta red es que la primera etapa tengan unos mdulos conmutadores, por tanto, la segunda
etapa tendr an2b conmutadores ya que, a cada uno de los conmutadores de la etapa
anterior, habr que multiplica por el nmero de salidas, b, y dividirlo por el nmero de
entradas, a, para opte el nmero de conmutadores de la etapa siguiente. En general, la
etapa i tendr nibi1 y, por tanto, la ltima etapa (n) tendr bn1 conmutadores. Esto
hace que la red tenga bn salidas. Se puede demostrar (ver ejercicio 4.25) que el nmero
total de conmutadores de una red delta es:

30

Redes de Closs: estas redes constan de tres etapas construidas con conmutadores de lneas
cruzadas pero de diferentes tamaos en cada etapa. Cada red de Closs se caracteriza por
tres parmetros: n, m y r; el nmero de entradas de la red es N = nr. La primera etapa
dispone de r conmutadores de n entradas y m salidas, la segunda etapa contiene m
conmutadores de r entradas y r salidas. La conexin entre ambas etapas se efecta de la
forma siguiente: la salida i del conmutador j de la primera etapa se conecta con la entrada
j del conmutador i de la segunda (esto en realidad es un r-shuffle). La tercera etapa tiene
r conmutadores de m entradas y n salidas, dos primeras (es decir forman un m-shuffle).
Una de las ventajas de las redes de Closs es que, dimensionndolas conveniente- mente, se
puede conseguir que sea reacondicionable o, incluso, no bloqueante.
Redes de Benes: Una red de Benes es un red de Closs con n = 2 y m = 2, en que los
conmutadores de la etapa central son, a su vez, redes de Closs con n = 2, m = 2, siendo r la
mitad de la de la red completa. Esto significa que las permutaciones entre etapas son
perfect shuffle inverso (de la primera a la segunda) y pe t shuffle, de la segunda a la tercera.

4.3.1.1.- Redes de medio compartido


Entorno de medios compartidos
Ocurre cuando varios host tiene acceso al mismo medio. Por ejemplo, si varios PC se
encuentran conectados al mismo cable fsico, a la misma fibra ptica entonces se dice que
comparten el mismo entorno de medios.
Entorno extendido de medios compartidos
Es un tipo especial de entorno de medios compartidos en el que los dispositivos de
networking pueden ampliar el entorno de modo que pueda incluir accesos mltiples o
distancias mayores de cableado.
El vehculo bsico que empleamos para acceder a nuestra red es la conexin de nuestro
ordenador a la misma. Se realiza generalmente mediante cables. Dependiendo del cable y
de sus caractersticas fsicas, podremos realizar diferentes conexiones.
La conexin fsica entre el ordenador y la red se establece siempre a travs de un puerto.
Un conector permite enlazar el medio de transmisin con la circuitera de acceso a la red.
Para cada sistema de cableado se emplea un puerto distinto y algunas veces un dispositivo
accesorio
El cable, que ms proyeccin tiene hoy en da es el de fibra ptica, pero hoy por hoy es caro
y difcil de instalar. Sin embargo, es recomendable su utilizacin para enlazar redes distantes
y para crear enlaces muy rpidos entre servidores o interconexin de redes.

31

Los tres principales medios de transmisin utilizados en las redes locales son: par trenzado
Cable coaxial
Fibra ptica.

4.3.1.2.- Redes conmutadas


Consiste en un conjunto de nodos interconectados entre s, a travs de medios de
transmisin, formando la mayora de las veces una topologa mallada, donde la informacin
se transfiere encaminndola del nodo de origen al nodo destino mediante conmutacin
entre nodos intermedios. Una transmisin de este tipo tiene 3 fases:
Establecimiento de la conexin
Transferencia de la informacin
Liberacin de la conexin
La conmutacin en un nodo a la conexin fsica o lgica de un camino de entrada al nodo
con un camino de salida del nodo con el fin de transferir la informacin que llegue por el
primer camino al segundo. Las redes conmutadas son las redes de rea extensa.
Las redes conmutadas se dividen en:
Conmutacin de paquetes
Conmutacin de circuitos
La conmutacin de paquetes:
Es un mtodo de envo de datos en una red de computadoras. Un paquete es un grupo de
informacin que consta de dos partes: los datos propiamente dichos y la informacin de
control, que indica la ruta a seguir a lo largo de la red hasta el destino del paquete. Existe
un lmite superior para el tamao de los paquetes; si se excede, es necesario dividir el
paquete en otros ms pequeos.
Ventajas:
Los paquetes forman una cola y se transmiten lo ms rpido posible.
Permiten la conversin en la velocidad de los datos.
La red puede seguir aceptando datos aunque la transmisin sea lenta.
Existe la posibilidad de manejar prioridades (si un grupo de informacin es ms
importante que los otros, ser transmitido antes que dichos otros).

32

La conmutacin de circuitos:
Es un tipo de conexin que realizan los diferentes nodos de una red para lograr un camino
apropiado para conectar dos usuarios de una red de telecomunicaciones. A diferencia de
lo que ocurre en la conmutacin de paquetes, en este tipo de conmutacin se establece
un canal de comunicaciones dedicado entre dos estaciones. Se reservan recursos de
transmisin y de conmutacin de la red para su uso exclusivo en el circuito durante la
conexin. sta es transparente: una vez establecida parece como si los dispositivos
estuvieran realmente conectados.
Ventajas
El ancho de banda es definido y se mantiene constante durante la comunicacin.
El circuito es fijo, no se pierde tiempo en el encaminamiento de la informacin.
La transmisin se realiza en tiempo real, siendo til para la comunicacin de voz y video.
Si bien existe retardo en el establecimiento de la llamada, el retardo de la transmisin
posterior es despreciable; si el trfico se realiza generalmente entre el mismo par de
estaciones puede ser ms veloz.

4.3.2.- Coherencia de cache


La coherencia de cache hace referencia a la integridad de los datos almacenados en las
caches locales de los recursos compartidos. La coherencia de la cache es un caso especial
de la coherencia de memoria.
Mltiples caches con recursos comunes.
Cuando los clientes de un sistema, en particular las CPUs en un multiprocesador, mantienen
caches de una memoria compartida, los conflictos crecen. Haciendo referencia al dibujo, si
el cliente de arriba tiene una copia de un bloque de memoria de una lectura previa y el
cliente de abajo cambia ese bloque, el cliente de arriba podra estar trabajando con datos
errneos, sin tener conocimiento de ello. La coherencia de la cache intenta administrar
estos conflictos y mantener consistencia entre las caches y la memoria.
Es el mayor problema de los diseos con cach
Aparece en los datos compartidos por varios procesadores (o entre procesador y
controlador I/O, p.e. DMA).
A modo de ejemplo estudiamos un diseo de un slo bus con dos procesadores, cada uno
con su cach y polticas de escritura
Write-Through
Write-back. Bus snooping (bits de estado o dirty bits)

33

El problema de coherencia es especialmente complicado de resolver cuando se usa


poltica de Write-back
Bus snooping
El controlador de cach espa el bus (accesos a posiciones de memoria en cach)
Si una cach tiene el dato ms reciente
Suspende los ciclos del (otro procesador) maestro de bus.
Actualiza la posicin de memoria.
Deja que el maestro complete el acceso.
Posibles estados de un dato en cach
Los estados en que puede estar un dato de la cach (dirty bits) son los siguientes
(Protocolo MESI):
S; Compartido sin modificar: Otra cach puede tener el mismo dato; el dato es idntico al
almacenado en memoria (coherente).
I; Invlido: El dato no est en cach, o la copia local es incorrecta (porque otro
procesador/DMA ha actualizado la posicin de memoria correspondiente).
E; Exclusivo sin modificar: nica cach con dato correcto (coherente con memoria).
M; Exclusivo Modificado: La cach contiene la nica copia correcta del dato en el sistema
(la copia en memoria no es correcta).

4.3.2.1. El problema de la coherencia de las caches


Es en esta propiedad fundamental de las memorias en la que descansan los programas
secuenciales cuando usamos la memoria para comunicar un valor desde un punto del
programa donde se calcula a otros puntos donde es usado. Tambin nos basamos en esta
propiedad cuando el sistema usa un espacio de direcciones compartido para comunicar
datos entre hebras o procesos que se estn ejecutando en un procesador.
Una lectura devuelve el ultimo valor escrito en esa direccin, sin importar el proceso que
escribi dicho valor. Las caches (ante memorias) no interfieren con el uso de mltiples
procesos en un procesador, ya que todos ellos ven la memoria a travs de la misma
jerarqua de caches. En el caso de usar varios procesadores, nos gustara poder basarnos en
la misma propiedad cuando dos procesos se ejecuten sobre diferentes procesadores de tal
forma que el resultado de ejecutar un programa que usa varios procesos sea el mismo
independientemente de si los procesos se ejecutan o no en diferentes procesadores fsicos.
Sin embargo, cuando dos procesos ven la memoria compartida a travs de diferentes
caches, existe el peligro de que uno vea el nuevo valor en su cache mientras que el otro

34

todava vea el antiguo. El problema de la coherencia en sistemas multiprocesadores se


puede ver claramente mediante un ejemplo.
Supongamos dos procesadores, cada uno con su cache, conectados a una memoria
compartida. Supongamos que ambos procesadores acceden a una misma posicin X en
memoria principal. La figura 5.1 muestra los contenidos de las caches y memoria principal
asumiendo que ninguna cache contiene inicialmente la variable que vale inicialmente 1.
Tambin se asume una cache write-through. Despus de que el valor en X ha sido escrito
por A, la cache de A y la memoria contienen el nuevo valor, pero la cache de B no, y si B lee
el valor de X, leer 1 y no 0 que es el valor de la memoria! Este es el problema de la
coherencia de caches en multiprocesadores.

35

4.4.- Sistemas de memoria distribuida.


Multicomputadores: Clusters

36

Un clster es una tipo de arquitectura paralela distribuida que consiste de un conjunto de


computadores independientes (y bajo coste en principio) interconectados operando de
forma conjunta como un nico recurso computacional
Sin embargo, cada computador puede utilizarse de forma independiente o separada.

4.4.1.- Redes de interconexin estticas


Las redes estticas emplean enlaces directos fijos entre los nodos. Estos enlaces, una vez
fabricado el sistema, son difciles de modificar, por lo que la escalabilidad de estas
topologas es baja. Las redes estticas pueden utilizarse con eficiencia en los sistemas en
que puede predecirse el tipo de trfico de comunicaciones entre sus procesadores. Veamos
algunas clases de redes de interconexin estticas:
Formacin lineal: Se trata de una red unidimensional en que los N nodos se conectan cada
uno con el siguiente mediante N-1 enlaces formando una lnea. Los nodos interiores tienen
grado 2 y los extremos grado 1. El dimetro de esta red es N-1 y su ancho de biseccin es 1.
Resulta ser la estructura ms sencilla, pero no es regular y puede hacerse muy ineficiente
para valores altos de N debido a que el dimetro crece linealmente con el nmero de nodos
introducidos. Las redes lineales resultan eficiente nicamente cuando tienen muy pocos
nodos.

Anillo/Anillo Cordal: Una red en anillo se consigue conectando entre s los nodos
extremos de una formacin lineal. La estructura resulta simtrica y todos sus nodos poseen
grado 2. El dimetro de la red es N/2. Si los enlaces del anillo fueran unidireccionales, su
dimetro sera N - 1. Si se incrementa el grado de cada nodo de la red a 3 o 4, llegaremos a
la estructura de anillo cordal. Segn se aumenta el grado de los nodos del anillo cordal, se
disminuye su dimetro. El caso ms extremo de anillo cordal es la red totalmente conectada
en que el grado de cada nodo es N - 1, cada nodo est conectado con todos los dems, es
decir, dimetro 1. El inconveniente de esta topologa es la gran complejidad en sus nodos
debido a su alto grado (de hecho, el mximo alcanzable). Un caso especial del anillo cordal,
que constituye un buen equilibrio entre complejidad y eficiencia, es el denominado
barrelshifter, en que el nodo i se conecta con todos los nodos j que cumplen con la condicin
|i - j| = 2r para todo r entre 0 y k - 1 donde k = log2 N. El grado de esta topologa es 2k - 1 y
su dimetro es k/2.

37

38

Mallas y toros: Una malla k-dimensional tiene lk nodos, donde l es el nmero de nodos
por lado. El grado de los nodos vara entre k para los vrtices hasta 2k en los nodos ms
interiores por lo que esta red no resulta regular y su dimetro viene dado por k (l - 1). Esta
red de interconexin es muy utilizada en la prctica. Las redes en toro son mallas en que
sus filas y columnas tienen conexiones en anillo, esto contribuye a disminuir su dimetro.
Esta pequea modificacin permite convertir a las mallas en estructuras simtricas y
adems, reduce su dimetro a la mitad.

Hipercubo: Un Hipercubo (o ms concretamente un n-cubo) es una malla n dimensional


en que se han suprimido los nodos interiores. Segn esta definicin, un Hipercubo de
dimensin 1 tendra solo 2 nodos y en general, un cubo puede formarse interconectando
los nodos equivalentes de dos (n - 1) cubos. Por ello, el grado de los nodos de un-cubo es n,
lo que hace a esta topologa difcilmente escalable. Por todo esto, cuando la dimensin
aumenta, se va duplicando el nmero de nodos, con lo que un n-cubo tendr 2n nodos. Los
hipercubos han sido bastante utilizados en arquitecturas paralelas, sin embargo, en la
actualidad, las mquinas que tenan esta arquitectura han ido e

39

4.4.2.- Clster
Un clster es una tipo de arquitectura paralela distribuida que consiste de un conjunto de
computadores independientes (y bajo coste en principio) interconectados operando de
forma conjunta como un nico recurso computacional Sin embargo, cada computador
puede utilizarse de forma independiente o separada
El trmino clster (del ingls clster, "grupo" o "racimo") se aplica a los conjuntos o
conglomerados de computadoras construidos mediante la utilizacin de hardwares
comunes y que se comportan como si fuesen una nica computadora.
La tecnologa de clsteres ha evolucionado en apoyo de actividades que van desde
aplicaciones de supe cmputo y software de misiones crticas, servidores web y comercio
electrnico, hasta bases de datos de alto rendimiento, entre otros usos.
El cmputo con clsteres surge como resultado de la convergencia de varias tendencias
actuales que incluyen la disponibilidad de microprocesadores econmicos de alto
rendimiento y redes de alta velocidad, el desarrollo de herramientas de software para
cmputo distribuido de alto rendimiento, as como la creciente necesidad de potencia
computacional para aplicaciones que la requieran.
Simplemente, un clster es un grupo de mltiples ordenadores unidos mediante una red de
alta velocidad, de tal forma que el conjunto es visto como un nico ordenador, ms potente
que los comunes de escritorio.
Los clsteres son usualmente empleados para mejorar el rendimiento y/o la disponibilidad
por encima de la que es provista por un solo computador tpicamente siendo ms
econmico que computadores individuales de rapidez y disponibilidad comparables.
De un clster se espera que presente combinaciones de los siguientes servicios:
1. Alto rendimiento
Un clster de alto rendimiento: es un conjunto de ordenadores que est diseado para dar
altas prestaciones en cuanto a capacidad de clculo. Los motivos para utilizar un clster de
alto rendimiento son:
El tamao del problema por resolver
El precio de la mquina necesaria para resolverlo

40

2. Alta disponibilidad
Un clster de alta disponibilidad es un conjunto de dos o ms mquinas que se caracterizan
por mantener una serie de servicios compartidos y por estar constantemente
monitorizndose entre s.
3. Balanceo de carga:
El balance o balanceo de carga es un concepto usado en informtica que se refiere a la
tcnica usada para compartir el trabajo a realizar entre varios procesos, ordenadores, discos
u otros recursos.
4. Escalabilidad:
En telecomunicaciones y en ingeniera informtica, la escalabilidad es la propiedad deseable
de un sistema, una red o un proceso, que indica su habilidad para extender el margen de
operaciones sin perder calidad, o bien manejar el crecimiento continuo de trabajo de
manera fluida, o bien para estar preparado para hacerse ms grande sin perder calidad en
los servicios ofrecidos.

4.4.3.- Programacin de Clusters


Programacin paralela: estos clster estn diseados y optimizados para correr programas
paralelos. En este caso, los programas tienen que ser hechos especficamente para
funcionar en forma paralela. Tpicamente estos programas son modelos que requieren
realizar gran cantidad de clculos numricos. La ventaja de programarlos de esta manera y
correrlos en un clster es que se reducen drsticamente los tiempos de proceso. En el caso
de modelos meteorolgicos usados para predecir el tiempo es obvia la necesidad de
correrlos en tiempo mnimo.
Cuando se programa un modelo en una plataforma multiprocesadores (una mquina con
ms de un procesador), es necesario usar esquemas de programacin paralela. Las
bibliotecas (MPI) son las que permiten paralelizacin de tareas. En el caso de los clster
SCALI, portar programas hechos con bibliotecas MPI es directo gracias al uso de bibliotecas
SCAMPI.
Son sumamente importante los sistemas de interconexin utilizados entre los nodos en este
tipo de Clusters. SCI es un standard internacional (IEEE1596) para interconexiones de alta
velocidad. Dolphin InterConnect Solutions fabrica una variedad de productos SCI, entre los
cuales se encuentran las tarjetas adaptadoras SCI-PCI que SCALI utiliza en sus Clusters. El
performance de estas tarjetas es sorprendente: varios cientos de megabytes por segundo y

41

tiempos de latencia inferiores al microsegundo en la capa SCI llegando a los lmites del bus
PCI (64bits/66Mhz).
Usos:
Anlisis Estructural
Simulaciones de mecnica de fluidos
Modelos genmicos
Prediccin meteorolgica
Y el estudio de cualquier fenmeno que pueda ser modelado matemticamente.

42

4.4.4.- Consideraciones sobre el rendimiento de los


Clusters
Un clster de alto rendimiento es un conjunto de ordenadores que est diseado para dar
altas prestaciones en cuanto a capacidad de clculo. Los motivos para utilizar un clster de
alto rendimiento son:
El tamao del problema por resolver
El precio de la mquina necesaria para resolverlo.
Por medio de un clster se pueden conseguir capacidades de clculo superiores a las de un
ordenador ms caro que el costo conjunto de los ordenadores del clster.
Ejemplo de Clusters baratsimos son los que se estn realizando en algunas universidades
con computadoras personales desechados por "anticuados" que consiguen competir en
capacidad de clculo con superordenadores carsimos.
Para garantizar esta capacidad de clculo, los problemas necesitan ser paralelizables, ya que
el mtodo con el que los Clusters agilizan el procesamiento es dividir el problema en
problemas ms pequeos y calcularlos en los nodos, por lo tanto, si el problema no cumple
con esta caracterstica, no puede utilizarse el clster para su clculo.
Para que un problema sea paralelizable se debe hacer uso de bibliotecas
especiales como lo es PVM (parallel virtual machine) o MPI (Message passage interface),
donde la primera es usada especialmente en clster con nodos heterogneos (arquitectura
del procesador, sistemas operativo, entre otras), y pertenecientes a diferentes dominios de
red, la segunda biblioteca usada para clster homogneos
Un tipo de software para realizar clster high performance es OSCAR (Open Source Clster
Application Resources) distribuido bajo licencia GPL. Este software trabaja sobre el sistema
operativo Linux. En Windows se podra utilizar "WCC 2003" (Windows Computer Clster).

43

4.5.- Casos de usos

44

La programacin paralela involucra muchos aspectos que no se presenta en la


programacin convencional (secuencial). El diseo de un programa paralelo tiene que
considerar entre otras cosas, el tipo de arquitectura sobre la cual se va a ejecutar el
programa, las necesidades de tiempo y espacio que requiere la aplicacin, el modelo de
programacin paralelo adecuado para implantar la aplicacin y la forma de coordinar y
comunicar a diferentes procesadores para que resuelvan un problema comn. Existen
varias herramientas disponibles para programacin paralela. En el curso utilizaremos PVM
y MPI, dado su alta disponibilidad para computadoras diferentes y su aceptacin en la
comunidad acadmica.
PROCESAMIENTO EN PARALELO
Es un proceso empleado para acelerar el tiempo de ejecucin de un programa dividindolo
en mltiples trozos que se ejecutarn al mismo tiempo, cada uno en su propios
procesadores.

4.5.1. DESCRIPCIN
La tecnologa detrs del desarrollo de componentes de sistemas computacionales ha
alcanzado su madurez y los desarrollos estn a punto de producirse en la era del
procesamiento en paralelo, lo que significa que la tecnologa de la computacin paralela
necesita avanzar, aun cuando no est lo suficientemente madura como para ser explotado
como una tecnologa de disponibilidad masiva.
La razn principal para crear y utilizar computacin paralela es que el paralelismo es una de
las mejores formas de salvar el problema del cuello de botella que significa la velocidad de
un nico procesador.
La razn de ser del procesamiento en paralelo es acelerar la resolucin de un problema, la
aceleracin que puede alcanzarse depende tanto del problema en s como de la
arquitectura de la computadora.
Las aplicaciones que se benefician de una aceleracin ms significativa son aquellas que
describen procesos intrnsecamente paralelos, las simulaciones de modelos moleculares,
climticos o econmicos tienen toda una amplia componente paralela, como los sistemas
que representan. El hardware de la mquina entra en juego ya que es preciso maximizar la
relacin entre el tiempo de clculo til y el perdido en el paso de mensajes, parmetros que
dependen de la capacidad de proceso de las CPUs y de la velocidad de la red de
comunicaciones.
Hay 2 formas bsicas de obtener partes independientes en un programa paralelo:
descomposicin funcional o descomposicin de datos, que describiremos a continuacin.
Descomposicin de datos. Un ejemplo de aplicacin completamente paralelizable es el
clculo del rea bajo una curva por integracin numrica, basta con dividir el intervalo de

45

integracin entre todos los procesadores disponibles y que cada uno resuelva su fragmento
sin preocuparse de qu hacen los dems, al final, los resultados parciales se recolectan y se
suman convenientemente.
Con n procesadores es posible resolver el problema n veces ms rpido que haciendo uso
de uno slo (salvo por el mnimo retraso que supone el reparto de trabajo inicial y la
recoleccin de datos final), consiguiendo una aceleracin lineal con el nmero de
procesadores. Si las condiciones son muy favorables es incluso posible alcanzar la
aceleracin supe lineal, consistente en que el programa se ejecuta an ms rpido que en
rgimen lnea, la aparente paradoja se da debido a que cada procesador cuenta con su
propia memoria ordinaria y cach, que pueden ser usadas de forma ms eficiente con un
subconjunto de datos, de hecho, es posible que el problema no se pueda resolver en un
nico procesador pero s sobre un conjunto de ordenadores debidamente configurados,
simplemente por cuestin de tamao de los datos.
Descomposicin funcional. Un modelo computacional se basa por empezar, en que una
aplicacin consiste en varias tareas, cada tarea es responsable de una parte de la carga de
procesamiento de la aplicacin en general y a su vez, cada tarea realiza una operacin
independiente de las otras tareas. Los algoritmos de cada tarea son diferentes, este modelo
se denomina descomposicin funcional y se puede aprovechar las caractersticas
particulares de cada tipo de tarea para ejecutarlas en la mquina que sea ms conveniente
para tal efecto.
Se refiere al proceso o transferencia de datos de forma simultnea, en oposicin al proceso
o transferencia en serie, en la transferencia de datos en paralelo, la informacin se enva
simultneamente en grupos, por ejemplo, los ocho bits de un byte de datos se transmiten
a la vez, a travs de ocho hilos independientes de un cable. En el proceso en paralelo y en
otras operaciones similares se realiza ms de un proceso a la vez, por ejemplo, varios
microprocesadores de una computadora pueden estar manejando diferentes aspectos de
un proceso (tales como un clculo complicado) al mismo tiempo.

4.5.2. EVOLUCIN
Durante aos se han encontrado dificultades al momento de analizar sistemas de gran
tamao; si bien en el caso de los sistemas de potencia ste se ha visto favorecido por la
descripcin de problemas mediante matrices, y por la utilizacin de computadores digitales
para su manipulacin, la necesidad de lograr un equilibrio en la cantidad de informacin a
procesar y su calidad contina siendo evidente.
El procesamiento paralelo ha permitido sobrellevar algunas de estas dificultades,
particularmente en lo que respecta a la velocidad de procesamiento; siempre que la
arquitectura del computador sea la apropiada.

46

Los sistemas paralelos mejoran la velocidad de procesamiento y de E/S mediante la


utilizacin de CPU y discos en paralelo. Cada vez son ms comunes computadoras paralelas,
lo que hace que cada vez sea ms importante el estudio de los sistemas paralelos de bases
de datos.
En el proceso paralelo se realizan muchas operaciones simultneamente, mientras que en
el procesamiento secuencial los distintos pasos computacionales han de ejecutarse en serie,
la mayora de las mquinas de gama alta ofrecen un cierto grado de paralelismo de grano
grueso: son comunes las mquinas con dos o cuatro procesadores. Las computadoras
masivamente paralelas se distinguen de las mquinas de grano grueso porque son capaces
de soportar un grado de paralelismo mucho mayor.
Ya se encuentran en el mercado computadoras paralelas con cientos de CPUs y discos, para
medir el rendimiento de los sistemas de bases de datos existen dos medidas principales, la
primera es la productividad: nmero de tareas que pueden completarse en un intervalo de
tiempo determinado, la segunda es el tiempo de respuesta: cantidad de tiempo que
necesita para complementar una nica tarea a partir del momento en que se enve.
Un sistema que procese transacciones puede mejorar el tiempo de respuesta, as como la
productividad, realizando en paralelo las distintas subtareas de cada transaccin,
actualmente se han propuesto soluciones basadas en procesamiento paralelo para una gran
cantidad de los anlisis asociados a los sistemas; entre stos se encuentran el flujo de
potencia, la simulacin dinmica, incluyendo la de transitorios electromagnticos; el
anlisis de la estabilidad transitoria mediante funciones de energa, el de la estabilidad a
perturbacin pequea y a la planificacin de sistemas elctricos de potencia.
El procesamiento paralelo es particularmente atractivo si es posible descomponer el
sistema en subsistemas acoplados dbilmente, pero cada uno con sus variables acopladas
fuertemente.

4.5.3. CARACTERSTICAS
El uso de varios procesadores est motivado por consideraciones relativas a las
prestaciones y/o a la fiabilidad, podemos clasificar dichos sistemas como sigue:
Multiprocesadores dbilmente acoplados: Consisten en un conjunto de sistemas
relativamente autnomos, en los que cada CPU dispone de su propia memoria principal y
sus canales de E/S. En este contexto se utiliza frecuentemente el trmino multicomputador.
Procesadores de Uso Especfico: Tales como un procesador de E/S. En este caso, hay un
maestro, una CPU de uso general, y los procesadores de uso especfico estn controlados
por la CPU maestra a la que proporcionan ciertos servicios.

47

Multiprocesadores fuertemente acoplados - Constituidos por un conjunto de procesadores


que comparten una memoria principal comn y estn bajo el control de un mismo sistema
operativo.
Procesadores paralelos - Multiprocesadores fuertemente acoplados que pueden cooperar
en la ejecucin en paralelo de una tarea o un trabajo.
El procesamiento en paralelo se basa principalmente en Multiprocesadores fuertemente
acoplados que cooperan para la realizacin de los procesos, aqu sus caractersticas.
Posee dos o ms procesadores de uso general similares y de capacidades comparables.
Todos los procesadores comparten el acceso a una memoria global.
Tambin pueden utilizarse algunas memorias locales (privadas como la cache).
Todos los procesadores comparten el acceso a los dispositivos de E/S, bien a travs de los
mismos canales bien a travs de canales distintos que proporcionan caminos de acceso a
los mismos dispositivos.
El sistema est controlado por un sistema operativo integrado que permite la interaccin
entre los procesadores y sus programas en los niveles de trabajo, tarea, fichero, y datos
elementales.
La ganancia de velocidad y la ampliabilidad son dos aspectos importantes en el estudio del
paralelismo, la ganancia de velocidad se refieres a la ejecucin en menor tiempo de una
tarea dada mediante el incremento del grado de paralelismo, la ampliabilidad se refiere al
manejo de transacciones ms largas mediante el incremento del grado de paralelismo.
Considrese un sistema paralelo con un cierto nmero de procesadores y discos que est
ejecutando una aplicacin de base de datos, supngase ahora que se incrementa el tamao
del sistema aadindole ms procesadores, discos y otros componentes. La ampliabilidad
est relacionada con la capacidad para procesar ms largas e el mismo tiempo mediante el
incremento de los recursos del sistema.

VENTAJAS Y DESVENTAJAS
Existen algunos factores que trabajan en contra de la eficiencia del paralelismo y pueden
atenuar tanto la ganancia de velocidad como la ampliabilidad.
Costes de inicio: en una operacin paralela compuesta por miles de proceso, el tiempo de
inicio puede llegar ser mucho mayor que le tiempo real de procesamiento, lo que influye
negativamente en la ganancia de velocidad.
Interferencia: como lo procesos que se ejecutan en un proceso paralelo acceden con
frecuencia a recursos compartidos, pueden sufrir un cierto retardo como consecuencia de

48

la interferencia de cada nuevo proceso en la competencia, este fenmeno afecta tanto la


ganancia de velocidad como la ampliabilidad.
Sesgo: normalmente es difcil dividir una tarea en partes exactamente iguales, entonces
se dice que la forma de distribucin de los tamaos es sesgada.
El procesamiento paralelo implica una serie de dificultades a nivel programacin de
software, es difcil lograr una optimizacin en el aprovechamiento de los recursos de todas
las CPU con el que se est trabajando sin que se formen cuello de botella. En muchas de las
ocasiones no es posible el trabajar con equipos multiprocesadores dado el elevado costo
que este representa, as que solo se dedica a ciertas reas de investigacin especializada o
proyectos gubernamentales o empresariales.

49

Conclusin
A lo largo de lo estudiado en la unidad, se puede llegar a decir que se pudo observar una
parte del paralelismo y su importancia en las computadoras, pero tambin en las redes, que
son una parte muy importante, el paralelismo es importante pero tambin puede llegar a
ser un problema, por la cantidad de requerimientos y procesos que ocupa, adems de las
cantidades de energa y recursos que gastan, pero es que es de lo mejor con lo que se puede
trabajar hoy en da y actualmente la mayora de las personas estn acostumbradas a usar
un sistema con paralelismo, pero tambin se estudi las arquitecturas secuenciales, con el
fin de conocer las diferencias entre paralelo y secuencial, se logr apreciar las diferencias
entre ambas arquitecturas, como von Neumann trabajo de una forma secuencial mientras
que Flynn decidi mejorar y usar el paralelismo, dentro de las redes vistas, tenemos las
dinmicas o indirectas, de uso compartido, conmutadas y la coherencia de la cache, la cual
tambin es importante porque nos habla sobre los problemas que tiene la cache al trabajar
con 2 procesadores, los Clusters que son tambin son mencionados en la unidad, son
sistemas paralelos de alto rendimiento, estabilidad, etc. Su programacin y sus
rendimientos tambin son importantes de mencionar para poder, comprenderlos en su
totalidad, esto fue parte de esta unidad nmero 4, an hay muchsimas ms informacin,
pero en la brevedad se ha presentado lo ms importante de estos temas para conocer un
poco, del procesamiento paralelo

50

Bibliografa
https://prezi.com/u5hougkfuj_r/unidad-4-procesamiento-paralelo/
http://www.monografias.com/trabajos16/arquitectura-paralela/arquitecturaparalela.shtml
http://procesamientoparalelo.blogspot.mx/2013/11/42-tipos-de-computacionparalela.html
http://tinomenosesmas.blogspot.mx/2012/01/que-es-la-computacion-paralela.html
https://prezi.com/xsfiyilt4kwr/taxonomia-de-las-arquitecturas-paralelas/
http://electro.fisica.unlp.edu.ar/arq/transparencias/ARQII_08-MIMD_A4x6.pdf
http://www.fing.edu.uy/inco/cursos/hpc/material/clases/Clase2-2009.pdf
http://www.mundodescargas.com/apuntes-trabajos/informatica/decargar_arquitecturasavanzadas.pdf
http://galia.fc.uaslp.mx/~cantocar/z8plus/documentos/espacio.pdf
http://informatica.uv.es/iiguia/AAC/AA/apuntes/aic_intro.pdf
http://galia.fc.uaslp.mx/~cantocar/z8plus/documentos/espacio.pdf
http://informatica.uv.es/iiguia/AAC/AA/apuntes/aic_multiproc.pdf
http://www.dea.icai.upco.es/jarm/Asignaturas/ArquitecturaOrdenadores/Transparencias
/Dmulticache.pdf
http://arquitecturaencomputadoras12.blogspot.mx/2012/12/sistemas-secuencialessincronos.htmlhttp://www.infor.uva.es/~bastida/Arquitecturas%20Avanzadas/Redes.pdf
https://prezi.com/-gvjeip3knaq/cluster-programacion-de-cluster-consideracion-sobre-elrendimiento-del-cluster/
https://prezi.com/1rhblo1ollwq/431-redes-de-interconexion-dinamicas-o-indirectas/
http://itcv-arquitectura-de-computadoras.blogspot.mx/2014/11/45-casos-deestudio.html
https://www.fing.edu.uy/cluster/grupo/cluster_arquitectura_y_aplicaciones.pdf

51

También podría gustarte