Skip to main content
Top

2023 | Book

Blocks: Auf dem Weg zu Energieeffizienten, Grobkörnigen, Rekonfigurierbaren Architekturen (CGRA)

insite
SEARCH

About this book

Dieses Buch beschreibt eine neue, grobkörnige rekonfigurierbare Architektur (CGRA), genannt Blocks, und stellt sie in den Kontext von Computerarchitekturen und insbesondere von anderen CGRAs. Das Buch beginnt mit einer ausführlichen Bewertung historischer und bestehender CGRAs und deren Stärken und Schwächen. Dies führt auch zu einem besseren Verständnis und einer neuen Definition dessen, was CGRAs von anderen Architekturansätzen unterscheidet.

Die Autoren stellen Blocks als einzigartig vor, da es über separate programmierbare Steuer- und Datenpfade verfügt, so dass leichtgewichtige Befehlsdekodiereinheiten über eine statisch konfigurierte Verbindung beliebig mit einer oder mehreren Funktionseinheiten (FUs) verbunden werden können. In der Diskussion wird erläutert, wie Architekturen modelliert werden können, was zu einem Flächen- und Energiemodell für Blöcke führt. Die Genauigkeit dieses Modells wird anhand vollständig implementierter Architekturen bewertet, wobei sich zeigt, dass die Fehlerspanne sehr akzeptabel ist, obwohl es um drei Größenordnungen schneller ist als die Synthese. Das Buch schließt mit einer Fallstudie zu einem echten System-on-Chip, einschließlich einer RISC-Architektur, der Blocks CGRA und Peripheriegeräten.

Table of Contents

Frontmatter
1. Einführung
Zusammenfassung
Verschiedene Computerarchitekturen werden in unterschiedlichen Anwendungsbereichen eingesetzt. Je nach Anwendungsbereich werden bestimmte Eigenschaften von einer Computerarchitektur erwartet, z. B. eine hohe Leistung oder eine hohe Energieeffizienz. Aus diesem Grund sind einige Prozessoren für eine bestimmte Gruppe von Anwendungen besser geeignet, während ein anderer Prozessor in einer anderen Situation besser geeignet sein kann. Dies hängt von verschiedenen Faktoren ab, aber einer der wichtigsten Aspekte ist die Art der Parallelität, die ein bestimmter Prozessor unterstützt. Dieses Kapitel befasst sich mit eingebetteten Prozessoren und ihren Eigenschaften. Es werden Architekturen wie Single-Instruction-Multiple-Data- und Very-Long-Instruction-Word-Prozessoren vorgestellt. Außerdem wird das Konzept der rekonfigurierbaren Architekturen untersucht. Die in diesem Kapitel besprochenen Prozessorarchitekturen werden nach verschiedenen Kriterien, wie Energieeffizienz und Chipfläche, kategorisiert. Auf der Grundlage dieser Klassifizierung werden die Anforderungen an einen sehr energieeffizienten rekonfigurierbaren Signalprozessor festgelegt. Diese Anforderungen werden in späteren Kapiteln verwendet, um eine solche Architektur zu entwickeln.
Mark Wijtvliet, Henk Corporaal, Akash Kumar
2. CGRA-Hintergrund und verwandte Arbeiten
Zusammenfassung
Moderne eingebettete Anwendungen erfordern eine hohe Rechenleistung unter strengen Energiebeschränkungen. Für Anwendungen im Bereich der digitalen Signalverarbeitung bieten feldprogrammierbare Gate-Arrays (FPGAs) eine sehr flexible Verarbeitungsplattform. Aufgrund der Rekonfigurierbarkeit auf Bitebene ist der Overhead solcher Architekturen jedoch hoch. Sowohl in Bezug auf Energie, Fläche als auch Leistung. Grobkörnige rekonfigurierbare Architekturen beseitigen einen Großteil dieses Overheads, allerdings auf Kosten einer gewissen Flexibilität. Obwohl in der Vergangenheit viele Veröffentlichungen über CGRAs erschienen sind, ist nicht wirklich klar, was genau eine CGRA ausmacht. Aus diesem Grund wird in diesem Kapitel definiert, was eine CGRA ist, und diese Definition anhand einer großen Anzahl von zuvor vorgestellten Architekturen bewertet. Diese Definition hängt von der Rekonfigurationsgranularität einer Architektur sowohl in der zeitlichen als auch in der räumlichen Domäne ab. Darüber hinaus bietet das Kapitel dem Leser einen Überblick über die untersuchten CGRAs und schlägt einige Forschungsthemen vor, die CGRAs in Zukunft verbessern könnten.
Mark Wijtvliet, Henk Corporaal, Akash Kumar
3. Konzept der Blocks-Architektur
Zusammenfassung
CGRAs verwenden traditionell ein Kontrollschema, das entweder vollständig zentralisiert oder vollständig dezentralisiert ist. Systolische Arrays, die im Gleichschritt arbeiten, sind ein Beispiel für zentralisierte Steuerung; leichtgewichtige Prozessoren, die ihre eigene Befehlsdekodierung und ihren eigenen Kontrollfluss durchführen, sind ein Beispiel für dezentralisierte Steuerung. Die Blocks CGRA erlaubt es dem Entwickler, die Granularität des Kontrollschemas zu wählen. In Blocks können Befehlsdekodierer mit einer oder mehreren Funktionseinheiten verbunden werden. Außerdem können mehrere Gruppen von Befehlsdecodern so konfiguriert werden, dass sie im Gleichschritt arbeiten. Dies ermöglicht den Aufbau von Vektorbahnen, von mehreren Funktionseinheiten unter der Kontrolle eines einzigen Befehlsdecoders sowie von Ausgabeschlitzen, indem mehrere Befehlsdecoder im Gleichschritt verwendet werden, und von Multiprozessorsystemen. Um dies zu realisieren, verwendet Blocks zwei schaltbare rekonfigurierbare Netzwerke. In diesem Kapitel wird die Blocks-Architektur im Hinblick auf die Netzwerke, die Speicherhierarchie, die Funktionseinheiten und die Prozessorstrukturen, die auf Blocks konfiguriert werden können, eingehend beschrieben.
Mark Wijtvliet, Henk Corporaal, Akash Kumar
4. Der Blocks-Rahmen
Zusammenfassung
Damit sich eine Computerarchitektur auf breiter Basis durchsetzen kann, muss eine gute Werkzeugunterstützung vorhanden sein. Für einen typischen Prozessor besteht diese in der Regel aus einer Compiler-Suite, einem Assembler und möglicherweise einigen peripheren Konfigurationswerkzeugen. Bei einer rekonfigurierbaren Architektur, wie z. B. einem FPGA, müssen die Anwendungen auf physische Bausteine in der rekonfigurierbaren Struktur abgebildet werden. Außerdem müssen diese Bausteine über ein Interconnect miteinander verbunden werden. Zu diesem Zweck verfügen rekonfigurierbare Architekturen in der Regel über Place-and-Route-Tools. Blocks unterstützt zyklusbasierte Anweisungen und erfordern daher einen Compiler zur Planung dieser Anweisungen. Um eine Anwendung auf Ressourcen abzubilden, gibt es ein Place-and-Route-Tool sowie ein Tool, das den für die Konfiguration erforderlichen Bitstrom erzeugt. In diesem Kapitel werden diese Werkzeuge vorgestellt. Außerdem kann eine Hardware-Implementierung für Blocks auf der Grundlage von XML-Dateien generiert werden. Diese Hardware-Implementierungen können entweder zur funktionalen Verifikation auf FPGAs oder als vollständige ASIC-Implementierung synthetisiert werden. Ein Compiler für Blocks befindet sich noch in der Entwicklung. Blocks kann jedoch mit einer speziellen Assembler-Sprache namens PASM programmiert werden.
Mark Wijtvliet, Henk Corporaal, Akash Kumar
5. Energie-, Flächen- und Leistungsbewertung
Zusammenfassung
Für eine neue Prozessorarchitektur ist eine detaillierte Bewertung in Bezug auf Energie, Fläche und Leistung wichtig. Der Vergleich von Prozessorarchitekturen anhand von Zahlen in der Literatur ist jedoch schwierig. Dafür gibt es verschiedene Gründe: Benchmarks sind nicht gleich, Speicher und ihre Schnittstellen werden oft nicht berücksichtigt, Architekturen werden nur funktional simuliert, und Energiezahlen werden entweder nicht erwähnt, oder es ist nicht klar, was in diesen Zahlen enthalten ist und was nicht. Um eine faire Bewertung von Blocks im Vergleich zu Referenzarchitekturen (eine SIMD, eine VLIW und eine traditionelle CGRA) zu ermöglichen, werden diese Architekturen auf der Grundlage der von Blocks unterstützten Funktionseinheiten implementiert. Auf diese Weise sind die Befehlssatzarchitektur, der ASIC-Technologieknoten, die Speicherarbitrierung usw. alle vergleichbar. Außerdem wird Blocks mit einem ARM Cortex-M0 verglichen. Alle Architekturen wurden mit einem 40 nm Low-Power-Technologieknoten synthetisiert, platziert und geroutet. Die Ergebnisse zeigen, dass Blocks den Rekonfigurations-Overhead signifikant reduziert, sogar im Vergleich zu einem bereits optimierten, aber traditionelleren, CGRA. Blocks reduziert den Rekonfigurationsenergie-Overhead zwischen 46 % und 76 % (durchschnittlich 60 %). Die Energiereduzierung auf Systemebene liegt zwischen 9 % und 29 % (durchschnittlich 22 %). Trotz des Rekonfigurations-Overheads ist der Energieverbrauch von Blocks im Vergleich zu den festen SIMD- und VLIW-Prozessoren um das 2,1fache bzw. 1,8fache niedriger. Darüber hinaus ist der Energieverbrauch von Blocks im Vergleich zu einem ARM Cortex-M0-Prozessor um mehr als das 8-fache niedriger, während gleichzeitig eine 68,9-fache Beschleunigung erreicht wird.
Mark Wijtvliet, Henk Corporaal, Akash Kumar
6. Architektonisches Modell
Zusammenfassung
Der Entwurf von Konfigurationen für rekonfigurierbare Architekturen ist nicht trivial und erfordert normalerweise viele Entwurfsiterationen. Bei jeder Entwurfsiteration benötigt der Entwickler Informationen über die Leistung, den Energieverbrauch und die Fläche der Konfiguration, um fundierte Entscheidungen treffen zu können. Das Gleiche gilt für automatische Entwurfswerkzeuge, die eine Hochsprachenbeschreibung in Hardwarekonfigurationen und Befehlspläne synthetisieren. In diesem Kapitel wird ein Energie- und Flächenmodell für Blocks vorgestellt, dass eine schnelle Erkundung der Architektureigenschaften ermöglicht. Das vorgeschlagene Energiemodell wird an einzelnen Funktionseinheiten kalibriert. Dies ist ein einmaliger Aufwand. Die Zahlen werden vom Energiemodell in Kombination mit einer Befehlsspur verwendet, um die für die Ausführung einer bestimmten Anwendung erforderliche Energie zu schätzen. Die Ergebnisse zeigen, dass das Energiemodell sowohl für festverdrahtete als auch für rekonfigurierbare Blocks-Instanzen einen Schätzfehler zwischen -2 % und 7 % aufweist. Für die Fläche hat das Modell eine Fehlerspanne zwischen −4 % und +4 % für festverdrahtete Blocks-Instanzen und −2 % für rekonfigurierbare Instanzen. Für rekonfigurierbare Architekturen beträgt die Ausführungszeit des Modells weniger als acht Sekunden, während ein Syntheselauf über zwei Stunden dauert. Die Gesamtverbesserung der Ausführungszeit liegt also in der Nähe von drei Größenordnungen.
Mark Wijtvliet, Henk Corporaal, Akash Kumar
7. Fallstudie: Die BrainSense-Plattform
Zusammenfassung
Obwohl Blocks im Prinzip als eigenständiges Gerät funktionieren kann, ist es wahrscheinlicher, dass Blocks als Beschleuniger in einem System-on-Chip (SoC) eingesetzt wird. Die BrainSense-Plattform, eine Brain-Computer-Interaktionsplattform, wird als Fallstudie dafür verwendet, wie eine rekonfigurierbare Architektur wie Blocks in ein solches SoC integriert werden kann. Die BrainSense-Plattform besteht aus einem Host-Prozessor, einem ARM Cortex-M4f, einem Interconnect, Peripheriegeräten und Blocks als Beschleuniger. In diesem Kapitel wird ein Energiemodell verwendet, um Energieeinsparungen und Leistungsverbesserungen vorherzusagen, wenn Teile des Algorithmus vom Host-Prozessor zum Teil auf Blocks verlagert werden. Auf der Grundlage einer Bewertung der Algorithmen werden Kandidaten für die Beschleunigung auf Blocks ausgewählt. Die Leistungsverbesserung für Teile des Algorithmus erreicht Steigerungen von bis zu 14×. Allerdings gibt es Teile des Algorithmus, die noch für die Ausführung auf einem Beschleuniger optimiert werden müssen. Dadurch wird die Gesamtbeschleunigung auf das 2,2fache begrenzt. Diese Leistungsschätzungen werden verwendet, um geschätzte Energiezahlen für Blocks (als Teil des SoC) zu erhalten und zeigen eine Energieverbesserung von 2,3×.
Mark Wijtvliet, Henk Corporaal, Akash Kumar
8. Schlussfolgerungen und künftige Arbeiten
Zusammenfassung
Dieses Kapitel gibt einen Überblick über die in diesem Buch vorgestellten Arbeiten. Außerdem werden zukünftige Forschungswege und Erweiterungen dieses Buches vorgestellt.
Mark Wijtvliet, Henk Corporaal, Akash Kumar
Backmatter
Metadata
Title
Blocks: Auf dem Weg zu Energieeffizienten, Grobkörnigen, Rekonfigurierbaren Architekturen (CGRA)
Authors
Mark Wijtvliet
Henk Corporaal
Akash Kumar
Copyright Year
2023
Electronic ISBN
978-3-031-36650-5
Print ISBN
978-3-031-36649-9
DOI
https://doi.org/10.1007/978-3-031-36650-5