Was in der Hardware macht den RAM schneller als das Laufwerk?

Was in der Hardware macht den RAM schneller als das Laufwerk?

Ich kann nichts darüber finden, WAS genau RAM so viel schneller macht als Festplatten/SSDs. Was ist der Unterschied zwischen RAM beim Lesen und Schreiben von Daten und permanentem Speicher? Was ist der grundlegende Unterschied zwischen ihnen, der zu so drastischen Unterschieden führt? Permanenter vs. temporärer Speicher. Langsames vs. schnelles Lesen/Schreiben. Was macht RAM so viel schneller?

Antwort1

Es gibt viele Unterschiede zwischen dem, was auf physischer Ebene passiert, und dem, was an der Schnittstelle zwischen der CPU und den Geräten passiert, die die Geschwindigkeit dieser Geräte beeinflussen.

Hinweis: Es gibt andere RAM-Typen (FeRAM, PRAM usw.) und andere Speichersysteme. Zu Diskussionszwecken berücksichtige ich nur die Hauptkomponenten, die in Computern verwendet werden.

Körperliche Unterschiede

Es besteht ein grundlegender Unterschied zwischen einer „einfachen“ elektronischen Zustandsänderung, die im RAM verwendet wird, und einer physischen Zustandsänderung, die in HDD- und SSD-Geräten verwendet wird.

Herkömmlicher RAM verwendet eine Handvoll Transistoren, um einen Zustand beizubehalten. Transistoren sind von Natur aus schnelle Geräte, die ausschließlich auf der Basis von elektrischen Strömen arbeiten. Sie funktionieren auf die gleiche Weise wie die CPU, und ihre Geschwindigkeit hat auch den Nachteil, dass sie flüchtig sind, was bedeutet, dass die Daten verloren gehen, wenn die Stromversorgung unterbrochen wird.

Bei Festplatten finden viel mehr physische Veränderungen statt. Anstatt den Zustand eines elektronischen Schaltkreises zu ändern, versuchen Sie im Wesentlichen, eine Änderung im physischen Medium zu erzwingen. Bei einer Festplatte ist es ein ähnlicher Vorgang wie das Ummagnetisieren einer Nadel. Sie müssen einen Magneten verwenden, um die Atome herumzuschieben und ihre Magnetfelder auszurichten. Der Vorgang ist im Vergleich zu einem rein elektronischen Transistorschalter relativ langsam.

Solid State Drives (SSDs) sind eine seltsame Zwischenlösung zwischen normalem RAM und Festplatten. Sie sind im Wesentlichen ein elektronisches Speichergerät, aber um darauf schreiben zu können, muss immer noch eine physikalische Veränderung stattfinden. Elektronen müssen durch eine höhere Spannung in einen Bereich gezwungen werden, in den sie normalerweise nicht wollen. Diese höhere Spannung und der erzwungene Schreibvorgang erfordern mehr Arbeit als eine einfache Zustandsänderung des Transistors. Das Lesen ist ebenfalls etwas komplizierter, was sie dort etwas langsamer macht. Ich habe mehr darüber geschrieben, wie Flash-Speicher funktioniertauf diese Antwort.

Unterschiede bei der Benutzeroberfläche

Auch die Art der Schnittstelle zu diesen Geräten muss berücksichtigt werden. Speichergeräte wie Festplatten und SSDs verfügen über einen Controller und eine Schnittstelle, die sowohl Adress- als auch Datenleitungen in einer protokollbasierten Befehlsschnittstelle kombiniert. Um etwas zu tun, müssen wir einen Befehl senden, der besagt, give me the data from block 3192dass write this <data> to block 549,321,974der Controller ihn dekodieren und dann ausführen muss. Aufgrund der rotierenden Natur einer physischen Festplatte funktionieren sie am besten, wenn jede Datenanforderung der vorherigen Datensequenz folgt.

SSDs sind viel nachsichtigere Geräte und legen keinen großen Wert auf die Reihenfolge der Datenanforderungen. Sie benötigen jedoch dennoch den Controller im Gerät, um über die „einfache“ Schnittstelle gesendete Befehle zu verarbeiten.

Die Schnittstellen von Festplattenlaufwerken und SSDs zu ihren Controllern (und moderne protokollbasierte Schnittstellen im Allgemeinen) arbeiten in einem „seriellen“ Modus. Das bedeutet, dass es im Wesentlichen eine einzelne Datenleitung gibt, die wiederholt umgeschaltet werden muss, um einen Befehl aufzubauen. Um ein einzelnes Datenbyte zu übertragen, muss die serielle Leitung mindestens 8 Mal umgeschaltet werden. Zusätzlich zu den reinen Daten entsteht ein großer „Overhead“ beim Senden von Bytes für Befehle, die dem Controller mitteilen, ob Sie ihn zum Lesen oder Schreiben auffordern.

RAM hingegen hat eine sehr breite Schnittstelle zur CPU und ist zudem eine „parallele“ Schnittstelle. Es hat sowohl mehrere Adress- als auch Datenleitungen und benötigt keinen echten Controller (außer dem in die CPU integrierten Speichercontroller), um die Daten ein- und auszugeben. Die CPU ändert die Adressleitungen nach Wunsch, legt ein weiteres Zeilenpaar fest, um anzugeben, ob sie liest oder schreibt, und beginnt dann, Daten über mehrere Datenleitungen auszusenden. Es ist eine weitaus komplexere Anordnung, aber aufgrund des dedizierten „breiten“ Datenbusses können größere Datenblöcke auf einmal ausgesendet werden, wodurch höhere Massengeschwindigkeiten erreicht werden.

Mehr zu den Unterschieden in der Benutzeroberfläche habe ich in meinemAntwort darauf, warum Random Access Memory "Random Access" heißt

verwandte Informationen