Adaptive Rechensysteme und ihre Entwurfswerkzeuge

Adaptive Rechensysteme haben die Fähigkeit, sich neben der konventionellen Programmierung durch Software auch in Hardware-Aspekten an die Erfordernisse der aktuellen Anwendung anpassen zu lassen. Diese Art von Flexibilität erfordert neue Entwicklungswerkzeuge, mit denen die Soft- und Hardware-Komponenten zur Realisierung eines Algorithmus gemeinsam erstellt werden können. Siehe auch die ausführliche Allgemeine Einführung

Rechnerarchitekturen für adaptive Systeme

Adaptive Rechensysteme (siehe auch Allgemeine Einführung) können wegen der für sie typischen Flexibilität einzelner Hardware-Teile weitaus besser an aktuelle Erfordernisse angepasst werden als dies mit komplett fester Standard-Hardware möglich wäre. Da aber selbst bei einem adaptiven Rechner der überwiegende Teil des Systems aus nicht-konfigurierbaren Bauteilen besteht, muss auch hier die doch weitgehend statische Rechner-Architektur sorgfältig und ohne die Möglichkeit einer späteren Änderbarkeit entworfen werden. Ein Schwerpunkt unserer Forschung liegt daher auf der Konzeption, Realisierung und Evaluierung verschiedener Hardware-Architekturen für adaptive Rechensysteme.

Laufende Projekte:
  • CYSEC ESA is a Member of the CYSEC profile area. CYSEC researches various topics from the field of cybersecurity.

  • F-Technologies Exist Forschungstransfer

  • INCA

  • neoDBMS

  • PANDAS The goal of PANDAS (Programmable Appliance for Near-Data processing Accelerated Storage) is to develop a new, smart mass storage card. By combining large numbers of flash memories and programmable logic (FPGAs), critical applications can be accelerated using near-data processing. The resulting PANDAS card is mainly intended for usage with database (e.g. RocksDB) systems, but should be usable with a large variety of applications.

  • RAVEN

  • SODDAS

Vergangene Projekte:

Entwurf adaptiver Rechensysteme

Die manuelle Entwicklung von Anwendungen für adaptive Rechner ist recht mühsam: Zunächst muss der zu implementierende Algorithmus in Hard- und Software-Teile partitioniert werden. Anschließend werden die einzelnen Teile getrennt realisiert, müssen aber auf beiden Seiten noch mit Schnittstellen und Protokollen für ihre Kommunikation untereinander versehen werden. Die Komplexität der zu lösenden Einzelprobleme bei all diesen voneinander abhängigen Schritten führen zu einer recht niedrigen Entwurfs-Produktivität (siehe auch Allgemeine Einführung).