FPGA vs CPU-Programm
-
So, ich hoffe ich hab das richtig platziert:
Wir starten demnächst eine Studienarbeit, welche sich mit einem Vergleich zwischen einem FPGA und einer CPU beschäftigt.
Es sollen schlichtweg Zeiten verglichen werden, die für die Abarbeitung bestimmter mathematischer Algorithmen gedacht sind.
Welche genau müssen wir uns noch überlegen, aber vllt. eine Primfaktorzerlegung. (vllt. auch noch Ideen?)
Wird dann alles mit Matlab geschrieben und mit dem HDL coder und verifier gemanaged bzw. auch mit dem normalen Coder auf C runtergeschrieben, und modifiziert.
Nun, zum vergleich brauchen wir natürlich selbigen algorhitmus auch für's normale BS. Wir werden vorraussichtlich Windows verwenden und die Situation wäre natürlich, dass man die CPU dann auch voll auslasten muss, und das BS so gut wie keine Bremse darstellt. Da das bei Windows so nicht ohne weiteres möglich ist, frage ich mich, welche Möglichkeit man dazu hat.
Soweit ich weiss, gibt es so Methoden wie SetPriorityClass, aber schätzungsweise werden die halt die Priotität hochschaufeln, aber der Scheduler wird (da windows ähnlich RR ist) das so ja nicht einfach echtzeitkritisch umsetzen, bei linux wäre das problem schätzungsweise nicht anders, vor allem nicht nach dem neuen completely-fair scheduler...
Gibt es da vllt. eine Möglichkeit?
Oder gar so eine Anwendung vor dem BS-Start einzubauen, ähnlich wie memtest86+?
In dem Bereich bin ich leider nicht so fit.
An software is Altera Quartus, Visual Studio (die studenten bekommen ja immer das neueste kostenlos harar) Matlab, Photoshop (der musste sein) usw. vorhanden.
Kenntnis in: C, C++, Matlab, VHDL.Und falls es interessiert, das FPGA ist ein Altera Cyclone GX IV
Ich danke schonmal
-
Ohne jetzt auf deinen ganzen Studentenkram eingehen zu wollen....Du musst, wie du schon vermutet hast, dich vor dem OS einhängen. Ich rede jetzt nur von Windows. Von Lüüünix habe ich keinen Plan...
Lösungsvorschlag: Lern wie man einen Treiber schreibt und häng dich hier rein:http://technet.microsoft.com/en-us/library/cc963230.aspx
http://technet.microsoft.com/de-de/sysinternals/bb897447.aspx
http://www.codeproject.com/Articles/36344/Native-Thread-Injection-Into-the-Session-Manager-S
Sollte eigentlich nicht so schwer sein. Solltest du nicht weiter wissen dann lern ein bisschen Assembler, installiere dir O&O Defrag, aktiviere die Boot Defragmentierung und such dann nach der Exe die in dem Registry Key hängt. oodbs.exe oder so sollte das sein. Diese knallst du in den IDA Pro Disassembler und sieh nach was die da so treiben. Viel Spaß;-)
-
Hier noch ergänzend
http://www.c-plusplus.net/forum/151233-full
http://stackoverflow.com/questions/9232320/window7-run-task-at-boot-time-and-wait-for-its-completion