www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik DDR2 lesen/schreiben - Schätzung


Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich tue mich gerade etwas schwer, mein Problem und dessen Lösung richtig 
einzuschätzen.

Ich nutze einen PowerPC und hab dort einen FPGA mit 32bit und zwei DDR2 
Bausteine mit zusammen 32bit angebunden. Nun kommen vom FPGA 32bit Daten 
und die sollen sortiert in den RAM gelegt werden.
Die Daten vom FPGA kommen kontinuierlich und nicht auf Abruf. Das kann 
ich auch nicht ändern. Ich muss nun dafür sorgen, dass die Daten 
schneller abgeholt und umsortiert werden, als sie im FPGA auflaufen.

Dabei geht es um 2048 8bit Werte, die ich in 4er-Blöcken auf den 32bit 
Bus lege. Ein DMA Controller holt die Daten vom FPGA ab und schreibt sie 
in den RAM. Von dort muss ich die Daten lesen, umsortieren und wieder 
schreiben.

Um genau diese Lese- und Schreibzugriffe geht es mir. bei 2048 Werten zu 
je 8 bit in 32bit verarbeitung, habe ich ja 512 Lese- und 512 
Schreibzugriffe auf den RAM. Ich muss auch nur ein komplettes 32bit Wort 
umspeichern, also nicht noch die 8bit Werte innerhalb des 32bit Wortes.

Die 2048 Bytes kommen in ca. 32us zum FPGA.
Auslesen kann ich diese 2048 Byte in ca. 19,2us.
Mir bleiben also 12,8us zum sortieren bzw. umspeichern.

Nun geht es darum, ob ich in diesen 12,8us die 512 Lese- und 512 
Schreiboperationen überhaupt durchführen kann.

Das DDR2 Interface hat 133MHz.
Verbaut sind zwei Micron MT47H16M16 im 3er Speedstep.
http://www.google.de/url?sa=t&source=web&cd=1&ved=...

Ist das realistisch, oder kann ich das von vorn herein vergessen?

Vielen Dank!
Andi

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie stellst Du Dir das Sortieren mit nur einem Lesezugriff pro Wert 
vor?

Welchen Algorithmus möchtest Du da anwenden?

Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich sortiere ja nicht wirklich...
Ich lese einen 32bit Wert und schreibe ihn an anderer Stelle wieder in 
den RAM. Durch das Umspeichern sortiere ich die Daten dann gleich.

Deswegen habe ich die beschriebenen 512 Lese- und 512 schreibzugriffe.

Vielen Dank!
Andi

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Ich lese einen 32bit Wert und schreibe ihn an anderer Stelle wieder in
> den RAM. Durch das Umspeichern sortiere ich die Daten dann gleich.

Wie sieht der Algorithmus aus? Woher weißt Du, an welcher Stelle ein 
Wert zu speichern ist? Ist das nur von der Quelladresse abhängig, oder 
ist es vom Wert selbst abhängig? Wenn es vom Wert abhängig ist, wer 
garantiert, daß in einem Datenblock Werte nicht doppelt vorkommen?

Autor: Andreas B. (loopy83)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die DMA füllt den Speicher und damit weiß ich ja, wo die Daten zu finden 
sind. Die Lese- und Schreibadresse lege ich selber fest und die sind 
unanhängig vom Wert selber.

Es geht um Bilddaten, die kontinuierlich geschrieben und gelesen werden 
können.

Hat nicht die CAS und die ganzen Latenzen etwas damit zu tun?
Geben die nicht an, wieviele Takte für einen Schreibzyklus o.ä. benötigt 
werden?

Danke!

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andreas B. schrieb:
> Die Lese- und Schreibadresse lege ich selber fest und die sind
> unanhängig vom Wert selber.

Gut, dann hat es also gar nichts mit sortieren im eigentlichen Sinne 
zu tun.

Andreas B. schrieb:
> Hat nicht die CAS und die ganzen Latenzen etwas damit zu tun?
> Geben die nicht an, wieviele Takte für einen Schreibzyklus o.ä. benötigt
> werden?

Gewiss, das tun sie. Wobei das DDR2-Timing nichttrivial ist.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.