martes, febrero 08, 2005
Los SPE del procesador Cell
Ya se ha presentado oficialmente el procesador Cell y en Ars Technica Jon "Hannibal" Strokes (quien, por cierto, tiene también una muy buena explicación de la arquitectura Hammer de 64 bits que está detrás de Opteron y Athlon 64), comienza un análisis detallado de los SPE que forman parte de esta nueva arquitectura.
El procesador Cell consta de un procesador de propósito general PowerPC más ocho procesadores de propósito especial DSP, a los que IBM llama synergistic processing elements (SPE), aunque Hannibal prefiere denominarlos SIMD processing elements, es decir, una de las arquitecturas básicas de procesamiento paralelo de toda la vida.
Parece ser que la idea detrás del Cell es profundizar en el enfoque de las arquitecturas RISC. Como es sabido, una de las ideas de Patterson y Hennessy es hacer instrucciones más sencillas que hicieran la arquitectura menos compleja pero más rápida. La complejidad se pasaba al compilador y por eso hay gente que dice que RISC significa "Relegate Important Stuff to the Compiler" (relegar las cosas importantes al compilador).
El problema es que la propia evolución de la arquitectura RISC ha hecho que en la actualidad gran parte del hardware esté dedicado a tareas de control en vez de ejecutar realmente las instrucciones, como se muestra en este gráfico. Además, la memoria cada vez está más lejos (en el sentido de que tiene mayores latencias) del núcleo de ejecución.
Lo que ha hecho IBM es eliminar lógica de control para ganar espacio para memoria local y lógica de ejecución. Esto hace que se parezca más a las arquitecturas RISC originales, antes de que se inventase la "ventana de instrucción". Las diferencias entre la arquitectura de un SPE Cell y la original RISC son:
1) Los SPE utilizan ALUs que trabajan con vectores de 128 bits formados de 4 elementos de 32 bits, en lugar de las clásicas ALUs de coma fija.
2) Los SPE no tienen caché L1 sino una memoria direccionable localmente. Esta memoria funciona como una caché pero está bajo el control del programa, es decir, no funciona automáticamente como la caché L1. De esta manera, la lógica de control de la caché L1 que está hecha en hardware se pasa a software, quedando más hardware para introducir más memoria.
Además, los SPE tienen dos cauces (pipelines), con lo que pueden ejecutar dos instrucciones en paralelo.
Como decía el otro día, se le está dando mucho bombo a esta arquitectura. Por ahí la gente ha hablado de una potencia de 250 GFLOPS y ha realizado extrapolaciones nada acertadas. Para empezar, estos procesadores serán muy buenos con operaciones de coma flotante, pero está por ver cómo se comportan con operationes de enteros. Para seguir, según la explicación de Hannibal está claro que al pasarse mucha de la complejidad al software, el aprovechamiento que se haga de la arquitectura dependerá de la potencia de las herramientas de desarrollo.
Hoy por la tarde se supone que se publicarán más detalles, esta vez sobre el nuevo PowerPC que es la otra parte de la arquitectura Cell.
El procesador Cell consta de un procesador de propósito general PowerPC más ocho procesadores de propósito especial DSP, a los que IBM llama synergistic processing elements (SPE), aunque Hannibal prefiere denominarlos SIMD processing elements, es decir, una de las arquitecturas básicas de procesamiento paralelo de toda la vida.
Parece ser que la idea detrás del Cell es profundizar en el enfoque de las arquitecturas RISC. Como es sabido, una de las ideas de Patterson y Hennessy es hacer instrucciones más sencillas que hicieran la arquitectura menos compleja pero más rápida. La complejidad se pasaba al compilador y por eso hay gente que dice que RISC significa "Relegate Important Stuff to the Compiler" (relegar las cosas importantes al compilador).
El problema es que la propia evolución de la arquitectura RISC ha hecho que en la actualidad gran parte del hardware esté dedicado a tareas de control en vez de ejecutar realmente las instrucciones, como se muestra en este gráfico. Además, la memoria cada vez está más lejos (en el sentido de que tiene mayores latencias) del núcleo de ejecución.
Lo que ha hecho IBM es eliminar lógica de control para ganar espacio para memoria local y lógica de ejecución. Esto hace que se parezca más a las arquitecturas RISC originales, antes de que se inventase la "ventana de instrucción". Las diferencias entre la arquitectura de un SPE Cell y la original RISC son:
1) Los SPE utilizan ALUs que trabajan con vectores de 128 bits formados de 4 elementos de 32 bits, en lugar de las clásicas ALUs de coma fija.
2) Los SPE no tienen caché L1 sino una memoria direccionable localmente. Esta memoria funciona como una caché pero está bajo el control del programa, es decir, no funciona automáticamente como la caché L1. De esta manera, la lógica de control de la caché L1 que está hecha en hardware se pasa a software, quedando más hardware para introducir más memoria.
Además, los SPE tienen dos cauces (pipelines), con lo que pueden ejecutar dos instrucciones en paralelo.
Como decía el otro día, se le está dando mucho bombo a esta arquitectura. Por ahí la gente ha hablado de una potencia de 250 GFLOPS y ha realizado extrapolaciones nada acertadas. Para empezar, estos procesadores serán muy buenos con operaciones de coma flotante, pero está por ver cómo se comportan con operationes de enteros. Para seguir, según la explicación de Hannibal está claro que al pasarse mucha de la complejidad al software, el aprovechamiento que se haga de la arquitectura dependerá de la potencia de las herramientas de desarrollo.
Hoy por la tarde se supone que se publicarán más detalles, esta vez sobre el nuevo PowerPC que es la otra parte de la arquitectura Cell.