SuperH - SuperH

SuperH (SH)
Designer Hitachi Ltd.
Bits 32-Bit (32 → 64)
Eingeführt 1990er Jahre
Entwurf RISC
Codierung SH2: 16-Bit-Befehle; SH2A und neuer: gemischte 16- und 32-Bit-Befehle
Endianität Bi
Offen Ja und lizenzfrei

SuperH (oder SH ) ist eine von Hitachi entwickelte und derzeit von Renesas produzierte 32-Bit- Instruction Set Computing (RISC) Instruction Set Architecture (ISA) . Es wird durch Mikrocontroller und Mikroprozessoren für eingebettete Systeme implementiert .

Zum Zeitpunkt der Einführung zeichnete sich SuperH trotz seiner 32-Bit-Architektur durch 16-Bit-Befehle mit fester Länge aus. Dies war ein neuartiger Ansatz; Damals verwendeten RISC-Prozessoren immer eine Befehlsgröße, die der internen Datenbreite entsprach, typischerweise 32 Bit. Die Verwendung kleinerer Befehle hatte Konsequenzen, die Registerdatei war kleiner und die Befehle hatten im Allgemeinen ein Zwei-Operanden-Format. Aber für den Markt, auf den der SuperH abzielte, war dies ein geringer Preis für die verbesserte Speicher- und Prozessor-Cache- Effizienz.

Spätere Versionen des Designs, beginnend mit SH-5, enthielten sowohl 16- als auch 32-Bit-Befehle, wobei die 16-Bit-Versionen auf die 32-Bit-Version innerhalb der CPU abgebildet wurden. Dies ermöglichte es dem Maschinencode , weiterhin die kürzeren Befehle zu verwenden, um Speicher zu sparen, während er nicht die erforderliche Menge an Befehlsdecodierungslogik erforderte, wenn es sich um vollständig separate Befehle handelte. Dieses Konzept ist heute als komprimierter Befehlssatz bekannt und wird auch von anderen Unternehmen verwendet. Das bemerkenswerteste Beispiel ist ARM für seinen Thumb- Befehlssatz.

Ab 2015 laufen viele der ursprünglichen Patente für die SuperH-Architektur aus und die SH-2 CPU wurde als Open-Source-Hardware unter dem Namen J2 neu implementiert .

Geschichte

SH-1 und SH-2

SH-2 auf Sega 32X und Sega Saturn

Die SuperH-Prozessorkernfamilie wurde erstmals Anfang der 1990er Jahre von Hitachi entwickelt. Das Designkonzept war für einen einzelnen Befehlssatz (ISA), der über eine Reihe von CPU-Kernen aufwärtskompatibel sein sollte .

In der Vergangenheit wäre diese Art von Designproblem mit Mikrocode gelöst worden , wobei die Low-End-Modelle der Serie nicht implementierte Anweisungen als eine Reihe grundlegenderer Anweisungen ausführen. Zum Beispiel könnte eine Anweisung zum Durchführen einer 32 x 32 -> 64-Bit-Multiplikation, einer "langen Multiplikation", in High-End-Modellen in Hardware implementiert werden, aber stattdessen als eine Reihe von Additionen bei Low-End-Modellen ausgeführt werden.

Eine der wichtigsten Erkenntnisse bei der Entwicklung des RISC- Konzepts war, dass der Mikrocode eine endliche Decodierzeit hatte, und da die Prozessoren schneller wurden, stellte dies einen inakzeptablen Leistungsaufwand dar. Um dies zu beheben, entwickelte Hitachi stattdessen eine einzige ISA für die gesamte Linie, wobei nicht unterstützte Anweisungen bei Implementierungen ohne Hardwareunterstützung zu Fallen führten. Zum Beispiel unterschieden sich die ersten Modelle der Linie, SH-1 und SH-2, nur in ihrer Unterstützung für die 64-Bit-Multiplikation; das SH-2 unterstützte MUL, DMULSund DMULU, während das SH-1 eine Falle verursachen würde, wenn diese angetroffen würden.

Die ISA verwendet 16-Bit- Befehle für eine bessere Codedichte als 32-Bit-Befehle, was damals aufgrund der hohen Kosten des Hauptspeichers ein großer Vorteil war . Die Nachteile dieses Ansatzes waren, dass weniger Bits zur Verfügung standen, um eine Registernummer oder einen konstanten Wert zu codieren. Im SuperH ISA gab es nur 16 Register, die vier Bits für die Quelle und weitere vier für das Ziel benötigten. Der Befehl selbst war ebenfalls vier Bit lang, so dass weitere vier Bits unberücksichtigt blieben. Einige Befehle verwendeten diese letzten vier Bits für Offsets bei Array-Zugriffen, während andere den zweiten Registerschlitz und die letzten vier Bits kombinierten, um eine 8-Bit-Konstante zu erzeugen.

Zunächst wurden zwei Modelle eingeführt. Der SH-1 war das Basismodell und unterstützte insgesamt 56 Befehle. Der SH-2 fügte eine 64-Bit-Multiplikation und einige zusätzliche Befehle für Verzweigungen und andere Aufgaben hinzu, wodurch sich die Gesamtzahl auf 62 unterstützte Befehle erhöht. Der SH-1 und der SH-2 wurden im Sega Saturn , Sega 32X und Capcom CPS-3 verwendet .

SH-3

Einige Jahre später wurde der SH-3-Kern in die Familie aufgenommen; Zu den neuen Features gehörten ein weiteres Interrupt-Konzept, eine Memory Management Unit (MMU) und ein modifiziertes Cache-Konzept. Diese Funktionen erforderten einen erweiterten Befehlssatz, der sechs neue Befehle für insgesamt 68 hinzufügte. Der SH-3 war bi-endian und lief entweder in Big-Endian- oder Little-Endian-Byte-Reihenfolge.

Der SH-3-Kern fügte auch eine DSP- Erweiterung hinzu, die dann SH-3-DSP genannt wurde. Mit erweiterten Datenpfaden für eine effiziente DSP-Verarbeitung, speziellen Akkumulatoren und einer dedizierten DSP-Engine vom MAC- Typ vereinte dieser Kern die DSP- und die RISC-Prozessorwelt. Ein Derivat des DSP wurde auch mit dem ursprünglichen SH-2-Kern verwendet.

Zwischen 1994 und 1996 wurden weltweit 35,1 Millionen SuperH-Geräte ausgeliefert.

SH-4

1997 begannen Hitachi und STMicroelectronics (STM) beim Design des SH-4 für Dreamcast zusammenzuarbeiten . SH-4 verfügte über eine superskalare (2-Wege) Befehlsausführung und eine Vektor- Gleitkommaeinheit (besonders geeignet für 3D-Grafiken ). Um 1998 wurden SH-4-basierte Standardchips eingeführt.

Lizenzierung

Anfang 2001 gründeten Hitachi und STM das IP-Unternehmen SuperH, Inc., das den SH-4-Kern an andere Unternehmen lizenzieren und die SH-5-Architektur entwickelte, den ersten Schritt von SuperH in den 64-Bit-Bereich. Die früheren SH-1 bis 3 blieben im Besitz von Hitachi.

2003 gründeten Hitachi und Mitsubishi Electric ein Joint Venture namens Renesas Technology , an dem Hitachi 55 % kontrollierte. 2004 kaufte Renesas Technology den Eigentumsanteil von STMicroelectronics an der SuperH Inc. und damit die Lizenz für die SH-Kerne. Nach ihrer Fusion mit NEC Electronics wurde Renesas Technology später zu Renesas Electronics .

Das SH-5-Design unterstützte zwei Betriebsmodi. Der SHcompact-Modus entspricht den Benutzermodus-Befehlen des SH-4-Befehlssatzes. Der SHmedia-Modus ist sehr unterschiedlich und verwendet 32-Bit-Befehle mit 64 64-Bit-Integer-Registern und SIMD- Befehlen. Im SHmedia-Modus wird das Ziel einer Verzweigung (Sprung) getrennt vom eigentlichen Verzweigungsbefehl in ein Verzweigungsregister geladen. Dies ermöglicht dem Prozessor, Befehle für eine Verzweigung vorab abzurufen, ohne den Befehlsstrom abhören zu müssen. Die Kombination einer kompakten 16-Bit-Befehlscodierung mit einer leistungsfähigeren 32-Bit-Befehlscodierung ist bei SH-5 nicht einzigartig; ARM- Prozessoren haben einen 16-Bit- Thumb- Modus (ARM hat mehrere Patente von SuperH für Thumb lizenziert) und MIPS- Prozessoren haben einen MIPS-16-Modus. SH-5 unterscheidet sich jedoch dadurch, dass der Abwärtskompatibilitätsmodus die 16-Bit-Kodierung und nicht die 32-Bit-Kodierung ist.

Der letzte Evolutionsschritt geschah um 2003, als die Kerne von SH-2 bis SH-4 zu einem superskalaren SH-X-Kern vereint wurden, der eine Art Befehlssatz-Obersatz der vorherigen Architekturen bildete und Unterstützung für symmetrisches Multiprocessing hinzufügte .

Kontinuierliche Verfügbarkeit

Seit 2010 sind die SuperH-CPU-Kerne, die Architektur und die Produkte bei Renesas Electronics und die Architektur ist um die Plattformen SH-2, SH-2A, SH-3, SH-4 und SH-4A konsolidiert. Die auf den Mikroprozessoren SH-3, SH-4 und SH-4A basierenden System-on-Chip-Produkte wurden anschließend durch neuere Generationen ersetzt, die auf lizenzierten CPU-Kernen von Arm Ltd. basieren , wobei die vielen der bestehenden Modelle noch bis März vermarktet und verkauft wurden 2025 durch das Renesas Product Longevity Program.

Ab 2021 werden die SH-2A-basierten SH72xx-Mikrocontroller weiterhin von Renesas mit garantierter Verfügbarkeit bis Februar 2029 vermarktet, zusammen mit neueren Produkten, die auf mehreren anderen Architekturen wie Arm , RX und RH850 basieren .

J-Kern

Das letzte der SH-2-Patente lief 2014 aus. Auf der LinuxCon Japan 2015 präsentierten j-core-Entwickler eine Reinraum-Reimplementierung des SH-2 ISA mit Erweiterungen (bekannt als "J2-Core" aufgrund der nicht abgelaufenen Marken ). Anschließend wurde auf der ELC 2016 ein Design Walkthrough präsentiert.

Der Open - Source - BSD lizenziert VHDL - Code für den J2 Kern auf bewährt Xilinx FPGAs und ASICs auf gefertigt TSMC ‚s 180 nm Prozess, und ist in der Lage des Booten μClinux . J2 ist abwärts-ISA-kompatibel mit SH-2, implementiert als 5-stufige Pipeline mit separaten Befehls- und Datenspeicherschnittstellen und einem maschinengenerierten Befehlsdecoder, der die dicht gepackte und komplexe (im Vergleich zu anderen RISC-Maschinen) ISA unterstützt. Zusätzliche Anweisungen sind einfach hinzuzufügen. J2 implementiert Befehle für dynamisches Verschieben (unter Verwendung von SH-3 und späteren Befehlsmustern), erweiterte atomare Operationen (verwendet für Threading-Primitive) und Sperren/Schnittstellen für symmetrische Multiprozessorunterstützung. Es ist geplant, die Befehlssätze SH-2A (als "J2+") und SH-4 (als "J4") zu implementieren, da die entsprechenden Patente 2016-2017 auslaufen.

Mehrere Funktionen von SuperH wurden als Motivation für die Entwicklung neuer Kerne auf Basis dieser Architektur genannt:

  • Hohe Codedichte im Vergleich zu anderen 32-Bit- RISC- ISAs wie ARM oder MIPS, die für die Leistung von Cache und Speicherbandbreite wichtig sind
  • Bestehende Compiler- und Betriebssystemunterstützung ( Linux , Windows Embedded , QNX )
  • Extrem niedrige ASIC- Fertigungskosten jetzt, da die Patente auslaufen (ca. 0,03 US-Dollar für einen Dual-Core-J2-Kern im 180-nm-Prozess von TSMC).
  • Patent- und lizenzfreie (BSD-lizensierte) Implementierung
  • Vollständige und lebendige Unterstützung durch die Community
  • Verfügbarkeit einer kostengünstigen Hardware-Entwicklungsplattform für kostenlose FPGA-Tools
  • CPU- und SoC-RTL-Generierungs- und Integrationstools, die tragbare FPGA- und ASIC-RTLs und Dokumentationen erstellen
  • Sauberes, modernes Design mit Open-Source-Design-, Generierungs-, Simulations- und Verifikationsumgebung

Modelle

Hitachi SH-3 CPU

Die Familie der SuperH-CPU-Kerne umfasst:

  • SH-1 - wird in Mikrocontrollern für tief eingebettete Anwendungen verwendet ( CD-ROM- Laufwerke, Großgeräte usw.)
  • SH-2 - verwendet in Mikrocontrollern mit höheren Leistungsanforderungen, auch im Automobilbereich wie Motorsteuergeräten oder in Netzwerkanwendungen und auch in Videospielkonsolen, wie dem Sega Saturn . Der SH-2 hat auch in vielen Anwendungen von Kraftfahrzeug- Motorsteuergeräten Einzug gehalten, darunter Subaru , Mitsubishi und Mazda .
  • SH-2A - Der SH-2A-Kern ist eine Erweiterung des SH-2-Kerns, einschließlich einiger zusätzlicher Befehle, aber vor allem der Übergang zu einer superskalaren Architektur (er kann mehr als einen Befehl in einem einzigen Zyklus ausführen) und zwei fünf- Stufenrohrleitungen. Es enthält auch 15 Registerbänke, um eine Interrupt-Latenzzeit von 6 Taktzyklen zu ermöglichen. Es ist auch stark in der Motorsteuerung, aber auch in Multimedia, Car Audio, Powertrain, Karosseriesteuerung und Büro- und Gebäudeautomation
  • SH-DSP - ursprünglich für den Mobiltelefonmarkt entwickelt , später in vielen Verbraucheranwendungen verwendet, die DSP-Leistung für JPEG- Komprimierung usw. erfordern .
  • SH-3 - wird für Mobil- und Handheld-Anwendungen wie den Jornada verwendet , ist stark in Windows CE- Anwendungen und seit vielen Jahren auf dem Markt für Autonavigation. Auch der Cave CV1000 , ähnlich der CPU der Sega NAOMI Hardware, nutzte diese CPU. Auch die Musikproduktionseinheiten Korg Electribe EMX und ESX verwenden den SH-3.
  • SH-3-DSP - wird hauptsächlich in Multimedia-Terminals und Netzwerkanwendungen verwendet, auch in Druckern und Faxgeräten
  • SH-4 - wird immer dann verwendet, wenn hohe Leistung erforderlich ist, wie z. B. Multimedia-Terminals im Auto, Videospielkonsolen oder Set-Top-Boxen
  • SH-5 - wird in High-End-64-Bit-Multimediaanwendungen verwendet
  • SH-X - Mainstream-Kern, der in verschiedenen Geschmacksrichtungen (mit/ohne DSP- oder FPU-Einheit) in Motorsteuergeräten, Auto-Multimedia-Geräten, Set-Top-Boxen oder Mobiltelefonen verwendet wird
  • SH-Mobile - SuperH-Prozessor für mobile Anwendungen; entwickelt, um die Anwendungsverarbeitung vom Basisband-LSI zu entlasten

SH-2

Hitachi SH-2 CPU

Der SH-2 ist eine 32-Bit-RISC-Architektur mit einer festen 16-Bit-Befehlslänge für eine hohe Codedichte und verfügt über einen Hardware- Multiply-Accumulate (MAC)-Block für DSP-Algorithmen und verfügt über eine fünfstufige Pipeline.

Der SH-2 hat einen Cache auf allen ROM- losen Geräten.

Es bietet 16 Universalregister, ein Vektor-Basisregister, ein globales Basisregister und ein Prozedurregister.

Heute reicht die SH-2-Familie von 32 KB On-Board-Flash bis hin zu ROM-losen Geräten. Es wird in einer Vielzahl verschiedener Geräte mit unterschiedlicher Peripherie wie CAN, Ethernet, Motorsteuerungs-Timereinheit, schneller ADC und anderen verwendet.

SH-2A

Der SH-2A ist ein Upgrade des SH-2-Kerns, der einige 32-Bit-Befehle hinzugefügt hat. Es wurde Anfang 2006 bekannt gegeben.

Zu den neuen Funktionen des SH-2A-Kerns gehören:

  • Superskalare Architektur: Ausführung von 2 Befehlen gleichzeitig
  • Harvard-Architektur
  • Zwei 5-stufige Pipelines
  • Gemischte 16-Bit- und 32-Bit-Befehle
  • 15 Registerbänke für Interrupt-Antwort in 6 Zyklen.
  • Optionale FPU

Die SH-2A-Familie umfasst heute ein breites Speicherfeld von 16 KB bis hin zu vielen ROM-losen Varianten. Die Geräte verfügen über Standard-Peripheriegeräte wie CAN , Ethernet , USB und mehr sowie anwendungsspezifische Peripheriegeräte wie Motorsteuerungs- Timer, TFT- Controller und Peripheriegeräte für Anwendungen im Automobilantriebsstrang.

SH-4

Hitachi SH-4-CPU

Der SH-4 ist eine 32-Bit-RISC-CPU und wurde für den primären Einsatz in Multimedia-Anwendungen wie Segas Dreamcast- und NAOMI - Spielesystemen entwickelt. Es enthält eine viel leistungsfähigere Gleitkommaeinheit und zusätzliche integrierte Funktionen, zusammen mit der standardmäßigen 32-Bit-Integer-Verarbeitung und 16-Bit-Befehlsgröße.

Zu den SH-4-Funktionen gehören:

  • FPU mit vier Gleitkommamultiplikatoren, die 32-Bit-Einzelgenauigkeits- und 64-Bit-Gleitkommazahlen mit doppelter Genauigkeit unterstützen
  • 4D-Gleitkomma- Punktprodukt-Operation und Matrix-Vektor-Multiplikation
  • 128-Bit-Gleitkommabus, der eine Übertragungsrate von 3,2 GB/s aus dem Datencache ermöglicht
  • Externer 64-Bit-Datenbus mit 32-Bit-Speicheradressierung, der maximal 4 GB adressierbaren Speicher mit einer Übertragungsrate von 800 MB/s ermöglicht
  • Integrierte Interrupt-, DMA- und Power-Management-Controller

^ Es gibt keine FPU im benutzerdefinierten SH4 für Casio, dem SH7305.

SH-5

Der SH-5 ist eine 64-Bit-RISC-CPU.

Fast keine nicht simulierte SH-5-Hardware wurde jemals veröffentlicht, und im Gegensatz zum noch lebenden SH-4 wurde die Unterstützung für SH-5 von gcc und Linux eingestellt.

Verweise

Zitate

Literaturverzeichnis

Externe Links