Hi,
ist es möglich mit soetwas hier:
https://www.xilinx.com/products/boards-and-kits/1-2ajpg7.html
ein DDR Modul zu bauen?
Ich würde gerne mittels des FPGA z.B. die Zugriffe des Host-PC's auf dem
Speicher analysieren. Dazu brauche würde ich gerne einen FPGA nehmen der
in einen DIMM Slot passt und vom Host system als ganz normaler Speicher
genutzt werden kann (Es muss nicht performant sein).
Gibt es dazu vielleicht schon einen IP Core?
Vielen Dank schonmal für eure Antworten.
Schöne Grüße,
Gattler
gattler schrieb:> ist es möglich mit soetwas hier:> https://www.xilinx.com/products/boards-and-kits/1-2ajpg7.html>> ein DDR Modul zu bauen?
Das Pinout des eines Speichermoduls und dieses FPGA-Moduls sind
höchstwahrscheinlich nicht gleich, also wäre ein eigenes Board fällig.
> Ich würde gerne mittels des FPGA z.B. die Zugriffe des Host-PC's auf dem> Speicher analysieren. Dazu brauche würde ich gerne einen FPGA nehmen der> in einen DIMM Slot passt und vom Host system als ganz normaler Speicher> genutzt werden kann (Es muss nicht performant sein).
Naja, performant müsste es insofern schon sein, dass Dein FPGA-System
das vom Host-PC erwartete Timing erreicht.
> Gibt es dazu vielleicht schon einen IP Core?
Ich kann mir jetzt aus dem Stegreif keinen wirklich sinnvollen
Einsatzzweck vorstellen, daher dürfte es da eher mau aussehen.
Was willst Du denn genau analysieren?
- Wie die Zugriffe aussehen? --> Das steht im Datenblatt des
RAM-Bausteins.
- Adressen und Daten mitloggen? --> Wozu? Das wäre im Debugger auf dem
Host-PC einfacher, zudem würde der Dir die Adressen schon "lesbar"
aufbereiten.
- ...?
mh schrieb:> Das Pinout des eines Speichermoduls und dieses FPGA-Moduls sind> höchstwahrscheinlich nicht gleich,
Die können nicht gleich sein, weil das FPGA sonst keine Funktion hätte
:-)
Diese Module kommen von Enclustra und die Nutzung des SO DIMM als Sockel
ist willkürlich, hat mit dem DDR nichts zu tun.
Wenn das ein Analyzer werden soll, muss man schwer nachdenken:
Die FPGAs können bei Weitem nicht die Bandbreite eines Modules
verarbeiten, von daher könnte ein einfaches System weder die Menge noch
die Gewschwindigkeit eines echten DDR emulieren. Die Breite und Tiefe
liessen sich gebenenfalls über Time Multiplex erreichen. Ich kann mir
vorstellen, dass die Mainboardhersteller solche Emulatoren haben.
Die Daten müssen irgendwie raus. Daher muss man einen Kanal oder einen
Speicherbereich reservieren, um das, was man mit dem Modul machen will,
zu parametrieren und zu analysieren. Oder man braucht eine weitere
Anschlussmöglichkeit über die Luft hinweg ohne die Platine.
Besser wäre wohl ein Stecksockel, der nur Leitungen hat und an dem ein
Analyzer dranhängt. Liefe auf einen echten LA hinaus. Parallel DDR
beschreiben, geht dann halt nicht.
gattler schrieb:> Ich würde gerne mittels des FPGA z.B. die Zugriffe des Host-PC's auf dem> Speicher analysieren.
Ich hab sowas mal als Uni-Projekt gebastelt ... Da hatte ich einen
SDRAM-Kommando-Dekoder in VHDL implementiert. Der Kommando-Dekoder hat
mitgezählt, auf welche Speicheradressen zugegriffen wird. Die Platine
mit FPGA wurde auf ein SDRAM gesetzt und an die Leitungen des
Speichermoduls angeschlossen.
Kerneltreiber hatte dann ein anderer geschrieben.
Lief mit 100MHz problemlos (unglaublich, aber wahr).
Bei DDR stelle ich mir das aber schwieriger vor.
Hier noch ein Video: https://www.youtube.com/watch?v=_bvcvUe8xXc
Man konnte da auch reinzoomen bis auf ich glaube 4k Auflösung.
Mampf F. schrieb:> Bei DDR stelle ich mir das aber schwieriger vor.
Ja, das DDR-Timing besonders bei DDR4 mit aktuellen Raten könnte ein
klein wenig anspruchsvoller werden:-)
Jürgen S. schrieb:> Mampf F. schrieb:>> Bei DDR stelle ich mir das aber schwieriger vor.> Ja, das DDR-Timing besonders bei DDR4 mit aktuellen Raten könnte ein> klein wenig anspruchsvoller werden:-)
Es gab da bei Qimonda mal eine Doktorarbeit, wo es um Analyse von DDR
ging. Soweit ich mich erinnern kann, waren das etliche Rechner, die
verkabelt waren und Gigabytes an Daten mit einer kranken Datenrate
abspeichern mussten :)
Falls Georg mitliest, kann er sicher mehr dazu sagen xD
Vielen Dank für die Antworten.
Es scheint also nicht komplett unmöglich zu sein :). Es muss ja nicht
gleich DDR sein.
Das hier habe ich gerade auch noch gefunden:
https://www.enterpoint.co.uk/products/altera-soc/larg-2/
Was ich bis jetzt nirgendwo gesehen habe ist ein IP der irgendeinen RAM
realisiert. Hat jemand soetwas schonmal gefunden?
Gruß,
gattler
Mampf F. schrieb:> Es gab da bei Qimonda mal eine Doktorarbeit, wo es um Analyse von DDR> ging. Soweit ich mich erinnern kann, waren das etliche Rechner, die> verkabelt waren und Gigabytes an Daten mit einer kranken Datenrate> abspeichern mussten :)>> Falls Georg mitliest, kann er sicher mehr dazu sagen xD
Bin zwar nicht Georg, aber: ja das war mal so :-)
Die letzte Version lief bis DDR3 800MHz Taktfrequenz. Oben ein Foto vom
Aufbau (das DRAM-Modul sitzt auf einer risercard, die mit dem FPGA-Modul
verbunden ist). Das Rechner-Rack ist nicht gezeigt, es hat die Daten per
10Gbit Ethernet empfangen und auf Festplatten verteilt.
Das Trace umfasste allerdings nur die Kommandos/Adressen, für die Daten
(die mit 2*800MHz schalten) hätte weder die Erfassung mit dem Virtex
noch die Bandbreite des Netzwerks ausgereicht.
zur DDR3-Version gibt es keine Veröffentlichung. Die wurde aus der
Konkursmasse von Qimonda nach Korea verkauft. Zur DDR2-Version, die ja
wie von Mampf geschrieben aus einer Doktorarbeit hervorging, gibt es
etwas Literatur:
Simon Albert: Development of a fast DRAM Analyzer and Measurement of
Typical and Critical Memory Access Sequences in Applications.
Dissertation TU München, 2008
Manuel Harrant: Verifizierung und Entwicklung einer Analyse-Karte für
SDRAM-Module mit DDR3-Schnittstelle. Bachelorarbeit Fachhochschule
München, 2008
Simon Albert, Sven Kalms, Christian Weiss, Achim Schramm: Acquisition
and evaluation of long DDR2-SDRAM access sequences. In Proceedings of
the IEEE International Symposium on Performance Analysis of Systems and
Software 2006, pages 242-250, Austin Texas, March 2006
gattler schrieb:> Ich nehme mal an der Code dazu ist nicht öffentlich> verfügbar?
Wie gesagt: die Rechte daran hat sich eine koreanische Firma gekauft
(und eine nennenswerte Summe dafür ausgegeben).
Ich gehe zwar eher nicht davon aus, dass die hier mitlesen. Aber wenn es
jemand veröffentlichen wollte, dann müssten die das tun.
Kaum anzunehmen, zumal solche Patente meistens gekauft werden, um sie
nicht an einen anderen gehen zu lassen, damit man seine Sachen, die
minderwertig sind, weiter abverkaufen kann.
gattler schrieb:> Es scheint also nicht komplett unmöglich zu sein :). Es muss ja nicht> gleich DDR sein.
Wenn es nicht DDR sein soll, was dann sonst? DDR IST die beherrschende
Architektur, die auch die einzige wäre, die man analysieren können muss,
weil da ein komplexes Timing vorliegt. Der Rest ist ja trivial.
Ein SRAM kannst Du im FPGA in 30 Sekunden instanziieren.