En
otros artículos se ha hecho referencia a la arquitectura de una CPU y de una
GPU desde un punto de vista bastante global. En el artículo de hoy el objetivo
es centrarse únicamente en la jerarquía de memoria y para ello se ha escogido
el Emotion Engine, el “procesador” que puede encontrarse en la Playstation 2.
La
Playstation 2 salió al mercado en el año 2000 y a día de hoy sigue siendo la
que mayor número de unidades ha vendido, además de esto la comunidad de
usuarios activos es muy grande, como lo demuestra el hecho de que se sigan
sacando juegos para esta plataforma. Sony ha confirmado que mientras haya
demanda seguirá dándole soporte, y ya van 12 años…
La
vigencia de este “procesador” no es sólo por el uso que aún tiene la PS2, sino
también venía integrado en las primeras versiones de la PS3 que se vendieron en
Japón y Estados Unidos para mantener la retro compatibilidad con los juegos
anteriores a dicho sistema.
La
arquitectura en general de la Playstation 2 es bastante diferente de la de un
ordenador personal convencional, está mucho más enfocada a aplicaciones
multimedia donde se maneja gran cantidad de datos con una vida muy corta y con
un número reducido de instrucciones. Esto tiene que afectar necesariamente a la
forma en la que se organiza la memoria del conjunto.
En
los siguientes esquemas se puede ver la disposición general:
El
Emotion Engine está por tanto compuesto de un núcleo basado en la CPU MIPS III R5900
con 32 registros de 128 bits cada uno, una caché de nivel 1 de 16 Kilobytes para
instrucciones y 8 para datos. La Vector Unit 0 comparte con este núcleo 16
Kilobytes de Scratchpad RAM (SPRAM). Aunque algunas personas piensan que el
R5900 es un procesador de 128 bits en realidad trabaja con paquetes de 4 datos
de 32 bits cada uno que almacena en un único registro de 128 bits.
La
memoria “Scratchpad” está orientada como un lugar de almacenamiento temporal de
datos en el que la VU0 y el núcleo realizan operaciones sobre el mismo bloque
de información antes de mandarlo más adelante en el cauce.
Las
distintas unidades que componen esta arquitectura se asocian por módulos para
acometer tareas definidas según este esquema:
Todos
los componentes se interconectan entre sí con un bus de 128 bits.
La
memoria principal es de 32 MB de RD RAM en modo directo, con un ancho de banda
de 3.5 GB/s.
Ambas
unidades vectoriales (VU0 y VU1) tienen una arquitectura muy similar que desde
el punto de vista de la memoria se compone de 32 registros de coma flotante de
128 bits, 16 registros de 16 bits para operaciones con enteros y una memoria
caché local para datos de 4 KB en el VU0 y de 16 en el VU1.
Con
el núcleo del sistema trabajando a 300 MHz el bus interno de datos proporciona
un ancho de banda teórico de 2,4GB/s. Las transferencias DMA que se hacen sobre
este bus consisten en paquetes de 8 palabras de 128 bits cada una que nos dan
un ancho de banda usable de 2 GB/S.
Bibliografía:
- http://forums.pcsx2.net/Thread-Why-if-PS2-processor-is-300MHz-we-need-a-3-1-GHz-processor
- http://arstechnica.com/features/2000/04/ps2vspc/
- http://lukasz.dk/playstation-2-programming/an-introduction-to-ps2dev/
- http://www.siliconera.com/2009/06/29/sony-patents-emotion-engine-emulation-technology-for-cell-processors/
- http://www.wtkasa.com/psx/v5_main.php
- http://www.docstoc.com/docs/42274983/Emotion-Engine
- http://blogs.ua.es/pdsteleco/2009/02/11/emotion-engine/
- http://en.wikipedia.org/wiki/PlayStation_2
- http://en.wikipedia.org/wiki/Emotion_Engine
No hay comentarios:
Publicar un comentario