Geschwindigkeitsunterschied zwischen SRAM (statischer RAM) und DDR3-RAM

Dies ist eher eine Computerfrage, aber nur Elektronikfreaks würden solche Dinge wissen. Heutige Computer verwenden mehrere Speicherschichten, um schnell mit Daten zu arbeiten. Derzeit sind die CPU-Geschwindigkeiten zwischen 10- und 100-mal schneller als der RAM-Speicher. Daher sind CPUs mit einer kleinen Menge an sehr schnellem Speicher (Statischer RAM oder SRAM) ausgestattet, der normalerweise zwischen 10 KB und 10 MB groß ist. In diesem Speicher zwischengespeicherte Daten lassen sich am schnellsten verarbeiten, und DDR-RAM ist normalerweise viel langsamer (10-100-mal).

Laut Wikipedia benötigt DDR3-RAM derzeit 5-10 ns pro "Zyklus". Was bedeutet das genau und wie schnell ist SRAM im Vergleich? Wie nützlich sind SRAM und DDR3 für Embedded-Projekte, die FPGAs verwenden, und kann eines der beiden zugunsten des anderen weggelassen werden? (z. B. kein SRAM erforderlich, wenn die DDR3-Geschwindigkeiten ähnlich sind)

Antworten (1)

Zyklus, wie er auf dieser Webseite verwendet wird, bedeutet "Taktzyklus": die Zeit, die für einen Impuls des vom RAM verwendeten Taktsignals benötigt wird. Der 100-MHz-Takt entspricht also einem 10-ns-Zyklus.

Intern entspricht dies dem Auswählen einer Reihe innerhalb des Chips und dem Lesen der entsprechenden Spaltenleitungen; Dies bringt eine Reihe von Werten (sagen wir 256 Bits = 8 Bytes) für jeden der 8 Chips im RAM heraus.

Es folgt dann ein Antwortburst, bei dem die Werte an den Prozessor zurückübertragen werden. Der Bus ist 64 Bit breit, also gibt es mehrere Übertragungen. Normalerweise füllt dies eine ganze Cache-"Zeile".

(Beachten Sie, dass es eine implizite Pipeline gibt: Sie können eine weitere Anfrage senden, bevor die erste abgeschlossen ist.)

Für ein FPGA-Projekt würden Sie vorzugsweise Onboard-SRAM verwenden, aber wenn nicht genug vorhanden ist oder Sie es gemeinsam nutzen müssen, würden Sie externen DDR-RAM verwenden.

Tolle Informationen, aber wie ist das im Vergleich zu DDR3-RAM? Wissen Sie, wie oft DDR3-RAM im Vergleich schneller/langsamer wäre? Oder sind es Äpfel zu Birnen?
Nun, wenn Sie Einzelheiten wünschen, müssen Sie sich spezifisch mit dem SRAM befassen. Verknüpfen Sie ein Datenblatt mit dem FPGA, an dem Sie interessiert sind. (Die Latenz des integrierten SRAM ist jedoch immer viel besser.)
Ein weiterer Unterschied zwischen SRAM und DRAM ist die mögliche Variabilität der Latenz. Zusätzlich zum Spaltenlese- oder -schreibbefehl kann ein DRAM-Zugriff einen Zeilenaktivierungsbefehl (wenn die Zeile, auf die zugegriffen wird, nicht die zuletzt verwendete in ihrer Bank ist) und sogar einen Vorladebefehl (wenn die alte Zeile nicht zurückgeschrieben wurde) erfordern bevor eine neue Zeile aktiviert werden soll). Die von DRAM benötigte Auffrischung kann auch normale Zugriffe stören. Banking wird verwendet, um ein besseres typisches Verhalten bereitzustellen, aber der schlimmste Fall – jeder Zugriff erfolgt auf eine andere Zeile in derselben Bank – kann die Leistung erheblich beeinträchtigen.
Dies erklärt eigentlich viel dafür, warum viele Faktoren die Geschwindigkeit eines speicherintensiven Programms beeinflussen können
@ pjc50 - Ich weiß nicht genau, welches SRAM, weil ich mich mehr auf die PC-Situation bezog. Ich habe versucht, PC-SRAM mit DDR3 zu vergleichen und dann versucht, diese Informationen für ein FPGA-Projekt zu verwenden, weil es ähnlich wäre.
Woher weißt du, dass es ähnlich ist? Was hast du genau vor? Warum nicht die tatsächlichen Zahlen nachschlagen?
Wenn Sie den Onboard-SRAM eines FPGA verwenden, wird dieser normalerweise in einem Zyklus schreiben und in zwei lesen. Die Geschwindigkeit des PC-L2/L3-Cache ist nicht relevant.