Der Super Harvard Architecture Single-Chip Computer ( SHARC ) ist ein leistungsstarker Gleitkomma- und Festkomma- DSP von Analog Devices . SHARC wird in einer Vielzahl von Signalverarbeitungsanwendungen eingesetzt, von der Audioverarbeitung über gelenkte Artilleriegeschosse mit einem einzigen Prozessor bis hin zu Radarrechnern mit 1000 Prozessoren für die Erfassung von Zielen über den Horizont. Der ursprüngliche Entwurf stammt aus dem Januar 1994.
SHARC-Prozessoren sind typischerweise so ausgelegt, dass sie über eine große Anzahl serieller Verbindungen zu anderen SHARC-Prozessoren in der Nähe verfügen und als kostengünstige Alternative zu SMP eingesetzt werden können .
Architektur
Der SHARC ist ein VLIW -Prozessor mit Harvard-Architektur und Wortadressierung . Er kennt keine 8-Bit- oder 16-Bit-Werte, da jede Adresse auf ein ganzes 32-Bit-Wort verweist, nicht nur auf ein Oktett . Daher ist er weder Little-Endian noch Big-Endian. Ein Compiler kann jedoch beide Konventionen verwenden, wenn er 64-Bit-Daten implementiert und/oder mehrere 8-Bit- oder 16-Bit-Werte in einem einzigen 32-Bit-Wort zusammenfasst. In C sind die Zeichen 32 Bit groß, da sie die kleinsten adressierbaren Wörter in der Architektur darstellen.
Die Wortgröße beträgt 48 Bit für Befehle, 32 Bit für Ganzzahlen und normale Gleitkommazahlen sowie 40 Bit für erweiterte Gleitkommazahlen. Code und Daten werden üblicherweise aus dem On-Chip-Speicher geladen, den der Benutzer je nach Bedarf in Bereiche unterschiedlicher Wortgröße unterteilen muss. Kleine Datentypen können in einem größeren Speicherbereich abgelegt werden, wodurch der zusätzliche Speicherplatz verschwendet wird. Ein System, das keine 40-Bit-Gleitkommazahlen verwendet, kann den On-Chip-Speicher in zwei Bereiche aufteilen: einen 48-Bit-Bereich für Code und einen 32-Bit-Bereich für alle anderen Daten. Die meisten speicherbezogenen CPU-Befehle können nicht auf alle Bits des 48-Bit-Speichers zugreifen; hierfür steht jedoch ein spezielles 48-Bit-Register zur Verfügung. Auf dieses spezielle 48-Bit-Register kann als Paar kleinerer Register zugegriffen werden, wodurch der Zugriff auf die normalen Register ermöglicht wird.
Der externe Speicher kann mit dem SHARC verwendet werden. Dieser Speicher lässt sich nur auf eine einzige Größe konfigurieren. Wenn der externe Speicher zur Vermeidung von Speicherverschwendung auf 32-Bit-Wörter konfiguriert ist, kann für die Codeausführung und erweiterte Gleitkommaoperationen ausschließlich der On-Chip-Speicher verwendet werden. Betriebssysteme können dieses Problem mithilfe von Overlays umgehen und 48-Bit-Daten bei Bedarf zur Ausführung in den On-Chip-Speicher übertragen. Hierfür ist eine DMA- Engine vorhanden. Echtes Paging ist ohne eine externe MMU nicht möglich .
Der SHARC verfügt über einen 32-Bit-Wortadressraum. Je nach Wortgröße beträgt dieser 16 GB, 20 GB oder 24 GB (bei der üblichen Definition eines 8-Bit-Bytes).
SHARC-Befehle können einen 32-Bit-Operanden enthalten. Befehle ohne diesen Operanden können in der Regel zwei oder mehr Operationen gleichzeitig ausführen. Viele Befehle sind bedingt und können in Assemblersprache mit einer „if- Bedingung “ eingeleitet werden . Es stehen verschiedene Bedingungen zur Auswahl, ähnlich den Optionen des x86 -Flag-Registers.
Es gibt zwei Verzögerungsslots . Nach einem Sprung werden normalerweise zwei Anweisungen ausgeführt, die auf den Sprung folgen.
Der SHARC-Prozessor verfügt über eine integrierte Unterstützung für Schleifensteuerung. Es können bis zu 6 Ebenen verwendet werden, wodurch die Notwendigkeit normaler Verzweigungsanweisungen und der üblichen Buchhaltung im Zusammenhang mit dem Schleifenausstieg entfällt.
Der SHARC verfügt über zwei vollständige Sätze von Allzweckregistern. Der Code kann blitzschnell zwischen ihnen umschalten, was schnelle Kontextwechsel zwischen einer Anwendung und einem Betriebssystem oder zwischen zwei Threads ermöglicht.
Softwareunterstützung
Compiler:
- Analog Devices CrossCore Compiler (kommerziell) [ 1 ]
- Analog Devices Visual DSP++ (kommerziell) [ 2 ]
- Analog Devices g21k, ein veralteter Fork von GCC (GPLv2) [ 3 ] [ 4 ]
Siehe auch
- TigerSHARC – paralleler Nachfolger von Analog Devices
- Blackfin – moderner (ab 2000) Nachfolger von Analog Devices
- Qualcomm Hexagon – Konkurrent
- Texas Instruments TMS320 – Konkurrenzprodukt
- CEVA, Inc. – Wettbewerber
Referenzen
- ^ "C/C++ Compiler Manual for SHARC ® Processors" (PDF) .
- ^ "VisualDSP++ 5.1" .
VisualDSP++ für Blackfin-, SHARC- und TigerSHARC-Prozessoren ist eine einfach zu installierende und benutzerfreundliche integrierte Softwareentwicklungs- und Debugging-Umgebung (IDDE), die die effiziente Verwaltung von Projekten von Anfang bis Ende über eine einzige Schnittstelle ermöglicht.
- ^ "Dockeen - DSP/GCC Information" . gcc.gnu.org .
- ^ Vakulenko, Serge (19. Juni 2025). „sergev/g21k“ .