Forum: Digitale Signalverarbeitung / DSP / Machine Learning Blackfin & SDRAM-Banks?


von Joern (Gast)


Lesenswert?

Moin,

in einem Projekt verwende ich einen Blackfin mit SDRAM. Leider 
enttaeuscht bisher die Geschwindigkeit mit der dieser den Algorithmus 
ausfuehrt und nun bin ich auf der Such nach der Ursache. Etwas 
beschleunigt hat es den Algorithmus bereits, dass er nun aus dem 
L1-Code-Speicher laeuft und alle wichtigen Variablen im L1-Data-Speicher 
liegen. Der Cache ist auch aktiviert, schafft aber wenig weg, weil wenig 
temporaere und raeumliche Koherenz beim Speicherzugriff vorliegt.
Und hier scheint auch das Problem zu liegen, in den vielen 
Speicherzugriffen.
Wie kann ich da optimieren? Es wird auf zwei lange zusammenhaengende 
Strings von char-Typen zugegriffen. Kann ich die in verschiedene Banks 
im SDRAM legen um den Zugriff zu beschleunigen, da dann nicht immer eine 
neue Row-Adresse geladen werden muss. Wird dies vom Blackfin 
unterstuetzt? Und wenn ja, wo liegen dann die Adressen? Ich verwende 
einen MT48LC16M16 mit A18 und A19 als BA0 und BA1.


Gruss, Joern

von Martin S. (strubi)


Lesenswert?

Hi Joern,

ich habe nur mal vor einer Weile ein Bandbreitenproblem mit dem PPI 
gehabt, da half es, die Verarbeitungs- und Einlese-Puffer in 
unterschiedlichen Banken abzulegen. Allerdings hatte das mit DMA bursts 
und Refresh-Zeiten zu tun - und es waren zwei Chips. Weiss gerade nicht, 
ob der Blackfin schlau genug ist, die Row-Zugriffe zusammenzufassen - 
gehe aber mal davon aus.
Ich haette sonst mal versucht, die Daten irgendwie 'interleaved' im 
Speicher abzulegen. Ich nehme mal an, dass Du die irgendwoher gefuettert 
bekommst, also kannst Du ev. die DMA-Stroeme so programmieren, dass 
Datenstroeme 'A' und 'B' auf geraden/ungeraden Adressen abgelegt werden 
(X_MODIFY ist unser Freund :-) )

Gruss,
- Strubi

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
Noch kein Account? Hier anmelden.