Buscar en este blog

Tema 3.e: Análisis de la jerarquía de memoria de una arquitectura comercial: el Emotion Engine


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:

No hay comentarios: