Está en la página 1de 9

Arquitectura e Ingeniera de Computadores

Examen nal de febrero


Mircoles, 13 de febrero de 2008

Acurdate de poner tu nombre en todas las hojas que utilices!


Justica claramente todas tus contestaciones!

Utiliza grupos de folios separados para responder a las cuestiones de cada parte

SOLUCIONES

PARTE ARQUITECTURAS MONOPROCESADOR


1.
(2 puntos, 0.4 ptos. cada apartado) Responde brevemente (bastan dos o tres frases) a las
siguientes preguntas relacionadas con los procesadores actuales:
a) Tenemos un procesador superescalar con las siguientes etapas: Bsqueda de instruccin, Decodicacin, Emisin, Ejecucin y Conrmacin. A qu etapas y cmo afecta el tamao del Buer
de Reordenacin (ROB)? A qu etapas y cmo afecta el nmero de registros fsicos (reales) qu
tiene el procesador?
b) En qu tipo de procesadores se usan las instrucciones predicadas y con qu motivo?
c) Cul es el principal problema que est impidiendo a los procesadores actuales funcionar a
frecuencias mayores de 4 GHz?Piensas que se podr solucionar en breve?
d) Para qu sirven las caches de trazas?En qu tipo de procesadores se utilizan?
e) Los procesadores VLIW se basan en una buena planicacin por parte del compilador para
ejecutar ecientemente una aplicacin. Para mejorar su rendimiento, se introduce la especulacin
de instrucciones con ayuda de ciertos recursos hardware. En qu consisten estos recursos?

Solucin

a) El tamao del ROB afecta a dos etapas, a la de Decodicacin y a la de Ejecucin. En el momento


de la Decodicacin de una instruccin se aade dicha instruccin a una entrada del ROB. Con
un ROB muy pequeo se parara la etapa de la Decodicacin de instrucciones, bajando el
rendimiento del procesador. En el caso de la etapa de Ejecucin, el tamao del ROB es el que
permite la ejecucin fuera de orden y por tanto la eliminacin de los riesgos RAW. De igual
forma, un tamao muy pequeo podra limitar severamente el rendimiento del procesador.
En el caso de los registros fsicos (reales) del procesador, su nmero afecta a las etapas de Decodicacin y Conrmacin. En la etapa de Decodicacin es donde se produce el renombramiento
de las instrucciones (para evitar riesgos WAR y WAW). Un nmero pequeo de registros limitara la Decodicacin de instrucciones produciendo una parada del pipeline. Asimismo, la etapa
de Conrmacin se ve tambin afectada, pues en dicha etapa se tienen que liberar los registros
fsicos usados por la instruccin conrmada.
1

b) Las instrucciones predicadas se utilizan habitualmente en los procesadores VLIW. El motivo


es que en este tipo de procesadores las instrucciones de saltos son muy perjudiciales, pues el
compilador no puede generar cdigo eciente en estos casos. Una forma de resolver el problema de los saltos es cambiar dichas instrucciones por instrucciones predicadas, que tienen un
comportamiento normal en el ujo de control del programa.
c) El problema por el que los procesadores actuales no han pasado de los 4 Ghz es un problema
exclusivamente tecnolgico. A una frecuencia mayor de 4 Ghz los retardos entre etapas son tales
que el rendimiento global del procesador es negativo, y adems sucede que la disipacin de
energa aumenta mucho.
La solucin pasa por clusterizar las diversas estructuras del procesador, por lo que los retardos
entre etapas desaparezcan, y al mismo tiempo hacer dichas estructuras ms sencillas y por tanto
con un menor consumo energtico. Esta es la lnea que estn tomando los procesadores multincleo, por lo que en un futuro cercano veremos sobrepasar la frecuencia anterior.
d) Las caches de trazas se usan en los procesadores superescalares que presentan una interfaz CISC
al programador aunque internamente funcionan como si fueran un RISC. Es un tipo de cache
de instrucciones que pretende dos objetivos: por una parte, almacenan la decodicacin de las
instrucciones CISC en las microinstrucciones RISC correspondientes, y las almacenan en el orden
en que se ejecutan de forma dinmica (sin saltos). De esta forma, cuando ejecutan un cdigo
repetitivo (por ejemplo, el encontrado en bucles) obtienen dos benecios: no tiene que traducir
las instrucciones (de CISC a RISC), y no tiene que enfrentarse al problema de los saltos.
e) Los recursos hardware aadidos al procesador VLIW para mejorar la especulacin de las instrucciones consisten fundamentalmente en: recursos para permitir las operaciones con predicado
(para solucionar las detenciones debidas a riesgos de control), recursos para permitir el comportamiento del cdigo reordenado frente a las excepciones, y los recursos necesarios para permitir
la especulacin de las referencias a memoria.

2. (2 puntos) Un laboratorio de investigacin ejecuta habitualmente una aplicacin cientca


con las siguientes caractersticas:
El 20 % de las instrucciones son de coma otante (FP).
El 20 % de las instrucciones son saltos condicionales (branches ).
El 30 % de las instrucciones son operaciones de memoria (70 % de esas operaciones son cargas
y 30 % almacenamientos).
El 30 % de las instrucciones son enteras.
El conjunto de instrucciones de la aplicacin anterior es de 4 billones (4 1012 ). La aplicacin
se ejecuta en un computador con las siguientes caractersticas:
Procesador superescalar con grado de emisin 1, con ejecucin especulativa (algoritmo de
Sohi) y con una frecuencia de reloj de 2 Ghz.
El sistema de memoria tiene las siguientes caractersticas: La cache L1 tiene un tamao de
64 KB con un tiempo de acceso de 0,5 nanosegundos, la cache L2 un tamao de 2 MB (pero
no inclusiva respecto a la L1) y un tiempo de acceso de 5 nanosegundos, y tiene 2 GB de
memoria principal con un tiempo de acceso de 75 nanosegundos.
Por termino medio, las diversas unidades funcionales que tiene el procesador hacen que el CPI
base de las operaciones en coma otante sea de 7, as como el CPI base de las operaciones
enteras sea de 1.
2

Por trmino medio la profundidad del pipeline del procesador es de 11 etapas.


La aplicacin anterior se ejecuta en dicho computador, obteniendo que el predictor de saltos tiene
una tasa de aciertos de un 95 % de las veces, que la cache L1 tiene una tasa de aciertos del 50 %
sobre las peticiones que recibe, la L2 del 90 % (accedindose en paralelo a ambas), y que los riesgos
de datos (RAW) provocan una detencin de 2 ciclos en el 30 % de las instrucciones ejecutadas, y
los riesgos estructurales una detencin de 1 ciclo en el 15 % de las instrucciones ejecutadas.
Con estos datos, se pide:
a) (0,5 puntos) Calcula el tiempo de ejecucin de la aplicacin (en segundos).
b) (0,5 puntos) Mejoramos el procesador para que emita 4 instrucciones por ciclo de reloj. Esto
provoca que aumente el nmero y la detencin de los riesgos de datos (30 % de las instrucciones,
con 3 ciclos de detencin), y de los riesgos estructurales (30 % de las instrucciones, con 2 ciclos
de detencin).
c) (0,5 puntos) Nos gustara disminuir an ms el tiempo de ejecucin de la aplicacin. Para ello,
podemos aadirle 1 MB adicional a la estructura del BTB de los saltos, pasando a una tasa
de aciertos del 99 %, o bien aadirle 1 MB adicional a la cache L2 mejorando tambin su tasa
de aciertos al 95 %. Razona de forma cualitativa cual de estas dos opciones es mejor y luego
comprubalo cuantitativamente.
d) (0,5 puntos) Sin modicar para nada el hardware del procesador, cual sera la mejor forma
software de mejorar la aplicacin para reducir todo lo posible su tiempo de ejecucin?

Solucin

a) Para calcular el tiempo en segundos que tarda la aplicacin en ejecutarse vamos a aplicar la
conocida formula:

Tejec = N I CP I Treloj
Lo primero tenemos que calcular el CPI para este procesador superescalar especulativo con grado
de emisin 1. Dicho CPI ser la mezcla del CPI calculado para cada tipo distinto de operaciones.
Entonces:
CP IF P = 7
CP Ibranches = 1 + 0,05 10 = 1,5 (al ser la profundidad del pipeline 11, en el caso del fallo en la
prediccin del salto esperamos hasta la conrmacin del salto para recuperarnos, lo que implica
un retardo de 10 ciclos)
CP Ild/st = 0,5 1 + 0,5 0,9 10 + 0,5 0,1 150 = 12,5
CP Ient = 1
Entonces, tenemos que el CPI medio de los benchmarks dados es el siguiente:

CP Imedio = 0,2 CP IF P + 0,2 CP Ibranches + 0,3 CP Ild/st + 0,3 CP Ient


+ Riesgosdatos + Riesgosestruct = 5,75 + 0,3 2 + 0,15 1 = 6,5
Y aplicando la formula anterior del tiempo de ejecucin, tenemos que:

Tejec = 4 1012 CP I 0,5 109 = 13000 segs


3

b) En este apartado hemos aumentado el grado de emisin de instrucciones a 4, lo que nos provoca
un aumento del riesgo de datos y de riesgos estructurales, mantenindose los CPI medios para
cada tipo de instruccin. Entonces:

CP Imedio = 5,75 + 0,3 3 + 0,3 2 = 7,25


A la hora de aplicar la formula del tiempo de ejecucin, hay que tener en cuenta que al tratarse
de un procesador superescalar de 4 vas, en cada ciclo de reloj emitir 4 instrucciones, por lo que
el CPI real del procesador ser el CPI que hemos calculado dividido entre 4. Entonces:

Tejec = 4 1012

CP I
0,5 109 = 3625 segs
4

c) Para contestar esta cuestin de forma cualitativa, tenemos que acordarnos de la Ley de Amdhal,
por la que una mejora que realicemos en una parte del procesador resultar en mayor benecio en
funcin del peso que tenga dicha parte. Mirando a los resultados obtenidos en el primer apartado,
podemos comprobar que en el clculo del CPI medio de la aplicacin tiene un mayor peso el CPI
de las operaciones de memoria, por lo que las mejoras que hagamos en esta parte del procesador
tendrn una mayor repercusin.
Vamos ahora a calcular lo dicho anteriormente de forma cuantitativa. En el caso de la mejora en
el tamao del BTB, tenemos que mejoramos el ratio de acierto de lo saltos, por lo que
CP Ibranches = 1 + 0,01 10 = 1,1
Entonces:

CP Imedio = 5,67 + 0,3 3 + 0,3 2 = 7,17


Y el tiempo ser de

Tejec = 4 1012

CP I
0,5 109 = 3585 segs
4

En el caso de la mejora en el tamao de la cache L2, tenemos que mejoramos el ratio de acierto
de dicha cache, por lo que
CP Ild/st = 0,5 1 + 0,5 0,95 10 + 0,5 0,05 150 = 9
Entonces:

CP Imedio = 4,70 + 0,3 3 + 0,3 2 = 6,2


Y el tiempo ser de

Tejec = 4 1012

CP I
0,5 109 = 3100 segs
4

d) Finalmente se nos pide cmo podramos mejorar el tiempo de ejecucin de la aplicacin sin
realizar ninguna mejora hardware en el procesador, tan slo por medio de mejoras software.
Por tanto, lo que nos estn pidiendo es cmo podramos mejorar el algoritmo de la aplicacin
para que se ejecutara en un tiempo menor en el mismo procesador. A partir de los datos que nos
dan en el problema, vemos claramente que el principal cuello de botella es de la aplicacin son las
operaciones de memoria. Por tanto, la principal mejora que podramos realizar sera re-escribir
la aplicacin para intentar disminuir los fallos en la cache, tanto a nivel de L1 como de L2.
4

PARTE ARQUITECTURAS MULTIPROCESADOR


3. (3 puntos) Explicar brevemente cada una de las cuestiones que a continuacin se plantean
(se valorar la capacidad de concrecin del alumno).
a) (0,25 puntos ) Explica cules son las principales caractersticas de un multiprocesador cc-NUMA.
b) (0,25 puntos ) Explica la diferencia entre los dos supuestos siguientes:

a ) Programa de memoria compartida sobre un ABI de paso de mensajes sobre un multiprocesador de paso de mensajes.
b ) Programa de memoria compartida sobre un ABI de memoria compartida sobre un multiprocesador de paso de mensajes.
c) (0,25 puntos ) Cules son las dos mtricas ms usadas para evaluar las prestaciones de un
computador paralelo? Pon un ejemplo en el que se muestre cundo cada una de las dos mtricas
es preferible frente a la otra.
d) (0,25 puntos ) Explica en qu consiste un esquema de directorio distribuido basado en cache.
e) (0,50 puntos ) Se est diseando el protocolo de coherencia de cache para un multiprocesador
cc-NUMA. Se sabe que el tiempo de acceso a cache es de 10 ciclos y a memoria de 200 ciclos.
El multiprocesador no emplea caches de directorio. Teniendo en cuenta lo anterior, justica si
es preferible un protocolo de directorio con estados MSI o MOSI (estados de los bloques en las
caches).
f) (0,25 puntos ) De entre las cuatro categoras de fallos de cache que pueden ocurrir en un multiprocesador de memoria compartida, explica qu se entiende por fallo de coherencia. Cmo
pueden clasicarse los fallos de coherencia?
g) (0,50 puntos ) Explica en qu consiste la propiedad de la atomicidad de las escrituras requerida
por la consistencia secuencial. Para el siguiente fragmento de cdigo ejecutado por 3 procesadores:
P1
A = 1;

P2
while (A != 1)
B = 1;

P3
while (B != 1)
print A;

Suponiendo que inicialmente A y B valen 0, se imprimira por pantalla lo mismo en un multiprocesador que no garantizase la atomicidad de las escrituras que en uno que implementase el
modelo de consistencia secuencial? Justica la respuesta.
h) (0,50 puntos ) Muestra cmo podra usarse el par de instrucciones LL (load linked ) y SC (store
conditional ) para implementar la instruccin compare&swap reg1, reg2, mem estudiada en
clase. La instruccin compare&swap reg1, reg2, mem lee el contenido de la posicin de memoria mem y si coincide con el contenido de reg1 intercambia los contenidos del registro reg2 y de
la citada posicin de memoria.
i) (0,25 puntos ) Explica el algoritmo de encaminamiento edge cube para hipercubos.

Solucin

a) Las siglas NUMA indican que se trata de un multiprocesador de memoria compartida en el


que la memoria se encuentra fsicamente repartida entre los procesadores, de forma que cada
procesador tiene una fraccin de la memoria ms cerca que la restante (el mdulo/s locales al
nodo en el que se encuentra). Por otro lado, cc- hace referencia a que se estn usando las caches
privadas a cada procesador para replicar datos compartidos y que se dispone de un protocolo de
coherencia hardware que impide incoherencias.
b) En ambos casos se trata de poder ejecutar un programa de memoria compartida sobre un multiprocesador de paso de mensajes. La diferencia radica en el nivel de abstraccin en el que se
establece una correspondencia entre el modelo de programacin de memoria compartida y el
hardware de paso de mensajes. En el primer caso dicha correspondencia se realiza a nivel del
compilador y libreras, mientras que en el segundo se lleva a cabo a nivel del sistema operativo.
c) Las dos medidas ms importantes son el tiempo de ejecucin o tiempo que supone la ejecucin
de una entrada (aplicacin) en el sistema, y la productividad (throughput) o nmero de entradas
(aplicaciones) procesadas por unidad de tiempo. La primera es empleada en mquinas paralelas
orientadas a bajo tiempo de respuesta, en las que el trabajo se divide entre varios procesadores.
La segunda por el contrario es de utilidad en sistemas orientados a alta productividad, en los
que cada entrada va a un procesador.
d) En esta organizacin de directorio la informacin de las copias de cache no est totalmente
almacenada en el nodo origen sino distribuida entre las propias copias. Para ello se implementa
una estructura lgica de lista enlazada distribuida, en la que cada copia contiene el identicador
del nodo que contiene la siguiente copia. El nodo origen almacena la identidad de la primera
copia de cada bloque y las localizaciones del resto de copias se determinan recorriendo dicha lista
enlazada (mediante las correspondientes transacciones de red).
e) La disponibilidad del estado O (owned ) har que cuando varios procesadores pidan una lnea
de memoria que otro ha escrito, sea este ltimo el que la proporcione desde su cache. Por el
contrario, en el protocolo MSI tendra que ser la memoria principal (que sera actualizada tras
la primera de las lecturas) la que tuviese que proporcionar la lnea de memoria una vez estuviese
siendo compartida por ms de un procesador. Sin embargo, dado que el sistema no cuenta con
caches de directorio, cada vez que es necesario disponer de informacin de directorio sta ha de
ser obtenida desde memoria principal, con lo que para el caso anterior podra traerse la lnea de
memoria a la misma vez que se recupera la informacin de directorio, evitando con un protocolo
MSI el tener que alcanzar el nodo propietario tal y como sucedera en un MOSI. As pues, para
la conguracin indicada en el enunciado sera preferible un protocolo MSI.
f) Los fallos de coherencia surgen en multiprocesadores de memoria compartida cuando hay bloques de datos compartidos entre varias caches y una de ellas realiza operaciones de escritura.
Concretamente, una operacin de escritura sobre un bloque de datos compartido conllevara la
invalidacin del resto de copias del bloque de datos. Cuando posteriormente uno de los procesadores que tena copia vuelva a intentar hacer uso del bloque de datos sufrir un fallo de
coherencia. Estos fallos se clasican en Comparticin Verdadera (True Sharing), cuando la escritura se realiza en una variable compartida, y de Comparticin Falsa (False Sharing), cuando
se est escribiendo otra palabra de la lnea que no emplea la cache invalidada.
g) La atomicidad de las escrituras requerida por la consistencia secuencial implica que todas las
escrituras (a cualquier posicin de memoria) deben verse en el mismo orden por todos los procesadores. Es decir, asegura que nada de lo que un procesador realiza despus ver un nuevo valor
producido por una escritura se vuelve visible a los otros procesadores antes de dicha escritura.
Para el fragmento de cdigo que se nos da, el nico resultado posible con consistencia secuencial
es la impresin por pantalla del valor A = 1. Sin embargo, en un modelo de memoria que no
garantizase la atomicidad de las escrituras podra suceder que la escritura de A por parte de
P1 se hiciese visible a P2 antes que a P3, haciendo que se imprimiese el valor A = 0 cuando la
escritura a B por parte de P2 se hace visible a P3 antes que la escritura de A por parte de P1.
6

h) Una posible forma de implementarlo sera la siguiente:

compare&swap:

nocambio:

LL
bne
SC
beqz
move
ret

regX, mem
regX, reg1, nocambio
mem, reg2
compare&swap
reg2, regX

i) Cada nodo en un hipercubo viene identicado por un nmero binario. Para hacer llegar un
mensaje desde un nodo origen hasta uno destino se calcula la operacin XOR de los identicadores
binarios de origen y destino y se cruzan (en un determinado orden) aquellas dimensiones para
las que el resultado de la operacin XOR es 1.

4. (2 puntos) Para una arquitectura SMP se est estudiando la posibilidad de resolver el problema
de la coherencia de las caches mediante un protocolo snoopy basado en invalidacin con estados
MOSI (suponer que en el estado O la memoria principal no est actualizada). Responder a las
siguientes cuestiones:
a) (0,25 puntos) Explicar brevemente la semntica de cada uno de los 4 estados (M, O, S, I).
b) (0,75 puntos) Dibuja el diagrama de transicin de estados para dicho protocolo. Las transacciones de bus de que dispone el diseador son BusRd, BusRdX y BusUpgr, las acciones que
generan los procesadores son ProcRd y ProcWr y como respuesta a una transaccin de bus
el controlador de cache puede ejecutar las acciones FlushCache enva el bloque de datos
a la memoria cache que lo solicita y FlushCacheMem adems de lo anterior, se actualiza
memoria.
c) (0,5 puntos) Para la siguiente secuencia de operaciones realizadas por 3 procesadores sobre el
mismo bloque de datos, indica las transacciones de bus que se generan segn el nuevo protocolo,
el vector de estados para el bloque de datos en cada caso, y quin proporciona el bloque de datos
caso de ser necesario:
r1 r2 w1 r2 r3 w2 r1 w2 r3 w1
d) (0,5 puntos) Repite el apartado anterior para el protocolo Dragon estudiado en clase.

Solucin

a) La semntica de los estados es la que sigue:

M: El bloque de datos est en estado modicado en la cache local y la memoria principal

no est actualizada. Esta es la nica copia del mismo (estado propietario y exclusivo).
O: El bloque de datos est en estado propietario en la cache local y la memoria principal
no est actualizada. Pueden existir varias copias del bloque de datos en otras caches (no es
un estado exclusivo).
S: El bloque de datos est en estado compartido en la cache local, puede haber varias copias
del mismo en otras caches y la memoria principal podra o no estar actualizada.
I: El bloque de datos no se encuentra en la cache local.
7

b) El diagrama de transicin de estados quedara como sigue:

ProcRd/
ProcWr/

M
ProcWr/BusUpgr
ProcRd/
BusRd/FlushCache
BusRd/FlushCache

BusRdX/FlushCache

BusUpgr/

ProcWr/BusUpgr
ProcWr/BusRdX

BusRdX/FlushCache

S
BusUpgr/

ProcRd/BusRd
BusRd/

ProcRd/ BusRdX/

c) Inicialmente, el vector de estados para el bloque de datos ser V(p1, p2, p3) = (I, I, I). Las
transacciones de bus que se generaran son:
r1 : BusRd. Una vez completada la transaccin de bus, el vector de estados quedara de
la forma V(p1, p2, p3) = (S, I, I). El bloque de datos es proporcionado por la memoria
principal.
r2 : BusRd. V(p1, p2, p3) = (S, S, I). El bloque de datos es proporcionado por la memoria
principal.
w1 : BusUpgr. V(p1, p2, p3) = (M, I, I). No se proporciona el bloque de datos.
r2 : BusRd. V(p1, p2, p3) = (O, S, I). El bloque de datos es proporcionado por p1.
r3 : BusRd. V(p1, p2, p3) = (O, S, S). El bloque de datos es proporcionado por p1.
w2 : BusUpgr. V(p1, p2, p3) = (I, M, I). No se proporciona el bloque de datos.
r1 : BusRd. V(p1, p2, p3) = (S, O, I). El bloque de datos es proporcionado por p2.
w2 : BusUpgr. V(p1, p2, p3) = (I, M, I). No se proporciona el bloque de datos.
r3 : BusRd. V(p1, p2, p3) = (I, O, S). El bloque de datos es proporcionado por p2.
w1 : BusRdX. V(p1, p2, p3) = (M, I, I). El bloque de datos es proporcionado por p2.
8

d) Para el protocolo DRAGON, el vector de estados para el bloque de datos ser inicialmente V(p1,
p2, p3) = (NC, NC, NC). Las transacciones de bus que se generaran son:
r1 : BusRd. Una vez completada la transaccin de bus, el vector de estados quedara de la
forma V(p1, p2, p3) = (E, NC, NC). El bloque de datos es proporcionado por la memoria
principal.
r2 : BusRd. V(p1, p2, p3) = (SC, SC, NC). El bloque de datos es proporcionado por la
memoria principal.
w1 : BusUpd. V(p1, p2, p3) = (SM, SC, NC). No se proporciona el bloque de datos.
r2 : . V(p1, p2, p3) = (SM, SC, NC). Acierto en cache.
r3 : BusRd. V(p1, p2, p3) = (SM, SC, SC). El bloque de datos es proporcionado por p1.
w2 : BusUpd. V(p1, p2, p3) = (SC, SM, SC). No se proporciona el bloque de datos.
r1 : . V(p1, p2, p3) = (SC, SM, SC). Acierto en cache.
w2 : BusUpd. V(p1, p2, p3) = (SC, SM, SC). No se proporciona el bloque de datos.
r3 : . V(p1, p2, p3) = (SC, SM, SC). Acierto en cache.
w1 : BusUpd. V(p1, p2, p3) = (SM, SC, SC). No se proporciona el bloque de datos.

5.

(1 punto) Considera 4 procesadores conectados por un bus con un ancho de banda de b


MB/s. Considera tambin el mismo nmero de procesadores conectados formando una malla 2D,
con enlaces con ancho de banda de b MB/s. Calcula el ancho de banda medio por procesador en
ambos casos. Qu ocurre cuando se aumenta a 64 procesadores?. Cul es el lmite a medida que el
nmero de procesadores se acerca a innito?. Qu conclusiones puedes extraer de estos resultados?.

Solucin

Bus
Con 4 procesadores: B =

b
4
b
64
b n
n

Con 64 procesadores: B =
Con n procesadores: B =

malla 2D
4b
4 =b
64 procesadores: B = 112b
64 = 1, 9b

n
n procesadores: B = 2 n( nn1)b

Con 4 procesadores: B =
Con
Con

2b

La conclusin es clara y se reere a los problemas de escalabilidad que presenta una arquitectura
multiprocesador basada en un Bus comn. Como podemos ver, conforme aumentamos el nmero de
nodos, el ancho de banda medio por nodo para transmitir informacin se reduce (llegando a cero
en el caso lmite de innitos procesadores).
Por contra, en el caso de topologas ms escalables (como la malla en este caso), dicho ancho de
banda se mantiene constante e incluso aumenta con el nmero de procesadores.