Motor de emociones


De Wikipedia, la enciclopedia libre
  (Redirigido desde el motor Emotion )
Saltar a navegación Saltar a búsqueda
CPU del motor Sony Emotion

El Emotion Engine es una unidad central de procesamiento desarrollado y fabricado por Sony Computer Entertainment y Toshiba para su uso en la PlayStation 2 consola de videojuegos . También se utilizó en los primeros modelos de PlayStation 3 vendidos en Japón y América del Norte (números de modelo CECHAxx y CECHBxx) para proporcionar compatibilidad con los juegos de PlayStation 2. La producción en masa del Emotion Engine comenzó en 1999 y terminó a fines de 2012 con la discontinuación de PlayStation 2. [1]

Descripción

El motor Emotion en la placa base de la PS2
Arquitectura de Playstation 2

Emotion Engine consta de ocho "unidades" independientes, cada una de las cuales realiza una tarea específica, integradas en el mismo troquel . 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). Hay tres interfaces: una interfaz de entrada y salida al procesador de E / S, una interfaz de gráficos (GIF) al sintetizador de gráficos y una interfaz de memoria a 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 , está dedicada a las transformaciones geométricas y la iluminación y funciona de forma independiente, paralela al núcleo de la CPU, controlada por microcódigo . VPU 0 , cuando no se utiliza, también se puede utilizar para transformaciones geométricas. Las listas de visualización generadas por CPU / VPU0 y VPU1 se envían al GIF, que las prioriza antes de enviarlas al sintetizador de gráficos para su renderizado.

Núcleo de la CPU

El núcleo de la CPU es un procesador RISC superescalar bidireccional en orden . [3] Basado en el MIPS R5900, implementa la arquitectura de conjunto de instrucciones MIPS-III (ISA) y gran parte de MIPS-IV, además de un conjunto de instrucciones personalizado desarrollado por Sony que operaba en grupos de 128 bits de 32 bits. enteros de bits, 16 u 8 bits en una sola instrucción, datos múltiples (SIMD) (es decir, se pueden sumar cuatro enteros de 32 bits a otros cuatro utilizando una sola instrucción). Las instrucciones definidas incluyen: sumar, restar, multiplicar, dividir, mínimo / máximo, desplazamiento, lógico, recuento de cero a la izquierda, carga / almacenamiento de 128 bits y cambio de embudo de 256 bits a 128 bits, además de algunos no descritos por Sony para razones competitivas. Contrariamente a algunos conceptos erróneos, estas capacidades SIMD no equivalen a que el procesador sea de "128 bits", ya que ni las direcciones de memoria ni los números enteros en sí eran de 128 bits, solo los registros SIMD / enteros compartidos. A modo de comparación, los registros anchos de 128 bits y las instrucciones SIMD habían estado 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 de ancho y sus procesadores eran capaces de operar en cantidades de 4x32 bits en paralelo en registros individuales.

Tiene una tubería entera de 6 etapas y una tubería de punto flotante de 15 etapas. Su variedad de registros consta de 32 registros VLIW SIMD de 128 bits (denominación / cambio de nombre), un acumulador de 64 bits y dos registros de datos generales de 64 bits, 8 registros de función fija de 16 bits, 16 registros de controlador de 8 bits. El procesador también tiene dos ALU enteros de 64 bits, una unidad de almacenamiento de carga (LSU) de 128 bits, una unidad de ejecución de rama (BXU) y un coprocesador VU1 FPU de 32 bits (que actuó como controlador de sincronización para VPU0 / VPU1) que contiene un núcleo de procesador base MIPS con 32 registros FP de 64 bits y 15 registros enteros de 32 bits. Las ALU son de 64 bits, con una FPU de 32 bits que no es compatible con IEEE 754. El conjunto de instrucciones personalizado 107 MMI (Extensiones multimedia) se implementó agrupando las dos ALU enteras de 64 bits. Tanto las canalizaciones enteras como las de punto flotante tienen seis etapas de duración.

Para alimentar las unidades de ejecución con instrucciones y datos, hay una caché de instrucciones asociativas de conjuntos bidireccionales de 16 KB , una caché de datos asociativa no bloqueante de conjuntos bidireccionales de 8 KB [4] y una memoria RAM de bloc de notas de 16 KB . Tanto la memoria caché de instrucciones como la de datos están virtualmente indexadas y etiquetadas físicamente, mientras que la RAM del scratchpad existe en un espacio de memoria separado. Se proporciona un búfer combinado de 48 instrucciones de doble entrada y traducción de datos para traducir direcciones virtuales . La predicción de rama se logra mediante una caché de dirección de destino de rama de 64 entradas y una tabla de historial de ramaque está integrado en la caché de instrucciones. La penalización por predicción errónea de rama es de tres ciclos debido a la tubería corta de seis etapas.

Unidades de procesamiento de vectores

La mayor parte del rendimiento de punto flotante de Emotion Engine lo proporcionan dos unidades de procesamiento vectorial (VPU), denominadas VPU0 y VPU1. Estos eran esencialmente DSP diseñados para matemáticas 3D y el precursor de las canalizaciones de sombreado de vértices de hardware . Cada VPU cuenta con 32  registros SIMD vectoriales de 128 bits (que contienen datos vectoriales 4D), 16 registros de punto fijo de 16 bits, cuatro unidades de acumulación múltiple de punto flotante (FMAC), una unidad de división de punto flotante (FDIV) y una memoria de datos local . La memoria de datos para VPU0 tiene un tamaño de 4 KB, mientras que la VPU1 cuenta con una memoria de datos de 16 KB.

Para lograr un gran ancho de banda, la memoria de datos de la VPU se conecta directamente al GIF, y la unidad DMA puede leer ambas memorias de datos directamente . Una instrucción de vector único 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 necesitan cuatro ciclos para ejecutar una instrucción, pero como las unidades tienen una canalización de seis etapas , tienen un rendimiento de una instrucción por ciclo. La unidad FDIV tiene una tubería de nueve etapas y puede ejecutar una instrucción cada siete ciclos.

Unidad de procesamiento de imágenes (IPU)

La IPU permitió la decodificación de imágenes comprimidas MPEG-2 , lo que permitió la reproducción de DVD y FMV de juegos . También permitió la cuantificación de vectores para datos gráficos 2D. [5]

Unidad de gestión de memoria, DMA y DRAM (MMU)

La unidad de administración de memoria, el controlador RDRAM y el controlador DMA manejan el acceso a la memoria dentro del sistema. [5]

Bus de datos interno

Las comunicaciones entre el núcleo MIPS, las dos VPU, GIF, controlador de memoria y otras unidades se manejan mediante un bus de datos interno de 128 bits que funciona a la mitad de la frecuencia de reloj del Emotion Engine pero, para ofrecer un mayor ancho de banda, también hay un 128 ruta dedicada de -bit entre la CPU y VPU0 y una ruta dedicada de 128 bits entre VPU1 y 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 Emotion Engine y RAM se produce a través de dos canales de DRDRAM (Direct Rambus Dynamic Random Access Memory) y el controlador de memoria , que se conecta al bus de datos interno. Cada canal tiene 16 bits de ancho y funciona a 400 MHz DDR (velocidad de datos doble). Combinados, los dos canales de DRDRAM tienen un ancho de banda teórico máximo de 25,6 Gbit / s (3,2 GB / s), aproximadamente un 33% más de ancho de banda que el bus de datos interno. Debido a esto, el controlador de memoria almacena en búfer los datos enviados desde los canales DRDRAM para que la CPU pueda utilizar el ancho de banda adicional.

Emotion Engine interactúa directamente con el sintetizador de gráficos 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 proporcionar comunicaciones entre Emotion Engine y el procesador de entrada y salida (IOP), la interfaz de entrada y salida conecta un bus de entrada y salida de 32 bits de ancho y 37,5 MHz con un ancho de banda teórico máximo de 150 MB / s al bus de datos interno. La interfaz proporciona suficiente ancho de banda para el conector de extensión PCMCIA que se utilizó para el adaptador de red con interfaz P-ATA incorporada para un acceso a datos más rápido y funcionalidad en línea. Una ventaja del ancho de banda elevado era que se podía utilizar fácilmente para introducir extensiones de hardware como el Adaptador de red con soporte IDE HDD integrado u otras extensiones para extender la funcionalidad y el ciclo de vida del producto, lo que puede verse como una ventaja competitiva. Sin embargo, en variantes más nuevas (como la edición delgada), la interfaz ofrecería mucho más ancho de banda que el requerido por PlayStation.s dispositivos de entrada y salida, ya que se eliminó el soporte de HDD 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 semiconductores de óxido metálico (MOS), [7] en un troquel de circuito integrado (IC) de 240 mm 2 . [8] Se fabricó por Sony y Toshiba en un 0,25 m ( 0,18 m efectiva L G ) complementario de metal-óxido-semiconductor proceso (CMOS) con cuatro niveles de interconexión.

embalaje

El Emotion Engine estaba empaquetado en una matriz de rejilla de bolas de plástico de 540 contactos (PBGA).

Usos

El uso principal de Emotion Engine fue servir como CPU de PlayStation 2 . Los primeros SKU de PlayStation 3 también incluían un Emotion Engine en la placa base para lograr la compatibilidad con versiones anteriores de los juegos de PlayStation 2. Sin embargo, la segunda revisión de la PlayStation 3 carecía de un Emotion Engine físico con el fin de reducir los costos, realizando todas sus funciones utilizando la emulación de software realizada por el Cell Broadband Processor., junto con un sintetizador de gráficos de hardware todavía presente para lograr la compatibilidad con versiones anteriores de PlayStation 2. En todas las revisiones posteriores, se eliminó el sintetizador de gráficos; sin embargo, un emulador de software de PlayStation 2 está disponible en revisiones posteriores del software del sistema para usar con los títulos de PS2 Classics de Sony disponibles para su compra en Sony Entertainment Network.

Especificaciones técnicas

  • Frecuencia de reloj : 294  MHz , 299 MHz (versiones posteriores)
  • Conjunto de instrucciones : MIPS III, subconjunto MIPS IV, 107 instrucciones vectoriales
  • 2 unidades, 2 unidades de coma fija de 64 bits, 1 unidad de coma flotante, canalización de 6 etapas
  • Caché de instrucciones : 16 KB, conjunto asociativo de 2 vías
  • Caché de datos : 8 KB, conjunto de 2 vías asociativo
  • 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 de vectores: 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 macrobloque 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 imágenes: 150 millones de píxeles por segundo

Referencias

  1. ^ Gilbert, Ben. "Sony confirma el fin de la producción de PlayStation 2 en todo el mundo" . Engadget . Consultado el 23 de junio de 2013 .
  2. ^ Stokes, Jon (16 de febrero de 2000). "Sonido y visión: una descripción técnica del motor de la emoción" . Ars Technica . Archivado desde el original el 10 de junio de 2018 . Consultado el 9 de junio de 2015 .
  3. ^ Diefendorff, Keith (19 de abril de 1999). "Chip cargado emocionalmente de Sony" (PDF) . Informe del microprocesador . Vol. 13 no. 5. Archivado (PDF) desde el original el 25 de julio de 2018 . Consultado el 1 de septiembre de 2017 .
  4. ^ Los tamaños de memoria transistorizada, como RAM, ROM, flash y caché, así como los tamaños de archivo, se especifican utilizando significados binarios para K (1024 1 ), M (1024 2 ), G (1024 3 ), etc.
  5. ^ a b Espinoso, muchos; Carper, Gray; Turner, Jonathan (2002). "El manual del kit de Linux para Playstation 2" . Fundación de Software Libre . Archivado desde el original el 18 de septiembre de 2003 . Consultado el 10 de junio de 2015 .
  6. ^ Diefendorff 1999, p. 5
  7. ^ Hennessy, John L .; Patterson, David A. (29 de mayo de 2002). Arquitectura informática: un enfoque cuantitativo (3 ed.). Morgan Kaufmann. pag. 491. ISBN 978-0-08-050252-6. Consultado el 9 de abril de 2013 .
  8. ^ Diefendorff, Keith (19 de abril de 1999). "Chip cargado emocionalmente de Sony:" Motor de emoción de punto flotante asesino "para alimentar PlayStation 2000". Informe del microprocesador . 13 (5). S2CID 29649747 . 
  9. ^ Scott, JF (2003). "Nano-Ferroeléctricos" . En Tsakalakos, Thomas; Ovid'ko, Ilya A .; Vasudevan, Asuri K. (eds.). Nanoestructuras: síntesis, propiedades funcionales y aplicación . Springer Science & Business Media . págs. 583-600 (584-5, 597). ISBN 9789400710191.

Ver también

  • Tarjeta grafica
  • Unidad de procesamiento gráfico
  • Gráficos de computadora
  • Lista de temas de gráficos por computadora y geometría descriptiva
  • Microprocesador celular , un diseño inspirado en la disposición CPU + VU0 / VU1 de Emotion Engines, utilizado en PlayStation 3

Referencias

  • Hennessy, John L .; Patterson, David A. (29 de mayo de 2002). Arquitectura informática: 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). "Chip cargado emocionalmente de Sony". Informe del microprocesador . Recursos de microdiseño. 13 (5).
Obtenido de " https://en.wikipedia.org/w/index.php?title=Emotion_Engine&oldid=1043319060 "