stringtranslate.com

Motor de emociones

Procesador Sony Emotion Engine

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 América del Norte (números de modelo CECHAxx y CECHBxx) para proporcionar compatibilidad con juegos de PlayStation 2. La producción en masa de Emotion Engine comenzó en 1999 y finalizó a fines de 2012 con la discontinuación de PlayStation 2. [1]

Descripción

El Emotion Engine en la placa base de la PS2
Arquitectura de PlayStation 2

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

Núcleo de CPU

El núcleo de la CPU es un procesador RISC superescalar bidireccional en orden . [3] Basado en el MIPS R5900, implementa la arquitectura del conjunto de instrucciones (ISA) MIPS-III 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 números enteros de 32 bits, 16 bits u 8 bits en modo instrucción única, múltiples datos (SIMD) (por ejemplo, se podían agregar cuatro números enteros de 32 bits 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 a la izquierda, carga/almacenamiento de 128 bits y desplazamiento de embudo de 256 bits a 128 bits, además de algunas no descritas por Sony por razones competitivas. Contrariamente a algunas ideas erróneas, estas capacidades SIMD no significaban que el procesador fuera de "128 bits", ya que ni las direcciones de memoria ni los números enteros en sí mismos eran de 128 bits, solo los registros SIMD/enteros compartidos. A modo de comparación, los registros de 128 bits de ancho 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 tenían 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 de enteros de 6 etapas y una tubería de punto flotante (FP) de 15 etapas . Su surtido de registros consta de 32 registros VLIW SIMD de 128 bits (denominación/renombrado), 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 unidades lógicas aritméticas (ALU) de enteros de 64 bits, una unidad de carga y almacenamiento (LSU) de 128 bits , una unidad de ejecución de bifurcación (BXU) y un coprocesador de unidad de punto flotante (FPU) VU1 de 32 bits (que actuó como un 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 de enteros de 32 bits. Las ALU son de 64 bits, con una FPU de 32 bits que no cumple con la norma IEEE 754. El conjunto de instrucciones personalizado 107 MMI (Multimedia Extensions) se implementó agrupando las dos ALU de enteros de 64 bits. Tanto las canalizaciones de enteros como las de punto flotante tienen una longitud 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 borrador de 16 KB . Tanto la caché de instrucciones como la de datos están indexadas virtualmente y etiquetadas físicamente, mientras que la RAM de borrador existe en un espacio de memoria separado. Se proporciona un búfer de traducción de datos e instrucciones de doble entrada combinado de 48 entradas 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 bifurcaciones es de tres ciclos debido a la corta secuencia de seis etapas.

Unidades de procesamiento de vectores

La mayor parte del rendimiento de punto flotante de Emotion Engine se obtiene mediante dos unidades de procesamiento vectorial (VPU), denominadas VPU0 y VPU1. Se trata, en esencia, de DSP diseñados para matemáticas en 3D y precursores de los pipelines de sombreado de vértices de hardware . Cada VPU cuenta con 32  registros SIMD vectoriales de 128 bits (que contienen datos vectoriales en 4D ), 16 registros de punto fijo de 16 bits, cuatro unidades de multiplicación-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 VPU1 tiene una memoria de datos de 16 KB.

Para lograr un alto ancho de banda, la memoria de datos de la VPU está conectada directamente al GIF, y ambas memorias de datos pueden ser leídas directamente por la unidad DMA . Una sola instrucción vectorial consta de cuatro valores de punto 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 las unidades tienen un pipeline de seis etapas , tienen un rendimiento de una instrucción por ciclo. La unidad FDIV tiene un pipeline 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 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 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, el controlador de memoria y otras unidades se gestionan mediante un bus de datos interno de 128 bits de ancho que funciona a la mitad de la frecuencia de reloj del Emotion Engine, pero, para ofrecer un mayor ancho de banda, también hay una ruta dedicada de 128 bits entre la CPU y la VPU0 y una ruta dedicada de 128 bits entre la 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 la RAM se produce a través de dos canales de memoria DRDRAM (Direct Rambus Dynamic Random Access Memory) y el controlador de memoria , que interactúa con el bus de datos interno. Cada canal tiene 16 bits de ancho y funciona a 400 MHz DDR (Double Data Rate). 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 de DRDRAM para que la CPU pueda utilizar el ancho de banda adicional.

El 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 el Emotion Engine y el procesador de entrada y salida (IOP), la interfaz de entrada y salida interconecta 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 con el 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 más rápido a los datos y la funcionalidad en línea. Una ventaja del alto ancho de banda era que se podía utilizar fácilmente para introducir extensiones de hardware como el adaptador de red con soporte para HDD IDE incorporado u otras extensiones para ampliar la funcionalidad y el ciclo de vida del producto, lo que puede considerarse una ventaja competitiva. Sin embargo, en variantes más nuevas (como la edición Slim), la interfaz ofrecería mucho más ancho de banda que el que requieren los dispositivos de entrada y salida de la PlayStation, ya que se eliminó la compatibilidad con 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 de metal-óxido-semiconductor (MOS), [7] en una matriz de circuito integrado (CI) que medía 240 mm2 . [ 8] Fue fabricado por Sony y Toshiba en un proceso de metal-óxido-semiconductor complementario (CMOS) de 0,25 μm ( 0,18 μm de longitud de onda efectiva ) 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 fue servir como CPU de la PlayStation 2 .

Las primeras revisiones de PlayStation 3 producidas también presentaban un Emotion Engine en la placa base para lograr compatibilidad con versiones anteriores de los juegos de PlayStation 2. Sin embargo, las segundas revisiones de PlayStation 3 carecían de un Emotion Engine físico para reducir los costos, realizando todas sus funciones mediante la emulación de software realizada por el procesador de banda ancha celular , 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 de software de sistema posteriores para usar con los títulos PS2 Classics de Sony disponibles para comprar en Sony Entertainment Network.

El Emotion Engine también se utilizó en la PSX (grabadora de vídeo digital), así como en los modelos de televisión HDTV Sony WEGA HVX (números de modelo KDE-xxxHVX/KDL-xxxHVX) y Sony BRAVIA KDL22PX300, todos los cuales utilizaban hardware PlayStation 2.

Especificaciones técnicas

Rendimiento teórico

Véase también

Referencias

  1. ^ 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 .
  2. ^ Stokes, Jon (16 de febrero de 2000). «Sonido y visión: una descripción técnica del motor de emociones». 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). «El chip cargado de emociones de Sony» (PDF) . Microprocessor Report . Vol. 13, núm. 5. Archivado (PDF) desde el original el 25 de julio de 2018. Consultado el 1 de septiembre de 2017 .
  4. ^ La 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. ^ ab Sporny, Many; Carper, Gray; Turner, Jonathan (2002). "The Playstation 2 Linux Kit Handbook". Free Software Foundation . Archivado desde el original el 18 de septiembre de 2003. Consultado el 10 de junio de 2015 .
  6. ^ Diefendorff 1999, pág. 5
  7. ^ Hennessy, John L. ; Patterson, David A. (29 de mayo de 2002). Arquitectura informática: un enfoque cuantitativo (3.ª ed.). Morgan Kaufmann. pág. 491. ISBN 978-0-08-050252-6. Recuperado el 9 de abril de 2013 .
  8. ^ Diefendorff, Keith (19 de abril de 1999). "El chip cargado de emociones de Sony: un "motor de emociones" de coma flotante asesino para la PlayStation 2000". Microprocessor Report . 13 (5). S2CID  29649747.
  9. ^ Scott, JF (2003). "Nano-Ferroelectrics". En Tsakalakos, Thomas; Ovid'ko, Ilya A.; Vasudevan, Asuri K. (eds.). Nanoestructuras: síntesis, propiedades funcionales y aplicaciones . Springer Science & Business Media . págs. 583-600 (584-5, 597). ISBN . 9789400710191.

Referencias