You are on page 1of 25

ARQUITECTURA E INGENIERIA DE COMPUTADORES

MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


1

Tema 3. Multiprocesadores
3.1. Dominios de aplicacion.
3.2. Arquitecturas con memoria centralizada.
3.3. Arquitecturas con memoria distribuida.
3.4. Sincronizacion.
3.5. Modelos de consistencia de memoria.
3.6. Modelos de interconexion.
3.7. Ejemplos.
3.1. Dominios de aplicacin
Obviamente el campo de aplicacion de los multiprocesadores sera aquel en el cual la
complejidad de las operaciones que se quieren realizar aumenten de manera exponencial. Una
solucion para disminuir el tiempo de computo es aadir mas procesadores. Esto conduce a
problematicas nuevas con nuevas arquitecturas y soluciones imaginativas para resolver dichos
problemas.
En la actualidad hay problemas que demandan una capacidad de calculo superior a la
que suministran los ordenadores disponibles. Por ejemplo, el procesamiento en tiempo real de la
inIormacion procedente de los satelites artiIiciales precisa de un computador con una velocidad
de procesamiento de 10
13
operaciones de punto Ilotante por segundo, 10TIlop.
Otro ejemplo: para que un equipo de cirujanos pudiera simular una intervencion quirurgica sin
tocar al paciente (se entiende rotar imagen a gusto del operador, ver secciones transversales de
ciertos organos, observar movimientos, simular operaciones sobre los organos, ...) se precisarian
del orden de 1000 TIlops.
Hoy en dia, los procesadores disponibles diIicilmente son capaces de alcanzar algunos
centenares de MIlops.
Otros ejemplos de problemas que necesitan grandes velocidades de procesamiento son
la investigacion de nuevas medicinas, las pruebas de aviones, el analisis de datos sismologicos y
geologicos, la resolucion de sistemas de ecuaciones diIerenciales para diversos campos (Iisica
atomica y nuclear, modelado del clima y de los oceanos, ...).
En los ultimos cuarenta aos se han conseguido aumentos drasticos en al velocidad de
calculo, en gran medida debidos al uso por parte de los Iabricantes de componentes electronicos
inherentemente rapidos.
DesaIortunadamente, es evidente que esta tendencia pronto terminara. El Iactor que hara de
Ireno es la ley Iisica que da la velocidad de la luz en el vacio. Si suponemos que un dispositivo
electronico realiza 10
12
operaciones por segundo, una seal que codiIique 1 bit tarda mas en ir
de un dispositivo a otro que diste del primero 0.5 mm que lo que tardan los dispositivos en
procesarla. Es decir, todo el aumento de velocidad que se consigue construyendo componentes
electronicos super-rapidos se pierde cuando un componente esta esperando la seal que otro ha
de enviarle.
Por tanto, lo primero que hay que decir es que los procesadores del Iuturo de cualquier
tamao tendran mucho mas paralelismo que los actuales. Las personas que comprendan las
aplicaciones, algoritmos y arquitecturas estaran preparadas para esta actividad.

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


2
Como el paralelismo puede presentarse a muchos niveles, es util categorizar las
alternativas. En 1966 Flynn propuso un sencillo modelo de clasiIicacion de computadores que
todavia se utiliza. Escrutando los componentes mas constreidos de la maquina, conto el
numero de instrucciones paralelas y el Ilujo de datos y despues clasiIico los computadores de la
siguiente manera:
- Flujo unico de instrucciones, Ilujo unico de datos (SISD, el uniprocesador).
- Flujo unico de instrucciones, Ilujos multiples de datos (SIMD).
- Flujos multiples de instrucciones, Ilujo unico de datos (MISD).
- Flujos multiples de instrucciones, Ilujos multiples de datos (MIMD).
Algunas maquinas son hibridas de estas categorias, pero seguiremos con este modelo
clasico porque es sencillo, Iacil de comprender y es bueno como primera aproximacion.
Tambien (quiza debido a su Iacilidad de comprension) es el esquema que mas se utiliza.
Dentro de las lineas de desarrollo de las arquitecturas paralelas tenemos a los
Multiprocesadores y Multicomputadores que presentan 2 modelos arquitecturales basicos:
- Multiprocesadores con Memoria Compartida.
- Multiprocesadores con Memoria Distribuida.
Previamente a describir cada una de ellas citaremos las caracteristicas Iundamentales de
ambas.
Memoria Compartida Centralizada:
- N pequeo de microprocesadores (unas pocas docenas).
- Caches suIicientemente grandes bus memoria compartida central.
- Muy popular
Memoria Distribuida:
- OIrece la solucion al ancho de banda.
- Necesario un sistema de interconexion que proporcione el ancho de banda
necesario.
3.2 Arquitecturas con memoria centralizada
Describiremos 3 modelos basicos dentro de las arquitecturas con memoria centralizada
y a continuacion describiremos las caracteristicas basicas de este tipo de arquitecturas.
- Modelo UMA (The UniIorm Memory Access).
- Modelo NUMA (NonUniIorm Memory Access).
- Modelo COMA (Cache Only Memory Architecture).
Modelo UMA.
- Memoria Iisica uniIormemente compartida por todos los procesadores.
- Todos los procesadores presentan el mismo tiempo de acceso a todas las palabras de
memoria.
- Cada procesador puede emplear una cache privada.
- Los periIericos se comparten de la misma manera.
- Es utilizado por el SO Hydra.
La mayoria de los Iabricante realizan este tipo de microprocesadores como una
extension de su linea de productos, esto es, una extension de sus uniprocesadores. Los modelos
UMA estan disponibles tanto para aplicaciones de proposito general como para aplicaciones
criticas en tiempo. Para coordinar eventos paralelos o concurrentes, se emplean mecanismos de
sincronizacion y comunicacion basados en el uso de variables compartidas dentro de la memoria
comun.

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


3
Podemos ver un ejemplo de arquitectura en la siguiente Iigura:


Modelo NUMA
- Multiprocesador con un sistema de memoria compartida en el cual el tiempo de
acceso varia dependiendo de la ubicacion de la palabra de memoria.
- La memoria compartida se distribuye Iisicamente por todos los procesadores
(memorias locales).
- El conjunto de memorias locales Iorma el espacio de direccionamiento global
accesible por todos los procesadores.
- La coherencia de la cache se consigue con directorios distribuidos.
- El StanIord Dash es un multiprocesador NUMA.
Es mas rapido acceder a la memoria local de un procesador que a la de otros. Ademas
de esas memorias locales se puede aadir a ese sistema una memoria compartida, que no
pertenece Iisicamente a ningun procesador. Normalmente, el conjunto de procesadores se
dividen en grupos llamados 'clusters. A su vez, cada cluster puede ser el mismo un sistema
UMA o NUMA, y los cluster estar internamente organizados con modulos de memoria
compartida.






A continuacion podemos ver un esquema de un sistema NUMA.


ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


4

Fig. 3.2 Modelo NUMA para sistemas Multiprocesadores
Modelo COMA
- Caso especial del NUMA.
- La memoria principal se convierte a cache.
- No existe una jerarquia de memoria en cada procesador. Todas las caches Iorman
un espacio de direccionamiento global.
- El KSR1 en un modelo tipico de COMA.



Modelo COMA





Resumiendo, podemos decir que los sistemas multiprocesadores son adecuados para
aplicaciones multiusuario de proposito general. Su principal problema es la Ialta de

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


5
escalabilidad y el tiempo de latencia para acceso a memorias remotas. Son sistemas Iacilmente
programables. Como veremos, un sistema multicomputador es mas escalable pero menos
programable porque hay que aadir los protocolos de comunicacion.

Un esquema de arquitectura de computador con memoria centralizada seria el siguiente:





Fig. 3.3 Memoria Centralizada







Como caracteristicas Iundamentales de las arquitecturas con memoria compartida podemos
destacar las siguientes:
- Aprovecha las ventajas de la memoria cache jerarquizada (2 niveles de cache). Por
tanto, resuelve el problema del ancho de banda para 1 procesador
- Pueden haber datos privados y compartidos en una misma cache.
- Al poder haber datos compartidos en una cache hemos de implementar protocolos
de coherencia de cache.

3.3 Arquitecturas con memoria distribuida
Podemos ver un esquema de distribucion en la Iigura siguiente:


ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


6

Fig. 3.4 Arquitectura con memoria distribuida
Como caracteristicas basicas de la arquitectura con memoria distribuida podemos distinguir:
- Exclusion de la coherencia de cache (Hardware mas sencillo).
- Protocolos basados en directorios (que procesadores tienen copias de un bloque y
estado del bloque) con invalidacion de escritura.
- Directorios distribuidos (como la memoria).

3.4 Sincronizacin
Como sincronizacion se entiende una Iorma especial de comunicacion en la cual se
intercambia inIormacion de control (en lugar de datos) entre los procesos residentes en el mismo
o distinto procesador. La sincronizacion trata de asegurar una correcta secuencia de entrada de
los procesadores y un acceso mutuamente excluyente a datos compartidos con permiso de
escritura. La sincronizacion se puede implementar a traves de soItware, Iirmware o hardware a
traves de la comparticion controlada de datos e inIormacion de control en memoria.
Los sistemas multiprocesador usan mecanismos hardware para implementar operaciones
de bajo nivel y soItware para operaciones de niveles mas altos (mecanismos tipo semaIoros,
regiones criticas o monitores).
Operaciones atomicas
La mayoria de los multiprocesadores se equipan con mecanismos hardware para
operaciones tipo lectura, escritura, lectura-modiIicacion-escritura, que se pueden usar para
implementar algunas primitivas de sincronizacion.
Por ejemplo, las primitivas de sincronizacion, Test&Set (lock) y Reset (lock), se deIinen de la
siguiente manera:

Test&Set (lock)
Templock; lock1;
Return temp;

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


7

Reset (lock)
Lock0;

Test&Set se implementa con las operaciones de memoria de lectura-modiIicacion-
escritura. Para sincronizar procesos concurrentes, el soItware puede repetir Test&Set hasta que
el valor retornado sea 0. Esta primitiva de sincronizacion puede durar algunos ciclos de bus,
viendo los procesadores que el bus esta ocupado. Para evitar esto, se pueden usar mecanismos
de interrupcion entre los procesadores.
Un bloque asociado a una interrupcion se llama bloqueo suspendido (suspend lock). Al
usar tal bloqueo un proceso no ocupa al procesador mientras esta esperando.
Los procesos residentes en diIerentes procesadores se pueden sincronizar usando
barreras (barriers). Una barrera se puede implementar a traves de una palabra de memoria
compartida que almacena el numero de procesos que alcanzan la barrera. Despues de que todos
los procesos han actualizado el contador de barrera, se dice que se ha alcanzado el punto de
sincronizacion.
Esto se puede lograr con logica cableada para implementar un mecanismo de sincronizacion
rapido.




Cada procesador usa una palabra de control X(X1, .., Xm) y accede a una zona de
memoria compartida Y(Y1, ..., Ym), donde m corresponde a las lineas usadas para Iormar la
barrera. Cuando la linea de barrera alcanza el valor 'todo 1, signiIica que todos los procesos
han terminado su trabajo y nuevos procesadores pueden tratar de acceder a zonas de memoria
compartida.
3.5 Modelos de consistencia de memoria
3.5.1 Fuentes de incoherencia entre las caches de los multiprocesadores
Cuando hay una jerarquia de memoria las incoherencias de datos pueden ocurrir
entre niveles adyacentes de la jerarquia o dentro de un mismo nivel. En los multiprocesadores,
cada procesador suele tener asociada una cache local y ello introduce el problema de la
coherencia en cache: cualquier modiIicacion local de una determinada posicion de la memoria

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


8
compartida se realizara primeramente sobre una cache local y ello puede dar lugar a una vision
global incoherente de la memoria. Asi pues, el problema de la incoherencia cache ocurre solo
cuando se utilizan varias caches privadas. La principal Iuente de incoherencia cache es la
escritura sobre posiciones de memoria compartidas, aunque hay otras causas como son la
migracion de procesos y la actividad de I/O.









Protocolos de coherencia cache
Para mantener la coherencia en un sistema multiprocesador con multiples caches se
establece un protocolo de coherencia. Dicho protocolo es un conjunto de reglas que deIinen una
serie de operaciones auxiliares a realizar cada vez que se accede a una posicion de memoria
compartida y destinadas a asegurar que nunca pueda aparecer una situacion de incoherencia en
ese sistema de memoria. Dichas operaciones auxiliares seran llevadas a cabo por los
controladores de las caches y de la memoria principal. Hay dos tipos de protocolos de
coherencia: los snoopy y los basados en directorios.
3.5.2 Protocolos Snoopy
Los protocolos snoopy sirven para asegurar la coherencia en los sistemas
multiprocesadores con bus comun. Estos protocolos mantienen la coherencia a traves de un
mecanismo de observacion del bus. Su Iuncionamiento se basa en que cada cache observa o
'curiosea (snoop) todas las operaciones de memoria de las otras caches, pues todas se llevan a
cabo a traves de un bus comun. Si un controlador detecta que una transaccion a traves del bus

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


9
amenaza el estado de coherencia de un objeto alojado en una cache, el controlador de cache
lleva a cabo las acciones adecuadas para invalidar la o las copias locales que haga Ialta.
Cuando un objeto depositado en una cache local esta marcado como invalidado, un acceso a el
implica un Iallo cache y por tanto la necesidad de acceder a memoria compartida para su
actualizacion; a este tipo de mecanismo se le denomina de escritura invalidante porque cada vez
que se escribe sobre un objeto de memoria compartido se invalidan todas las demas copias del
mismo. Frente a ese mecanismo se puede proponer uno de escritura actuali:ante en el que en
lugar de invalidar las copias locales estas Iueran actualizadas con el nuevo valor; pero esta
solucion no se utiliza porque generaria latencias demasiado elevadas de escritura en memoria.
La implementacion de protocolos snoopy es diIerente segun se este utilizando caches
WT (Write Through) o WB (Write-Back)
Write-Back Cache: Also called "copy back" cache, this policy is "Iull" write caching oI the system memory. When a
write is made to system memory at a location that is currently cached, the new data is only written to the cache, not
actually written to the system memory. Later, iI another memory location needs to use the cache line where this data is
stored, it is saved ("written back") to the system memory and then the line can be used by the new address.
Write-Through Cache: With this method, every time the processor writes to a cached memory location, both the cache
and the underlying memory location are updated. This is really sort oI like "halI caching" oI writes; the data just written
is in the cache in case it is needed to be read by the processor soon, but the write itselI isn't actually cached because we
still have to initiate a memory write operation each time.
Protocolos snoopv en caches WT
El protocolo establece que una copia de un bloque presente en la cache i unida
al procesador i puede asumir uno de dos estados, valido o invalido. Dicho estado es almacenado
en la propia cache que contiene la copia, y sera establecido por accion de los controladores
cache.

Un procesador remoto se denota como j, donde ji. Consideremos un estado inicial
valido, cuando un determinado bloque de datos esta copiado en una o varias caches y en
memoria principal, y en todas ellas contiene lo mismo. A partir de ese punto y en Iuncion de las
operaciones que se lleven a cabo el controlador lo ira marcando como valido o invalido. Las
operaciones que se pueden llevar sobre un bloque de memoria son:
- R(i), W(i), Z(i): lectura, escritura y reemplazamiento respectivamente del bloque de
memoria por parte del procesador local.
- R(j), W(j), Z(j): lectura, escritura y reemplazamiento respectivamente del bloque de
memoria por parte de otro procesador sobre su propia copia de ese bloque de
memoria (que estara depositada en su propia cache local).
La evolucion de estado se describe considerando todo desde el punto de vista de una
determinada cache local.
En un estado valido, todos los procesadores pueden leer con seguridad (R(i), R(j)). El
procesador local tambien puede escribir (W(i)), pero si otro procesador j escribe sobre su copia
j, la copia i resultara invalidada. Si el procesador local reemplaza el marco de bloque que aloja a
la copia i (Z(i)), esta resultara invalidada; pero si cualquier otro procesador j reemplaza su
propia copia j esto no aIecta al estado valido de la copia i (Z(j)).
Si partimos de un estado invalido de la copia en la cache i, dicho bloque vuelve a ser
valido cuando se realiza una lectura del procesador i sobre el (R(i)), pues ello da lugar a un Iallo
de lectura y por tanto el traer una copia actualizada desde memoria principal de la inIormacion
buscada. Tambien pasa a valido en una operacion de escritura del procesador i (W(i)), pues se
trata de una cache de escritura a traves. Cualquier otra operacion que se realice (R(j), W(j), Z(j)
o Z(i)) seguira dejando la copia i del bloque en estado invalido.


ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


10
Protocolos Snoopv en caches WB
Vamos a comentar un ejemplo sencillo de un protocolo de coherencia caches para
caches WB. Cada copia cache puede estar en tres estados: RW (Lectura-escritura), RO (solo
lectura) y INV(invalido).
Consideremos un bloque en la cache i en estado INV. Cuando dicho bloque es leido por
el procesador i (R(i)) se produce un Iallo cache, y la copia actualizada que se deposita en cache i
se coloca en estado RO. Si el mismo i u otro procesador j leen el bloque, no se altera su estado
RO, no tampoco si uno j reemplaza una copia local suya (Z(j)). Pero si otro j escribiera su copia
(W(j)), la copia del i pasaria a estado INV, y lo mismo sucederia si el procesador i reemplazara
el marco que contiene a su copia del bloque.
Si el procesador i escribe sobre su propia copia (W(i)) esta pasa a un estado RW. En el,
como es una cache WB, la inIormacion de la cache no coincide con la de memoria principal.
Por tanto, en estado RW solo habra una copia en una cache local de esa inIormacion
actualizada. Si otro procesador quiere leer ese bloque (R(j)), se obliga a que el controlador de
cache i actualice la memoria principal, y despues el procesador j recibira de memoria principal
su copia actualizada, y asi las caches i y j y la memoria principal tienen copias coherentes del
bloque, y la copia i pasa a estado RO. Si estando en estado RW otro procesador j escribe sobre
su copia (que estara en estado INV) la copia i pasara a reemplazado por el procesador i, aunque
en ese caso debe tenerse en cuenta que al ser una cache WB antes de ser reemplazado debe
actualizar con su inIormacion a la copia de ese bloque depositada en memoria principal, y que
contenia una inIormacion obsoleta. Finalmente, si el bloque en i esta en estado INV y el
procesador i escribe sobre el automaticamente esa copia pasa a estado RW, y se convierte en la
unica copia actualizada de esa inIormacion que hay en el sistema.
Hay otros muchos protocolos snoopy para caches WB, entre los que se pueden comentar
el protocolo Goodman y las diversas variantes de protocolo MESI como son el Futurebus y los
utilizados en diversos miroprocesadores actuales (por ejemplo, los distintos modelos Pentium)
ya diseados para construccion de multiprocesadores.




3.5.3 Protocolos basados en directorios
Los protocolos de coherencia cache basados en directorios se utilizan en los
sistemas multiprocesador construidos utilizando redes punto a punto o redes multietapa.

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


11
En tales redes no existe un mecanismo adecuado de observacion de todas las
transacciones con la memoria y ademas no hay capacidad de broadcast, por lo que seria
imposible implementar un protocolo snoopy. Como en estas redes algunos procedimientos de
comunicacion a todos los nodos son muy caros de implementar, los comandos de consistencia
deberan ser solo enviados a aquellas caches que guarden una copia del bloque, y ello conduce a
la necesidad de que exista inIormacion almacenada en determinados nodos sobre que es lo que
contienen otros nodos, y esos almacenes son los directorios de inIormacion cache que utilizan
estos protocolos y que les dan su nombre.
Estructuras de directorios.
Se utilizan directorios cache para almacenar inIormacion sobre donde residen copias de los
bloques cache. Los diIerentes protocolos de este tipo diIieren en que inIormacion contienen esos
directorios y como se mantiene la misma.
Primeramente podemos distinguir dos tipos de esquemas:
1. Sistemas basados en directorio centralizado: este contiene toda la inIormacion necesaria
para mantener la consistencia. Es sencillo de implementar pero tiene el inconveniente
de que el directorio central actua como cuello de botella para los accesos.
2. Sistemas basados en directorios distribuidos: cada modulo de memoria contiene un
directorio separado que inIorma sobre donde hay copias de los bloques de memoria que
contiene, y sobre cual es el estado de esas copias.

En la Iig. se ilustra el Iuncionamiento de un sistema de directorios distribuidos.En ella, un
Iallo de lectura en la cache 2 (lineas delgadas) da lugar a una peticion de envio para el modulo
de la memoria. En el directorio D1 hay inIormacion sobre los bloques de memoria del modulo
1que dice que la copia depositada en memoria es obsoleta, y que la copia actualizada del bloque
esta en la cache C1 (a ese tipo de copias se las suele denominar "sucias"). El controlador de
memoria retransmite la peticion a la copia en la cache 1.



Esta cache escribe por diIerido su copia, hacia memoria principal, y despues el modulo de
memoria puede proporcionar una copia a la cache solicitante. En el caso de un acierto de
escritura en la cache (lineas gruesas), se envia un comando al controlador de la memoria, la cual
envia invalidaciones para todas las caches (cache 2) en las que hay copias del bloque, segun la
inIormacion contenida en el directorio D1.
Los directorios de cache estan constituidos por entradas, un entrada para cada bloque de la
memoria cubierta por ese directorio, y esa entrada contiene varios punteros que especiIican en
que caches locales estan las copias de ese bloque. Ademas, cada directorio contiene un bit de
"sucio" que especiIica cuando un solo procesador puede escribir sobre su copia local de ese
bloque. Independientemente de la inIormacion almacenada en los directorios cache, en cada
cache se almacena inIormacion sobre el estado de los bloques en ella depositados, analogamente
a lo que comentabamos en los protocolos snoopy.
Segun como se organizan internamente los directorios, hay tres grupos de protocolos basados en
directorio: los basados en directorios Iull-map, los basados en directorios limitados y los
basados en directorios encadenados.
Directorios full-map.
Los directorios Iull-map se caracterizan porque cada entrada de directorio contiene N bits,
siendo N el numero de procesadores del sistema, y un bit mas de sucio. En la Iig. se ilustran esta
estructura. Asi, para cada entrada, hay N bits de presencia en procesador, uno por cada
procesador del sistema donde se indica en que procesadores hay copias validas del bloque.
Si el bit de sucio esta activo, solo un bit de procesador estara en "presente" y quiere
decir que la posicion de memoria no contiene inIormacion actualizada. Observese que la

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


12
cantidad de memoria consumida por el directorio es proporcional al tamao de la memoria (que
sera proporcional al numero de procesadores) y al tamao de cada entrada (que es proporcional
tambien al numero de procesadores) por lo que el consumo total de memoria en un esquema
Iull-map crece segun el cuadrado del numero de procesadores.

Directorios limitados
Los directorios limitados se diIerencian de los Iull-map en que tienen un numero Iijo de
bits por entrada, segun el tamao del sistema. Y son una alternativa a los Iull-map para resolver
el problema del tamao de los directorios. Puede surgir el problema de que se tengan mas copias
que bits para un bloque, y en ese caso habra que invalidar alguna de las copias, simplemente
porque no se puede reIlejar su presencia en el directorio. Esta mecanica se ilustra en la Iig.

Para proceder a ese reemplazamiento se establece una estrategia para determinar que
bloque debe ser cantidato al desplazamiento. Si el sistema multiprocesador exhibe localidad de
procesadores en el sentido de que en cada intervalo de tiempo solo un pequeo conjunto de
todos los procesadores acceden a una palabra de memoria dada, entonces el directorio limitado
es suIiciente como para mantener inIormacion de ese pequeo conjunto de procesadores.

Directorios encadenados
Los directorios encadenados mantienen inIormacion para un numero no limitado de
copias por bloque pero la mayor parte del directorio se distribuye dentro de las propias caches
locales de los procesadores. Las entradas de directorio se organizan en Iorma de lista enlazada.
La primera entrada de esta lista se encuentra en memoria principal y contiene un
puntero que indica en que cache esta la primera copia; esa copia a su vez contiene un puntero
que indica en que cache esta la segunda copia, y asi sucesivamente hasta llegar a una copia que
contiene un puntero de Iinal de lista. Se denomina de directorios encadenados porque se
establece utilizando el encadenamiento de una lista enlazada. Un ejemplo puede verse ilustrado
en la Iig. Cuando se invalida un bloque, este debe ser sacado de la lista lo cual complica el
Iuncionamiento de este esquema respecto a los que antes han sido comentados. En ocasiones,
para simpliIicar el manejo de la lista o cadena se utiliza una lista cadena doblemente enlazada,
que mantiene punteros hacia adelante y hacia atras en cada punto de la cadena.


ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


13




ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


14
3.6 Modelos de interconexin


En la Iig. puede verse un sistema multiprocesador generalizado. Cada procesador Pi esta
conectado a su propia memoria local y su cache privada. Hay diversos procesadores conectados
a modulos de memoria compartida a traves de una red interprocesador-memoria (IPMN). Los
procesadores comparten el acceso a I/O y dispositivos periIericos a traves de una red opcional
interprocesador (IPCN) en lugar de hacerlo a traves de la memoria compartida.
Caracteristicas de las redes de interconexion (Network Characteristics)

Cada uno de los tipos de redes se pueden disear de multiples maneras. La eleccion se
basa en la topologia, protocolo temporal, metodos de conmutacion o estrategia de control. El
tiempo, mecanismo de conmutacion y el control son las tres caracteristicas Iundamentales de
una red de interconexion.
1. Asi, el control temporal, puede ser sincrono o asincrono. Las redes sincronas se
controlan por un reloj global que sincroniza todas las actividades de la red. Las
redes asincronas presentan mecanismos de interbloqueo para coordinar las
peticiones de uso de dispositivos lentos y rapidos sobre la misma red.
2. La red puede transIerir datos siempre por un mismo camino o bien troceando la
inIormacion y enviando los distintos paquetes por caminos que pueden ser
diIerentes.
3. La red puede tener una estrategia de control centralizada o distribuida. Con la
centralizada, un controlador global recibe peticiones por parte de los
dispositivos presentes en la red y asigna el acceso a la misma a uno o varios
peticionarios. En una red distribuida, los peticionarios se manipulan por
dispositivos locales independientes.
Estado de las redes
Dependiendo de la conexiones usadas entre estados, podemos distinguir entre redes de
un unico estado y redes multiestado.
- Redes Single-State (De una sola etapa). Tambien llamadas redes recirculantes
(recirculating networks) debido a que los datos pueden estar en un unico estado el
tiempo que sea necesario hasta alcanzar su destino. Son mas baratas de construir,
pero se pueden necesitar multiples pases para establecer una conexion.
- Redes Multiestado. Deben ser capaces de conectar cualquier entrada a cualquier
salida.

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


15
Redes bloqueantes frente a no bloqueantes
Una red se llama bloqueante si la conexion simultanea de ciertos pares de entrada-salida
puede dar lugar a conIlictos en el uso de conmutadores y enlaces de comunicacion. Una red no
bloqueante sera justamente aquella en la cual no se pueden dar dichos conIlictos.
Propiedades de las redes
Los diversos elementos que integran un computador paralelo se conectan Iormando una
red con nodos y enlaces. Los nodos intercambian datos utilizando los enlaces. La estructura de
enlaces de la red deIine su topologia, o a veces tambien se denomina conectividad. La topologia
de una red de interconexion puede ser tanto estatica como dinamica. Las redes estaticas estan
Iormadas por enlaces punto a punto que no cambian durante la ejecucion del programa. Las
redes dinamicas se implementan con canales conmutados, los cuales son dinamicamente
conIigurados para responder a la demanda de comunicacion en los programas de los usuarios.
Las redes estaticas son usadas para conexiones Iijas o para sistemas centralizados o
diIerentes nodos de un sistema multicomputador. Las redes dinamicas incluyen buses,
conmutadores crossbar, y redes multietapa.
Antes de analizar las diIerentes topologias de red vamos a deIinir diversos parametros y
caracteristicas que sirven para caracterizar las redes. En general, una red se representa por
medio de un graIico con un numero Iinito de nodos enganchados por conexiones dirigidas o no
dirigidas. El numero de nodos del graIico es el tamao de la red.
- Grado de nodo. El numero de enlaces que incide sobre un nodo es lo que se
denomina el grado de nodo d. En el caso de canales unidireccionales, el numero de
enlaces que van hacia un nodo es el grado de entrada, y el de los que salen es el
grado de salida. Por tanto, el grado del nodo es la suma de los dos. El grado de nodo
reIleja el numero de puertos de I/O que se requieren por nodo, y por tanto, el coste
de un nodo. El grado de nodo debe ser constante en la medida de lo posible, a Iin de
rebajar costos. Un grado de nodo constante permite por otra parte conseguir mas
Iacilmente modularidad en la construccion de bloques para sistemas escalables.
- Diametro de la red. Es la mas larga de las longitudes de la ruta que une dos nodos
por el camino mas corto posible, estando esas longitudes medidas en numero de
enlaces atravesados para ir desde un nodo hasta el otro. Desde el punto de vista de
comunicacion, el diametro de la red debe ser tan pequeo como sea posible.
- Anchura de biseccion. Cuando una red dada es dividida en dos mitades iguales, el
minimo numero de enlaces cruzados por el corte se denomina la anchura de
biseccion b. En el caso de una red de comunicaciones, cada enlace corresponde a un
canal con w hilos de 1 bit. Por tanto, la anchura de biseccion a nivel de bit es Bbw.
Este parametro B reIleja la densidad de cables de la red. Si B es Iijo, la anchura del
canal en bits es wB/b. Por lo tanto, la anchura de biseccion suministra un buen
indicador del maximo ancho de banda de comunicacion a lo largo de la red. Todas
las demas secciones estaran acotadas por la anchura de biseccion.
- Longitud de enlace entre nodos. Es la longitud del cable que sostiene ese enlace
entre dos puntos. Tambien se denomina longitud de canal. Este parametro aIecta a
la latencia de la seal, deIormacion de la seal de reloj o requerimientos de
alimentacion.
- Simetria. Diremos que una red es simetrica si la topologia es la misma mirando
desde cualquier nodo. Las redes simetricas son mas Iaciles de implementar y de
programar.
- Broadcast v Multicast. Se habla de broadcast cuando hay una conexion de uno a
todos. Se habla de multicast cuando hay una conexion de un subconjunto a otro
subconjunto. El broadcast personalizado permite el envio de mensajes
personalizados a los receptores seleccionados; se puede conseguir utilizando
codigos de destino en la red.

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


16
- Rendimiento de la red. El rendimiento de una red de interconexion es un concepto
amplio que engloba los siguientes aspectos:
1. Funcionalidad: como soporta la red el encaminamiento de datos,
manejo de interrupciones, sincronizacion, peticiones y envios de
mensaje, y coherencia.
2. Latencia de la red: hace reIerencia al tiempo de retardo maximo que
puede darse para que un mensaje unidad sea transIerido a traves de
la red.
3. Ancho de banda: hace reIerencia a la maxima velocidad de
transIerencia en Mbytes/s a traves de la red.
4. Complejidad hardware: costes de implementacion Iisica.
5. Escalabilidad: se reIiere a la posibilidad de que la red pueda
expandirse modularmente con un rendimiento escalable cuando se
incrementan los recursos maquina.
- Capacidad de paso de una red. Se deIine como el numero total de mensajes que la
red puede manipular por unidad de tiempo.
- Punto caliente. Es un par de nodos que acumula una porcion
desproporcionadamente grande del total de traIico de la red. Los puntos calientes
pueden degradar el rendimiento de la red entera, causando congestion. La capacidad
de paso de punto caliente de una red es la maxima velocidad a la que los mensajes
pueden ser enviados desde un nodo especiIico Pi a otro especiIico Pj.
Encaminamiento de datos
La principal aplicacion de una red de interconexion es llevar ( encaminar) datos desde
un nodo hasta otro. Para ello puede ser necesario atravesar muchos nodos intermedios, y en ese
caso, cada uno de ellos debe conocer cual es el siguiente nodo hacia el que debe enviar un
determinado paquete de datos. Esa decision se establece basandose en la utilizacion de una
Iuncion de encaminamiento de datos.
Cada red o cada parte de una red de interconexion podemos verla como una caja negra
con entradas y salidas. La red, en su interior, contiene una Iuncion de encaminamiento que
desde una entrada nos llevara a una salida, y esto para cada entrada que se escoja. La red tendra
tantas entradas como salidas; las entradas podemos numerarlas 1, 2, ..., n, y las salidas tambien.
En cada momento, la red establece una conexion entre cada entrada con una salida.
Recordemos que las Iormas posibles en que n elementos pueden ser reordenados es n!
permutaciones.
Asi, el concepto de permutacion es util para estudiar el encaminamiento en las redes porque
para establecer un posible encaminamiento basta representar una lista de entradas Irente a una
lista de salidas.
En general, las redes no pueden implementar todas las permutaciones posibles de las n
entradas/salidas. Ello implica que en un solo paso de comunicacion a traves de la red no se
puede llevar un dato desde cualquier entrada a cualquier salida. En ese caso, para poder
encaminar ese dato, debera circular varias veces a traves de la red. Eso implica que los nodos de
la red sean capaces de coger el dato que reciben por una de las salidas y lo puedan volver a
introducir en alguna de las entradas de las que dispongan. Esa Iuncion la suelen realizar los
routers o una parte especializada de cada nodo.
Asi pues, la Iuncion de encaminamiento incluira el patron de conexiones Iisicas que
suministra la red y el conjunto de decisiones que deben tomar.
Como ejemplos de Iunciones de encaminamiento de datos y permutaciones tenemos:

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


17
- Me:cla perfecta (PerIect ShuIIle). Una Iuncion permutacion especialmente util para
aplicaciones de procesamiento en paralelo es la de mezcla perIecta. En general, para
conectar mezclados n2
k
objetos basta representar cada objeto en la Iorma de un
numero de k bits y conectar x(x
k-1
, ..., x
0
) con y(x
k-2
, ..., x
0
, x
k-1
), esto es,
desplazando un bit a la izquierda y colocando el bit mas signiIicativo en la posicion
menos signiIicativa.

- Funciones de encaminamiento en el hipercubo. Se deIinen 3 Iunciones para los 3
bits de direccion de los nodos. Por ejemplo, el nodo 000 podria intercambiar
mensajes con el 010, el 001 con el 011, el 100 con el 110, ... si elegimos el bit del
medio en la direccion de los nodos como metodo de intercambio de datos entre
nodos adyacentes.



ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


18
Redes estaticas de conexion
- Arrav lineal. Es una red unidimensional en la cual N nodos estan conectados por N-
1 enlaces en linea. Los nodos internos tienen grado 2 y los terminales grado 1. El
diametro es N-1, por tanto es grande cuando crece N. La anchura de biseccion es
b1. Los arrays lineales constituyen la topologia mas simple. La estructura es no
simetrica y es ineIicaz cuando N es muy grande. Ver Iig.
- Anillo. Ver Iig.
- Anillo con cuerdas. Ver Iig.
- Barrel shifter. Ver Iig.
- Arbol binario. Ver Iig.
- Estrella. Ver Iig.
- Arbol grueso. Ver Iig.
- Malla. Ver Iig. Es una topologia muy usual, y ha sido utilizada en muchos
computadores paralelos.
- Toro. Ver Iig.


ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


19


Redes de conexion dinamicas
Para aplicaciones de proposito general es util que el sistema de conexiones sea dinamico
de modo que pueda implementar todos los patrones de comunicacion demandados por los
programas en cada momento. La conectividad dinamica se obtiene utilizando enlaces Iijos entre
conmutadores o arbitros que son controlados por los programas.
Distinguimos:
- Buses digitales. Es esencialmente una coleccion de cables y conectores para
transacciones de datos entre procesadores, modulos de memoria y dispositivos
periIericos conectados en el bus. El bus es utilizado para llevar a cabo
simultaneamente una sola transaccion entre una Iuente y un destino. En el caso de
que se produzcan multiples peticiones, la logica de arbitraje del bus debe ser capaz
de alojar y desalojar en el bus a los peticionarios que corresponda, de uno en uno. El
sistema se implementa en una placa de circuito impreso, y las demas placas se
insertan en esa placa base por conectores o cables.

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


20
- Red Crossbar. Suministra el mas elevado ancho de banda y capacidad de
interconexion. Una red crossbar puede ser visualizada como una red cuyos modulos
de conmutacion Iueran de una entrada y una salida. Cada punto de cruce puede
suministrar un camino de conexion dedicado entre un par. El conmutador puede ser
abierto o cerrado dinamicamente bajo demanda del programa.
- Redes multietapa. Se construyen utilizando modulos de conmutacion
interconectados. Un modulo de comunicacion ab tiene a entradas y b salidas. En la
practica a y b se escogen iguales y como potencias de 2. Cada entrada es conectada
por el modulo de conmutacion a una o mas salidas del mismo, en Iuncion del estado
de las entradas de control del modulo de conmutacion. En los modulos se permite
una comunicacion uno a uno o de uno a muchos, pero no muchos a uno por los
conIlictos que pudieran aparecer en la salida.
Las redes multietapa (abreviadamente, en ingles MIN) se construyen con varias
etapas de conmutadores conectadas entre si utilizando un determinado patron de
interconexion (abreviadamente, en ingles ISC). Cada etapa contiene un cierto
numero de conmutadores.
Las diIerentes clases de MIN se diIerencian en los modulos de conmutacion
utilizados y en el tipo de ISC utilizado. Las redes MIN tienen n entradas y n salidas.


ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


21


Un ejemplo de red MIN es la red Omega. Se construye con conmutadores 22 con
capacidad de broadcast distribuidos en etapas conectadas segun el esquema de
mezcla perIecta.
En general, una red Omega de n entradas requiere log
2
(n) etapas de 22
conmutadores. Cada etapa requiere n/2 modulos de conmutacion.
Podemos ver una red Omega con los estados posibles de los conmutadores en la
siguiente Iigura:


ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


22
:

3..1 Sistemas jerrquicos de bus
Los elementos que integran un multiprocesador pueden estar conectados entre si a
traves de una estructura jerarquica de buses. Los buses digitales son los sistemas de
interconexion Iundamentales adoptados en sistemas comerciales desde estaciones de trabajo a
minicomputadores, mainIrames y multicomputadores. Los buses jerarquicos pueden ser
utilizados para construir multiprocesadores de tamao medio con menos de 100 procesadores.
En general, la jerarquia de los sistemas de buses se establece a diversos niveles, tal
como puede verse en la Iig., incluyendo buses locales en las placas, buses backplane (circuito
impreso con multiples conectores sobre los que se colocan las placas) y buses de I/O.



En los multiprocesadores basados en bus se establece una jerarquia con diversos niveles
de caches. Los procesadores se agrupan en el nivel mas bajo Iormando agregados o clusters.
Cada cluster individual opera como un sistema de bus unico y se establecen mecanismos para
asegurar coherencia entre las caches del primer nivel, que son las que pertenecen al mismo
cluster. Las caches del segundo nivel se utilizan para extender la consistencia desde el cluster al
nivel superior. La mayor parte de las peticiones de acceso a memoria se resolveran entre las
caches de primer nivel. La coherencia intercluster Iuncionara entre las caches del segundo nivel
y las operaciones de coherencia seran pasadas a las caches del primer nivel.
La conexion entre los diversos niveles de jerarquia de buses se realiza por medio de puentes
(bridges). Los puentes permiten que las transaciones iniciadas en un bus local puedan ser
completadas en un bus remoto y se utilizan como interIace entre los clusters. Las principales
Iunciones de un puente incluyen la conversion de protocolos de comunicacion, manejo de
interrupciones y desdoblamiento de transacciones, asi como servir de controladores o agentes de

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


23
las caches y la memoria. Finalmente, en la Fig. puede verse una ilustracion de un gran sistema
multiprocesador construido sobre una jerarquia de buses basada en Futurebus.



3..2 Redes Crossbar
Las redes conmutadas Crossbar proveen interconexion entre las entradas y las salidas.
En una red Crossbar, cada puerto de entrada puede ser conectado a un puerto de salida a
traves de un conmutador situado en un punto de cruce. La primera vez que un dato es leido de la
memoria, su valor se retorna al procesador peticionario por el mismo conmutador de cruce
(crosspoint switch). Un crossbar cuadrado (nm) puede implementar n! Permutaciones sin
bloqueo. Por tanto, es una red de una sola etapa, no bloqueante, que suministra conexion punto
a punto entre Iuente y destino.
La mayor parte de las redes conmutadas se clasiIican en Iuncion del numero de estados y
en Iuncion si son o no bloqueantes.
Veamos un ejemplo de conexion de una red crossbar.

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


24

Memoria multipuerta
Una memoria multipuerta es simplemente un conjunto de modulos de memoria
conectados hacia el exterior a traves de una red crossbar. Los puertos de los diIerentes modulos
de memoria pueden tener prioridades diIerentes, y algunos procesadores actuaran como CPU,
otros como procesadores de I/O y otros a procesadores dedicados a tareas especiIicas.



La idea es pasar todas las Iunciones de conmutacion de los puntos de cruce asociados
con cada modulo de memoria al controlador de dicha memoria.
La organizacion en memoria multipuerto es una solucion de compromiso entre bajo coste y alto
ancho de banda de un sistema crossbar.
3..3 Redes multietapa
Las redes multietapa han sido utilizadas para construir grandes sistemas
multiprocesadores. Asi, por ejemplo, el IBM RP3 tiene 512 procesadores con una red Omega de
alta velocidad para lecturas y escrituras. La red Omega es de 128 puertos con un ancho de banda
de 13 Gbytes/s y un reloj de 50MHz.

ARQUITECTURA E INGENIERIA DE COMPUTADORES
MULTIPROCESADORES
Fernando Cantalapiedra Merino
e-mail: Iernando.cantalapiedra uem.es


25
3..4 Redes combinantes
Son un tipo especial de redes multietapa en la que los elementos de conmutacion tienen
la capacidad de combinar determinadas peticiones de acceso a modulos de memoria a Iin de
reducir el numero de accesos al mismo modulo.

You might also like