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.
Anzeige
Bitte loggen Sie sich ein, um Zugang zu Ihrer Lizenz zu erhalten.