Download Sistemas para el Procesamiento de la Información

Document related concepts
no text concepts found
Transcript
Sistemas para el Procesamiento de la Información
Microprocesadores Cell
Profesor:
Integrantes:
Fecha:
Javier Ruiz del Solar.
Michael Carter.
Joshua Carvacho.
Magdalena Von Borries.
17 de junio de 2007.
EL54B
Microprocesadores Cell
Índice
1. Introducción
2
1.1. Ejecución Predictiva/Especulativa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Procesadores VLIW . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.3. Procesadores Multinúcleo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2. Descripción por bloques del Microprocesador Cell
2.1. Arquitectura del Power Processor Element . . . . . . .
2.2. Arquitectura de los Synergistic Processors Elements .
2.3. Bus de Interconexión de Elementos . . . . . . . . . . .
2.4. Memory Interface Controller MIC e I/O Controller
2.5. Otras Consideraciones . . . . . . . . . . . . . . . . . .
3. Modelos de Programación para el
3.1. Stream Processing . . . . . . . .
3.2. Cola de Tareas . . . . . . . . . .
3.3. Multitarea Auto-Gestionada . . .
2
2
2
.
.
.
.
.
5
7
9
11
11
12
Microprocesador Cell
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
13
13
13
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
4. Aplicaciones
4.1. Capacidades del Chip Cell . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.1. Manipulación de Datos: . . . . . . . . . . . . . . . . . . . . . . . .
4.1.2. Aplicaciones Graficas: . . . . . . . . . . . . . . . . . . . . . . . . .
4.1.3. Aplicaciones Intensivas de Punto Flotante (Single Precision)
4.1.4. Reconocimiento de Patrones . . . . . . . . . . . . . . . . . . . . .
4.1.5. Offload Engines . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2. Actuales Aplicaciones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.1. Servidores Blade . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.2. Videojuegos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2.3. Investigación Médica: . . . . . . . . . . . . . . . . . . . . . . . . .
4.3. Aplicaciones en desarrollo . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5. Referencias
14
14
14
14
14
14
14
14
14
15
16
16
19
Índice de figuras
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
Microprocesador Cell . . . . . . . . . . . . . . .
Diagrama de Bloques . . . . . . . . . . . . . . .
Ubicación del PPE en el Microprocesador Cell .
Estructura interna del PPE . . . . . . . . . . .
Diagrama del pipeline para el PPE . . . . . . .
Ubicación de un SPE . . . . . . . . . . . . . . .
Estructura interna del SPE . . . . . . . . . . .
Diagrama del pipeline para el SPE . . . . . . .
Bus de Interconexión de Elemntos . . . . . . .
MIC, I/O . . . . . . . . . . . . . . . . . . . . .
Servidores Blade . . . . . . . . . . . . . . . . .
Playstation3 . . . . . . . . . . . . . . . . . . . .
Blue Gene-L . . . . . . . . . . . . . . . . . . . .
Mainframes . . . . . . . . . . . . . . . . . . . .
Televisión de alta definición . . . . . . . . . . .
Celular Toshiba . . . . . . . . . . . . . . . . . .
1
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
5
6
7
7
8
9
9
10
11
11
15
16
16
17
17
17
EL54B
Microprocesadores Cell
SECCIÓN 1
Introducción
A medida que avanzaba la tecnologı́a y los computadores llegaban a cada vez más usuarios, en los años
90 se empezó a barajar la posibilidad de dotar a los microprocesadores de capacidad de procesamiento en
paralelo; es decir, de capacidad para ejecutar varias instrucciones a la vez y con esto aumentar el tiempo de
procesamiento de instrucciones. Lamentablemente, los programas para computadores, siguen un orden secuencial
lineal, necesitándose muchas veces disponer del resultado de una operación anterior para ejecutar la actual linea
del programa, lo que dificulta el desarrollo de procedimientos en paralelo (concurrentes)
¿Qué se ha hecho para solucionar este problema? A lo largo de los años se han diseñado tres técnicas diferentes:
1.1
Ejecución Predictiva/Especulativa
Bajo este nombre se recogen una serie de tecnologias y algoritmos que se implementan en el procesador y que,
basicamente, lo que hacen es analizar el código para agrupar las instrucciones en bloques que puedan ejecutarse
en paralelo. Por ejemplo:
1. c = a + b
2. d = c ∗ b
3. x = a ∗ n
4. y
= x+b
El procesador convertirá esta secuencia en dos bloques, uno con las instrucciones uno y tres, y otro con las
dos y cuatro.
El inconveniente de esta técnica es que los algoritmos de paralelización son tremendamente complejos, con lo
que su implementación requiere de un volumen enorme de circuiteria, lo que complica extraordináriamente la
arquitectura de la CPU.
Esta técnica es la que utilizan los procesadores Intel Pentium.
1.2
Procesadores VLIW
Supongamos que el procesador tiene, por ejemplo, cuatro unidades operacionales; es decir, puede ejecutar cuatro instrucciones a la vez; entonces, cada instrucción de código máquina será un paquete de cuatro instrucciones,
una para cada una de las cuatro unidades en las que se subdivide internamente el procesador. Es decir, en una
arquitectura VLIW la tarea de paralelizar el código corresponde al compilador, de manera que los programas
generados ya sean secuencias de bloques ejecutables en un solo paso.
La gran ventaja de esta metodologia es la sencillez. Puesto que el procesador ya recibe el código paralelizado, las
instrucciones no necesitan ningún tratamiento previo, lo que permite ahorrar una cantidad enorme de circuiteria,
lo que supone un consumo energético menor y menos calentamiento.
Sin embargo, esta ténica tiene dos inconvenientes; uno, que el juego de instrucciones de código máquina refleja
la estructura interna de la CPU, con lo que si queremos sacar una versión nueva del procesador es muy posible
que haya que modificar su lenguaje máquina, rompiendo la compatibilidad con los programas existentes. El otro
inconveniente es que, puesto que los compiladores tienen que generar código paralelo, el diseño de los mismos es
sumamente complicado.
Esta ténica es la que se usa en los Itanium y los Transmeta.
1.3
Procesadores Multinúcleo
En este caso, el enfoque cambia por completo; ası́, si en las dos metodologias anteriores la capacidad de
procesamiento en paralelo del procesador se usa para acelerar la ejecución de un programa, en este caso se
utiliza para poder ejecutar varios programas a la vez. De hecho, el Cell es capaz de ejecutar diez programas
simultaneamente.
2
EL54B
Microprocesadores Cell
La manera de conseguir esto es colocando varios núcleos dentro de la CPU; por núcleo entendemos el bloque
de circuiteria encargado de leer y descodificar las instrucciones, luego, estar ordenes se pasan a las diferentes
unidades de trabajo (sumadores, multiplicadores, ..); es decir, desde el punto de vista de los programas, el
procesador es en realidad una bateria de microprocesadores (diez en el caso del Cell) que, desde el punto de vista
del software, se trata de un sistema de multiples procesadores estandar.
La ventaja de esta técnica es que el procesador trabaja de la misma forma que el programador. Los programas
son secuencias que siguen un orden lineal dado que el programador concibe el programa como algo lineal, sin
pensar en el proceso de paralelización. Las metodologı́as anteriores tratan de convertir esa secuencia lineal
en paquetes ejecutables en paralelo; lo que en la práctica, convierte a la paralelización en un proceso muy
ineficiente, con lo que el procesador siempre estara funcionando muy por debajo de su capacidad. Sin embargo,
los programadores si que estan habituados a trabajar con multiples procesos que han de correr en paralelo (y los
lenguajes de programación también están familiarizados con este concepto); esto significa que el programador
esta en condiciones de tener en cuenta las capacidades del procesador en sus desarrollos, y optimizarlos en
consecuencia, lo que hace posible que el procesador trabaje al 100 % de su capacidad.
El punto débil de esta metodologı́a involucra la gestión del bus. Los microcontroladores basados en esta
metodologı́a (como el chip Cell) funciona como una bateria de procesadores empaquetados juntos, pero esta
bateria se comunica con la memoria a traves de un único canal (el bus del microchip); de manera que muchas
gestiones por unidad de tiempo provocan congestión en el bus, por lo que es preciso que la gestión del bus sea
muy eficiente. Este factor es tan crı́tico, que si no está bién solucionado puede arruinar todas las posibilidades
que ofrece el procesador.
Con esta filosofı́a de funcionamiento detrás, y con la idea del desarrollo de un nuevo procesador; Sony, Toshiba
e IBM, unieron fuerzas para el desarrollo de un nuevo proyecto: el chip Cell.
Inicialmente se comenzó una discusión entre los ejecutivos de las compañı́as de Sony y de IBM, Sony como
abastecedor e IBM como compañı́a de tecnologı́a y del servidor. La idea inicial era desarrollar un nuevo procesador con ciertas caracterı́sticas. La colaboración fue iniciada entre SCEI (Sony Computer Entertainment
Incorporated), IBM, para el desarrollo del microprocesador, y Toshiba, como ayuda en el desarrollo y socio de
empresas de tecnologı́a de fabricación
Esto condujo a las discusiones arquitectónicas para un procesador de alto nivel entre las tres compañı́as durante
el verano de 2000. Durante una reunión crı́tica en Tokio, fue determinado que las organizaciones arquitectónicas de procesadores tradicionales no entregarı́an la energı́a de cómputo que SCEI buscaba para sus necesidades
interactivas futuras. SCEI trajo a las discusiones una visión para alcanzar 1.000 veces el rendimiento del PlayStation2. Finalmente se llegó a un acuerdo que entre los objetivos estaban que el procesador alcanzara 100 veces
el rendimiento de PlayStation2.
En este instante la sección de investigación de IBM comenzó a explorar nuevas ideas de la organización del
diseño. IBM también se encargarı́a de contribuir con stateoftheart preocesos de 90-nm con aislador de silicio
(SOI, silicononinsulator), lowk dielectrics, y interconexiones de cobre.
En el año 2000 se pensó la base del procesador, estando todos los involucrados de acuerdo, esto luego de haber
discutido varias posibilidades. La arquitectura base debı́a tener un procesador de 64 bit con control de flujo de
memoria (Memory Flow Controll) y synergistic processors, para poder proveer la densidad computacional y la
eficiencia de energı́a requerida. La unión de estas tres compañı́as en para este proyecto se denominó STI (SCEIToshibaIBM) Design Center, y fue creada oficialmente el 9 de marzo 2001 en Austin, Texas. Pero a pesar de estar
centrado en Texas, varios grupos externos participaron en el proceso de diseñar e implementar el multiprocesador
Cell.
Los objetivos principales del nuevo procesador eran:
Rendimiento excepcional, especialmente en aplicaciones para de juegos y de multimedia. Se querı́a aumentar
el rendimiento, impuesto por la latencia de la memoria y el ancho de banda, la energı́a disipada y reducir
la cantidad de trabajo por ciclos incrementando las etapas del pipeline.
3
EL54B
Microprocesadores Cell
Sensibilidad en tiempo real al usuario y a la red. Para tener al jugador satisfecho, se debe proveer de
un constante actualizaciones en tiempo real del modelamiento de un espacio virtual con realimentación
consistente y continua de sensaciones sensoriales visuales y de sonidos.
Aplicabilidad a una amplia gama de plataformas.
Se querı́a introducir en el año 2005
Ası́ nació el microprocesador CELL, el cual es un chip multiproceso, que consiste de una arquitectura de
procesador de 64 bits, con paralelismo múltiple (multiple streaming processors), una Salida/Entrada flexible y
un controlador de memoria interfaz. Este procesador ha sido diseñado para realizar cargas de trabajo de cálculo
intensivo y aplicaciones de banda ancha con contenido multimedia, entre las que se incluyen videojuegos, pelı́culas
y otras formas de contenido digital. Todo ello está conformado por una arquitectura IBM POWER y múltiples
unidades de cálculo vectorial del tipo SIMD (una instrucciónmúltiples datos) capaces de realizar importantes
cálculos en coma flotante.
4
EL54B
Microprocesadores Cell
SECCIÓN 2
Descripción por bloques del Microprocesador Cell
Se aprecia en la Figura 2, los principales elementos que componen un microprocesador Cell. Fı́sicamente
emplea más de 234 millones de transistores, junto a 580 mil repetidores1 todo esto ha sido implementado usando
la tecnologı́a de 90nm SOI con 8 capas de cobre interconectadas entre sı́. El chip posee 3 clocks distintos que
son proveidos por PLLs2 independientes. El reloj principal cubre aproximadamente el 85 % del area del chip,
siendo el encargado de los procesadores y otros circuitos varios. Los otros clocks operan a fracciones del clock
principal y se reparten en el chip creando verdaderas islas de múltiples clocks dentro del chip. Lo que diferencia
este procesador de los demás es que corresponde a un sistema en un chip, lo que quiere decir que muchos núcleos
con funciones especı́fı́cas son capaces de interactuar para entregar un rendimiento mucho mayor que los actuales
procesadores.
Figura 1: Microprocesador Cell
Se observa además que los elementos básicos que conforman el Microprocesador Cell son
Cirucuito para la gestión de memoria, MIC3 y entrada/salida (I/O Controller).
Una memoria caché de segundo nivel de 512 Kbytes (L2).
Una unidad de proceso de propósito general, el Power Processor Element.
Ocho unidades de proceso vectorial llamadas Synergistic Processor Elements.
Un bus que interconecta los elementos anteriormente listados llamado Element Interconnect Bus (EIB).
Se aprecian en la Figura 2, los principales elementos que componen el microprocesador Cell. Esta corresponde
a una mirada por bloques de los diferentes elementos que conforman el microprocesador.
Para explicar por encima el funcionamiento de este multiprocesador, diremos que Cell cuenta con un procesador
simple, PowerPC, el PPE4 de 64 bit encargado de gestionar la carga de trabajo global, siendo este quien envı́a
los conjuntos de instrucciones entre los 8 SPU’s5 , las cuales serán procesadas de forma independientemente en
cada uno de ellos.
Cada SPE6 se compone de una ALU con cuatro SIMD7 , lo cual se denomina SPU. Ella además tiene 128
registros, cada uno de los cuales tiene un tamaño de 128 bits. Las SPE’s cuentan además con un controlador de
flujo de memoria denominado MFC8 .
1 Amplifican
nuevamente la señal, para asegurar la transmisión.
Locked Loop.
3 Memory Interface Controller
4 Power Processor Element
5 Sinergistic Processor Unit
6 Single Processor Element
7 Single Instruction Multiple Data
8 Memory Flow Controller
2 Phase
5
EL54B
Microprocesadores Cell
Figura 2: Diagrama de Bloques
El chip Cell tiene un tamaño de 235 mm2 los que casi duplican a los 122 mm2 del Intel Pentium 4 Prescott,
desarrollado también con tecnologı́a de 90 nm pero con bastantes menos transistores (125 millones). Además, en
contra del Pentium 4, éste únicamente dispone de un procesador simple SPU, mientras que el Cell tiene 8 como
mı́nimo, siendo además una tecnologı́a escalar9 . En cuanto a la velocidad, Cell será capaz de manejar más de
4GHz, el PlayStation3 funciona a 3.2GHz, dependiendo esto último del fabricante, el cual será quien decida su
velocidad en función de algunos factores como, por ejemplo su consumo, calentamiento, etc. nunca alcanzando
su velocidad lı́mite. Los procesadores de calle hoy en dı́a son capaces de colocar, como máximo, hasta 3,8GHz,
siendo Intel quien se encuentra en plena experimentación para llegar a los 4GHz sin un excesivo calentamiento.
La velocidad en la que la información se moverá entre el procesador, memoria y periféricos también impresiona.
Para ello, se ha utilizado una tecnologı́a Rambus XDR 10 y tecnologı́a FlexIO para la entrada y salida de la
información del chip a una velocidad de 92 gigabytes por segundo. La interfaz de memoria XDR puede manejar
30 gigabytes por segundo gracias a sus 3.2GHz, y el BUS de FlexIO que funciona en 6.4GHz tiene un rendimiento
de procesamiento máximo de 72 gigabytes por segundo.
El problema principal que resulta de una tecnologı́a como esta viene dado por la programación paralela o
programación de los multiprocesadores, la cual siempre ha sido la más difı́cil de ejecutar, aunque desde Sony ya
se han apresurado a informar que existen varias formas de acercarse a este tipo de programación sin excesivos
problemas, además de unas librerı́as de código libre que se desarrollarán para facilitar al máximo este proceso.
9 Como en clases se ha visto esta tecnologı́a permite muchos más procesadores simultáneos, pudiendo realizar cada uno de ellos
tareas independientes
10 Extreme Data Rate Dynamic Random Access Memory
6
EL54B
2.1
Microprocesadores Cell
Arquitectura del Power Processor Element
Figura 3: Ubicación del PPE en el Microprocesador Cell
El PPE es un PowerPC de 64 bits y doble núcleo bastante especial. Sı́ es un PowerPC en cuanto a que
implementa el mismo juego de instrucciones que los PowerPC pero no es un PowerPC en cuanto a su diseño
interno. Se Podrı́a decir que visto desde fuera es un PowerPC pero visto por dentro no lo es. La principal
diferencia con los PowerPC tradicionales es que el PPE de Cell es mucho más simple. En el PPE el circuito
utilizado para la predicción de saltos no va muy allá y carece por completo de ejecución fuera de orden. El PPE
es un RISC11 a la antigua capaz de ejecutar dos instrucciones simultáneamente.
Figura 4: Estructura interna del PPE
La profundidad del pipeline12 es de 23, lo cual es mucho menor que lo que se puede esperar para un diseño que
reduce la cantidad de tiempo utilizado por etapa en comparación con otros diseños anteriores. La microarquitectura del procesador es tal que se limite el retardo de comunicación en cada ciclo. El diseño del PPE es bastante
simplificado si se compara con otros diseños actuales.
El PPE es un diseño de dos hilos de ejecución que no reordena las instrucciones dinámicamente en tiempo real.
El núcleo interpola las instrucciones a partir de dos hilos de ejecución al mismo tiempo de optimizar el uso del
pipeline y ası́ mantener la máxima eficiencia. Funciones aritméticas simples ejecutan y entregan sus resultados
en dos ciclo. Debido al pipeline de fixed-point, las instrucciones de carga también se ejecutan en dos ciclos. Una
instrucción de floating-point de precisión doble se ejecuta en diez ciclos.
11 Reduced
12 Número
Instruction Set Computer
de etapas del pipeline.
7
EL54B
Microprocesadores Cell
El PPE tiene una caché de primer nivel de 32 KB, caché de datos y una caché de segundo nivel de 512 KB.
Existen tablas de reemplazo que permiten o no, la escritura en direcciones especı́ficas de la memoria caché de
segundo nivel Ası́ cada software tiene su propio especio en memoria. Esto permite creciente eficiencia y el control
en tiempo real creciente del procesador.
El procesador provee dos hilos de ejecución (dos tareas) simultáneos y puede ser visto como un multiprocesador
de dos vı́as con flujo de datos compartido. Esto da al software la apariencia de tener dos unidades de procesamiento
independientes. Todos los estados en la arquitectura están multiplicados, incluidos los registros y los registros de
propósito especı́ficos, a excepción de los registros que trabajan con el estado y recursos del sistema en general,
como las particiones de las memorias y el control de los hilos de ejecución.
Cada PPE está compuesto de tres unidades principales, las que se describen a continuación.
Instruction Unit IU, es responsable de las instrucciones buscar (fetch), descifrar (decode), ramifica (branch),
ejecuta (issue) y ejecución terminada (completion).
Fixed-point execution unit XU, unidad de ejecución de todas las instrucciones de punto-fijo. Además se
encarga de todas las instrucciones de punto fijo y de las del tipo load/store.
Vector Scalar Unit VSU, es responsable de todas las instrucciones de punto flotante y vectoriales.
Dos son los motivos que han llevado a este diseño simplista de la unidad de propósito general, PPE. El primero
de ellos corresponde al consumo de potencia, un procesador común (Pentium 4, etc. . . ) trabajando a frecuencias
cercanas a los 3 GHz, presenta un elevado consumo por lo que es necesario tener elementos de disipación y de
control de calor para que no se dañe , esto es lo que los micorprocesadores Cell han evitado trabajando con
menores voltahes lógicos, el uno lógico es de 1[V ], además se desarrollaron nuevos Flip Flops para mejorar la
dispación de potencia y los retrasos que se producen en ellos. El otro problema que se ataco en forma directa
corresponde, como recién ha sido mencionado, al retraso impuesto por los elementos del circuito (Flip Flops,
latches, . . . ).
EL pipeline que esta arquitectura emplea se muestra a continuación. En ella los colores representan los distintos
elemntos en los que ocurren las etapas del pipeline.
Figura 5: Diagrama del pipeline para el PPE
8
EL54B
2.2
Microprocesadores Cell
Arquitectura de los Synergistic Processors Elements
Figura 6: Ubicación de un SPE
En la figura se aprecian los diferentes elementos que componen una SPE.
Figura 7: Estructura interna del SPE
Los componente principales de un SPE son:
128 registros de 128 bits.
Circuito de gestión de memoria y entrada/salida.
256 KB de memoria local, LS, es similar a una memoria caché.
Circuito de control y de operaciones aritmético-lógicas.
Las SPE’s son procesadores independientes cada una ejecutando un hilo de ejecución (una tarea o aplicación)
distinta. Fueron diseñadas para optimizar las aplicaciones con uso computacional intensivo. Cada SPE incluye
una memoria LS para un acceso eficiente de las instrucciones y los datos, pero además tiene acceso a la memoria
del sistema, incluyendo el espacio memory mapped I/O.
El SPE implementa una nueva arquitectura de conjunto de instrucciones optimizadas para disminuir el gasto
energético y aumentar el rendimiento al realizar aplicaciones de multimedia y al ejecutar aplicaciones que requieren uso intensivo computación. El SPE funciona encendiendo el LS que almacena las instrucciones y los
datos. Entonces los datos y las instrucciones son transferidas entre el LS y la memoria del sistema por comandos
ası́ncronos del DMA13 . Estos comandos son ejecutados por la unidad MFC incluida en cada SPE. Dado que los
comandos utilizados por el DMA usan la misma traducción y protección utilizada por las tablas de segmentación
13 Direct Memory Access. Esta tecnologı́a permite que el procesador no se encargue de las llamadas a meoria, escritura, lectura,
habilitación, etc. . . . De esta manera el procesador solo pide datos a la memoria y estos le llegan
9
EL54B
Microprocesadores Cell
y paginación de la arquitectura del PPE, las direcciones pueden ser pasadas desde el PPE a los SPE’s, además
pueden compartir memoria y usar todos los recursos del sistema de manera consistente.
La memoria local de cada SPE tiene el propósito de disminuir el tiempo de latencia, el cual puede ser llamada
the memory wall. Con esta memoria local permite que se ejecuten varios procesos simultáneamente sin requerir
de transacciones continuas con la memoria del sistema, ya que permite transacciones de memoria simultáneas.
La memoria local store es un single-port SRAM cell, únicamente para minimizar el espacio utilizado y proveer de
un buen rendimiento. En general un acceso a memoria directo (DMA) tı́pico de 128 byte tanto de escritura como
de lectura dura 16 ciclos en escribir los datos en el on-chip coherent bus, por esto 7 de 8 ciclos están disponibles
para instrucciones de carga, guardar y buscar. Las instrucciones se buscan de 128 bytes a la vez. Además se le
da prioridad a los comandos provenientes del DMA, luego a las instrucciones de carga, guardar y finalmente a
la instrucción guardar.
Hay varias cosas que destacar en esta arquitectura:
La memoria caché es pequeña y además no es una caché al uso. No es transparente ni tiene unidad de
predicción de acceso a datos, por lo que el software que escribamos (o en su defecto el sistema operativo)
debe encargarse de gestionar esta memoria.
Tampoco hay ejecución fuera de orden.
Se accede a la memoria principal por DMA. Lanzar una petición DMA puede ser muy lento, aunque una
vez que comienzan a fluir los datos va muy bien.
Los registros de 128 bits permiten ejecución sobre varios datos de menor tamaño en paralelo SIMD.
Es una arquitectura RISC superescalar.
El juego de instrucciones de las SPE’s está inspirado en VMX/Altivec; es muy parecido pero no idéntico.
EL pipeline se muestra a continuación, al igual que en el PPE los colores identifican a cada estructura del
SPE.
Figura 8: Diagrama del pipeline para el SPE
10
EL54B
2.3
Microprocesadores Cell
Bus de Interconexión de Elementos
Figura 9: Bus de Interconexión de Elemntos
Todos los elementos (el PPE, el controlado de memoria, las ocho SPE’s y dos interfaces externas de I/O) del
procesador Cell están unidos por el Bus interno de interconexión de elementos EIB de 96 Bytes por ciclo para
una cantidad total de 12 participantes. Este bus de interconexión funciona en base de un sistema de mensajes.
Tanto el PPE, como las SPE’s pueden agarrar y dejar datos con 8 Bytes por ciclo del EIB.
El EIB es un anillo compuesto por cuarto canales unidireccionales de 16 bytes de ancho (4x128-bit). El máximo de ancho de banda por ciclo de reloj es de 96 Bytes. Se calcula de la siguiente manera
Ancho de BandaM ax =
12 Concurrent Transactions · 16 Bytes Wide
2 System Clocks per Transfer
(1)
Cada elemento del Microprocesador Cell tiene un puerto de 16 Bytes de lectura y puerto de 16 Bytes de
escritura. El lı́mite de cada elemento conectado al EIB es escribir y leer con una tasa de 16 Bytes por ciclo de
reloj, lo cual se simplificó decidiendo escribir únicamente 8 Bytes por ciclo de reloj.
2.4
Memory Interface Controller MIC e I/O Controller
Figura 10: MIC, I/O
El controlador de la interfaz de memoria MIC provee de la interfaz entre el EIB y de la memoria del sistema.
Este controlador permite uno o dos canales XDR, interfaces de memoria, los que juntos permiten desde 64 MB
a 64GB de XDR DRAM.
El sistema de interfaz usada en Cell es conocidad como interfaz FlexIO, la cual está organizada en 12 lı́neas,
cada lı́nea tiene un ancho de 8 bit unidireccional del point-to-point path. Cinco de ellas son lı́neas de entrada,
por lo cual las 7 restantes lı́neas son de salida.
11
EL54B
2.5
Microprocesadores Cell
Otras Consideraciones
Escalabilidad: Cell está diseñado para facilitar la construcción de sistemas que agrupen varios procesadores
Cell. En concreto, un núcleo PPE puede acceder a las SPE’s de otros procesadores Cell que convivan en
el mismo sistema.
DRM en Cell: Cell no implementa un sistema DRM14 especı́fico; sin embargo sı́ incluye una caracterı́stica
muy interesante desde el punto de vista de la seguridad y privacidad que podrı́a ser aprovechada por un
software de DRM. Dicha caracterı́stica consiste en la existencia de un modo de ejecución en el que el
contenido de la caché de una SPE es privado para esa SPE. Ninguna otra SPE, ni el PPE, ni ningún
dispositivo externo al procesador puede leer el contenido de esa memoria.
Etiquetas de memoria: Cell soporta el uso de etiquetas de memoria. El único motivo para incluirlas es poder
ejecutar el sistema operativo AS/400 que IBM15 aún mantiene en los mainframes.
14 Digital
Right Manager
de gama baja y media de IBM
15 Servidor
12
EL54B
Microprocesadores Cell
SECCIÓN 3
Modelos de Programación para el Microprocesador Cell
A continuación se mencionarán tres modelos que en la actualidad se usan para programar estos microprocesadores. No se entrará en detalle ya que este trabajo no esta enfocado a la programación, sino que más bien
está enfocado a la descripción de la arquitectura.
3.1
Stream Processing
Consiste en alinear varias SPE’s en cascada (en pipeline) para que cada una ejecute una etapa de un proceso
complejo. Además internamente en cada SPE hay un pipeline.
3.2
Cola de Tareas
Consiste en que se van poniendo tareas en una cola y un hilo que corre en el PPE las va sacando y asignando
dinámicamente a una SPE concreta según vayan quedando libres.
3.3
Multitarea Auto-Gestionada
Este es el modelo que está desarrollando Arnd Bergmann de IBM para Linux. El sistema operativo abstrae
cada SPE como un dispositivo en el virtual file system y permite comunicarse con él mediante llamadas al
sistema. Esencialmente, es un modelo o me lo guiso, yo me lo como”, porque toda la sincronización entre
hilos y la asignación de tareas la tiene que gestionar nuestro software. Es de suponer que los desarrolladores de
videojuegos utilizarán sus propias implementaciones de este modelo.
2
13
EL54B
Microprocesadores Cell
SECCIÓN 4
Aplicaciones
4.1
Capacidades del Chip Cell
El Chip Cell fue diseñado para hacer un montón de cosas en distintas áreas, entre las áreas que abarca y las
aplicaciones potenciales que este microprocesador permite se encuentran:
4.1.1 Manipulación de Datos:
-
Digital Media
Procesamiento de Imágenes
Procesamiento de Video
Visualización de Salida
Compresión/Descompresión: técnica para la modulación/demodulación de señales
Encriptado/Decriptación
DSP
4.1.2 Aplicaciones Graficas:
-
Transformación desde distintos dominios (tiempo vs espacio, 2D vs 3D, transformación viewpoint),
Luminocidad y limpieza
Ray-tracing.16
Ray-casting.17
4.1.3 Aplicaciones Intensivas de Punto Flotante (Single Precision)
4.1.4 Reconocimiento de Patrones
-
Bioinformatica
Manipulación de String (mecanismo de búsqueda),
Parsing, transformation, and translation (XSLT)
Filtering and pruning.
4.1.5 Offload Engines
-
TCP/IP
Compiler for gaming applications
XML
Network security and intrusion
4.2
Actuales Aplicaciones
4.2.1 Servidores Blade
Los servidores Blade buscan optimizar aspectos en cualquier empresa tan prioritarios como la escalabilidad,
la confiabilidad funcional, el espacio ocupado, y la administración eficiente de la información de la empresa.
Tradicionalmente, hasta la llegada de los servidores blade, el método para incrementar la capacidad de procesamiento global del centro de datos consistı́a básicamente en agregar más servidores en rack o en torres, lo que
16 El Ray-tracing es una técnica general de óptica geométrica para modelar la trayectoria tomada por la luz, siguiendo los rayos
de luz en la medida que interactúan con superficies ópticas. Es usada para el aprovechamiento de sistemas ópticos, como lentes de
cámaras, microscopios, telescopios y binoculares.
17 El Ray-casting es una técnica que se utiliza en aplicaciones gráficas, que transforma una forma limitada de información (un
mapa simple o el plano del suelo) en una proyección 3D redirigiendo rayos luminosos desde el punto de visión al volúmen de visión
(LaMothe 942). Esto es utilizado en video juegos entre otras cosas, para evitar el pop-up.
14
EL54B
Microprocesadores Cell
suponı́a, entre otras consideraciones; ocupar más espacio, complicaciones con el cableado, aumento de las dificultades en la administración centralizada de los sistemas y un mayor consumo de recursos técnicos y energéticos.
Estos son los principios básicos en los que se fundamenta la arquitectura blade y que al final proporcionan una
reducción del costo total.
Figura 11: Servidores Blade
Los servidores Blade, entre otras cosas, ocupan menos espacio, requieren menos ventilación y enfriamiento
y requieren menor cableado que los servidores rack. La tónica actual es reemplazar la tecnologı́a existente por
servidores Blade, e IBM no podı́a quedarse fuera de esto. En particular, BladeCenter QS20 de IBM incorpora
2 procesadores Cell B.E., SMP de 2 vı́as, operando a 3.2 GHz para su funcionamiento y es el primero de una
lı́nea de muchos modelos más basados en chip Cell.
4.2.2 Videojuegos
El chip Cell es el microprocesador en la consola Playstation 3 (PS3) de Sony. En el competitivo mercado de
las consolas, las necesidades de los usuarios radican en aceleración gráfica, rapido procesamiento de múltiples
datos, buen aprovechamiento del espacio y bajo costo. Para el desarrollo de PS3, Sony invirtió muchos recursos
en el desarrollo del chip Cell. Entre las caracterı́sticas que ofrece el chip Cell de la PS3 se encuentran:
- Soporta varios sistemas operativos diferentes, lo que abre aún más el mercado de las compañı́as que podrán
desarrollar videojuegos
- Gran ancho de banda entre el procesador y la memoria y Optimización para aplicaciones en tiempo real, lo
que permite un buen desempeño para juegos on-line
- Interfaz I/O flexible, lo que permite la introducción de hardware adicional a la consola
- Sistema antipiraterı́a integrado en el chip, el gran problema que tienen las compañı́as, por ejemplo, para
establecer mercados en Latinoamérica.
Esta vez, Sony compite en este mercado con una consola más poderosa y mucha más capacidad de procesamiento que sus rivales. No hicieron grandes avances en la jugabilidad, solo en el poder de procesamiento. Habrá que
ver como le va en esta ronda a Sony.
15
EL54B
Microprocesadores Cell
Figura 12: Playstation3
4.2.3 Investigación Médica:
De acuerdo con lo publicado en un Diario Médico por Daniel Arbós el 15/12/2006, un equipo de la Unidad
de Investigación en Informática Biomédica (GRIB18 ) del Instituto Municipal de Investigación Médica (IMIM)
utiliza el procesador Cell (en particular el Cell de una PS3) para sus trabajos en la simulación de proteı́nas.
Según explica Gianni De Fabritiis, promotor de la idea, .el procesador de esta consola es extremadamente
potente. El número máximo de operaciones que puede hacer es diez veces superior al de cualquier procesador
normal. Si además se adapta la tecnologı́a, algunas aplicaciones pueden ir cincuenta veces más rápido que con
un ordenador convencional”.
Dicen también que el GRIB ha sido el primer grupo en aplicar esta tecnologı́a a sus investigaciones, pero la
Universidad de Stanford está preparando una iniciativa parecida al programa SETI (el de buscar señales en el
universo de vida alienı́gena) para que cualquier propietario de una PlayStation se descargue un software que
permita que se use parte de la capacidad de su aparato para la investigación.
4.3
Aplicaciones en desarrollo
- Supercomputadores: actualmente Blue Gene-L es el supercomputador más poderoso del mundo, y es de
IBM. Blue Gene-L no incorpora el chip Cell. Pero el desafı́o de hacer un hermano mayor para Blue Gene-L,
involucra el uso del Cell.
Figura 13: Blue Gene-L
- Mainframes: IBM recientemente anunció una iniciativa en donde planea ofrecer una opción para sus computadoras tipo Mainframes (ZFrames) en donde se les podrá adaptar por medio de cables de red grupos enteros de
18 Ubicado
en Barcelona, España.
16
EL54B
Microprocesadores Cell
computadoras tipo ”navajas”(de las que son bien delgadas y se montan en rieles) basadas en el chip Cell Broadband Engine para permitir entornos que manejen eficientemente mundos virtuales con millones de participantes
(como Second Life), o juegos ”masivos”de todo tipo (como para juegos al estilo World of Warcraft).
Figura 14: Mainframes
Televisores de alta definición: Sony y Toshiba anunciaron nuevos productos en ésta área basado en Chip
Cell para finales del 2007
Figura 15: Televisión de alta definición
Estaciones de trabajo orientadas a la animación por ordenador: A partir de los demostrado por
PS3, Chip Cell promete ser utilizado en aplicaciones de animación por computadora, como pelı́culas y videos
musicales.
Teléfonos Móviles: Toshiba anunció que está desarrollando una nueva lı́nea de teléfono móviles basados en
Chip Cell
Figura 16: Celular Toshiba
Aplicaciones computacionales de Dinámica de Fluidos: no se encontró a nadie que esté preparando
una aplicación en este ámbito basado en Chip Cell. Pero la arquitectura y diseño del Chip, lo hacen ideal para
17
EL54B
Microprocesadores Cell
este tipo de aplicaciones. Lo mismo si se desea aplicar FFT muchas veces. Donde más deberı́a destacar Chip Cell
es realizando estas tareas.
Vigilancia por Video: Sony adelanta toda una nueva familia de cámaras de vigilancia sobre IP para PYMES
y casas particulares basadas en chip Cell.
Procesamiento de datos de inteligencia, radar y sonar en tiempo real para operaciones y plataformas de reconocimiento militar vigilancia: El año 2006 IBM firmó un acuerdo con Mercury Computing
Systems Inc para crear nuevos sistemas de computación para aplicaciones intensivas de datos, usando el poderoso
chip, para aplicaciones de este tipo.
18
EL54B
Microprocesadores Cell
SECCIÓN 5
Referencias
[1] http://teleobjetivo.monteagudo.net/archives/2005/02/26/el-cell-y-los-procesadores-multinucleo/
[2] http://www-03.ibm.com/technology/splash/qs20/pdf/cell be systems whitepaper.pdf
[3] http://www.vidaextra.com/2006/10/07-el-chip-cell-de-ps3-integrado-en-los-telefonos-moviles
[4] http://www.ibm.com/news/es/es/2006/12/premios sur.html
[5] http://www.permadi.com/tutorial/raycast/rayc1.html#INTRODUCTION
[6] http://www.blachford.info/computer/Cell/Cell0 v2.html
[7] http://www.consolas.es/17-05-2007/consolas/el-poderoso-chip-cell-de-la-ps3
[8] http://www.research.ibm.com/journal/rd/492/tocpdf.html
[9] http://eliax.com/index.php?/archives/2862-IBM-a-alojar-mundos-virtuales-en-Mainframes-con-chips-Cell.html
[10] http://unademedicos.blogspot.com/2006/12/ps3-como-herramienta-investigadora-en.html
[11] http://en.wikipedia.org/wiki/Cell microprocessor
[12] http://researchweb.watson.ibm.com/people/m/mikeg/papers/2006 ieeemicro.pdf: Synergistic Processing
in Cell?s Multicore Architecture; Michael Gschwind (IBM), H. Peter Hofstee (IBM), Brian Flaachs (IBM), Martin Hopkins (IBM), Yukio Watanabe (Toshiba), Takeshi Yamazaki (Sony Computer Entertainment), publicado
por IEEE Computer Society 2006
[13] http://www01.ibm.com/chips/techlib/techlib.nsf/techdocs/BD3F1F4C3DB32C7487257142006131BC/$file/
BE HIG 10KE 1.4 11Sept2006.pdf : Cell Broadband Engine, CMOS SOI 10KE, Hardware Initialization Guide
version 1.4; IBM; 11 septiembre 2006,
[14] http://www.pcstats.com/articleview.cfm?articleID=1727 : IBM’s CELL Processor: Preview to Greatness?,
15 de mayo 2005
[15] http://researchweb.watson.ibm.com/journal/rd/494/kahle.html : Introduction to the Cell multiprocessor;
J. A. Kahle, M. N. Day, H. P. Hofstee, C. R. Johns, T. R. Maeurer, and D. Shippy; Received February 19, 2005;
accepted for publication June 1, 2005; Published online September 7, 2005
[16] http://barrapunto.com/journal.pl?op=display&uid=19560&id=15379 : Destripando Cell en la playa; 10
de Agosto 2005
19