Stellen Sie SDRAM als USB 3-Massenspeichergerät bereit

Herausforderung: Erstellen Sie ein Gerät, das ein oder mehrere SDRAMs (z. B. DDR2, DDR3) hosten kann, und stellen Sie sie als USB 3 (Slave)-Massenspeichergerät bereit.

Ziel: Ermöglichen Sie einem USB 3-Host, das Gerät zu mounten, und ermöglichen Sie Übertragungsraten von nahezu 5 Gbit.

Versuch 1 : Verwenden Sie einen PC, um das Gerät zu bauen - fehlschlagen - Der PC verfügt nicht über die erforderliche Hardware, um USB im Slave-Modus zu verwenden.

Versuch 2 : Verwenden Sie einen Mikrocontroller wie PIC oder ARM. SAM9 hat Unterstützung für DDR2, aber keine Unterstützung für USB 3. Vielleicht gibt es andere Mikrocontroller, die geeignet wären?

Welche anderen Konfigurationen fallen Ihnen ein, die bei der Lösung der Herausforderung hilfreich sein könnten?

Hinweis: Bitte ignorieren Sie die Tatsache, dass SDRAM flüchtig und für die Speicherung etwas ungeeignet ist. Außerdem ist mir die Existenz von i-RAM oder HyperDrive bekannt, die im Grunde dasselbe tun, aber über PCI verbunden sind.

Nennt man das nicht USB-Stick?
Nein, ein USB-Stick verwendet Flash-Speicher, die sehr langsam sind (~20 MB/s). DDR SDRAM kann über 30 Gigabyte/s erreichen. Sie sind also mehr als tausendmal schneller :-)
Haben Sie so etwas in Betracht gezogen: edn.com/article/…
Mit einem PIC kommen Sie nicht in die Nähe einer 5-Gbit-Übertragung. Das scheint mir FPGA-Territorium zu sein.
Ich will diesen Thread nicht entführen, aber stellt schon jemand Thunderbolt/Lightpeak-Peripherie-Controller her? Bei aller Geschwindigkeit könnte diese Schnittstelle dazu beitragen, Ihren Engpass gegenüber USB 3.0 zu verringern, da wir hier über RAM sprechen.
Hat jemand eine Idee, wie man einen PC als USB-Slave entlarven könnte? Vielleicht über einen PCI-Port? Das könnte eine praktikable Lösung sein!
hört sich nach einer interessanten Idee an, besonders wenn Sie einen Ersatz-RAM wie einen kleinen Sodimm herumliegen haben :)
@JonL Ich habe mich bei den Thunderbolt-Leuten registriert, aber sie sind noch nicht an dem Punkt, an dem sie bloße Sterbliche eine Spezifikation bekommen lassen, geschweige denn Hardware. :-(
Ich habe gehört, dass Firewire besser geeignet sein könnte, da es einfacher ist, eine PC-Firewire-Schnittstelle dazu zu bringen, als Slave zu arbeiten.
Die Wiederverwendung der Northbdrige + der Spuren von einem alten Motherboard könnte eine Alternative sein, aber sie sind wahrscheinlich schwierig zu verbinden ...

Antworten (1)

Ok, ich kann die Vernunft dieses Projekts außer Acht lassen. Es ist übrigens wahnsinnig, mit wenig oder keinem praktischen Wert, außer „es zu tun“ – aber das hat mich noch nie aufgehalten, und es sollte Sie nicht aufhalten.

Meiner Meinung nach braucht man mehrere Dinge: Eine CPU, ein FPGA, etwas SDRAM und eine USB-Schnittstelle. Cypress stellt den EX USB FX3 her , der 2 der 4 Dinge tut. Es verfügt über eine ARM 9-CPU und eine USB 3.0-Schnittstelle. Was es nicht hat, ist eine SDRAM-Schnittstelle - weshalb Sie ein FPGA brauchen. Das FPGA übernimmt sowohl die SDRAM-Schnittstelle als auch die Hochgeschwindigkeits-Datenschnittstelle zur USB3-Logik.

Was Sie absolut NICHT wollen, ist, dass die CPU den Großteil der Datenübertragung übernimmt! Ein 100 MHz ARM 9 wird diese Art von Datendurchsatz nicht bewältigen können. Übrigens wird auch kaum eine 2-GHz-CPU diese Datenmenge verarbeiten können. Der ARM9 ist nur für den Haushalt da, während der FPGA die Schwerarbeit erledigt.

Das ideale FPGA für dieses Projekt ist ein Xilinx Spartan-6. Relativ kostengünstig, einfach zu programmieren und mit integrierten Festplattenkernen für die DDR2-SDRAM-Schnittstelle.

Kein praktischer Nutzen? Wie wäre es mit einem Scratch-Laufwerk für etwas wie Photoshop, wenn Sie mit riesigen Bildern arbeiten? Oder als wahnsinnig schnelles Auslagerungslaufwerk für Linux? Ich möchte eins davon!
@Majenko <Facepalm> Oh, wo soll ich anfangen. Die beste Option für ein schnelles Scratch-Laufwerk wäre, mehr SDRAM in Ihrem PC zu installieren und einige Software für eine RAM-Disk auszuführen. Das ist die billigste und schnellste Option. Die Verwendung von RAM-Disk (USB oder anders) als Auslagerungslaufwerk ist einfach albern. Fügen Sie denselben RAM zum Hauptspeicher Ihres PCs hinzu, damit er überhaupt nicht ausgetauscht werden muss!
@Majenko Oder vielleicht habe ich unter Poe's Law gelitten ... en.wikipedia.org/wiki/Poe's_law
Und wenn Sie am Limit sind? Und Sie haben keine Möglichkeit, das Mobo (z. B. einen Laptop?)
@Majenko In diesem Fall müssen Sie sich fragen: Soll ich Geld ausgeben, um den Swap-/Scratch-Bereich schneller zu machen, oder sollte mein Geld besser für ein Upgrade des gesamten Computers ausgegeben werden? Eine schnelle USB3.0-RAM-Disk beschleunigt Photoshop, aber ein neuer Computer beschleunigt alles. Denken Sie daran, dass es heute keine USB3-RAM-Disk gibt und der Bau viel mehr als 2.000 US-Dollar kosten wird (Teile + Arbeit + was auch immer). Dies wäre ein ganz anderes Problem, wenn es 100 Dollar kosten würde, aber es wird niemals so billig sein.
Ja, aber ein neuer Computer hat nicht den Geek-Faktor, den eine superschnelle externe RAM-Disk haben würde. Und der Geek-Faktor ist bei so einer Sache wichtig.
@DavidKessner Danke für die Antwort! Möglicherweise muss ich ein paar Kurse belegen, um mich für diese Art von Lösung auskennen zu können. Was den Wert betrifft, so ist es hauptsächlich der der Neugier und der kreative Aspekt, verrückte Ideen weiterzuverfolgen. Allerdings habe ich auch ein paar praktische Bereiche im Auge. Man könnte zum Beispiel ein von USB gebootetes Betriebssystem wie Ubuntu Live ausführen. Dies sollte das System extrem schnell machen. Ein weiteres interessantes Gebiet ist es, eine superschnelle Brücke zwischen meinem Media Center und meinem PC herzustellen :-)
@Mika - Beim Booten von einer Live-CD werden die Informationen bereits im RAM zwischengespeichert und gepuffert. Oder kopieren Sie die CD erneut auf eine RAM-Disk auf dem PC und führen Sie sie von dort aus aus. Auf diese Weise vermeidet Ihre CPU den Aufwand, alles auf USB 3 zu übersetzen (ein Aufwand, den Sie bisher ignoriert haben) und greift direkt auf den Speicher zu (der bereits als viel schneller festgestellt wurde). USB 3 verfügt über drei differenzielle Paare, über die Sie 5 Gigabit/s übertragen können, und erfordert Protokoll-Overhead. Ein DDR3-Stick hat 64 Datenpins plus Adressierungspins und kann 17 Gigabyte/s oder 136 Gigabit/s erreichen (27 mal schneller!)
@Majenko - Leistung übertrumpft meiner Meinung nach immer den Geek-Faktor. Außerdem bringt eine absurde Menge an RAM in Ihrem Laptop oder PC viel Glaubwürdigkeit für Computerfreaks mit sich.