Mit asynchronem Zugriff meinte ich Controller, die frei entscheiden, wann sie Daten zum RAM senden bzw vom RAM holen wollen. Es könnte also zufällig passiern, daß gleichzeitig von verschiedenen Controllern auf die die Steuer/Adressleitungen des RAMs bzw der Schieberegister oder D-Latches? zugegriffen wird.

Um das zu verhindern dachte ich daran, den Controllern ein Zeitfenster zuzuordnen, in dem sie RAM Operationen durchführen dürfen. Aus Performancegründen verworfen, da eine ungenutzte reservierte Zeit einem anderen Controller verloren geht, der sie vielleicht gerade benötigt. Einen Arbiter, der den Buszugriff regelt in den Controllern selbst zu implementieren. Oder einen eigenen µC oder eine HW als Arbiter zu installieren - kleiner µC wie ATtiny24 meine favorisierte Lösung zur Zeit.

In etwa die"c) Independent request" Methode von dieser Seite
Über Datentransferrate habe ich noch gar nicht nachgedacht. Ein Mega328 kann mit 20Mhz getaktet werden. Ein ein Cycle Maschinenbefehl wird dann in 1/20MHz=50ns ausgeführt. zB ein OUT PORTB,r16. Die Daten müssen aber erst nach r16 gebracht werden. Ein zweiter Befehl ist da notwendig und noch weitere ...

Ich kann gar nicht abschätzen, wie schnell ein compilierter Arduino sketch ist. Ich nutze Bascom und da wo es schnell gehen soll oder es zeitkritisch wird mache ich Assembler Routinen.

Bin gespannt, wie es weitergeht und was das mal werden soll. Viel Erfolg!

Gruß
Searcher