FAQ FAQ     Buscar Buscar     Mensajes Privados Mensajes privados     Log In / Log Out Login     Regstrate! ¡Regístrate!

Publicar nuevo tema   Responder al tema
Ver tema anterior Versión imprimible Mensajes privados Ver tema siguiente
Autor Mensaje
Abadia Digital
Asunto: El Cell y los procesadores multinúcleo  MensajePublicado: 21 Feb, 2005 - 10:07
Administrador
Administrador


Registrado: 30 Ene, 2003
Mensajes: 1683

Hace unos dias se presento oficialmente el Cell, que es el procesador que llevara la nueva Playstation III, y con el que sus creadores han prometido que van a revolucionar el mundo de la electrónica y la informática. Pero, ¿Que tiene de especial este procesador? ¿Realmente es tan revolucionario como dicen?

Primero, hagamos un poco de historia. 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 (por ejemplo, una suma y una multiplicación) a la vez. Sin embargo, habia un problema; los programas de ordenador son series de instrucciones pensadas para ejecutarse secuencialmente, una detras de otra.... ¿Como solucionarlo? Evidentemente, el leer y ejecutar las instrucciones de dos en dos o de cuatro en cuatro no es solución..... veamos un ejemplo:

1: c=a+b
2: d=c+b

Esta claro que las dos instrucciones anteriores no se pueden ejecutar a la vez, ya que la segunda utiliza el resultado de la primera.

Así, para solucionar el problema, a lo largo de los años se han diseñado tres técnicas diferentes:

EJECUCION 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.

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.

Simembargo, 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.

PROCESADORES MULTINUCLEO

Y por fin, llegamos a la técnica utilizada por el Cell. 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.

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 funcionan como un sistema de multiples procesadores estandar.

¿Cual es la ventaja de esta técnica? Simplemente, que el procesador trabaja de la misma forma que el programador. Como ya hemos dicho, un programa, tal como lo escribe un desarrollador, es una secuencia de instrucciones pensada para ejecutarse linealmente, y lo que hacen las metodologías anteriores es intentar convertir esa secuencia lineal en paquetes ejecutables en paralelo; el problema es que, como ya hemos dicho, el programador concibe el programa como algo lineal, sin pensar en el proceso de paralelización posterior; es mas, los lenguajes de programación estandar también están pensados de esta forma; esto significa que, en la práctica, la paralelización es un proceso muy ineficiente, con lo que el procesador nunca podra rendir al máximo. 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.

Sin embargo, esta metodologia tiene un punto debil: La gestión del bus. Como ya hemos dicho, este tipo de micro funciona como una bateria de procesadores empaquetados juntos, pero esta bateria se comunica con la memoria a traves de un único bus (el bus del microchip); esto quiere decir que, si no queremos tener un atasco, 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.


Autor: Francisco Monteagudo
Enlace: http://www.monteagudo.net/blog/index.ph ... ador-cell/
 
 Ver perfil de usuario Enviar mensaje privado  
Responder citando Volver arriba
Mostrar mensajes de anteriores:     
Cambiar a:  
Todas las horas son GMT + 1 Hora
Publicar nuevo tema   Responder al tema
Ver tema anterior Versión imprimible Mensajes privados Ver tema siguiente