Hallo zusammen, Der Datenaustausch in einer 1:1 Producer-Consumer Beziehung kann durch ein einfaches Protokoll oder ein FIFO erfolgen. Was ist aber ein guter Ansatz für eine N:1 (oder auch 1:N, M:N) Beziehung? Wie wären folgende Ansätze: Protokoll: Der Consumer kommuniziert immer nur mit einem Producer, die anderen werden z.B. per ENABLE-Signal bzgl. Kommunikation deaktiviert. FIFO: Jedem Producer wird ein FIFO zugeordnet. Der Consumer arbeitet reihum die FIFOs ab. Und wie würde ich bei einer M:N-Beziehung vorgehen? Gruss und Danke, Jörg
Mehrdimensionaler Philosphenprozess nach Dijkstra mit zwei Semaphorschichten: Eine für die Readergruppe eine für die Writergruppe. Läuft in FPGAs faktisch auf n Fifos mit n Eingangsdekodern und einem n zu m Multiplexer auf m Ausgangsfifos hinaus. Anders, als in reinen SW-Prozessen, kann das tatsächlich paralle läufen und man kann bei sollsynchronem Betrieb eine Semaphorschicht unter den Tisch fallenlassen.
> Und wie würde ich bei einer M:N-Beziehung vorgehen?
Ich würde eine M:W Beziehung (auf neudeutsch M:F) eingehen, und nach
entsprechender Augabenverteilung den Counterpart für zuständig erklären
;-)
@ Jörg (Gast)
WAS willst du fragen?
Gibt es dafür eine deutsche oder wenigstens englische Erklärung?
Wird hier etwas Einfaches einfach umständlich formuliert?
@Ingenieur (Gast), die Idee mit einer zweischichtigen FIFO-Architektur ist ja sehr interessant: So hat jeweils der Producer und der Consumer nur die Sicht auf jeweils EINEN anderen (virtuellen) Partner und die multidimensionale Beziehung bleibt für beide Seiten vollständig transparent. Das einzige Problem das noch bleibt ist der M:N-Mux zwischen beiden FIFO-Ebenen (würde ich aber eher Dispatcher nennen). Das werde ich hoffentlich aber selbst hinbekommen. Gruss und Danke, Jörg
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.