De Wikipedia, la enciclopedia libre
Saltar a navegación Saltar a búsqueda

SuperH (o SH ) es una arquitectura de conjunto de instrucciones (ISA) de computación de conjunto de instrucciones reducido (RISC) de 32 bits desarrollada por Hitachi y actualmente producida por Renesas . Es implementado por microcontroladores y microprocesadores para sistemas embebidos .

En el momento de la introducción, SH2 se destacaba por tener instrucciones de 16 bits de longitud fija a pesar de su arquitectura de 32 bits. Este fue un enfoque novedoso: en ese momento, el ancho de instrucción de los procesadores RISC siempre estaba dictado por el ancho de la arquitectura. En otras palabras, los procesadores RISC de 32 bits siempre usaban instrucciones fijas de 32 bits.

Más tarde, otras empresas adoptaron la idea de lo que ahora se llama conjunto de instrucciones comprimidas [ cita requerida ] , siendo el ejemplo más notable ARM que obtuvo la licencia de patentes SuperH relevantes para crear un conjunto de instrucciones Thumb .

A partir de 2015 , muchas de las patentes originales de la arquitectura SuperH expiran y la CPU SH2 se ha vuelto a implementar como hardware de código abierto con el nombre J2 .

Historia [ editar ]

SH-2 en Sega 32X y Sega Saturn

La familia de núcleos de procesadores SuperH fue desarrollada por primera vez por Hitachi a principios de la década de 1990. Hitachi ha desarrollado un grupo completo de núcleos de CPU de conjuntos de instrucciones compatibles con versiones superiores . El SH-1 y el SH-2 se utilizaron en Sega Saturn , Sega 32X y Capcom CPS-3 . [2] Estos núcleos tienen instrucciones de 16 bits para una mejor densidad de código que las instrucciones de 32 bits, lo que fue un gran beneficio en ese momento, debido al alto costo de la memoria principal .

Unos años más tarde, se agregó el núcleo SH-3 a la familia de CPU SH; Las nuevas características incluyeron otro concepto de interrupción, una unidad de administración de memoria (MMU) y un concepto de caché modificado. El núcleo SH-3 también obtuvo una extensión DSP , luego llamada SH-3-DSP. Con rutas de datos extendidas para un procesamiento DSP eficiente, acumuladores especiales y un motor DSP de tipo MAC dedicado , este núcleo unificaba el mundo de los procesadores DSP y RISC. También se utilizó un derivado con el núcleo SH-2 original.

Entre 1994 y 1996, se enviaron 35,1 millones de dispositivos SuperH en todo el mundo. [3]

Para Dreamcast , Hitachi desarrolló la arquitectura SH-4. La ejecución de instrucciones superescalares (bidireccionales) y una unidad de punto flotante vectorial (especialmente adecuada para gráficos 3D ) fueron los aspectos más destacados de esta arquitectura. Los chips estándar basados ​​en SH-4 se introdujeron alrededor de 1998.

Las arquitecturas SH-3 y SH-4 admiten el ordenamiento de bytes big-endian y little-endian (son bi-endian ).

Licencias [ editar ]

Hitachi y STMicroelectronics comenzaron a colaborar ya en 1997 en el diseño del SH-4. A principios de 2001, formaron la empresa de propiedad intelectual SuperH, Inc., que iba a licenciar el núcleo SH-4 a otras empresas y estaba desarrollando la arquitectura SH-5, el primer paso de SuperH al área de 64 bits. [4] [5] En 2003, Hitachi y Mitsubishi Electric formaron una empresa conjunta llamada Renesas Technology , con Hitachi controlando el 55% de la misma. En 2004, Renesas Technology compró la participación de STMicroelectronics en la propiedad de SuperH Inc. y con ella la licencia de los núcleos SH. [6]Más tarde, Renesas Technology se convirtió en Renesas Electronics, tras su fusión con NEC Electronics .

El diseño del SH-5 admitía dos modos de funcionamiento. El modo SHcompact es equivalente a las instrucciones del modo de usuario del conjunto de instrucciones SH-4 . El modo SHmedia es muy diferente, usando instrucciones de 32 bits con sesenta y cuatro registros enteros de 64 bits e instrucciones SIMD . En el modo SHmedia, el destino de una bifurcación (salto) se carga en un registro de bifurcación por separado de la instrucción de bifurcación real. Esto permite al procesador obtener instrucciones para una rama sin tener que husmear el flujo de instrucciones. La combinación de una codificación de instrucciones compacta de 16 bits con una codificación de instrucciones más potente de 32 bits no es exclusiva de SH-5; Los procesadores ARM tienen un pulgar de 16 bitsmodo (ARM licencia varias patentes de SuperH para Thumb [7] ) y los procesadores MIPS tienen un modo MIPS-16. Sin embargo, SH-5 se diferencia porque su modo de compatibilidad con versiones anteriores es la codificación de 16 bits en lugar de la codificación de 32 bits.

El último paso evolutivo ocurrió alrededor de 2003, cuando los núcleos de SH-2 hasta SH-4 se estaban unificando en un núcleo SH-X superescalar que formaba una especie de superconjunto de conjunto de instrucciones de las arquitecturas anteriores, y agregó soporte para multiprocesamiento simétrico .

Disponibilidad continua [ editar ]

Desde 2010, los núcleos, la arquitectura y los productos de la CPU SuperH son de Renesas Electronics y la arquitectura se consolida en torno a las plataformas SH-2, SH-2A, SH-3, SH-4 y SH-4A. Los productos System-on-chip basados ​​en microprocesadores SH-3, SH-4 y SH-4A fueron reemplazados posteriormente por generaciones más nuevas basadas en núcleos de CPU con licencia de Arm Ltd. , y muchos de los modelos existentes aún se comercializan y venden hasta marzo. 2025 a través del Programa de longevidad de productos de Renesas. [8]

A partir de 2021, Renesas seguirá comercializando los microcontroladores SH72xx basados ​​en SH-2A con disponibilidad garantizada hasta febrero de 2029, junto con productos más nuevos basados ​​en varias otras arquitecturas, incluidas Arm , RX y RH850 .

J Core [ editar ]

La última de las patentes SH-2 expiró en 2014. En LinuxCon Japan 2015, los desarrolladores de j-core presentaron una reimplementación de sala limpia del SH-2 ISA con extensiones (conocido como el "núcleo J2" debido a las marcas comerciales vigentes ). [7] [9] Posteriormente, se presentó un tutorial de diseño en ELC 2016. [10]

El código VHDL con licencia BSD de código abierto para el núcleo J2 se ha probado en FPGA Xilinx y en ASIC fabricados en el proceso de 180 nm de TSMC , y es capaz de arrancar µClinux . [7] J2 es compatible con ISA hacia atrás con SH-2, implementado como una canalización de 5 etapas con interfaces de memoria de datos e instrucciones separadas, y un decodificador de instrucciones generado por máquina que admite el ISA densamente empaquetado y complejo (en relación con otras máquinas RISC). Las instrucciones adicionales son fáciles de agregar. J2 implementa instrucciones para cambio dinámico (usando el SH-3 y patrones de instrucción posteriores), operaciones atómicas extendidas (usadas para primitivas de subprocesamiento) y bloqueo / interfaces para soporte de multiprocesador simétrico. Los planes para implementar los conjuntos de instrucciones SH-2A (como "J2 +") y SH-4 (como "J4") ya que las patentes relevantes vencen en 2016-2017. [7]

Se han citado varias características de SuperH como motivaciones para diseñar nuevos núcleos basados ​​en esta arquitectura: [7]

  • Alta densidad de código en comparación con otras ISA RISC de 32 bits como ARM o MIPS [11] importante para el rendimiento del ancho de banda de memoria y caché
  • Compatibilidad con compiladores y sistemas operativos existentes ( Linux , Windows Embedded , QNX [9] )
  • Costos de fabricación de ASIC extremadamente bajos ahora que las patentes expiran (alrededor de US $ 0.03 para un núcleo J2 de doble núcleo en el proceso de 180 nm de TSMC).
  • Implementación libre de patentes y regalías (licencia BSD)
  • Soporte comunitario completo y vibrante
  • Disponibilidad de una plataforma de desarrollo de hardware de bajo costo para herramientas FPGA de costo cero
  • Herramientas de generación e integración de CPU y SoC RTL, que producen documentación y RTL portátiles FPGA y ASIC
  • Diseño limpio y moderno con entorno de diseño, generación, simulación y verificación de código abierto

Modelos [ editar ]

CPU Hitachi SH-3

La familia de núcleos de CPU SuperH incluye:

  • SH-1: se utiliza en microcontroladores para aplicaciones profundamente integradas ( unidades de CD-ROM , grandes electrodomésticos , etc.)
  • SH-2: se utiliza en microcontroladores con requisitos de rendimiento más altos, también se utiliza en automoción, como unidades de control de motor o en aplicaciones de red, y también en consolas de videojuegos, como Sega Saturn . El SH-2 también ha encontrado un lugar en muchas aplicaciones de unidades de control de motores de automóviles , incluidos Subaru , Mitsubishi y Mazda .
  • SH-2A: el núcleo SH-2A es una extensión del núcleo SH-2 que incluye algunas instrucciones adicionales, pero lo más importante es pasar a una arquitectura superescalar (es capaz de ejecutar más de una instrucción en un solo ciclo) y dos de cinco tuberías de escenario. También incorpora 15 bancos de registros para facilitar una latencia de interrupción de 6 ciclos de reloj. También es fuerte en aplicaciones de control de motores, pero también en multimedia, audio para automóviles, tren motriz, control de carrocerías automotrices y automatización de oficinas + edificios.
  • SH-DSP: desarrollado inicialmente para el mercado de la telefonía móvil , utilizado más tarde en muchas aplicaciones de consumo que requieren rendimiento DSP para compresión JPEG, etc.
  • SH-3: utilizado para aplicaciones móviles y portátiles como el Jornada , fuerte en aplicaciones de Windows CE y en el mercado durante muchos años en el mercado de navegación para automóviles. La Cave CV1000 , similar a la CPU del hardware Sega NAOMI , también hizo uso de esta CPU. Las unidades de producción musical Korg Electribe EMX y ESX también utilizan el SH-3. [12]
  • SH-3-DSP: se utiliza principalmente en terminales multimedia y aplicaciones de red, también en impresoras y máquinas de fax.
  • SH-4: se utiliza cuando se requiere un alto rendimiento, como terminales multimedia para automóviles, consolas de videojuegos o decodificadores
  • SH-5: se utiliza en aplicaciones multimedia de alta gama de 64 bits
  • SH-X: núcleo principal utilizado en varios sabores (con / sin unidad DSP o FPU) en la unidad de control del motor, equipo multimedia del automóvil, decodificadores o teléfonos móviles
  • SH-Mobile - Procesador de aplicaciones móviles SuperH; diseñado para descargar el procesamiento de aplicaciones del LSI de banda base

SH-2 [ editar ]

CPU Hitachi SH-2

El SH-2 es una arquitectura RISC de 32 bits con una longitud de instrucción fija de 16 bits para una alta densidad de código y cuenta con un bloque de hardware de acumulación y multiplicación (MAC) para algoritmos DSP y tiene una canalización de cinco etapas.

El SH-2 tiene un caché en todos los dispositivos sin ROM .

Proporciona 16 registros de propósito general, un registro de base vectorial, un registro de base global y un registro de procedimiento.

Hoy en día, la familia SH-2 se extiende desde 32 KB de memoria flash incorporada hasta dispositivos sin ROM. Se utiliza en una variedad de dispositivos diferentes con diferentes periféricos como CAN, Ethernet, unidad de temporizador de control de motor, ADC rápido y otros.

SH-2A [ editar ]

El SH-2A es una actualización del núcleo SH-2 que agregó algunas instrucciones de 32 bits. Fue anunciado a principios de 2006.

Las nuevas características del núcleo SH-2A incluyen:

  • Arquitectura superescalar: ejecución de 2 instrucciones simultáneamente
  • Arquitectura de Harvard
  • Dos tuberías de 5 etapas
  • Instrucciones mixtas de 16 y 32 bits
  • 15 bancos de registros para respuesta a interrupciones en 6 ciclos.
  • FPU opcional

En la actualidad, la familia SH-2A abarca un amplio campo de memoria desde 16 KB hasta e incluye muchas variaciones sin ROM. Los dispositivos cuentan con periféricos estándar como CAN , Ethernet , USB y más, así como más periféricos específicos de la aplicación, como temporizadores de control de motor , controladores TFT y periféricos dedicados a aplicaciones de tren motriz automotriz.

SH-4 [ editar ]

CPU Hitachi SH-4

El SH-4 es una CPU RISC de 32 bits y fue desarrollado para uso principal en aplicaciones multimedia, como los sistemas de juego Dreamcast y NAOMI de Sega . Incluye una unidad de punto flotante mucho más potente [nota] y funciones integradas adicionales, junto con el procesamiento estándar de enteros de 32 bits y el tamaño de instrucción de 16 bits.

Las características del SH-4 incluyen:

  • FPU con cuatro multiplicadores de punto flotante, que admiten flotadores de precisión simple de 32 bits y precisión doble de 64 bits
  • Operación de producto punto flotante 4D
  • Bus de punto flotante de 128 bits que permite una tasa de transferencia de 3,2 GB / s desde la caché de datos
  • Bus de datos externo de 64 bits con direccionamiento de memoria de 32 bits, lo que permite un máximo de 4 GB de memoria direccionable con una tasa de transferencia de 800 MB / seg.
  • Controladores integrados de interrupción, DMA y administración de energía

^ No hay FPU en el SH4 personalizado hecho para Casio, el SH7305.

SH-5 [ editar ]

El SH-5 es una CPU RISC de 64 bits. [13]

Casi no se lanzó ningún hardware SH-5 no simulado, [14] y, a diferencia del SH-4 aún activo, el soporte para SH-5 se eliminó de gcc [15] y Linux.

Referencias [ editar ]

  1. ^ Procesador abierto J-core
  2. ^ "Hardware de CP System III (CPS3) (Capcom)" . www.system16.com . Sistema 16 . Consultado el 3 de agosto de 2019 .
  3. ^ http://segatech.com/technical/cpu/tech_sh4.html
  4. ^ "STMicro, Hitachi plan nueva empresa para desarrollar núcleos RISC" . EE Times . 3 de abril de 2001. Hitachi creó la familia de procesadores SH y desarrolló sus primeras cuatro iteraciones importantes, pero ha trabajado con ST desde 1997, cuando las empresas acordaron compartir una hoja de ruta común de microprocesadores de gama alta. Desarrollaron conjuntamente el núcleo del procesador SH4 RISC de 32 bits y comenzaron el desarrollo de la arquitectura SH5, que ahora será completada por SuperH. El producto inicial de SuperH será el núcleo SH4. Las versiones anteriores de SH no formarán parte del acuerdo de escisión.
  5. ^ "SuperH, Inc. formado por Hitachi y STMicroelectronics para impulsar la proliferación de núcleos SuperH ™ en aplicaciones de microprocesadores integrados" .
  6. ^ "Renesas para hacerse cargo del negocio principal de SuperH" . EE Times . 28 de septiembre de 2004.
  7. ↑ a b c d e Nathan Willis (10 de junio de 2015). "Resucitando la arquitectura SuperH" . LWN.net .
  8. ^ " " MCU de la familia de motores SuperH RISC " " . Renesas Electronics .
  9. ^ a b "Núcleos J" . j-core. Archivado desde el original el 11 de mayo de 2016 . Consultado el 27 de abril de 2016 .
  10. ^ http://j-core.org/talks/ELC-2016.pdf
  11. ^ VM Weaver (17 de marzo de 2015). "Explorando los límites de la densidad del código (informe técnico con los resultados más recientes)" (PDF) .
  12. ^ Kuwabara (25 de julio de 2019). "Manual de servicio de Korg EMX / ESX" (PDF) .
  13. ^ "Núcleo de CPU SH-5, volumen 1: arquitectura" (PDF) .
  14. ^ "Comunicado de prensa Wasabi SH-5" . 8 de marzo de 2016.
  15. ^ "Cambios, nuevas funciones y correcciones de la serie de versiones GCC 7" . 2 de febrero de 2018.

Enlaces externos [ editar ]

  • Renesas SuperH , Productos, Herramientas, Manuales, Notas de aplicación, Información
  • SuperH RISC Engine SH-1 / SH-2 Manual de programación (PDF) . Hitachi Americal Ltd. 3 de septiembre de 1996 . Consultado el 6 de diciembre de 2020 .
  • Arquitectura del núcleo de la CPU SH-4 (PDF) . STMicroelectronics and Hitachi Ltd. 12 de septiembre de 2002. ADCS 7182230F . Consultado el 6 de diciembre de 2020 .
  • Procesador abierto J-core
  • J-core en GitHub
  • Lista de desarrollo de Linux SuperH
  • DCTP - Hitachi 200 MHz SH-4 en Wayback Machine (archivado el 10 de agosto de 2016)
  • Port de Debian en progreso para SH4