Diferencia entre revisiones de «Cell (microprocesador)»

Contenido eliminado Contenido añadido
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de Super braulio (disc.) a la última edición de 200.116.205.70
Diegusjaimes (discusión · contribs.)
m Revertidos los cambios de Diegusjaimes (disc.) a la última edición de Super braulio
Línea 231:
[[sv:Cell (processor)]]
[[zh:Cell]]
Bus de Interconexión de Elementos (Element Interconnect Bus, EIB)
El EIB es un bus de comunicaciones interno del procesador Cell que interconecta los diversos elementos de sistema integrados en el chip: el procesador PPE, el controlador de memoria (MIC), los ocho coprocesadores SPE y las dos interfaces externas I/O del chip, formando un total de 12 participantes. El EIB incluye una unidad de asignación que funciona como un conjunto de semáforos. En algunos de los documentos de IBM los participantes del EIB son denominados “unidades”.
 
Actualmente, el EIB se implementa como un anillo circular compuesto de 4 canales unidireccionales de 16 Bytes que rotan en sentido contrario a las agujas del reloj por parejas. Cuando los patrones del tráfico los permiten, cada canal puede transmitir hasta un máximo de 3 transacciones de forma concurrente. Dado que el EIB funciona a la mitad de velocidad del reloj del sistema, el rendimiento efectivo son 16 bytes cada dos ciclos de reloj. Con tres transacciones activas en cada uno de los cuatro anillos, esto es, con una concurrencia máxima, el pico máximo instantáneo en ancho de banda del EIB es de 96 bytes por ciclo de reloj (12 transacciones simultáneas*16 bytes/2 ciclos de reloj). Aún cuando este valor es normalmente citado por IBM resulta irreal escalar este número por la velocidad del procesador. La unidad de asignación impone restricciones adicionales, las cuales se discuten más abajo en la sección asignación de ancho de banda.
 
David Krolak, Ingeniero Jefe de IBM y director de diseño del EIB, explica el modelo de concurrencia:[27]
 
Un anillo puede comenzar una operación cada tres ciclos. Cada transferencia dura 8 impulsos. Esta fue una de las simplificaciones que hicimos. De este modo, se optimiza para la transferencia de muchos datos. Si efectúas operaciones pequeñas, no funciona tan bien. Piensa en trenes de ocho vagones circulando por esta vía. Siempre que los vagones no colisionen entre sí, pueden coexistir en la vía.
Cada uno de los participantes en el EIB posee un puerto de lectura de 16 bytes y otro de escritura de 16 bytes. El límite para cada participante individual es el de leer y escribir a una velocidad de 16 bytes por ciclo de reloj (por simplicidad muchas veces se indican 8 bytes por ciclo de reloj). Téngase en cuenta que cada SPU contiene una cola de administración DMA dedicada capaz de de planificar grandes secuencias de transacciones hacia diversos puntos de destino sin interferir con los cálculos que la SPU esté llevando a cabo. Estas colas DMA pueden ser manejadas tanto de manera local como remota, proporcionando una flexibilidad adicional en el modelo de control.
 
Los datos circulan por un canal EIB en el sentido de las agujas del reloj alrededor del anillo. Dado que existen doce participantes, el número total de pasos alrededor del canal de vuelta al origen son doce. Seis pasos es la distancia máxima entre cualquier par de participantes. A un canal EIB no se le permite comunicar datos que requieran más de seis pasos. Este tipo de datos habrá de tomar la ruta más corta en la otra dirección. El número de pasos implicados en enviar un paquete tiene poco impacto en la latencia de transferencia: la velocidad de reloj que controla todos los pasos es muy rápida con relación a cualquier otra consideración. Sin embargo, distancias de comunicación más largas sí que son perjudiciales para el rendimiento general del EIB, dado que reducen la concurrencia disponible.
 
A pesar del deseo original de IBM de implementar el EIB como un conmutador (crossbar) más potente, la configuración circular que adoptaron para economizar recursos en muy raras ocasiones representa un factor limitador en el rendimiento del chip Cell como un todo. En el peor de los casos, el programador ha de tener un cuidado extra a la hora de planificar patrones de comunicación allí donde el EIB es capaz de funcionar con altos niveles de participación.
 
David Krolak explica:[27]
 
Bueno, al principio, en los inicios del proceso de desarrollo, varias personas promocionaban la idea de un conmutador (crossbar switch). Por el modo en que el bus estaba diseñado se podría retirar sin más el EIB e implantar un conmutador siempre que estuvieras dispuesto a dedicar más espacio en la oblea del chip a pistas. Teníamos que encontrar un equilibrio entre conectividad y espacio y sencillamente no existía suficiente espacio para poner un conmutador. Así que se nos ocurrió esta estructura de anillo, que pensamos es bastante interesante. Encaja con las restricciones de espacio y aún así proporciona anchos de banda bastante notorios.