Hallo, gibt es eigentlich auch Soft-FPGAs, wenn es doch schon Soft-CPUs gibt? Diese Art von FPGAs werden dann natürlich nicht noch einmal im FPGA selbst nachgebildet, sondern zum Großteil die Architektur des real vorhanden 1:1 benutzt. Was ist nun der Sinn dieser Aktion? Ganz einfach die dynamische Rekonfiguration. Normalerweise läd man immer ein Design vollständig in ein FPGA, einen neuen Prozess nachladen, Speicher allozieren und den Prozess starten ist nicht. Durch diese virtuellen FPGAs wird das nun vereinfacht. Man läd diese wieder mit vollständigen Designs, doch nun hat man mehr Spielraum, man kann viele verschieden kleine Designs kombinieren, zur Laufzeit nachladen und entladen. Man denke nur an die enorm wichtigen Anwendungen, z. B. in der Playstation 4. Spielelemente können dann als FPGA-Design auf so einem Soft-FPGA laufen, während der reale FPGA das Spiel (und die Soft-FPGAs) beinhaltet. Je nach Spielsituation treten neue Gegner, Gegenstände, ... auf, die alle unterschiedliche Verhalten haben, diese werden auf die Soft-FPGAs konfiguriert - und wenn diese Elemente verschwinden, wieder freigegeben. Wird so etwas schon gemacht? Gibt es solche FPGAs schon als Softcore?
Macht das nicht jeder Emulator SO ? normalerweise verlierstr du so enorm viel Leistung ! Das klingt wie eine "multicore FPGA". Du willst also die Software ned an die Hardware anpassen sondern die Hardware an die Software. Schon mal an so etwas wie ein multi FPGA Board gedacht ? MFG Patrick
Du gehst da denke ich mit falschen Vorstellungen ran. Entweder der FPGA unterstützt die dynamische Rekonfiguration - dann ist das Problem bereits gelöst. Oder er unterstützt sie nicht, und du "emulierst" einen FPGA durch 1:1 Abbildung auf den Vorhandenen - dann ist er nicht schnell rekonfigurierbar. Oder du emulierst einen schnell rekonfigurierbaren - dann ist die Emulationsschicht weit komplizierter und ineffizienter als 1:1 Abbildung.
> Gibt es solche FPGAs schon als Softcore? Echt pervers ;-) Nein, FPGAs gibts nur als Hardcore. BTW: > Datum: 04.01.2009 02:00 ... Playstation ... Wie war die Party?
Naja das erinnert mich an das Schwarm-Konzept. Ein einzelne Einheit ist langsam und Leistungsschwach. Aber viele die miteinander kommunizieren können aber trotzdem jeder für sich für was anderes spezialisiert ist das beste. Also du hast mehrere FPGAs auf einem Board die miteinander verbunden sind und einen gemeinsamen Oszilator haben und eine große FPGA als Gateway nach außen und Grundsystem. Am Anfang läuft nur die Gateway FPGA mit einem Grundsystem in der zwischenzeit werden die anderen konfiguriert usw und übernehmen dann die Rechenaufgaben. Ist nur ein Konzept wie man es machen könnte das man FPGAs im laufenden Betrieb neu KOnfigurieren kann. Außerdem können die einzelnen wieder eine virtuelle große bilden. MFG Patrick
> Entweder der FPGA unterstützt die dynamische Rekonfiguration Das ist natürlich Vorraussetzung, das ist klar. > dann ist das Problem bereits gelöst. eben nicht ganz! Mein Problem ist, dass man bei dynamischer Rekonfiguration meistens nur ein Design pro FPGA verwenden kann. Man kann also nicht, wie bei einem Multitaskingbetriebssystem, einfach noch einen Prozess starten und wieder beenden. Also hier dynamisch Logik-Resourcen allozieren, so wie man unter Linux mit malloc Speicher reserviert. Oder geht das heute schon? > Das klingt wie eine "multicore FPGA". Ja so in etwa meine ich das. Ich möchte einen großen FPGA, der sich schnell dynamisch selbst rekonfigurieren kann sozusagen partitionieren. Denkt z. B. an einen Computer mit den Kartenslots, nur das hier diese Steckplätze virtuell vorhanden sind und man virtuelle Karten dort reinsteckt und rauszieht. (natürlich "hotplugable") Natürlich könnte man auch 100te von FPGAs auf eine Platine löten, aber ein großer ist meistens schneller, leichter, billiger und flexibler.
> Mein Problem ist, dass man bei dynamischer Rekonfiguration meistens nur > ein Design pro FPGA verwenden kann. Man kann also nicht, wie bei einem > Multitaskingbetriebssystem, einfach noch einen Prozess starten und > wieder beenden. Also hier dynamisch Logik-Resourcen allozieren, so wie > man unter Linux mit malloc Speicher reserviert. Erstens gilt auch dafür meine Argumentation: Entweder die FPGAs können es schon, dann brauchst du nichts mehr dazubauen. Oder sie können es nicht, dann kannst du die "Logik-Prozesse" nicht 1:1 auf die vorhandene Architektur abbilden, sondern musst herbe Verluste in kauf nehmen. Um mal ein Beispiel zu nehmen: Ein FPGA, der nur ein Design laden kann, der muss z.B. jede LUT in diesem Design enthalten haben. Er kann nicht später diese LUT umprogrammieren, ohne das ganze Design neu zu laden. Also kann der simulierte FPGA, der ja beim Laden eines "Prozesses" LUTs neu vergeben muss, die simulierten LUTs nicht auf echte LUTs abbilden. Er könnte z.B. distributed RAM nehmen, von dem weitaus weniger da ist. Noch schlimmer wird es bei der Verdrahtung: Wenn der echte FPGA die Verdrahtung nicht teilersetzen kann, dann kann die Verdrahtung des simulierten FPGA - die sich ja zur Laufzeit ändert - nicht auf die echte Verdrahtung abgebildet werden. Stattdessen müssen Logikressourcen her. > Oder geht das heute schon? Zweitens: Ja, soweit ich weiß geht das heute schon, mit einer gewissen Granularität.
Also, ich habe mir das hier angeschaut: http://www.altera.com/literature/wp/wp-01055-fpga-run-time-reconfiguration.pdf Und bei Seite 4 f. bin ich mir nicht ganz sicher, ob ich das richtig verstanden habe. Also einmal steht dass nicht der FPGA rekonfiguriert wird, sondern gleich die gesamte Anwendung implementiert wird. Weiter steht da, dass über den Steuerpfad auch eine Rekonfiguration möglich sei und über die "streaming data switch fabric" sei es möglich diese Funktionen zu verdrahten (also die Verbindung mit den anderen herstellen). Das klingt irgendwie widersprüchlich - oder soll "the whole application is implemented", dass auch Platz-Halter-Funktionen implementiert werden, die dann wie ein kleiner FPGA rekonfiguriert werden können?
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.