[HSCD] Nebenbedingungen

Entwurfsraumexploration

Disclaimer: Dieser Thread wurde aus dem alten Forum importiert. Daher werden eventuell nicht alle Formatierungen richtig angezeigt. Der ursprüngliche Thread beginnt im zweiten Post dieses Threads.

[HSCD] Nebenbedingungen
Hallo zusammen,

mir erschließt sich bei HSCD die Sache mit den Nebenbedingungen bei der Entwurfsraumexploration nicht so ganz, die Folien und Übungen geben da auch nur begrenzt Rückschluss.

Aufgabenstellung (A3 Klausur Oktober 2009):
Datenflußgraph mit 5 tasks
t1 t2
| /
t3
| t4
t5 /

Architekturgraph mit 3 Ressourcen

a) Bindungskanten einzeichnen => völlig klar
b) Nebenbedingungen die fordern dass jeder Task genau einmal entsprechend seiner Bindungen aktiviert wird => wird ja auch in der Übung beschrieben mit der binären Variable x_i,r, ist mir auch klar.
c) Nebenbedingung für jede Ressource die fordert dass sie stets aktiviert ist wenn ein Task auf sie gebunden wurde
=> Da fehlt mir ein passender Ansatz
d) Nebenbedingung für t3 die sicherstellt dass die Kommunikation gemäß Datenflussgraph möglich ist
=> Bin ich mir auch nicht so sicher, ich würde mal sagen dass auf jeden Fall die Vorgängertasks irgendwo gemappt sein müssen. Aber müssen die jetzt wegen Datenabhängigkeiten auf der selben Ressource sein?

Der Rest ist dann wieder klar.

Wäre super wenn mir da jemand auf die Sprünge helfen könnte, kann ja eigentlich nicht so schwer sein. Vielen Dank schonmal!

Gruß
Jochen

fragestunde
hi! In der Fragestunde wusste der Übungsleiter die Lösung zu der c auch nicht (3c von 2008, was die gleiche Frage ist)…
d musst du die bedingungen aufstellen, dass 3 zum beispiel nicht auf der FPGA sein darf, wenn 5 auf der dsp ist.
Alles andere ist ja auch 1 zu 1 die Übung.
Denke also nicht, dass sowas wie c dran kommt, wenn er es uns in der Fragestunde nicht beantworten konnte.
Gruß


Erstmal danke für die Antwort. Wenn sich das mit der c) erledigt umso besser.

So in etwa hab ich mir das schon gedacht, aber mir erschließen sich die genauen Bedingungen grade noch nicht. Warum sollte es nicht gehen wenn 3 auf FPGA und 5 auf DSP ist? Die können doch kommunizieren. Was mir logischer erschiene wäre wenn 3 nicht auf CPU sein dürfte wenn 5 auf DSP ist weil die ja nicht direkt kommunizieren können. Dann würde das alles Sinn machen meiner Meinung nach.


Ich habe die c) so verstanden, dass es pro Ressource eine zusätliche Variable gibt, die anzeigt ob diese benutzt wird, also dann 1 wird, sobald ein Task auf diese gebunden wird. Dies entspräche dann ja einem logischen OR.
In Nebenbedingungen ausgedrückt hab ich das dann zb für die CPU folgendermaßen gemacht:

z_c wird 1 sobald ein Task darauf gebunden wird:
z_c >= x_1c
z_c >= x_3c

z_c wird maximal 1:
z_c <= 1

z_c bleibt 0, falls kein Task darauf gebunden wird:
z_c <= x_1c + x_3c

Die Zusatzfrage, ob das die Allokation leerer Ressourcen verhindert, würde ich in dem Fall mit ja beantworten, obwohl die nächste Frage, was hierfür notwendig sei, eher darauf schließen lässt, das die Antwort nein ist.
Vielleicht zielt diese Frage ja auf die letzte Bedingung ab…

Bei der d) habe ich die Bedingungen so hergeleitet:
x_3c*(x_1c+x_1f)x_2fx_5f + x_3c*(x_1c+x_1f)(x_2f+x_2d)(x_5f+x_5d) = x_3cx_2fx_5f + x_3c = 1
und dann das x_3cx_2fx_5f noch linearisiert:
z_3 = x_3cx_2fx_5f
→ z_3+x_3c = 1
z_3 <= x_3c
z_3 <= x_2f
z_3 <= x_5f
z_3 >= x_3c+x_2f+x_5f-2


so meinte ich das auch mit cpu und dsp :wink: