Prof. Dr.-Ing. habil. Daniel Ziener
Fachgebietsleiter
Technische Universität Ilmenau Fakultät für Informatik und Automatisierung Institut für Technische Informatik und Ingenieurinformatik Fachgebiet Rechnerarchitektur und Eingebettete Systeme
Helmholtzplatz 5 98693 Ilmenau Zusebau, Raum Z 2056
Das Forschungsgebiet Rechnerarchitektur und Eingebettete Systeme ist sehr vielseitig. Durch die zunehmende Vernetzung von elektronischen Systemen und die Fortschritte in der Halbleitertechnologie, die es erlaubt immer komplexere Systeme zu entwerfen, ist die Bedeutung dieses Forschungsgebiets in den letzten Jahren stark gestiegen. Durch mobile, batteriebetriebene Systeme auf der einen Seite und die Verarbeitung von enormen Datenmengen (Stichwort: Big Data) in riesigen Datenzentren auf der anderen Seite, wird die Energieeffizienz von Rechnersystemen immer wichtiger. Jedoch bringt die zunehmende Miniaturisierung und Komplexität auch Probleme mit sich. So werden Transistoren immer unzuverlässiger, und Hardware-Angriffe auf Rechensysteme nehmen zu. Wir untersuchen deshalb adaptive Systeme,diesich auf neue Anforderungen und Gefahren einstellen können. Es werden aber auch neue Architekturkonzepte, wie Many Cores mit tausenden Prozessorkernen, Network-on-Chips, oder neue Technologien, wie Memristors betrachtet.
Im Fokus der Forschung stehen sogenannte rekonfigurierbare Hardwaresysteme, die eine Schaltungsstruktur mit Hilfe einer Konfiguration umsetzen. Das Forschungsgebiet der Architekturen solcher rekonfigurierbarer Hardwaresysteme sowie Algorithmen und Anwendungen mit rekonfigurierbaren Hardwaresystemen wird auch als Reconfigurable Computing bezeichnet.
Free Pixabay License (id-6382593)
Die hauptsächlich verwendeten rekonfigurierbaren Bauelemente sind die sogenannten Field Programmable Gate Arrays (FPGAs), die zur Familie der PLDs (Programmable Logic Devices) gehören. FPGAs sind digitale Chips, die für die Implementierung beliebiger digitaler Schaltungen programmiert werden können. Dies bedeutet, dass FPGAs zunächst mit einer sogenannten Konfiguration (oft als Konfigurationsbitstrom bezeichnet) programmiert werden müssen, um das gewünschte Verhalten der verwendeten Funktionselemente des FPGA einzustellen. FPGAs haben ein bedeutendes Marktsegment in der Mikroelektronik und insbesondere im Bereich der eingebetteten Systeme.
Die dynamische Rekonfiguration von FPGAs ist der Austausch der FPGA-Konfiguration während der Laufzeit. Partielle dynamische Rekonfiguration bedeutet, dass nur bestimmte Teile der Konfiguration zur Laufzeit ausgetauscht werden, während der Rest der Konfiguration aktiv bleibt. Dynamische und insbesondere partielle Rekonfigurationen benötigen zusätzliche Hardwareunterstützung des Konfigurationsmanagers des FPGA.
Seit etlichen Jahren unterstützen FPGAs physikalisch die partielle Rekonfiguration. Die Verwendung für Industriedesigns steckt jedoch noch in den Kinderschuhen und nutzt noch nicht die großen Möglichkeiten, die eine partielle dynamische Rekonfiguration bieten könnte.
Neben der technischen Unterstützung durch den FPGA benötigt man für die partielle Rekonfiguration auch einen geeigneten Entwurfsprozess, um ein solches System zu bauen. Ein partiell rekonfigurierbarer Entwurf wird normalerweise in zwei Teile geteilt: Der
a) statische Teil ist immer vorhanden und wird nur beim Einschalten des Systems konfiguriert. In diesem Teil sind normalerweise die Schnittstellen zu Peripheriegeräten, Speichercontrollern und der Zugriff auf die Konfigurationsschnittstelle des FPGA (z. B. das ICAP für Xilinx FPGAs) enthalten. Die Konfiguration eines oder mehrerer
b) teilweise rekonfigurierbarer Teile oder Bereiche kann zur Laufzeit ausgetauscht werden. Diese Bereiche sind normalerweise eingebettet und vom statischen Teil umgeben. In diesen partiell rekonfigurierbaren Bereichen sind Module und Operationen implementiert, die zur Laufzeit angepasst oder ausgetauscht werden können.
Durch die Verwendung einer partiellen dynamischen Rekonfiguration können flexible adaptive digitale Schaltungen realisiert werden. Diese adaptiven digitalen Schaltungen sind in der Lage, ihre Struktur zur Laufzeit zu modifizieren, um Umgebungs- oder Anforderungsänderungen einschließlich unterschiedliche Benutzeranforderungen zu bewältigen. Durch die Verwendung dieser Technik kann ein hohes Maß an Flexibilität erreicht werden, was richtig genutzt zu energieeffizienten und leistungsstarken Implementierungen führt. Andererseits sind derartige Schaltungen in der Lage, rauen Umgebungsbedingungen standzuhalten, indem sie durch Strukturanpassung schnell auf Umgebungsänderungen reagieren. Dieses Verhalten führt zu einem zuverlässigeren System, wenn sich beispielsweise das rekonfigurierbare System an bestimmte Strahlungsniveaus anpassen kann. Darüber hinaus kann die Sicherheit einer FPGA-basierten Implementierung gegen physikalische Angriffe wie Seitenkanalanalyse, Fehlerinjektionsangriffe oder Reverse Engineering enorm erhöht werden.
Im folgenden soll auf die Forschungsschwerpunkte des Fachgebiets „Rechnerarchitektur und Eingebettete Systeme“ eingegangen werden:
Composed from Free Pixabay license
Heutige moderne FPGA-Architekturen bestehen aus hunderttausende Lookup-Tables und Flip-Flops, welche enorm mächtige und komplexe System-on-Chips (SoCs) aufnehmen können. Zusätzlich können diese Architekturen sehr feingranular rekonfiguriert werden. Jedoch schöpfen die Entwicklungswerkzeuge der FPGA-Hersteller diese Adaptivität bei weitem nicht aus. Des Weiteren sind diese Entwicklungswerkzeuge meist auf die Performanz der resultierenden Schaltung getrimmt und lassen andere nicht-funktionale Eigenschaften, wie Zuverlässigkeit oder Schutz vor Angriffen meist außer acht. Durch Erweiterungen des Entwurfsflusses, auch auf unteren Ebenen, können einerseits sehr feingranular partiell dynamisch rekonfigurierbare Systeme entworfen, aber auch nicht-funktionale Eigenschaften der Systeme verbessert werden. Durch die Integration von Architektursynthesewerkzeugen kann die Abstraktionsebene für den Entwickler angehoben und die Entwurfsproduktivität gesteigert werden. Auf der anderen Seite können neue FPGA-Architekturen entwickelt und untersucht werden, die z.B. eine sehr schnelle Rekonfiguration unterstützen.
Free Pixabay license (id-1616966)
Die besondere Bedeutung der Energieeffizienz für batteriebetriebene Systeme ist offensichtlich. Allerdings ist Energieeffizienz auch entscheidend für den nachhaltigen und wirtschaftlichen Betrieb großer Data Center und Kommunikationsnetze. Die jährlich erstellte, erfasste oder verarbeitete Datenmenge erhöht sich alle fünf Jahre um den Faktor 10. Das Speichern all dieser Daten ist die eine Herausforderung - die Verarbeitung und Analyse ist die Andere. Tatsächlich übertrifft der enorme Anstieg der Datenmenge sogar das Moore-Gesetz. Dies bedeutet, dass wir die ständig wachsende Datenmenge nicht allein mit mehr Verarbeitungsressourcen verarbeiten können. Der Energieverbrauch aller Rechenzentren weltweit steigt jährlich um 16,7%. Im Jahr 2013 betrug der Energieverbrauch aller IT-Einrichtungen zusammen 10% der weltweiten Energieerzeugung und wird weiter steigen. Hier sind neue energieeffiziente System notwendig, welche in diesem Forschungsschwerpunkt entwickelt und untersucht werden sollen.
Free Pixabay license (id-505878)
Durch die zunehmende Intra- und Inter-Die-Prozessvariabilität (Leff, Weff, Dotierung , Vth), Wärmeabstrahlungen über 100 W/cm2, sowie die zunehmende Sensitivität gegenüber Strahlung werden Transistoren in zukünftigen CMOS-Prozessgenerationen immer unzuverlässiger. Die Herausforderung aus potentiell unzuverlässigen Bausteinen zuverlässige Systeme zu bauen, soll in diesem Forschungsgebiet behandelt werden. Im Bereich Zuverlässigkeit von digitalen Systemen werden dynamische Gegenmaßnahmen zu strahleninduzierte oder alterungsbedingte Fehler untersucht. Ein Beispiel ist ein fehlertolerantes adaptives Satellitensystem, welches sich bei Änderung der Strahlendosis durch Rekonfiguration anpassen kann. Des Weiteren werden Alterungseffekte von FPGAs und integrierte Schaltungen untersucht.
Free Pixabay License (id-4993196)
Physikalische Angriffe wie die Seitenkanalanalyse, Fehlerinjektionsangriffe oder klassisches Reverse Engineering stellen eine massive Bedrohung für jede kryptographische Implementierung dar. Für kryptografische Hardwareimplementierungen, die solchen physischen Angriffen ausgesetzt sind, ist es unerlässlich, effiziente Gegenmaßnahmen zu ergreifen. FPGAs sind eine effiziente Plattform für kryptographische Hardwareimplementierungen. Um jedoch gegen physische Angriffe geschützt zu sein, muss jede auf einem FPGA implementierte sicherheitskritische Schaltung vor den oben genannten Bedrohungen geschützt werden. Es werden Techniken entwickeln, die die dynamischen Rekonfiguration von FPGAs als effektive Schutzmechanismen gegen die oben genannten Angriffsklassen nutzten.
Composed from Free Pixabay license
Modernen Computern sowie eingebettete Systemen werden heutzutage immer rechenintensivere Aufgaben aufgetragen. Während einige Aufgaben möglichst schnell ausgeführt werden sollen (z.B. die Suche eines Datensatzes in einer Datenbank) haben andere eine obere Schranke für die Ausführungszeit (z.B. die Kollisionserkennung in der Robotik – siehe Echtzeitsysteme). Eine Möglichkeit diesen Anforderungen nachzukommen ist der Einsatz spezieller, optimierter Schaltungen für spezifische Probleme, sogenannte Beschleuniger. Prominente Beispiele für Beschleuniger finden sich z.B. in der Bildverarbeitung, Kryptografie und künstlichen Intelligenz. Dabei eignen sich FPGAs mit ihrer Fähigkeit beliebige digitale Schaltungen zu implementieren im Besonderen für die Prototypisierung und Evaluierung einzelner Beschleuniger sowie Beschleuniger-basierten Systemen. Jedoch können mit Hilfe der dynamisch partiellen Rekonfiguration adaptive Beschleuniger realisiert werden. Solche können zum Beispiel in Rechenzentren eingesetzt werden, in denen FPGAs dynamisch verschiedenste Aufgaben übernehmen. Die großen Herausforderungen bei Datenbeschleunigung in Rechenzentren mit unterschiedlich komplexen Anfragen und Lastszenarien ist das frühzeitige effiziente Filtern von riesigen Datenmengen, sowie die Virtualisierung der Beschleunigungshardware, um einer große Anzahl von Nutzern geringe Antwortzeiten zu garantieren. Neben den Architekturen von Beschleunigern werden auch Konzepte für das effiziente Einbetten von Beschleunigern untersucht. Hierbei bieten sich Ansätze an, welche Beschleuniger direkt in den Datenströme einbetten, wie z.B. im Speicher- bzw. Netzwerkcontrollern.
Free Pixabay license (id-564784)
Mit programmierbarer Hardware, speziell FPGAs, können so genannte "Softcore-Prozessoren" implementiert werden. Diese können in vielfältiger Weise an die konkrete Anwendung angepasst werden. Damit sind effizientere Lösungen möglich, die gegenüber fest definierten Prozessoren Vorteile bei Funktionalität, Energieverbrauch, Strukturaufwand oder Programmieraufwand haben. Für den Entwurf solcher Prozessoren werden besondere Entwurfsverfahren benötigt, die den Entwerfer modellbasiert zu einer optimalen Lösung führen. In diesem Forschungsgebiet werden die Architekturen von Softcore-Prozessoren und geeignete Entwurfsverfahren untersucht.