Du befindest dich hier: FSI Informatik » Prüfungsfragen und Altklausuren » Hauptstudiumsprüfungen » Lehrstuhl 12 » Prüfungsprotokoll Reconfigurable Computing (Übersicht)
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
pruefungen:hauptstudium:ls12:rc-2019-01 [07.04.2019 21:18] – angelegt ku91pigy | pruefungen:hauptstudium:ls12:rc-2019-01 [08.04.2019 07:19] (aktuell) – Formatierung verbessert, Rechtschreibfehler entfernt ku91pigy | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
======= Prüfungsprotokoll Reconfigurable Computing ====== | ======= Prüfungsprotokoll Reconfigurable Computing ====== | ||
- | Prüfer: Prof. Teich | + | **Prüfer:** Prof. Teich\\ |
- | Beisitzer: Khosravi | + | **Beisitzer:** Khosravi |
- | Verlauf: Es wird am Anfang der Prüfung eine zufälliges Paket mit 4 Fragen bzw. Themen gezogen. Am Anfang | + | **Verlauf:** Es wird am Anfang der Prüfung eine zufälliges Paket mit 4 Fragen bzw. Themen gezogen. Am Anfang |
Es wird auf jede der vier Themenbereiche eine Punktzahl gegeben und der Durchschnitt bestimmt die Prüfungsnote. | Es wird auf jede der vier Themenbereiche eine Punktzahl gegeben und der Durchschnitt bestimmt die Prüfungsnote. | ||
- | ===== 1. Computer, FPGAS ===== | + | ===== 1. Einordnung, Coarse-Grain Reconfigurable Devices |
- | P: Es gibt Von-Neuman Rechner und ASICs, können sie die auf einem Spektrum einordnen? \\ | + | **P: Es gibt Von-Neuman Rechner und ASICs, können sie die auf einem Spektrum einordnen?**\\ |
- | S: < | + | S: // |
VN Rechner sind sehr flexibel aber sehr ineffizient, | VN Rechner sind sehr flexibel aber sehr ineffizient, | ||
- | CPUS können praktisch alle Aufgaben | + | CPUS können praktisch alle Aufgaben |
- | P: Wo ordnet man in dem Diagram | + | **P: Wo ordnet man in dem Diagramm |
S: Dazwischen, sie sind effizienter als CPUS und flexibler als ASICS. \\ | S: Dazwischen, sie sind effizienter als CPUS und flexibler als ASICS. \\ | ||
- | P: Wodurch sind CPUs so flexibel? \\ | + | **P: Wodurch sind CPUs so flexibel?**\\ |
S: Sie haben verschiedene Einheiten, z.B. ALUs und FPUs \\ | S: Sie haben verschiedene Einheiten, z.B. ALUs und FPUs \\ | ||
- | P: ASICS lönnen abe rauch ALUs haben. \\ | + | **P: ASICS könnenn allerdings auch ALUs haben.**\\ |
S: CPUs arbeiten verschiedene Instruktionen ab. \\ | S: CPUs arbeiten verschiedene Instruktionen ab. \\ | ||
- | P: Wie genau funktioniert das? \\ | + | **P: Wie genau funktioniert das?**\\ |
- | S: zuerst | + | S: Zuerst |
- | P: Was bedeutet das? \\ | + | **P: Was bedeutet das?**\\ |
S: Sie wird in Unteraufgaben aufgeteilt, ersten Daten laden, dann irgendwie verarbeiten, | S: Sie wird in Unteraufgaben aufgeteilt, ersten Daten laden, dann irgendwie verarbeiten, | ||
- | P: Was ist genau der Unterschied zwischen | + | **P: Was ist genau der Unterschied zwischen |
- | S: Ja, aber ein FPGA verhält sich nach der programmierung | + | S: Ja, aber ein FPGA verhält sich nach der Programmierung |
- | P: Was entält | + | **P: Was enthält |
S: Die Inhalte der LUTs und die Konfiguration der Switching Matritzen. \\ | S: Die Inhalte der LUTs und die Konfiguration der Switching Matritzen. \\ | ||
- | P: Was ist der Vorteil von FPGAS? \\ | + | **P: Was ist der Vorteil von FPGAS?**\\ |
S: Sie verhalten sich als wäre die Funktion in Hardware implementiert. \\ | S: Sie verhalten sich als wäre die Funktion in Hardware implementiert. \\ | ||
- | P: Was bedeutet das genau? \\ | + | **P: Was bedeutet das genau?**\\ |
- | P: Ein CPU arbeitet Instruktionen sequenziell ab. Bei einem FPGA passiert die Berechnung innerhalb eines Cycles. \\ | + | S: Eine CPU arbeitet Instruktionen sequenziell ab. Bei einem FPGA passiert die Berechnung innerhalb eines Cycles.\\ |
- | + | ||
- | P: Was sind Coarse-Grain Reconfigurable Device(CGRD) und wofür braucht man inh? \\ | + | |
- | S: Die haben gröbere prozesselemente. Beim FPGA ist jeder LUT mit einer Switching-Matrix verbunden und große Funktionen werden auf viele LUTs verteilt. | + | |
- | Dadurch wird sehr viel Kommmunikation zwischen des PEs nötig. Für Berechnungen mit Integern oder Floats, würde die nötige Logik den ganzen FPGA belegen. | + | |
- | Bei CGRD hat man vollständige Rechen- oder Logikeinheiten, | + | |
- | P: Können sie solge Geräte nennen? \\ | + | |
- | S: Z.B. der ACM oder das Tightly Coupled Processing Array. \\ | + | |
- | P: Was würde man dennzum Implementieren von Neuronalen Netzen verwenden? \\ | + | |
- | S: Einen CGRD, man braucht mehere Level von Multipkliktionseinheiten. Dafür wäre z.B. der XPP sehr gut geeignet, der streamt Daten durch ein Netz von ALUs. \\ | + | |
+ | **P: Was sind Coarse-Grain Reconfigurable Device(CGRD) und wofür braucht man inh?**\\ | ||
+ | S: Die haben gröbere Prozesselemente. Beim FPGA ist jeder LUT mit einer Switching-Matrix verbunden und große Funktionen werden auf viele LUTs verteilt. | ||
+ | Dadurch wird sehr viel Kommunikation zwischen des PEs nötig. Für Berechnungen mit Integern oder Floats, würde die nötige Logik den ganzen FPGA belegen. | ||
+ | Bei CGRD hat man vollständige Rechen- oder Logikeinheiten, | ||
+ | **P: Können sie solche Geräte nennen?**\\ | ||
+ | S: Z.B. der Quicksilver ACM, der wird konfiguriert oder das Tightly Coupled Processing Array, das bekommt Instruktionen. \\ | ||
+ | **P: Was würde man zum Implementieren von Neuronalen Netzen verwenden? | ||
+ | S: Einen CGRD, man braucht mehrere Level von Multipklikationseinheiten. Dafür wäre z.B. der XPP sehr gut geeignet, der streamt Daten durch ein Netz von ALUs. \\ | ||
===== 2. Partitionierung, | ===== 2. Partitionierung, | ||
- | P: Was passiert nachdem man eine boolsche Funktion synthetisiert hat? \\ | + | **P: Was passiert, nachdem man eine boolsche Funktion synthetisiert hat? **\\ |
- | S: Eventuell passt die Funtion | + | S: Eventuell passt die Funktion |
- | P: Was gibt es für Arten von partitionierung? | + | **P: Was gibt es für Arten von partitionierung? |
S: Spatial und Temporal Partitioning. \\ | S: Spatial und Temporal Partitioning. \\ | ||
- | P: Gegeben ist folgende | + | **P: Gegeben ist folgende |
- | S: Es gibt Chortle, das optimiert die Anzahl der LUTs, also die Fläche. | + | |
- | P: Was hat man davon? \\ | + | |
- | S: Dann wird weniger Strom verbraucht. \\ | + | |
- | P: Nicht direkt Strom, sondern was? \\ | + | |
- | S: Energie? pro Cycle? \\ | + | |
- | P: Ja, z.b. OPS/Watt \\ | + | |
- | S: Flowmap, das optimiert das Delay/ | + | |
- | P: Wie? \\ | + | |
- | S: Die maximale Länge eines Pfades zwischen primärenn Inputs und Outputs wird minimiert. \\ | + | |
- | P: Hier ist ein Beispielgraph: | + | |
| | ||
/ \ | / \ | ||
Zeile 67: | Zeile 56: | ||
\ / | \ / | ||
Output: | Output: | ||
- | P: Wie hoch ist die Latenz bei diesem | + | S: Es gibt Chortle, das optimiert die Anzahl der LUTs, also die Fläche. |
+ | **P: Was hat man davon? | ||
+ | S: Dann wird weniger Strom verbraucht. \\ | ||
+ | **P: Nicht direkt Strom, sondern was?**\\ | ||
+ | S: Energie? pro Cycle? \\ | ||
+ | **P: Ja, z.B. OPS/ | ||
+ | |||
+ | **P: Was ist das Ziel von Flowmap? | ||
+ | S: Es optimiert das Delay/ | ||
+ | **P: Wie?**\\ | ||
+ | S: Die maximale Länge eines Pfades zwischen primären Inputs und Outputs wird minimiert. \\ | ||
+ | **P: Wie hoch ist die Latenz bei dem Beispiel?**\\ | ||
S: 3 Logic Gates. \\ | S: 3 Logic Gates. \\ | ||
- | P: Wie funktioniert Flowmap genau? \\ | + | **P: Wie funktioniert Flowmap genau?**\\ |
- | S: Ausgehen von den Inputs wird jeder Node ein Label zugewiesen, das aussagt, ob es mit seinen Vorgängern in ein LUT passt. | + | S: Ausgehen von den Inputs wird jeder Node ein Label zugewiesen, das aussagt, ob es mit seinen Vorgängern in ein LUT passt. |
Die primären Inputs bekommen das Label 0, dann beginnt man mit den Nodes darunter. | Die primären Inputs bekommen das Label 0, dann beginnt man mit den Nodes darunter. | ||
- | Man sucht nach einem Cut mit Node Cut Size <= K, indem man den Graph transformiert, | + | Man sucht nach einem Cut mit Node Cut Size <= K, indem man den Graph transformiert, |
- | P: Im ganzen Graph? \\ | + | **P: Im ganzen Graph?**\\ |
S: Nein, man betrachten nur die Vorgänger und deren Vorgänger usw. \\ | S: Nein, man betrachten nur die Vorgänger und deren Vorgänger usw. \\ | ||
- | P: Wie heißt das genau? \\ | + | **P: Wie heißt das genau?**\\ |
S: Cone, der geht vom der aktuellen Node bis zu den primären Inputs. \\ | S: Cone, der geht vom der aktuellen Node bis zu den primären Inputs. \\ | ||
- | P: Wie funktioniert das konkret | + | **P: Wie funktioniert das konkret |
- | S: <Cone malen, transformieren, Fehler | + | S: //Mal Graph von Cone für d, transformiert ihn, Fehler |
- | P: Sie können die Labels auch direkt an die Grafik machen. \\ | + | **P: Sie können die Labels auch direkt an die Grafik machen.**\\ |
- | P: Und dann? \\ | + | **P: Und dann?**\\ |
S: Dann kommt die Mapping Phase. Hier verwendte man die cuts aus der vorherigen Phase. Gab es einen geeigneten Cut, wird der Knoten mit den Nodes, die auf seiner Seite des Cuts waren auf ein LUT gemappt. | S: Dann kommt die Mapping Phase. Hier verwendte man die cuts aus der vorherigen Phase. Gab es einen geeigneten Cut, wird der Knoten mit den Nodes, die auf seiner Seite des Cuts waren auf ein LUT gemappt. | ||
- | Ansonsten kommt der Knoten alleine in einen LUT. | + | Ansonsten kommt der Knoten alleine in einen LUT.\\ |
- | P: Können | + | **P: Können |
- | ... | + | S: //Ordnet h einem LUT zu, g einem, f zusammen mit d einem, und e einem//\\ |
- | P: Sie fangen am Output Knoten an? \\ | + | **P: Sie fangen am Output Knoten an?**\\ |
S: Ja. \\ | S: Ja. \\ | ||
+ | **P: Wie viele LUTs braucht man also?**\\ | ||
+ | S: Vier. \\ | ||
===== 3. On-Line Communication ===== | ===== 3. On-Line Communication ===== | ||
- | P: Was ist das Problem bei partieller Rekonfiguration? | + | **P: Was ist das Problem bei partieller Rekonfiguration? |
S: Man weiß vorher nicht, wohinein Modul platziert werden wird und wo die Module liegen, mit denen es kommunizieren muss. \\ | S: Man weiß vorher nicht, wohinein Modul platziert werden wird und wo die Module liegen, mit denen es kommunizieren muss. \\ | ||
- | P: Was gibt es für Ansätze um das Problem zu Lösen? \\ | + | **P: Was gibt es für Ansätze um das Problem zu lösen? **\\ |
- | S: Man kann einen Bus verwenden, das ist ein statische Struktur, | + | S: Man kann einen Bus verwenden. Das ist ein statische Struktur, |
Alle Module wissen, wo der Bus liegt und können sich anschließen. | Alle Module wissen, wo der Bus liegt und können sich anschließen. | ||
- | P: Was gibt es noch für Alternativen? | + | **P: Was gibt es noch für Alternativen? |
S: Circuit switching. Bei der Rekonfiguration, | S: Circuit switching. Bei der Rekonfiguration, | ||
- | P: Geht das in der Praxis? \\ | + | **P: Geht das in der Praxis?**\\ |
- | S: Nein, das ist zu aufwändig | + | S: Nein, das ist zu aufwendig |
- | P: Gibt es einen Ansatz, der das trotzdem möglich macht? \\ | + | **P: Gibt es einen Ansatz, der das trotzdem möglich macht?**\\ |
S: Ja, man kann einen extra Switching Layer haben, über die Kommunikationspfade laufen, dass blockieren Module die Verbindungen nicht mehr. \\ | S: Ja, man kann einen extra Switching Layer haben, über die Kommunikationspfade laufen, dass blockieren Module die Verbindungen nicht mehr. \\ | ||
- | P: Und noch etwas anderes? \\ | + | **P: Und noch etwas anderes?**\\ |
S: Es gibt den Reconfigurable Multi Bus, der partielle 1-D Rekonfiguration erlaubt. \\ | S: Es gibt den Reconfigurable Multi Bus, der partielle 1-D Rekonfiguration erlaubt. \\ | ||
- | P: Hier ist ein Beispiel und eine Kostenfunktion. Was bedeutet die Formel? \\ | + | **P: Hier ist ein Beispiel und eine Kostenfunktion. Was bedeutet die Formel?**\\ |
cost = SUM over (i,c)elem E : |delta(i) - delta(j)| | cost = SUM over (i,c)elem E : |delta(i) - delta(j)| | ||
Slot: | S1 | S2 | S3 | S4 | S5 | S6 | | Slot: | S1 | S2 | S3 | S4 | S5 | S6 | | ||
Modul:| M1 | M2 | | M4 | | M3 | | Modul:| M1 | M2 | | M4 | | M3 | | ||
- | Kanten: 1->4, 2->3, 3->1, 3->2 | + | Kanten: 1-//4, 2-//3, 3-//1, 3-//2 |
S: Die Kosten sind die Summe der Segmentlängen zwischen zu verbindenden Modulen. \\ | S: Die Kosten sind die Summe der Segmentlängen zwischen zu verbindenden Modulen. \\ | ||
- | P: Wofür stehen i und j? \\ | + | **P: Wofür stehen i und j?**\\ |
S: Für die Indizes der Module, zwischen denen eine Kante existiert. \\ | S: Für die Indizes der Module, zwischen denen eine Kante existiert. \\ | ||
- | P: Wofür steht delta(i)? \\ | + | **P: Wofür steht delta(i)?**\\ |
S: Für den Slot des Moduls. \\ | S: Für den Slot des Moduls. \\ | ||
- | P: Wo würden sie die Module | + | **P: Wo würden sie die Module |
... | ... | ||
- | P: Was sind denn die Kosten der ersten und die kosten | + | **P: Was sind denn die Kosten der ersten und der optimierten Platzierungen? |
S: 16 und 4. \\ | S: 16 und 4. \\ | ||
- | P: Warum macht man solch eine Optimierung? | + | **P: Warum macht man solch eine Optimierung? |
S: Damit man einen kürzeren Pfad und somit ein geringeres Delay hat. \\ | S: Damit man einen kürzeren Pfad und somit ein geringeres Delay hat. \\ | ||
- | P: Die Länge der Verbindung macht in dem Fall nicht viel aus, was ist entscheidend? | + | **P: Die Länge der Verbindung macht in dem Fall nicht viel aus, was ist entscheidend? |
S: Bei der ersten Platzierung werden bis zu 4 Segmente gleichzeitig verwendet, bei der optimierten nur 2. \\ | S: Bei der ersten Platzierung werden bis zu 4 Segmente gleichzeitig verwendet, bei der optimierten nur 2. \\ | ||
- | P: Ist der Bus mit auf der FPGA Fläche oder extern? \\ | + | **P: Ist der Bus mit auf der FPGA Fläche oder extern?**\\ |
S: Er ist auf der FPGA Fläche und alle Module müssen die Buslogik mit enthalten. \\ | S: Er ist auf der FPGA Fläche und alle Module müssen die Buslogik mit enthalten. \\ | ||
- | P: Und wenn man 2-D rekonfigurieren kann? \\ | + | **P: Und wenn man 2-D rekonfigurieren kann?**\\ |
- | S: Dann kann man auch den Bus fest als Block in einem Bereich lassen und nur die umliegenden | + | S: Dann kann man auch den Bus fest als Block in einem Bereich lassen und nur die umliegenden |
- | P: Was gibt es noch für eine Form der On-Line Kommunikation? | + | **P: Was gibt es noch für eine Form der On-Line Kommunikation? |
S: Networks on Chip mit paketbasierter Kommunikation. Hier kümmern sich die Router zur Laufzeit um den Austausch von Daten. \\ | S: Networks on Chip mit paketbasierter Kommunikation. Hier kümmern sich die Router zur Laufzeit um den Austausch von Daten. \\ | ||
- | |||
===== 4. Anwendungen, | ===== 4. Anwendungen, | ||
- | P: Was gibt es für Arten von Rekonfiguration? | + | **P: Was gibt es für Arten von Rekonfiguration? |
S: Statische und dynamische. Statisch bedeutet, dass selten rekonfiguriert wird. \\ | S: Statische und dynamische. Statisch bedeutet, dass selten rekonfiguriert wird. \\ | ||
- | P: Welche Anwendungen fallen in diese Kategorie? \\ | + | **P: Welche Anwendungen fallen in diese Kategorie?**\\ |
S: Rapid Prototyping, | S: Rapid Prototyping, | ||
- | P: Was gibt es noch, wenn z.B. ein neues Funkprotokoll | + | **P: Was gibt es noch, wenn z.B. ein neues Funkprotokoll |
S: Man kann nachträglich noch Updates und Upgrades aufspielen. \\ | S: Man kann nachträglich noch Updates und Upgrades aufspielen. \\ | ||
- | P: Was sind Anwendungen mit häufiger Rekonfiguration? | + | **P: Was sind Anwendungen mit häufiger Rekonfiguration? |
- | S: Fault Tolerance, sodass ein gerät | + | S: Fault Tolerance, sodass ein Gerät |
- | S: Oder mit partieller | + | Oder mit partieller |
- | P: Man kann FPGAs auch für Pattern Matching verwenden. Hier ist ein Beispiel Input und Output: \\ | + | **P: Man kann FPGAs auch für Pattern Matching verwenden. Hier ist ein Beispiel Input und Output:**\\ |
Input: KTFJKFFAUFAU | Input: KTFJKFFAUFAU | ||
Output: | Output: | ||
S: Das System sucht nach der Zeichenfolge " | S: Das System sucht nach der Zeichenfolge " | ||
- | P: Wie kann man das implementieren? | + | **P: Wie kann man das implementieren? |
S: Mit einem Sliding Window und einer Finite State Machine. \\ | S: Mit einem Sliding Window und einer Finite State Machine. \\ | ||
- | P: Können | + | **P: Können |
- | S: <Zeichnet mit Hilfe FSm mit 4 States> \\ | + | S: //Zeichnet mit Hilfe FSm mit 4 States// \\ |
- | P: Wie heißt so eine FSM, deren Output nur nur vom State abhängig ist? \\ | + | **P: Wie heißt so eine FSM, deren Output nur nur vom State abhängig ist?**\\ |
S: Deterministischer Endlicher Automat. \\ | S: Deterministischer Endlicher Automat. \\ | ||
- | P: Das ist es auch, aber der richtige | + | **P: Das ist es auch, aber der richtige |
- | P: Wie kann man eine FSm auf dem FPG implementieren? | + | **P: Wie kann man eine FSm auf dem FPG implementieren? |
S: Man kann mit Flip-Flops die States kodieren. \\ | S: Man kann mit Flip-Flops die States kodieren. \\ | ||
- | P: Wie viele bräuchte man dafür? \\ | + | **P: Wie viele bräuchte man dafür?**\\ |
- | S: 2 (schien falsch zu sein, wahrscheinlich weil Output auch noch berechnet werden muss) \\ | + | S: 2 (Das schien falsch zu sein) \\ |
- | P: Ja, wahrscheinlich wenn optimiert wird. \\ | + | **P: Ja, wahrscheinlich wenn optimiert wird.**\\ |
- | P: Was gibt es noch für eine andere Art der Implementierung? | + | **P: Was gibt es noch für eine andere Art der Implementierung? |
S: One-Hot? \\ | S: One-Hot? \\ | ||
- | P: Wie funktioniert die? Können sie das Schaltungsdiagram | + | **P: Wie funktioniert die? Können sie das Schaltungsdiagramm |
- | S: < | + | S: // |
- | P: Das ist falsch, der input für den nächsten Flip-Flop hängt nicht nur vom vorherigen Flip-Flop ab. \\ | + | **P: Das ist falsch, der Input für den nächsten Flip-Flop hängt nicht nur vom vorherigen Flip-Flop ab.**\\ |
- | S: <zeichnet Verundung von vorherigem Flip-Flop und Charakter-Komparator ein> \\ | + | S: //zeichnet Verundung von vorherigem Flip-Flop und Charakter-Komparator ein// \\ |
- | P: Was muss man verändern, | + | **P: Was muss man verändern, |
- | S: Für Wörter der gleichen Länge nur die Komparatoren. Für Längere | + | S: Für Wörter der gleichen Länge nur die Komparatoren. Für längere |
- | Fazit: Ich hatte erwartet, dass die Prüfung sich an der Struktur der Übungen orientiert und viele Anwendungsaufgaben enthält. Insgesamt | + | **Fazit:** Ich hatte erwartet, dass die Prüfung sich an der Struktur der Übungen orientiert und viele Anwendungsaufgaben enthält. Insgesamt |
- | Es ist ratsam, nicht nur die Aufgaben aus den Übungen durchzugehen, | + | Es ist hilfreich, nicht nur die Aufgaben aus den Übungen durchzugehen, |