Evaluation von Undervolting auf LP FPGAs

Energieeffizienz spielt eine immer größere Rolle, insbesondere für kleine ressourcenbeschränkte Systeme wie bspw. Sensoren. Eine Methode um die Leistungsaufnahme zu reduzieren ist Undervolting, bei dem die Processing Unit unterhalb der spezifizierten Spannung betrieben wird. Für Mikroprozessoren wurde Undervolting bereits erfolgreich implementiert und es hat sich gezeigt, dass eine enorme Steigerung der Energieeffizienz (bis zu 42% bei einem ATMega1284p) erreicht wird. Für Smart Sensors ist neben Mikroprozessoren aber auch der Einsatz von LP (Low Power) FPGAs eine spannende Alternative für die Signalverarbeitung. Auf dem FPGA lassen sich spezielle Hardwarestrukturen umsetzen, kleine Softcores implementieren oder dedizierte Beschleuniger für rechenintensive Tasks umsetzen. Genau diese FPGAs sollen nun eingehender auf ihr Verhalten unter Undervolting untersucht werden.

FPGAs bieten per se keine Möglichkeit von Energieeffizienzmechanismen, wie bspw. Sleep-Zustände auf Mikroprozessoren. Viel mehr kann in einem FPGA alles implementiert werden was sie einerseits sehr flexibel macht, anderseits aber auch zu Lasten der Energieffizienz geht.

Undervolting könnte hier eine sehr gute Basis darstellen, weitreichende Energieeffizienzmechanismen für LP FPGAs zu implementieren. Sei es ein effizientes Deep-Sleep oder mittels asynchroner Rechnerstrukturen. In dieser Arbeit sollen grundlegende Untersuchungen an LP FPGAs und Undervolting ermöglicht werden, als Basis für weiterführende Forschung.

drawing

Konkret sollen LP FPGAs der Familie Lattice ICE40 untersucht werden, da diese häufig auf ressourcenbeschränkten Systemen zum Einsatz kommen und es für diesen Typ von FPGA eine Open Source Toolchain gibt. Für die ICE40 soll eine Testbench entwickelt werden, welche das automatisierte Testen von einer signifikanten Anzahl von FPGAs ermöglicht und die Orchestrierung und Wiederholbarkeit von Testreihen vereinfacht. Neben der Möglichkeit die Versorgungsspannung des DUT (Device Under Test, hier die FPGAs) präzise skalieren zu können, sollen Parameter wie Spannung, Stromaufnahme, Temperatur parallel zu jedem Test erfasst werden können. Um das DUT eingehend testen zu können, müssen ferner die GPIOs ausgelesen werden können, bspw. um Testvektoren interner Fehlererkennungen auszuwerten. Die Testbench selbst muss eingehend evaluiert werden, damit diese als Valide Grundlage für weiterführende Tests genutzt werden kann. Im Anschluss sollen Teststrukturen auf einem FPGA implementiert werden und dessen Verhalten unter Undervolting mittels der Testbench ausführlich evaluiert werden. Für die Masterarbeit ist es obligatorisch, dass verwandte Literatur untersucht und in die Bearbeitung einfließt.

Tasks

Further Reading