
El Emotion Engine es una unidad central de procesamiento desarrollada y fabricada por Sony Computer Entertainment y Toshiba para su uso en la consola de videojuegos PlayStation 2. También se utilizó en los primeros modelos de PlayStation 3 vendidos en Japón y Norteamérica (CECHAxx y CECHBxx) para brindar soporte a los juegos de PlayStation 2. La producción en masa del Emotion Engine comenzó en 1999 y finalizó a finales de 2012 con la descontinuación de PlayStation 2. [ 1 ]
Descripción


El Emotion Engine consta de ocho "unidades" independientes, cada una con una función específica, integradas en el mismo chip . Estas unidades son: un núcleo de CPU, dos unidades de procesamiento vectorial (VPU), una unidad DMA de 10 canales , un controlador de memoria y una unidad de procesamiento de imágenes (IPU). Dispone de tres interfaces: una interfaz de entrada/salida para el procesador de E/S, una interfaz gráfica (GIF) para el sintetizador gráfico y una interfaz de memoria para la memoria del sistema. [ 2 ]
El núcleo de la CPU está estrechamente acoplado a la primera VPU, VPU 0. Juntos, son responsables de ejecutar el código del juego y los cálculos de modelado de alto nivel. La segunda VPU, VPU 1 , se dedica a las transformaciones geométricas y la iluminación, y opera de forma independiente, en paralelo al núcleo de la CPU, controlada por microcódigo . Cuando no se utiliza, la VPU 0 también puede emplearse para transformaciones geométricas. Las listas de visualización generadas por la CPU/VPU 0 y la VPU 1 se envían al GIF, que las prioriza antes de enviarlas al Sintetizador Gráfico para su renderizado.
núcleo de CPU
El núcleo de la CPU es un procesador RISC superscalar bidireccional MIPS R5900 [ 3 ] basado en el R5000 , que implementa la arquitectura del conjunto de instrucciones (ISA) MIPS-III con un subconjunto de MIPS-IV además de un conjunto de instrucciones personalizado desarrollado por Sony que operaba en grupos de 128 bits de enteros de 32, 16 u 8 bits en modo de instrucción única, datos múltiples (SIMD) (por ejemplo, cuatro enteros de 32 bits podían sumarse a otros cuatro usando una sola instrucción). Las instrucciones definidas incluyen: suma, resta, multiplicación, división, mínimo/máximo, desplazamiento, lógica, conteo de ceros iniciales, carga/almacenamiento de 128 bits y desplazamiento de embudo de 256 a 128 bits además de algunas no descritas por Sony por razones de competencia. Contrariamente a algunas ideas erróneas, estas capacidades SIMD no implicaban que el procesador fuera de "128 bits", ya que ni las direcciones de memoria ni los enteros en sí mismos eran de 128 bits, sino únicamente los registros SIMD/enteros compartidos. A modo de comparación, los registros de 128 bits y las instrucciones SIMD ya estaban presentes en la arquitectura x86 de 32 bits desde 1999, con la introducción de SSE . Sin embargo, las rutas de datos internas eran de 128 bits y sus procesadores podían operar con cantidades de 4x32 bits en paralelo en registros individuales.
Cuenta con una arquitectura de procesamiento en paralelo de 6 etapas para enteros y una arquitectura de procesamiento en paralelo de 15 etapas para coma flotante (FP). Su conjunto de registros incluye 32 registros SIMD VLIW de 128 bits (para nombrar/renombrar), un acumulador de 64 bits y dos registros de datos generales de 64 bits, 8 registros de función de corrección de 16 bits y 16 registros de controlador de 8 bits. El procesador también cuenta con dos unidades aritmético-lógicas (ALU) de enteros de 64 bits, una unidad de carga-almacenamiento (LSU) de 128 bits , una unidad de ejecución de rama (BXU) y un coprocesador de unidad de coma flotante (FPU) VU1 de 32 bits (que actuaba como controlador de sincronización para la VPU0/VPU1) que contiene un núcleo de procesador base MIPS con 32 registros FP de 64 bits y 15 registros de enteros de 32 bits. Las ALU son de 64 bits, con una FPU de 32 bits que no cumple con el estándar IEEE 754. El conjunto de instrucciones personalizado 107 MMI (Multimedia Extensions) se implementó agrupando las dos ALU de enteros de 64 bits. Tanto la segmentación de enteros como la de punto flotante constan de seis etapas.
Para alimentar las unidades de ejecución con instrucciones y datos, hay una caché de instrucciones asociativa de dos vías de 16 KB , una caché de datos no bloqueante asociativa de dos vías de 8 KB [ 4 ] y una RAM de acceso rápido de 16 KB . Tanto las cachés de instrucciones como las de datos están indexadas virtualmente y etiquetadas físicamente, mientras que la RAM de acceso rápido existe en un espacio de memoria separado. Se proporciona un búfer de traducción de instrucciones y datos de doble entrada combinado de 48 para traducir direcciones virtuales . La predicción de bifurcaciones se logra mediante una caché de direcciones de destino de bifurcación de 64 entradas y una tabla de historial de bifurcaciones que está integrada en la caché de instrucciones. La penalización por predicción errónea de bifurcación es de tres ciclos debido a la corta tubería de seis etapas.
Unidades de procesamiento vectorial
La mayor parte del rendimiento de punto flotante del Emotion Engine la proporcionan dos unidades de procesamiento vectorial (VPU), denominadas VPU0 y VPU1. Estas eran esencialmente DSPs diseñadas para matemáticas 3D y precursoras de las canalizaciones de sombreado de vértices por hardware . Cada VPU cuenta con 32 registros SIMD vectoriales de 128 bits (que almacenan datos vectoriales 4D ), 16 registros de punto fijo de 16 bits, cuatro unidades de multiplicación y acumulación de punto flotante (FMAC), una unidad de división de punto flotante (FDIV) y una memoria de datos local . La memoria de datos de VPU0 tiene un tamaño de 4 KB, mientras que la de VPU1 es de 16 KB.
Para lograr un ancho de banda elevado, la memoria de datos de la VPU está conectada directamente a la GIF, y ambas memorias pueden ser leídas directamente por la unidad DMA . Una instrucción vectorial consta de cuatro valores de coma flotante de precisión simple de 32 bits , que se distribuyen a las cuatro unidades FMAC de precisión simple (32 bits) para su procesamiento. Este esquema es similar a las extensiones SSEx de Intel.
Las unidades FMAC tardan cuatro ciclos en ejecutar una instrucción, pero como cuentan con una arquitectura de segmentación de seis etapas , su rendimiento es de una instrucción por ciclo. La unidad FDIV tiene una arquitectura de segmentación de nueve etapas y puede ejecutar una instrucción cada siete ciclos.
Unidad de Procesamiento de Imágenes (IPU)
La IPU permitía la decodificación de imágenes comprimidas MPEG-2 , lo que posibilitaba la reproducción de DVD y FMV de juegos . También permitía la cuantización vectorial para datos gráficos 2D. [ 5 ]
DMA, DRAM y Unidad de Gestión de Memoria (MMU)
La unidad de gestión de memoria, el controlador RDRAM y el controlador DMA gestionan el acceso a la memoria dentro del sistema. [ 5 ]
bus de datos interno
La comunicación entre el núcleo MIPS, las dos VPU, la GIF, el controlador de memoria y otras unidades se gestiona mediante un bus de datos interno de 128 bits que funciona a la mitad de la frecuencia de reloj del Emotion Engine. Para ofrecer mayor ancho de banda, también existe una ruta dedicada de 128 bits entre la CPU y la VPU0, y otra ruta dedicada de 128 bits entre la VPU1 y la GIF. A 150 MHz, el bus de datos interno proporciona un ancho de banda teórico máximo de 2,4 GB/s.
Interfaz externa
La comunicación entre el Emotion Engine y la RAM se produce a través de dos canales de DRDRAM (memoria de acceso aleatorio dinámico Direct Rambus) y el controlador de memoria , que se conecta al bus de datos interno. Cada canal tiene un ancho de banda de 16 bits y funciona a 400 MHz DDR (velocidad de datos doble). En conjunto, los dos canales de DRDRAM ofrecen un ancho de banda teórico máximo de 25,6 Gbit/s (3,2 GB/s), aproximadamente un 33 % más que el bus de datos interno. Por este motivo, el controlador de memoria almacena en búfer los datos enviados desde los canales DRDRAM para que la CPU pueda aprovechar el ancho de banda adicional.
El Emotion Engine se conecta directamente al sintetizador gráfico a través del GIF con un bus dedicado de 64 bits y 150 MHz que tiene un ancho de banda teórico máximo de 1,2 GB/s. [ 6 ]
Para facilitar la comunicación entre el Emotion Engine y el procesador de entrada/salida (IOP), la interfaz de entrada/salida utiliza un bus de 32 bits y 37,5 MHz con un ancho de banda teórico máximo de 150 MB/s conectado al bus de datos interno. Esta interfaz proporciona suficiente ancho de banda para el conector de extensión PCMCIA, que se utilizaba para el adaptador de red con interfaz P-ATA integrada, lo que permitía un acceso a datos y una funcionalidad en línea más rápidos. Una ventaja de este alto ancho de banda era que facilitaba la incorporación de extensiones de hardware, como el adaptador de red con soporte para discos duros IDE integrados, u otras extensiones para ampliar la funcionalidad y el ciclo de vida del producto, lo que se consideraba una ventaja competitiva. Sin embargo, en las versiones más recientes (como la edición Slim), la interfaz ofrecía un ancho de banda mucho mayor que el requerido por los dispositivos de entrada/salida de PlayStation, ya que se eliminó el soporte para discos duros y se abandonó el diseño del conector PCMCIA en favor de un diseño más delgado.
Fabricación
El Emotion Engine contenía 13,5 millones de transistores de metal-óxido-semiconductor (MOS), [ 7 ] en un chip de circuito integrado (CI) que medía 240 mm 2 . [ 8 ] Fue fabricado por Sony y Toshiba en un proceso de metal-óxido-semiconductor complementario (CMOS) de 0,25 μm ( 0,18 μm L G efectivo ) con cuatro niveles de interconexión.
Embalaje
El Emotion Engine estaba empaquetado en una matriz de rejilla de bolas de plástico (PBGA) de 540 contactos .
Usos
El uso principal del Emotion Engine era servir como CPU de la PlayStation 2 .
Las primeras revisiones de PlayStation 3 también incluían un Emotion Engine en la placa base para lograr la retrocompatibilidad con los juegos de PlayStation 2. Sin embargo, las revisiones posteriores de PlayStation 3 carecían de un Emotion Engine físico para reducir costos, realizando todas sus funciones mediante emulación por software a través del procesador Cell Broadband , junto con un sintetizador gráfico por hardware que aún estaba presente para lograr la retrocompatibilidad con PlayStation 2. En todas las revisiones posteriores, se eliminó el sintetizador gráfico; no obstante, en revisiones posteriores del software del sistema está disponible un emulador de software de PlayStation 2 para usar con los títulos PS2 Classics de Sony, disponibles para su compra en Sony Entertainment Network.
El Emotion Engine también se utilizó en la PSX (grabadora de vídeo digital), así como en el televisor de alta definición Sony WEGA HVX (KDE/KDL-xxxHVX) y el Sony BRAVIA KDL22PX300, todos los cuales utilizaban hardware de PlayStation 2.
Especificaciones técnicas
- Frecuencia de reloj : 294,912 MHz , 299 MHz (versiones posteriores)
- Conjunto de instrucciones : MIPS III, subconjunto MIPS IV, 107 instrucciones vectoriales
- 2 unidades de emisión, 2 unidades de punto fijo de 64 bits, 1 unidad de punto flotante, pipeline de 6 etapas
- Caché de instrucciones : 16 KB, asociativa de 2 vías
- Caché de datos : 8 KB, asociativa de 2 vías
- Memoria RAM del bloc de notas : 16 KB
- Búfer de búsqueda de traducción : instrucción/datos combinados de 48 entradas
- Unidad de procesamiento vectorial: 4 unidades FMAC, 1 unidad FDIV.
- Registros de la unidad de procesamiento vectorial : 128 bits de ancho, 32 entradas.
- Unidad de procesamiento de imágenes: decodificador de capa de macrobloques MPEG2
- Acceso directo a memoria : 10 canales
- Voltaje V DD : 1,8 V
- Consumo de energía : 15 W a 1,8 V
- Memoria integrada: 1 KB de RAM , 4 KB de FeRAM , 16 KB de ROM [ 9 ]
Rendimiento teórico
- Punto flotante : 6.200 millones de operaciones de punto flotante de precisión simple (32 bits) por segundo
- Transformación de perspectiva : 66 millones de polígonos por segundo
- Con iluminación y niebla : 36 millones de polígonos por segundo
- Parches de superficie de Bézier : 16 millones de polígonos por segundo
- Descompresión de imagen: 150 millones de píxeles por segundo
Véase también
- Tarjeta gráfica
- unidad de procesamiento gráfico
- Gráficos por computadora
- Lista de temas sobre gráficos por computadora y geometría descriptiva
- Microprocesador Cell , un diseño inspirado en la disposición CPU+VU0/VU1 del Emotion Engine, utilizado en la PlayStation 3.
Referencias
- ^ Gilbert, Ben (7 de enero de 2013). "Sony confirma el fin de la producción de PlayStation 2 en todo el mundo" . Engadget . Consultado el 23 de junio de 2013 .
- ^ Stokes, Jon (16 de febrero de 2000). "Sonido y visión: una descripción técnica del Emotion Engine" . Ars Technica . Archivado del original el 10 de junio de 2018. Recuperado el 9 de junio de 2015 .
- ^ Diefendorff, Keith (19 de abril de 1999). "El chip emocionalmente cargado de Sony" (PDF) . Microprocessor Report . Vol. 13, n.º 5. Archivado (PDF) del original el 25 de julio de 2018. Recuperado el 1 de septiembre de 2017 .
- ^ La memoria transistorizada, como la RAM, la ROM, la memoria flash y los tamaños de caché, así como los tamaños de los archivos, se especifican utilizando significados binarios para K (1024 1 ), M (1024 2 ), G (1024 3 ), etc.
- ^ a b Sporny, Many; Carper, Gray; Turner, Jonathan (2002). "The Playstation 2 Linux Kit Handbook" . Free Software Foundation . Archivado del original el 18 de septiembre de 2003. Recuperado el 10 de junio de 2015 .
- ^ Diefendorff 1999, pág. 5
- ^ Hennessy, John L.; Patterson , David A. (29 de mayo de 2002). Arquitectura de computadoras: un enfoque cuantitativo (3.ª ed.). Morgan Kaufmann. pág. 491. ISBN 978-0-08-050252-6. Consultado el 9 de abril de 2013 .
- ^ Diefendorff, Keith (19 de abril de 1999). "El chip cargado de emoción de Sony: el "motor de emociones" de punto flotante asesino impulsará PlayStation 2000". Microprocessor Report . 13 (5). S2CID 29649747 .
- ^ Scott, JF (2003). "Nanoferroeléctricos" . En Tsakalakos, Thomas; Ovid'ko, Ilya A.; Vasudevan, Asuri K. (eds.). Nanoestructuras: Síntesis, propiedades funcionales y aplicaciones . Springer Science & Business Media . pp. 583-600 (584-5, 597). ISBN 9789400710191.
Referencias
- Hennessy, John L.; Patterson , David A. (29 de mayo de 2002). Arquitectura de computadoras: un enfoque cuantitativo (3.ª ed.). Morgan Kaufmann. ISBN 978-0-08-050252-6. Consultado el 9 de abril de 2013 .
- Diefendorff, Keith (19 de abril de 1999). "El chip emocionalmente cargado de Sony". Microprocessor Report . 13 (5). Microdesign Resources.
- Implementaciones de MIPS
- PlayStation 2
- semiconductores de Sony