Articulo de referencia

SuperH

{{cite web |title=The Story of the Hitachi SH-2 and the Sega Saturn |url=https://www.sega-16.com/forum/showthread.php?33527-The-Story-of-the-Hitachi-SH-2-and-the-Sega-Saturn |we...

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 . Se implementa en microcontroladores y microprocesadores para sistemas embebidos .

En el momento de su lanzamiento, SuperH destacó por utilizar instrucciones de 16 bits de longitud fija, a pesar de su arquitectura de 32 bits. El uso de instrucciones más cortas tuvo consecuencias: el banco de registros era menor y las instrucciones solían tener un formato de dos operandos. Sin embargo, para el mercado al que se dirigía SuperH, este era un pequeño precio a pagar por la mejora en la eficiencia de la memoria y la caché del procesador .

Las versiones posteriores del diseño, comenzando con SH-5, incluían instrucciones de 16 y 32 bits, donde las versiones de 16 bits se correspondían con las de 32 bits dentro de la CPU. Esto permitía que el código máquina siguiera utilizando las instrucciones más cortas para ahorrar memoria, sin requerir la cantidad de lógica de decodificación necesaria si se tratara de instrucciones completamente independientes. Este concepto se conoce ahora como conjunto de instrucciones comprimido y también lo utilizan otras compañías, siendo los ejemplos más notables ARM con su conjunto de instrucciones Thumb y RISC-V con sus extensiones comprimidas.

En 2015, muchas de las patentes originales de la arquitectura SuperH expiraron y la CPU SH-2 se reimplementó como hardware de código abierto bajo el nombre de J2 .

Historia

SH-1 y SH-2

SH-2 en Sega 32X y Sega Saturn

La familia de núcleos de procesador SuperH fue desarrollada por primera vez por Hitachi a principios de la década de 1990. El concepto de diseño consistía en un único conjunto de instrucciones (ISA) que sería compatible con versiones posteriores en una serie de núcleos de CPU .

En el pasado, este tipo de problema de diseño se habría resuelto mediante microcódigo , donde los modelos de gama baja de la serie ejecutaban las instrucciones no implementadas como una serie de instrucciones más básicas. Por ejemplo, una "multiplicación larga" (multiplicar dos registros de 32 bits para producir un producto de 64 bits) podría implementarse en hardware en los modelos de gama alta, pero en cambio se realizaría como una serie de sumas en los modelos de gama baja.

Una de las conclusiones clave durante el desarrollo del concepto RISC fue que el microcódigo tenía un tiempo de decodificación finito, y a medida que los procesadores se volvían más rápidos, esto representaba una sobrecarga de rendimiento inaceptable. Para abordar esto, Hitachi desarrolló una única arquitectura de conjunto de instrucciones (ISA) para toda la línea, con instrucciones no compatibles que provocaban errores en aquellas implementaciones que no incluían soporte de hardware. Por ejemplo, los modelos iniciales de la línea, el SH-1 y el SH-2, solo se diferenciaban en su soporte para la multiplicación de 64 bits; el SH-2 admitía MUL, DMULSy DMULU, mientras que el SH-1 provocaba un error si se encontraban estas instrucciones. [ 3 ]

El SH-1 era el modelo básico, compatible con un total de 56 instrucciones. El SH-2 añadió multiplicación de 64 bits y algunos comandos adicionales para bifurcaciones y otras funciones, elevando el total a 62 instrucciones compatibles. [ 3 ] El SH-1 y el SH-2 se utilizaron en Sega Saturn , Sega 32X y Capcom CPS-3 . [ 4 ]

El ISA utiliza instrucciones de 16 bits para una mayor densidad de código que las instrucciones de 32 bits, lo cual era importante en su momento debido al alto costo de la memoria principal y el costo de implementación de la caché. A partir de 2023, la densidad de código sigue siendo importante para sistemas embebidos pequeños y procesadores multinúcleo masivos. Las desventajas de este enfoque eran que había menos bits disponibles para codificar un número de registro o un valor constante. En el ISA SuperH original, solo había 16 registros generales, que requerían cuatro bits para el origen y otros cuatro para el destino; sin embargo, algunas instrucciones tienen un R0, R15 o un registro del sistema implícito como operando adicional. El código de operación de la instrucción tiene una longitud de cuatro, ocho, doce o dieciséis bits, y los campos de cuatro bits restantes se utilizan para registros u operandos inmediatos de diversas maneras: hay doce clases de instrucciones, para un total de 142 instrucciones en SH-2. [ 5 ]

Se introducen saltos retardados tanto para SH-1 como para SH-2. Las instrucciones de salto incondicional tienen una ranura de retardo . [ 6 ]

SH-3

Unos años más tarde, se añadió el núcleo SH-3 a la familia; entre las nuevas características se incluían otro concepto de interrupción , una unidad de gestión de memoria (MMU) y un concepto de caché modificado. Estas características requerían un conjunto de instrucciones ampliado, añadiendo seis nuevas instrucciones para un total de 68. [ 3 ] El SH-3 era bi-endian , funcionando con ordenación de bytes big-endian o little-endian.

El núcleo SH-3 también incorporó una extensión DSP , denominada entonces SH-3-DSP. Con rutas de datos extendidas para un procesamiento DSP eficiente, acumuladores especiales y un motor DSP dedicado de tipo MAC , este núcleo unificó el mundo de los procesadores DSP y RISC. Una variante del DSP también se utilizó con el núcleo SH-2 original. Se empleó en la línea de teléfonos móviles Pocket PC de Microsoft .

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

SH-4

En 1997, Hitachi y STMicroelectronics (STM) comenzaron a colaborar en el diseño del SH-4 para la Dreamcast . El SH-4 presentaba ejecución de instrucciones superescalar (bidireccional) y una unidad de punto flotante vectorial (especialmente adecuada para gráficos 3D ). Los chips estándar basados ​​en el SH-4 se introdujeron alrededor de 1998. [ 8 ]

Licencias

A principios de 2001, Hitachi y STM 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 hacia el área de 64 bits. Los modelos anteriores SH-1 a SH-3 siguieron siendo propiedad de Hitachi. [ 8 ] [ 9 ]

En 2003, Hitachi y Mitsubishi Electric formaron una empresa conjunta llamada Renesas Technology , en la que Hitachi controlaba el 55%. En 2004, Renesas Technology compró la participación de STMicroelectronics en SuperH Inc. y, con ella, la licencia de los núcleos SH. [ 10 ] Posteriormente, Renesas Technology se convirtió en Renesas Electronics, tras su fusión con NEC Electronics .

El diseño SH-5 admitía dos modos de operación: el modo SHcompact, equivalente a las instrucciones en modo usuario del conjunto de instrucciones SH-4; y el modo SHmedia, muy diferente, ya que utiliza 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 propiamente dicha. Esto permite al procesador precargar instrucciones para una bifurcación sin tener que monitorizar el flujo de instrucciones. La combinación de una codificación de instrucciones compacta de 16 bits con una codificación de instrucciones de 32 bits más potente no es exclusiva de SH-5; los procesadores ARM tienen un modo Thumb de 16 bits (ARM obtuvo varias patentes de SuperH para Thumb [ 11 ] ) y los procesadores MIPS tienen un modo MIPS-16. Sin embargo, SH-5 se diferencia porque su modo de retrocompatibilidad es la codificación de 16 bits en lugar de la de 32 bits.

El último paso evolutivo tuvo lugar alrededor de 2003, cuando los núcleos desde SH-2 hasta SH-4 se unificaron en un núcleo superescalar SH-X, que formó una especie de superconjunto de conjuntos de instrucciones de las arquitecturas anteriores y añadió soporte para el multiprocesamiento simétrico .

Disponibilidad continua

Desde 2010, los núcleos de CPU SuperH, la arquitectura y los diseños de productos son propiedad de Renesas Electronics , y la arquitectura se ha consolidado en torno a las plataformas SH-2, SH-2A, SH-3, SH-4 y SH-4A.

Los productos de sistema en chip de Renesas, originalmente basados ​​en los microprocesadores SH-3, SH-4 y SH-4A, fueron posteriormente reemplazados por generaciones más nuevas basadas en núcleos de CPU con licencia de Arm Ltd. , aunque muchos de los modelos existentes continuaron comercializándose y vendiéndose hasta marzo de 2025 a través del Programa de Longevidad de Productos de Renesas. [ 12 ]

A partir de 2021, Renesas continúa comercializando los microcontroladores SH72xx basados ​​en el SH-2A con disponibilidad garantizada hasta febrero de 2029, junto con productos más recientes basados ​​en otras arquitecturas, como Arm , RX y RH850 .

J Core

La última de las patentes SH-2 expiró en 2014. En LinuxCon Japan 2015, los desarrolladores de j-core presentaron una reimplementación limpia de la ISA SH-2 con extensiones (conocida como "J2 core" debido a las marcas registradas vigentes ). [ 11 ] [ 13 ] Se presentó un recorrido de diseño en ELC 2016. [ 14 ]

El código VHDL de código abierto con licencia BSD para el núcleo J2 ha sido probado en FPGAs de Xilinx y en ASICs fabricados en el proceso de 180 nm de TSMC , y es capaz de arrancar μClinux . [ 11 ] J2 es compatible con ISA retroactiva con SH-2, implementado como una tubería de 5 etapas con interfaces de memoria de instrucciones y datos separadas, y un decodificador de instrucciones generado por máquina que soporta la ISA densamente empaquetada y compleja (en relación con otras máquinas RISC). Es fácil agregar instrucciones adicionales. J2 implementa instrucciones para desplazamiento dinámico (usando los patrones de instrucciones SH-3 y posteriores), operaciones atómicas extendidas (usadas para primitivas de subprocesos) y bloqueo/interfaces para soporte de multiprocesadores simétricos.

A partir de julio de 2026 La última noticia en el sitio web j-core.org es del 31 de agosto de 2016, y el enlace "descargas" en la página principal muestra un error 403 denegado . [ 15 ] [ 16 ]

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

Modelos

La familia de núcleos de CPU SuperH incluye:

  • SH-1: se utiliza en microcontroladores para aplicaciones integradas ( unidades de CD-ROM , electrodomésticos grandes , etc.).
  • El SH-2 se utiliza en microcontroladores con mayores requisitos de rendimiento, aplicaciones de red y también en consolas de videojuegos, como la Sega Saturn y el complemento Sega 32X . El SH-2 también se emplea en numerosas unidades de control de motores para automóviles , incluyendo 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 que adopta una arquitectura superescalar (es capaz de ejecutar más de una instrucción en un solo ciclo) y dos pipelines de cinco etapas. También incorpora 15 bancos de registros para facilitar una latencia de interrupción de 6 ciclos de reloj. Destaca en aplicaciones de control de motores, así como en multimedia, audio para automóviles, sistemas de propulsión, control de carrocerías y automatización de oficinas y edificios.
  • SH-DSP: desarrollado inicialmente para el mercado de la telefonía móvil , se utilizó posteriormente en muchas aplicaciones de consumo que requerían rendimiento DSP para la compresión JPEG , etc.
  • SH-3: utilizado para aplicaciones móviles y portátiles como la Jornada , con gran presencia en aplicaciones Windows CE y en el mercado de navegación para automóviles durante muchos años. La Cave CV1000 , similar a la CPU del hardware Sega NAOMI , también utilizaba esta CPU. Las unidades de producción musical Korg Electribe EMX y ESX también utilizan el SH-3 [ 19 ], al igual que las calculadoras gráficas Casio hasta 2013.
  • 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 alto rendimiento, como en terminales multimedia para automóviles, consolas de videojuegos (especialmente la Dreamcast ) o decodificadores . Posteriormente, se utilizó ampliamente en su versión SH-4A en las calculadoras gráficas de Casio desde 2011 hasta la actualidad.
  • SH-5: diseñado para aplicaciones multimedia de 64 bits de gama alta.
  • SH-X: núcleo principal utilizado en varias variantes (con o sin unidad DSP o FPU) en unidades de control del motor, equipos multimedia para automóviles, 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

CPU Hitachi SH-2 (abajo a la derecha, con rayas de colores)

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 e incorpora un bloque de multiplicación-acumulación (MAC) por hardware para algoritmos DSP, además de tener una arquitectura de pipeline de cinco etapas.

El SH-2 dispone de memoria caché en todos los dispositivos sin ROM .

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

Actualmente, la familia SH-2 abarca desde dispositivos con 32  KB de memoria flash integrada hasta dispositivos sin ROM. Se utiliza en una variedad de dispositivos con diferentes periféricos, como CAN, Ethernet, unidades de temporización para control de motores, convertidores analógico-digitales rápidos, entre otros.

SH-2A

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

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

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

La familia SH-2A hoy abarca un amplio campo de memoria desdeCon una capacidad de hasta 16  KB , incluye numerosas variantes sin ROM. Los dispositivos incorporan periféricos estándar como CAN , Ethernet , USB y otros, así como periféricos más específicos para aplicaciones como temporizadores de control de motores , controladores TFT y periféricos dedicados a sistemas de propulsión automotriz.

SH-3

CPU Hitachi SH-3 ( versión BGA )

Implementado por Casio como un chip integrado en la placa bajo los códigos de modelo SH7291 (gama Classpad, 2003 a 2013) y SH7355 (calculadoras gráficas de gama media a alta, 2005 a 2011).

SH-4

El SH-4 es una CPU RISC desarrollada principalmente para aplicaciones multimedia, como las consolas Dreamcast y NAOMI de Sega . Incluye una unidad de coma flotante mucho más potente y funciones integradas adicionales, además del procesamiento estándar de enteros de 32 bits y un tamaño de instrucción de 16 bits.

Las características del SH-4 incluyen:

  • Unidad de punto flotante (FPU) con cuatro multiplicadores de punto flotante, compatible con números de coma flotante de precisión simple de 32 bits y de doble precisión de 64 bits.
  • Operación de producto escalar de punto flotante en 4D y multiplicación matriz-vector
  • Bus de punto flotante de 128 bits que permiteTasa 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 Memoria direccionable de 4 GB (ver Direccionamiento por bytes ) con una velocidad de transferencia de800  MB/seg
  • Controladores integrados de interrupción, DMA y administración de energía.

SH-4A

Variante del SH-4 sin unidad de coma flotante, pero que incluye la extensión del conjunto de instrucciones DSP. Casio la implementó como un chip integrado bajo el código de modelo SH7305 y la utiliza en sus calculadoras gráficas desde 2011, siendo la más reciente la fx-CG100, lanzada en 2025.

SH-5

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

Casi nunca se lanzó hardware SH-5 no simulado, [ 21 ] y, a diferencia del SH-4 que aún está activo, el soporte para SH-5 se eliminó de GCC [ 22 ] y Linux.

SH-6

El SH-6 fue un desarrollo posterior anunciado pero nunca implementado. Se suponía que alcanzaría más de 2 GIPS, más de 7 GFLOPS y más de 24 GOPS. [ 18 ]

Referencias

Citas

  1. "La historia del Hitachi SH-2 y el Sega Saturn" . www.sega-16.com . Renesas. Archivado del original el 27 de febrero de 2023. Consultado el 27 de febrero de 2023 .
  2. Procesador abierto J-core
  3. 1 2 3 Programa 1996 , pág. 1.
  4. "CP System III (CPS3) Hardware (Capcom)" . www.system16.com . System 16. Consultado el 3 de agosto de 2019 .
  5. Programa 1996 , págs. 30–33.
  6. "Manual de hardware SH7020 y SH7021 Motor RISC SuperH™" . pág. 19,48 . Consultado el 2 de diciembre de 2023 . 
  7. "El procesador RISC SuperH de 360 ​​MIPS permite el lanzamiento de la serie SH-4 de sistemas de acceso personal SH7750" . Noviembre de 1997. Archivado del original el 5 de marzo de 2016.
  8. 1 2 "STMicro y Hitachi planean una nueva compañía 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 principales, pero ha trabajado con ST desde 1997, cuando las compañías acordaron compartir una hoja de ruta común para microprocesadores de gama alta. Desarrollaron conjuntamente el núcleo de procesador RISC SH4 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.
  9. "SuperH, Inc., formada por Hitachi y STMicroelectronics para impulsar la proliferación de núcleos SuperH en aplicaciones de microprocesadores integrados" .{{cite web}}: CS1 maint: servicio de archivado obsoleto ( enlace )
  10. Clarke, Peter (28 de septiembre de 2004). "Renesas se hará cargo del negocio principal de SuperH" . EE Times .
  11. 1 2 3 4 Nathan Willis (10 de junio de 2015). "Resucitando la arquitectura SuperH" . LWN.net .
  12. ""MCUs de la familia de motores RISC SuperH"" . Renesas Electronics .
  13. 1 2 "Procesador abierto J-core" . j-core.org . Procesador abierto J-core . Consultado el 27 de abril de 2016 .
  14. "j-core Design Walkthrough" (PDF) . j-core.org . Procesador abierto J-core. Archivado (PDF) del original el 17 de junio de 2016.
  15. "Procesador abierto J-core - Noticias" . j-core.org . Procesador abierto J-core . Consultado el 30 de junio de 2026 .
  16. "Índice de /descargas" . j-core.org . Procesador abierto J-Core . Consultado el 30 de junio de 2026 .
  17. VM Weaver (17 de marzo de 2015). "Explorando los límites de la densidad de código (Informe técnico con los resultados más recientes)" (PDF) . Archivado (PDF) del original el 13 de julio de 2015.
  18. 1 2 Fumio Arakawa (27-07-2013). "SH-5: Un primer núcleo SuperH de 64 bits con extensión multimedia" (PDF; 617 kB) . Hitachi, Ltd. Recuperado el 08-02-2022 .
  19. Kuwabara, M. (25 de julio de 2019). "Manual de servicio de Korg EMX / ESX" (PDF) . Archivado del original (PDF) el 13 de julio de 2019.
  20. "SH-5 CPU Core, Volumen 1: Arquitectura" (PDF) . Archivado (PDF) del original el 20 de marzo de 2009.
  21. "Comunicado de prensa de Wasabi SH-5" . 8 de marzo de 2016.
  22. "Cambios, nuevas características y correcciones de la serie de lanzamientos de GCC 7" . 2 de febrero de 2018.

Bibliografía

  • Manual de programación del motor RISC SuperH SH-1/SH-2 (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 y Hitachi Ltd. 12 de septiembre de 2002. ADCS 7182230F . Consultado el 6 de diciembre de 2020 .
  • Renesas SuperH , Productos, Herramientas, Manuales, Notas de aplicación, Información
  • Procesador abierto J-core
  • J-core en GitHub
  • Lista de desarrollo de Linux SuperH
  • DCTP - Hitachi  SH-4 de 200 MHz en Wayback Machine (archivado el 10 de agosto de 2016)
  • Port de Debian en desarrollo para SH4
  • Chen, Raymond (5 de agosto de 2019). "El SuperH-3, parte 1: Introducción" . The Old New Thing (blog) . Recuperado el 22 de enero de 2024 . Una serie de 15 partes sobre programación para microprocesadores.