Nun erst mal zu den Zugriffszeiten:
Die Geschwindigkeit wird allgemein bei Speichermedien in ns (Nanosekunden; 1s entspricht 1 Million ns), bei Chips aber in MHz (Megahertz; entspricht 1 Million Hertz) angegeben. Ein Hertz ist definiert als eine Wiederholung pro Sekunde, wobei man hier besser ein Takt pro Sekunde sagen sollte. Heute wird die Taktfrequenz aber schon bald genauso oft in GHz (Gigahertz; entspricht 1 Milliarde Hertz) angegeben. Wenn Sie ein Verhältnis über diese Angaben erhalten wollen, dann klicken Sie bitte hier.
Die tatsächliche Angabe der Speichergeschwindigkeit ist jedoch sehr viel komplizierter als das bloße Umrechnen von Nanosekunden in Megahertz und umgekehrt. Jeder Transistor ist effizient in einem Gitter im Speicherchip angeordnet. Diese Transistoren werden durch ein Zeilen-Spalten-System adressiert. Das heißt, dass bei jedem Zugriff auf das Speichermedium zuerst die Zeilenadresse und dann die Spaltenadresse angewählt wird und die Daten übertragen werden.
Die erste Organisation, also die Wahl der Zeilen- und Spaltenadressen nennt man Latenzzeit (Overhead). Diese Latenzzeit ist hier also nicht gleich der bei einer Festplatte (siehe entsprechendes Kapitel). Die gesamte Zugriffszeit wird also aus der Zykluszeit plus der Latenzzeit berechnet. Die Latenzzeit entspricht dabei immer ca. 2/5 der eigentlichen Zugriffszeit. Der Rest, also ca. 3/5, entspricht der Zykluszeit, also der Übertragung der Daten. Die tatsächliche Taktfrequenz des Zyklus beträgt demnach 28,5 MHz (Tabellen-Daten). Die Übertragungszeit beträgt aber trotz allem noch 60 ns, so dass alle die darauffolgenden Übertragungen eine Frequenz von 16,7 MHz aufweisen.
Wenn also ein schneller Prozessor, z.B. 500 MHz, in einen langsamen 16 MHz-Speicher lesen muss, so muss der Nutzer warten. Man nennt das auch Waitstates. Das ist ein langer Takt, in dem der Prozessor nur wartet und nichts tut. Wenn nun der Speicher eine Zeit von 60 ns benötigt und der Prozessor mit 500 MHz arbeitet, muss dieser 23 Waitstates durchlaufen, denn erst im 24sten Takt stehen die gewünschten Daten bereit. Diese Waitstates reduzieren die Verarbeitungszeit auf das langsamste Element, in diesem Fall den Speicher. Um diese Waitstates zu verringen, kann man sich nur schnellere Speicher oder einen größeren Cache-Speicher zulegen.
Nun zum DRAM:
Ich habe die Vorgänger dieses Speicherchips weggelassen, da ich meine, dass diese schon zu alt sind, um aufgezählt zu werden.
Der DRAM ist ein sogenannter Dynamic RAM (RAM = Random Access Memory), das heißt ein dynamischer Zwischenspeicher. Der Nachteil dieser RAM-Bausteine ist der, dass die winzigen Transistoren dynamisch sind, so dass deren gespeicherte Ladung, die ein Bit darstellen soll, ständig erneuert werden muss. Diese Auffrischung findet immer dann statt, wenn der Speichercontroller eine kurze Pause einlegt und auf alle Datenreihen in einem Speicherchip zugreift. Die meisten Speichercontroller, oft auf den Mainboards schon vorhanden, haben eine industriell festgelegten Refresh-Rate von 15 µs (Mikrosekunden). Auf diesen Speicher wird so zugegriffen, dass nach 128 dieser Refresh-Zyklen auf alle Datenreihen zugegriffen wird. Das heißt, dass alle 128×15 Mikrosekunden (oder: 1,92 ms (Millisekunden)) alle Daten im Chip gelesen werden, um deren Daten aufzufrischen.
Dieses Auffrischen benötigt jedoch Prozessor-Zeit, die demnach dann für andere Operationen nicht mehr zur Verfügung steht. Bei den alten Systemen kann das bis zu 10% der CPU-Zeit oder sogar noch mehr sein. Bei neueren Systemen mit 500 MHz oder mehr beansprucht dieses nur noch rund 1% der CPU-Zeit. Es gibt Systeme, bei denen man den Refresh-Zyklus über das CMOS-Setup ändern kann. Jedoch kann diese Manipulation zu sogenannten Soft-Errors im System führen, da die Transistoren nicht mehr mit genug Energie versorgt werden und die Daten somit verloren gehen können. Ein Soft-Error ist definiert als ein Fehler, der nicht von einem defekten Chip ausgeht. Deshalb sollte man die voreingestellte Zeit beibehalten, auch wenn dadurch das System nicht so schnell ist. Die Leistungssteigerung ist jedoch nur sehr gering.
In den DRAMs wird pro Bit nur ein Transistor-Kondensator-Paar verwendet, so dass eine hohe Dichte erreicht werden kann. Aus diesem Grund haben DRAM-Bausteine eine wesentlich höhere Speicherkapazität als andere Speicherchips. DRAM-Chips mit 256 MBits Speicherkapazität besaßen 256 Millionen Transistoren und mehr. Ein Prozessor, z.B. ein Pentium II besitzt nur 7,5 Millionen Transistoren, so dass dieser recht mickrig erscheint gegenüber dem Riesen, doch sind die Transistoren in den Speicherchips in einem einheitlichen Gitter, welches meistens quadratisch ist, gleichmäßig angeordnet sind. Ein Prozessor-Chip hat dahingegen hat eine noch komplexere Schaltung und unterschiedliche Strukturen, die sehr unregelmäßig mit miteinander verbundenen Elementen umgeht.
Die Hersteller arbeiten aber weiter an noch höheren Dichten und Speicherkapazitäten.
Die Transistoren in den DRAM-Bausteinen werden verwendet, um den aktuellen Ladezustand der nachgeschalteten Kondensatoren abzulesen. Ein geladener Kondensator wird als eine 1 registriert, ein ungeladener als eine 0. Die Kondensatoren entladen sich stetig, so dass der Speicher ständig erneuert bzw. aufgefrischt werden muss. Für einen Datenverlust reicht eine kurze Unterbrechung des Stromkreises oder eine Störung des Refresh-Zykluses.
Die DRAM-Chips wurden eingeführt, weil sie sehr kostengünstig waren und dicht gepackt werden konnten. Das bedeutete viel Speicher auf wenig Raum. Der Nachteil dieser DRAM-Zellen war der, dass diese sehr langsam waren, oft langsamer als die CPU. Deshalb wurden mehrere DRAM-Arten entwickelt, die sich alle durchsetzen konnten.