Sistemas operativos modernos
Bus (a) (b) (c) Figura 8-2. Tres multiprocesadores basados en bus. a) Sin caché, b) Con caché, c) Con caché y memorias privadas. o en alguna combinación de las tres ubicaciones. Puesto que ahora pueden satisfacerse muchas lecturas con el caché local, el tráfico de bus será mucho menor y el sistema podrá tener más pro cesadores. En general, el uso de cachés no es por palabras individuales, sino por bloques de 32 o 64 bytes. Cuando se hace referencia a una palabra, todo su bloque se coloca en el caché de la CPU correspondiente. Cada bloque de caché se marca como de sólo lectura (en cuyo caso podrá estar presente en múltiples cachés al mismo tiempo) o de lectura/escritura (en cuyo caso no podrá estar pre sente en ningún otro). Si una CPU intenta escribir una palabra que está en uno o más cachés remotos, el hardware del bus detecta la escritura y coloca una señal en dicho bus para infor mar a todos los demás cachés de la escritura. Si otros cachés tienen una copia “limpia”, es de cir, una copia exacta de lo que está en la memoria, podrán desechar sus copias y dejar que el escritor obtenga el bloque de caché de la memoria antes de modificarlo. Si algún caché fiene una copia “sucia” (es decir, modificada), deberá escribirla en la memoria antes de que pueda efectuarse la nueva escritura o bien transferirla en forma directa al escritor por el bus. Hay muchos protocolos de transferencia de caché. Otra posibilidad es el diseño de la figura 8-2c, en el que cada CPU no sólo fiene un caché, sino también una memoria local privada a la que fiene acceso por un bus dedicado (privado). Para sacar máximo provecho de esta configuración, el compilador debe colocar todo el texto del programa, cadenas, constantes y demás datos de sólo lectura, pilas y variables locales en las memorias privadas. Así, la memoria compartida sólo se usará para escribir variables com partidas. En la mayoría de los casos, esta ubicación cuidadosa reduce de manera considerable el tráfico de bus, pero requiere la cooperación activa del compilador. Multiprocesadores UMA que emplean conmutadores tipo crossbar Incluso con un uso óptimo de cachés, el empleo de un solo bus limita el tamaño de un multi procesador UMA a unas 16 o 32 CPUs. Para ir más lejos se requiere un tipo disfinto de red de interconexión. El circuito más sencillo para conectar n procesadores a k memorias es el con mutador tipo crossbar, que se muestra en la figura 8-3. Estos conmutadores se han usado des de hace décadas en las centrales telefónicas para conectar de manera arbitraria un grupo de líneas de entrada a un conjunto de líneas de salida.
RkJQdWJsaXNoZXIy MjI4NDcx