Was ist die genaue Verwendung eines Speichercontrollers und der RAM-Latenz?

Ich lerne etwas über synchrones DRAM und es wird oft ein Speichercontroller erwähnt. Was genau ist der Sinn davon? Könnte die CPU nicht einfach die Aufgabe übernehmen, Daten mit ihrer eigenen Uhr anzufordern und zu empfangen? Und etwas anderes, was mich verwirrt hat, ist die RAM-Latenz. Wie genau wartet ein Computer eine bestimmte Anzahl von Taktzyklen, um Informationen zu erhalten? Was macht der Computer während dieser Zeit zwischen den Taktzyklen?

"Könnte die CPU das Anfordern und Empfangen von Daten nicht einfach mit ihrer eigenen Uhr übernehmen?" Sicher, aber ich hätte es lieber, wenn es etwas tut, weißt du ... nützlich .
Beachten Sie, dass der Speichercontroller normalerweise ein Subsystem auf demselben physischen Chip wie die CPU ist.
Frühe Mikroprozessoren mussten dies tun (siehe Wiki ), aber das war umständlich. Der Z80 hat spezielle Register/Schaltkreise hinzugefügt, um zu helfen ( dieses Stück des obigen Links ).

Antworten (2)

Ein dedizierter Speichercontroller ist aus mehreren Gründen obligatorisch (in die CPU integriert oder nicht). Da es sich um einen dynamischen Speicher handelt, muss jede Speicherzelle etwa alle 16 ms mit einem Strobe „aufgefrischt“ werden.

Bei einigen DRAM-Chips mit Gigabyte Speicherplatz würde die CPU ihre ganze Zeit damit verbringen, den DRAM zu aktualisieren. Unter Verwendung von zeitgesteuerten Latenz- oder Handshake-Signalen (immer noch eine bekannte Latenz – oder Verzögerungszeit zum Auffrischen des DRAM) teilt der DRAM-Controller der CPU mit, wann er im DRAM lesen oder schreiben kann.

Der Speichercontroller erledigt auch eine andere komplizierte Aufgabe, und zwar ermöglicht er anderen Geräten wie einem LCD-Treiberchip den Zugriff auf den DRAM, wenn die CPU keinen Zugriff verlangt. Dieser in den DRAM-Controller eingebaute Prioritätsbaum ermöglicht es mehreren Geräten neben der CPU, "an der Reihe " zu sein, um auf den DRAM zuzugreifen.

Synchron bedeutet einfach, dass sich die CPU und der DRAM-Controller denselben Takt teilen, oder die CPU liefert den Takt für Lese-/Schreibanforderungen. Synchron kann es ermöglichen, dass Daten in kurzen Bursts verschoben werden, wodurch die Datenübertragungsgeschwindigkeit verbessert wird.

DRAM-Speicherzellen verwenden nur einen Transistor und einen Kondensator, um den Zustand (1 oder 0) zu „halten“, daher ist ein schneller Auffrischungsimpuls für jede Zelle obligatorisch, oder die Zellen vergessen ihren Zustand und verursachen einen CPU-Crash.

Vor etwa 30 Jahren, als DRAMs zum ersten Mal auf den Markt kamen, waren Abstürze und Datenverluste an der Tagesordnung.

Du beantwortest dir irgendwie deine eigene Frage.

Wie genau wartet ein Computer eine bestimmte Anzahl von Taktzyklen, um Informationen zu erhalten?

Es weiß es nicht. Es muss einen Speichercontroller haben, der den verfügbaren Speicher kennt. Die CPU versucht normalerweise¹ einfach, auf eine externe Speicheradresse zuzugreifen, und wartet darauf, dass der Speichercontroller signalisiert, dass der Zugriff abgeschlossen ist.

Je komplexer der Speicher wird, desto komplexer muss der Controller sein und desto komplexer wird das Protokoll. Sie haben gerade angefangen, über synchrones DRAM zu lesen, das eine Stufe höher ist als normales DRAM, das eine Stufe höher ist als das SRAM und ROM, das vor DRAM üblich war.

Ein Speichercontroller war bei SRAM nicht erforderlich: Der Speicher war früher schneller als die CPU, sodass die CPU einfach eine Adresse auf den Bus legen und die Daten direkt lesen/schreiben konnte.

Dann kam DRAM, das einen sehr einfachen Speichercontroller erforderte, der den oberen und unteren Adressbus multiplexen und warten konnte, bis der DRAM fertig war.

SDRAM fügt noch mehr hinzu, da Sie jetzt ohne Strafe auf verschiedene Seiten zugreifen können, und danach kommt DDR, DDR2 usw.

Vieles davon kann nun auch auf der CPU einziehen, sodass man nicht unbedingt einen separaten Controller benötigt.

¹ Moderne CPUs sind natürlich extrem komplex und haben mehrere Caching-Ebenen und andere Dinge, die vor sich gehen – es ist nicht so einfach, nur auf eine externe Adresse zuzugreifen.